PS4用の互換コントローラを紹介します. 結構お高いのでこれを学生人数分買うわけにはいきませんが,大人なのでスペシャルなコントローラを使いますww ESP32 と PS4 や XBox などのゲーム機のコントローラを接続する方法はたくさん紹介されています.Bluetooth万歳. 今回は Qiitaのページ を参考にさせてもらいました.
Qiitaのページ の記載通り準備します.
駄菓子菓子...一度接続を切ると二度とアクセスできなくなる鬼仕様が発覚!!(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を使ったコントローラとして使用しています. さらに,ラズパイ本体とゲームパッドだけで運用できるように以下のようなコードを考えました.参考にしたサイトはこちら
USB接続かBluetooth接続に関わらず,ゲームパッドがつながると /dev/input/js* のファイルが作られることを利用して,それを監視する Python スクリプトを書きました. これをラズパイ起動時に実行するようにしておけば,ゲームパッド接続のタイミングで BLEjoy.py が動くので,キーボードやディスプレイがなくても本体だけで運用することができます. ラズパイ起動時に実行する書き方は他のサイトを参照してください.僕の場合は ~/.config/lxsession/LXDE-pi/autostart に追記しました.