class Raspberry(object): """docstring for ClassName""" def __init__(self): super(Raspberry, self).__init__() self.help_msg = \ u"你好,我是小Pi,回复对应字母开启我吧\n\n" \ u"F: 前进\n" \ u"B: 后退\n" \ u"L: 左转弯\n" \ u"R: 右转弯\n"\ u"C: 原地转圈\n"\ u"S: 停止\n" self.car = Car() def msg_handler(self, args): arg_list = args.split(" ") # 参数以空格为分割符 res = u"指令错误,回复 help 获取帮助" if len(arg_list) == 1: # 如果接收参数个数为1 arg = arg_list[0].strip() if arg == u'help': # 帮助信息 res = self.help_msg elif arg == u'F': self.car.forward() res = u"正在前进" elif arg == u'B': self.car.backward() res = u"正在后退" elif arg == u'L': self.car.left() res = u"正在左转弯" elif arg == u'R': self.car.right() res = u"正在右转弯" elif arg == u'C': self.car.circle() res = u"正在原地转圈" elif arg == u'S': self.car.stop() res = u"停止" return res
car.right() elif trace == LEFT: car.left() elif trace == FORWARD: car.forward(speed) elif trace == STOP: if trace_stops <= 2: trace_stops += 1 continue car.stop() obstacle = car.get_obstacle() if obstacle == STOP and \ (passed_ultra_obstacle or (not passed_first_obstacle or not passed_second_obstacle)): car.backward(2) car.right_angle_turn(90) car.forward(50) time.sleep(0.8) car.left_angle_turn(90) # car.stop() while True: trace = car.get_trace() obstacle = car.get_obstacle() if obstacle == RIGHT or trace == RIGHT: car.right() elif trace == LEFT: car.left() elif trace == FORWARD: car.forward(5) elif trace == STOP:
car = Car() while True: printscreen() print(car) char = screen.getch() if char == ord('q'): car.stopDriving() break elif char == ord('-'): car.centerSteering() elif char == ord('s'): print("lets start driving!") car.beginDriving() elif char == curses.KEY_UP: print('forward') car.forward() elif char == curses.KEY_DOWN: print('reverse') car.backward() elif char == curses.KEY_RIGHT: print('right') car.turnRight() elif char == curses.KEY_LEFT: print('left') car.turnLeft() car.updatePwm() curses.nocbreak() screen.keypad(0) curses.echo() curses.endwin()
elif trace == LEFT: car.left() elif trace == FORWARD: car.forward(speed) elif trace == STOP: if trace_stops <= 2: car.forward(50) time.sleep(0.8) trace_stops += 1 continue car.stop() obstacle = car.get_obstacle() if passed_ultra_obstacle and (not passed_first_obstacle or not passed_second_obstacle): if obstacle == STOP: car.backward(50) time.sleep(0.8) car.right_angle_turn(45) car.forward(50) time.sleep(0.8) # car.left_angle_turn(90) car.stop() started_time = time.time() while True: trace = car.get_trace() obstacle = car.get_obstacle() if not ((time.time() - started_time) > 2): if obstacle == RIGHT or trace == RIGHT: car.right() elif trace == LEFT: car.left()