BrickPi电机转速但不移动机器人

时间:2015-01-28 11:21:45

标签: python raspberry-pi raspbian

我正在玩Raspberry Pi上的BrickPi。

我正在使用Python来控制4轮驱动机器人。默认程序允许您实时控制它。但我尝试创建一个程序,通过使用代码为机器人设置一条路线,即move forwards 3 seconds then stop

def fwd():
    BrickPi.MotorSpeed[fl] = speed  
    BrickPi.MotorSpeed[fr] = speed  
    BrickPi.MotorSpeed[bl] = -speed  
    BrickPi.MotorSpeed[br] = -speed
    BrickPiUpdateValues()



def stop():
    BrickPi.MotorSpeed[fl] = 0  
    BrickPi.MotorSpeed[fr] = 0  
    BrickPi.MotorSpeed[bl] = 0  
    BrickPi.MotorSpeed[br] = 0
    BrickPiUpdateValues()

fwd()
time.sleep(4)
stop()

但它只是加速了一秒然后立即停止...... 我有电机设置并在代码的其他地方分配。速度设置为200。

图书馆的文档没有帮助。

我如何使这项工作?

1 个答案:

答案 0 :(得分:1)

  

但它只是转了一秒然后立即停止......我有电机设置并在代码的其他地方分配。速度设置为200。

看起来这应该完全爆炸,然后停止。 The BrickPi固件具有安全功能,如果几秒钟内没有从Raspberry Pi收到消息,它就会关闭电机。您可能希望将代码更改为以下内容:

fwd()
ot = time.time()
while(time.time() - ot < 4):    #running while loop for 3 seconds
    BrickPiUpdateValues()       # Ask BrickPi to update values for sensors/motors
    time.sleep(.1)
stop()

第四行的循环每100毫秒调用一次代码(更新BrickPi)并使电机保持运行状态。

您可以看到running LEGO Mindstorms motors with the Raspberry Pi here的代码示例。

希望这有帮助!