Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
     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:
Ejemplo n.º 3
0
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()
Ejemplo n.º 4
0
 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()