一个游戏杆可以与pygame一起使用,而另一个游戏杆不能吗?

时间:2018-07-13 14:04:24

标签: python pygame robot joystick

我目前正在构建一个机器人,该机器人要用我购买的一对不错的操纵杆来控制。到目前为止,我一直在使用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,因此它应该可以很好地用于该应用程序。但我仍然想知道如何解决此问题以进行测试。

1 个答案:

答案 0 :(得分:0)

在黑暗中拍摄了几张照片,而无法访问您的硬件...

  1. 由于PS4控制器可以正常工作,所以我猜代码和RasPi都处于良好状态,因此操纵杆本身可能有问题。问题可能是操纵杆暂时断开(电源问题,电缆故障,硬件故障),并在重新连接时分配了一个新地址,例如1。我不记得这是RasPi通常的常见问题,但是PyGame可能有问题。这是另一篇文章,其中包含一些代码,可以帮助您检测和调试软件中的joystick disconnects。为了更快地在硬件上测试这种可能性,请在您的游戏“正常运行”时有意尽早进行短暂的断开连接,看看是否会出现相同的结果。

  2. 最后,可能是RasPi的轮询速度太快,导致操纵杆冻结。要对此进行调试,您可以尝试在循环中添加延迟。