我目前正在构建一个机器人,该机器人要用我购买的一对不错的操纵杆来控制。到目前为止,我一直在使用pygame.joystick,而我的PS4控制器完全没有问题。但是,新操纵杆有问题。它们输出正确的值大约20或30秒,并且可以正常工作,但是随后它们只是冻结一个值。我想不出任何原因,它们会在一段时间内正常工作,然后突然冻结。
我的代码很简单:
pygame.init()
leftjoy = pygame.Joystick.joystick(0)
leftjoy.init()
while True:
print(leftjoy.get_axis(0))
pygame.event.pump()
更新:
我在Windows而不是raspberry pi上尝试了相同的代码,并且效果很好。我计划在控制机器人时使用ssh,因此它应该可以很好地用于该应用程序。但我仍然想知道如何解决此问题以进行测试。
答案 0 :(得分:0)
在黑暗中拍摄了几张照片,而无法访问您的硬件...
由于PS4控制器可以正常工作,所以我猜代码和RasPi都处于良好状态,因此操纵杆本身可能有问题。问题可能是操纵杆暂时断开(电源问题,电缆故障,硬件故障),并在重新连接时分配了一个新地址,例如1。我不记得这是RasPi通常的常见问题,但是PyGame可能有问题。这是另一篇文章,其中包含一些代码,可以帮助您检测和调试软件中的joystick disconnects。为了更快地在硬件上测试这种可能性,请在您的游戏“正常运行”时有意尽早进行短暂的断开连接,看看是否会出现相同的结果。
最后,可能是RasPi的轮询速度太快,导致操纵杆冻结。要对此进行调试,您可以尝试在循环中添加延迟。