我正在玩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。
图书馆的文档没有帮助。
我如何使这项工作?
答案 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的代码示例。
希望这有帮助!