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

BrickPi motors rev but don't move robot

我正在 Raspberry Pi 上玩 BrickPi。

我正在使用 Python 来控制四轮驱动机器人。默认程序允许您实时控制它。但我试图创建一个程序,为机器人提供一条固定路线,即 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.

库的文档没有帮助。

我该如何进行这项工作?

But it just revs up for like a second then instantly stops... I have the motors setup and assigned elsewhere in the code. And speed is set to 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)并保持电机运行并 运行ning。

你可以看到我们的代码示例 running LEGO Mindstorms motors with the Raspberry Pi here

希望对您有所帮助!