UbuntuのPythonでPS3コントローラーから読み込もうとしていますが、うまくいきません。私は、Willow Garage (http://www.ros.org/wiki/ps3joy) の ps3joy ドライバーから始めました。これは、PS3 コントローラーのすべての重要なビットを、私が聞いたことのない「uinput」と呼ばれるものに公開していると思われます。どうやら、ユーザースペースドライバーがシステムイベントを提供できるようにするのはLinuxの機能です。...おそらくユーザー空間ドライバーであると思われるWGドライバーがルートアクセスを必要とする理由は私にはわかりませんが、それは私の質問ではありません。
とにかく、それを機能させようとしている私の現在の状態は、ドライバーが機能していることです。コントローラーのボタンを押すとドライバーが応答することを確認しましたが、それを引き出す方法がわかりません使えるようにデータアウトしました。
私の最初の推測は、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 ドライバーがまったく実行されていない場合でも同じことを行うことです。
正しい情報を読んでいないだけなので、これは簡単なことだと思いますが、グーグルは正しい情報が何であるかを見つけるのに役立たず、疲れて必死になっています。