2021年9月5日日曜日

PS3のコントローラー(SIXAXIS)の接続先(親機)のアドレスをUbuntuで確認や変更する


背景

PS3のコントローラーはUSB接続時に親機のBluetoothアドレスを更新し、その後の起動時に覚えている親機へのBluetooth接続を試みる動作をします。

親機のアドレス変更方法に関しては、Windowsの場合は日本語の解説記事プログラムがすぐに見つかったのですが、同様のことをUbuntuで実現するのに時間をとられました。
備忘録を兼ねて、実現した手順を記事に残します。

使ったもの

Ubuntu20.04
PS3コントローラー
USB miniBケーブル

接続先アドレス変更プログラムの準備と実行

接続先アドレスの変更にはsixpairというプログラムを利用します。
これはUbuntu向けにaptを利用してインストールできる仕組みがあるのですが、Ubuntu20.04では依存を満たせないようで、その方法ではインストールできませんでした。

調査をすすめた所、Raspberry Pi向けにプログラムのファイルをダウンロードしてビルドして実行する手順があり、それは成功しました。
準備と実行時のコマンドを共有します。

依存ライブラリをインストールします。
sudo apt install libbluetooth3 libusb-dev

/tmpディレクトリにプログラムをダウンロードしてビルドします。
cd /tmp
wget http://www.pabr.org/sixlinux/sixpair.c
gcc -o sixpair sixpair.c -lusb

PS3のコントローラーをPCにUSB接続した状態でsixpairを実行して接続先アドレスを変更します。
アドレスを変更せず親機のアドレスを見たい場合は-hオプションを付けて実行します。
-hもアドレス指定も無ければ、PCのBluetoothモジュールのアドレスが親機のアドレスとして登録されます。
cd /tmp
sudo ./sixpair -h
sudo ./sixpair aa:bb:cc:dd:ee:ff

まとめ

UbuntuでPS3のコントローラーの接続先アドレスを変更できました。

親機のアドレスを変えれば、ライブラリを利用してESP32と連携できます。

参考

Configuring Playstation 3 Controllers

0 件のコメント :