NCVCの作者のページ

Zumo Zumo32U4 BLEserial3 Bluetooth BLE Python Wifi Camera

PS4コントローラ(番外編)

はじめに

 PS4用の互換コントローラを紹介します. 結構お高いのでこれを学生人数分買うわけにはいきませんが,大人なのでスペシャルなコントローラを使いますww  ESP32 と PS4 や XBox などのゲーム機のコントローラを接続する方法はたくさん紹介されています.Bluetooth万歳. 今回は Qiitaのページ を参考にさせてもらいました.

問題発生!!

 Qiitaのページ の記載通り準備します.

 スケッチ例の[PS4ReceiveData]を Timer Camera X に書き込むと 簡単にコントローラの情報が取得できました.やったぜ!


 駄菓子菓子...一度接続を切ると二度とアクセスできなくなる鬼仕様が発覚!!(esp32 ver2.0.2)
1回目はスムーズに接続できましたが,2回目以降は何をやってもペアリングできなくなりました.どうやら同じ症状が報告されているようで PS4-esp32 の Issue にあるように this part was solved by ereasing flash of the ESP32(フラッシュをイレースすると解決する)らしいです. ただし,消したところで書き込んだ初回しかペアリングできないので,何の解決にもなりません. これが投稿されたのが 2021/12/15 なので,もう少し待てば解決されるかも??  探せば他にもライブラリありそうですけどね~

現状

 ESP32と直接通信することは諦めて,Raspberry Pi 経由でBLEserial3試作機3号機とのPythonを使ったコントローラとして使用しています. さらに,ラズパイ本体とゲームパッドだけで運用できるように以下のようなコードを考えました.参考にしたサイトはこちら

pswatch.py

 USB接続かBluetooth接続に関わらず,ゲームパッドがつながると /dev/input/js* のファイルが作られることを利用して,それを監視する Python スクリプトを書きました. これをラズパイ起動時に実行するようにしておけば,ゲームパッド接続のタイミングで BLEjoy.py が動くので,キーボードやディスプレイがなくても本体だけで運用することができます. ラズパイ起動時に実行する書き方は他のサイトを参照してください.僕の場合は ~/.config/lxsession/LXDE-pi/autostart に追記しました.

<< 前のページに戻るZumoインデックスへ