我正在尝试从 Ubuntu 上的 Python 中的 PS3 控制器读取数据,但运气不佳。我从 Willow Garage (http://www.ros.org/wiki/ps3joy) 的 ps3joy 驱动程序开始,据说它会将 PS3 控制器的所有重要部分发布到我从未听说过的称为“uinput”的东西上。显然,这是一个允许用户空间驱动程序提供系统事件的 linux 功能。...考虑到它应该是用户空间驱动程序,为什么 WG 驱动程序需要 root 访问权限超出了我的范围,但这不是我的问题。
无论如何,我试图让它工作的当前状态是我已经让驱动程序工作,并且我已经验证它可以响应控制器上的按钮按下,但我不知道如何拉任何一个数据出来,所以我可以使用它。
我的第一个猜测是使用 pygame (希望)从 /dev/uinput 读取(我很确定驱动程序发送数据的位置):
from pygame import joystick
if not joystick.get_init():
joystick.init()
js = joystick.Joystick(0) # there is only one joystick... even if the driver isn't running(!)
js.init()
print js.get_numbuttons() # perhaps coincidentally correctly prints 17 which is the number of buttons on a PS3 controller
for i in range(js.get_numaxes()):
print js.get_axis(i) # always prints 0, no matter what I'm doing with the controller
但它没有用。问题中最有说服力的部分是,如果我根本没有运行 WG 驱动程序,它会做同样的事情。
我确信这很容易,我只是没有阅读正确的信息,但是谷歌搜索并没有帮助我找到正确的信息,我感到疲倦和绝望。