Donkey Carの操作でBluetoothのジョイスティックを使いたい..
ということでPS3やWii-Uコントローラの使い方を調べていた。
ともにRaspberry Pi側のbluetooth機能から
該当デバイスのMACアドレスを探して
/dev/input/js0
を作成し、
parts/controller.py を加工ないし他の人の作ったcontrollerに差し替えてつかう。
でも..PS3やWii-U持ってない人は逆に不便..
Dualshock4なら入手可能だし ds4drv を動かせば
/dev/input/js0
はできる。
..けど、controllerコードを自分で書かないといけない..
これはめんどくさい..
..と、いろいろ調べていたら以下のサイトを見つけた
[Qiita] DonkeyCar セットアップ
https://qiita.com/mituhiromatuura/items/86a4dde22f469119f9d3
ここでつかっているジョイスティックがこれ。
[Amazon] ロジクールワイヤレスゲームパッド F710
https://amzn.to/2QJq4i9
F710、Amazonで1900円..安っ。
早速入手した。
あ、ドングルついてる。
ってことは、Raspberry Pi 3B+をベースにしてない場合は結局bluetoothペアリング地獄におちるわけだ。
でも標準Donkey Carは3B+なので問題なし。
案の定、3B+のUSBにドングルを刺して再起動したら自動的に/dev/input/js0が作成された。
いやー、簡単だわ..
https://github.com/mituhiromatuura/donkey にあるdonkeycar/parts/controller_logicool.py だけ落として~/mycar/partsに置く。
manage.pyに次のimport文を1行追加(安心のMITライセンス)。
そして、python manage.py drive --jsを実行。
Logicoolボタンを押して電源ON(OFFは長押し)。
あとは https://qiita.com/mituhiromatuura/items/86a4dde22f469119f9d3 の図に従って、操作すればいい。
Wii-UやPS3もってても、コッチのほうが時短できるなあ..
ps.
この方法てっきるドングルがハードレベルでbluetoothctl設定の代替しているものと思っていたが、2.4GHz帯のWiFi通信をピアツーピアで行っているだけらしい。
で、2.4GHz帯を使っているWiFiルータっていうのが世の中にはたくさん出ていて、場合によっては混線するらしい。
普通の環境下での使用であれば問題ないが、イベントなどでたくさんのF710やWiFiルータがある場所で使うとダメなんだと。
ゲームショーとかではどうやってるのかな..
ということでPS3やWii-Uコントローラの使い方を調べていた。
ともにRaspberry Pi側のbluetooth機能から
該当デバイスのMACアドレスを探して
/dev/input/js0
を作成し、
parts/controller.py を加工ないし他の人の作ったcontrollerに差し替えてつかう。
でも..PS3やWii-U持ってない人は逆に不便..
Dualshock4なら入手可能だし ds4drv を動かせば
/dev/input/js0
はできる。
..けど、controllerコードを自分で書かないといけない..
これはめんどくさい..
..と、いろいろ調べていたら以下のサイトを見つけた
[Qiita] DonkeyCar セットアップ
https://qiita.com/mituhiromatuura/items/86a4dde22f469119f9d3
ここでつかっているジョイスティックがこれ。
[Amazon] ロジクールワイヤレスゲームパッド F710
https://amzn.to/2QJq4i9
F710、Amazonで1900円..安っ。
早速入手した。
あ、ドングルついてる。
ってことは、Raspberry Pi 3B+をベースにしてない場合は結局bluetoothペアリング地獄におちるわけだ。
でも標準Donkey Carは3B+なので問題なし。
案の定、3B+のUSBにドングルを刺して再起動したら自動的に/dev/input/js0が作成された。
いやー、簡単だわ..
https://github.com/mituhiromatuura/donkey にあるdonkeycar/parts/controller_logicool.py だけ落として~/mycar/partsに置く。
manage.pyに次のimport文を1行追加(安心のMITライセンス)。
from parts.controller_logicool import JoystickController
そして、python manage.py drive --jsを実行。
Logicoolボタンを押して電源ON(OFFは長押し)。
あとは https://qiita.com/mituhiromatuura/items/86a4dde22f469119f9d3 の図に従って、操作すればいい。
- 黃ボタンで最大スロットル値を調整
- 赤ボタンで走行記録をオン
- 前進後退のレバーを上げて走行を開始
- Userモード時は走行中は学習データを生成するが、停止時は学習データを生成しない
- ターミナルからCtrl+Cでプログラムを終了
Wii-UやPS3もってても、コッチのほうが時短できるなあ..
ps.
この方法てっきるドングルがハードレベルでbluetoothctl設定の代替しているものと思っていたが、2.4GHz帯のWiFi通信をピアツーピアで行っているだけらしい。
で、2.4GHz帯を使っているWiFiルータっていうのが世の中にはたくさん出ていて、場合によっては混線するらしい。
普通の環境下での使用であれば問題ないが、イベントなどでたくさんのF710やWiFiルータがある場所で使うとダメなんだと。
ゲームショーとかではどうやってるのかな..
0 件のコメント:
コメントを投稿