Jetson Nano (2GB) + PS4コントローラ


Jetson NanoでBlutooth接続してPS4コントローラを使ってみます。

ロボットなどの制御はラズパイがよく使われますが、エッジでAIをどうこうしようとするとJetsonの出番になることもあります。

なので、JetsonとPS4コントローラの組み合わせもやってみます。

Nano は素の状態ではWi-FiもBluetooth も使えません、イーサネット有線接続の一択です。

Wi-Fi はアダプタを調達すればOK。Bluetoothも同様です。

よく使われるものにIntelのM.2のWi-Fi・Bluetoothのコンボカードをセットするやり方がありますが、ヒートシンクを外したりいろいろ面倒です。USBアダプタの方が簡単だし安上がりです。

OSイメージは以下を使ってみます(Ubuntu 18.04.6 LTS Desktop)。

JetPack 4.6(For Jetson Nano 2GB Developer Kit)

 

PLANEX の Bluetooth USBアダプター Ver.4.0を使ってみます(Amazonで1000円くらい)。


アダプターをUSBポートに挿入しておきます。

 

OSのインストール終了後、起動してメニュから 設定ー>Bluetooth マネージャーを開きます。

 

PS4コントローラが発見されるようにSHAREボタンとPSボタンを同時に長押しすると、LEDが白く点滅します。

 

検索をクリック

 

PS4コントローラが検出されました。

 

右クリックして、ペアリングトラスト(信頼する)を実行。

以上でOKです。

 

再起動して試してみます。

PS4コントローラのPSボタンをクリック。

青白くLEDインジケータが点滅。

接続すると薄い青紫で点灯します、これでOK。

 

以下で確認

Joystick端末として認識されています。

 


Pythonでキー入力の取得

PS4コントローラ用のライブラリをインストールしておきます。for Linux なのでラズパイでもJetsonでも使えます。

pipを使うので未インストールの場合は以下を実行

ライブラリをインストール

キー検出用のPythonコード

/dev/input/js0の後ろの番号は上記で確認したJoystick端末の番号と対応しています。

コードはキー入力を待ち受けているので、何かキーをクリックすれば検出されます。

左右のスティックから取れるデータはこんな感じ。

イベント名やレンジはプラットフォーム、メーカーやタイプで異なっているかもしれません。要確認。

イベント名

ふつうはこう。

でも、こうなっている場合もあるようです。

数値データのレンジ

 

他のボタンのイベントなどはライブラリをご参照ください。

 


Appendix

PS4コントローラはいろいろな名前がついています。

Bluetoothマネージャーで見るとWireless Controller ですが、lsでデバイスを調べるとjs*(joystick)で出てきますし、有線接続してlsusbでUSBデバイス名を見るとDualshock 4(DS4)で出てきます。

 


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*