PS3のワイヤレスコントローラをLinuxで使い、ODEのシミュレーションや本物のロボットを動かせるといろいろ便利ですね。 調べて見るとすでにその方法があり、比較的簡単にできましたので、ここにメモとして記録します。参考にしたページは次のページです。おまけに、ODEのデモプログラムdemo_buggyをコントローラで動かすサンプルプログラムを掲載します。
作業手順
準 備
- Ubuntu 8.04のみを対象とします。
- libusb-devとlibusb-0.1-4がインストールされていること
- sudo apt-get install libusb-dev libusb-0.1-4
- /home/ユーザ名/src/ps3のディレクトリを作り、このbluez.tgzをダウンロードして展開する。
- tar xvzf bluez.tgz
USBのペアリング
- コントローラをUSBポートに有線で接続する
- sixpair.cをダウンロードしてコンパイルする。同じファイルは先ほどダウンロードしたbluez.tgzの中にもある。
- gcc -o sixpair sixpair.c -lusb
- ペアリング
- sudo ./sixpair
- USBケーブルを抜く
Bluez-Utilのインストール
- 準備でダウンロードしたBluez-Utilをインストールします。これは、PS3コントローラを認識するためのパッチ済みです。
- インストール
- sudo dpkg -i bluez-utils_3.26-0ubuntu6_i386.deb
- アップグレードの防止:Bluz-utilがシステムにより自動アップグレードされると、PS3コントローラは認識されなくなります。それを防止します。
- echo bluez-utils hold | dpkg –set-selections
Bluetoothの再起動
- コントローラを認識させるためにデーモンを再起動します。
- サービスの停止
- sudo /etc/init.d/bluetooth stop
- hicdプロセスの停止
- sudo killall hcid hidd
- HIDPデーモンの起動
- hidd –server –nocheck -n
- コントローラのPSボタンを押す。成功するとNew HID device … とメッセージが表示される。
- コントロールキーを押しながらCキーを押すしてデーモンを終了させる。
- サービスの開始
- sudo /etc/init.d/bluetooth start
テスト
- ODE0.11.1をインストールしている方は、このjoystickbuggy090725.tgzをダウンロードして、/home/ユーザ名/src/ode-0.11.1/myprogの中で展開してください。codeblocksのプロジェクトファイルbuggy.cbpがあるのでそれを使いビルドしてください。
- 設定がうまくできていると、左側のジョイスティックを引くと前進し、左に倒すと左折します。
次回からの利用
- 設定が一度済んでしまえば次回からは自動的にPSコントローラを認識し利用可能となります。
以上で終わりです。
コメント