PS5 Access Controller with RPi Zero2 W(BLE)
 
									PS5のアクセスコントローラー(Access Controller) を借りたので、RPi Zero 2W で試してみる。
ちなみに、PS5 はもっていない。GTA6が出たら買う予定。
RPi Zero2 W setup
アプリでおまかせ。
RPi Zero2 用のno desktop (RASPBERRY PI OS LITE(64BIT))を 32GBのmicro SDカードに書き込んで、boot。
SSH server をあげて、Mac のTerminalから作業する。
BLE Pairing
アクセスコントローラー
PSロゴ と、PROFILE ボタンを同時押しすると、チカチカとブルーの光が面滅して、ペアリングモードになる。
RPi Zero2 W
- Bluetooth 関連のsoftware をinstall
sudo apt install -y bluetooth pi-bluetooth bluez bluez-tools- BLEを初期化
sudo systemctl restart bluetooth- ペアリング
(アクセスコントローラーが点滅しているのを確認)
 sudo bluetoothctl
 [bluetooth]# agent on
 [bluetooth]# default-agent
 [bluetooth]# scan on
 [CHG] Controller XX:5F:01:4A:AB:XX Discovering: yes
 ...
 [NEW] Device YY:18:49:A5:83:YY Access Controller
 ...このController XX:5F:01:4A:AB:XX は、RPI Zero2 W本体のBLE。
YY:18:49:A5:83:YY が Access Controller 。紛らわしい。。。
connect する。
 [bluetooth]# pair YY:18:49:A5:83:YY
 [bluetooth]# trust  Y:18:49:A5:83:YY
 [bluetooth]# connect YY:18:49:A5:83:YY確認&command quit
[bluetooth]# devices Paired
Device YY:18:49:A5:83:YY Access Controller
[bluetooth]# quit再接続
bluetoothctl をrestartしたり、RPi Zero2 Wをreboot したあとは、一度、 `remove YY:18:49:A5:83:YY` として、ペアリングをやり直した方が早い。
動作確認
python のevdev install
単純なpip installでは、最近のRPi OSでは `システム壊すんじゃない` ポリシーのおかげで、install できない。
rootにいれるのなら、debian package にする。
sudo apt-get install -y python3-evdevsample の実行
以下のsample プログラムで、ボタンやXYZセンサの入力をチェックする。
<script src="https://gist.github.com/kurosuke/a74cba437480502efb15e69bee8c8876.js"></script>
実行結果
$ python sample.py
利用可能なデバイス:
0: /dev/input/event0, vc4-hdmi, vc4-hdmi/input0
1: /dev/input/event1, vc4-hdmi HDMI Jack, ALSA
2: /dev/input/event2, Access Controller, YY:5f:01:4a:ab:YY
使用するデバイスの番号を入力してください: 2
選択されたデバイス: /dev/input/event2, Access Controller, YY:5f:01:4a:ab:YY
デバイスの機能:
--------------------------------------------------------------------------------
  ('EV_SYN', 0):
    SYN_REPORT, 0
    SYN_CONFIG, 1
    SYN_DROPPED, 3
    ?, 4
--------------------------------------------------------------------------------
  ('EV_KEY', 1):
    ['BTN_A', 'BTN_GAMEPAD', 'BTN_SOUTH'], 304
    ['BTN_B', 'BTN_EAST'], 305
    BTN_C, 306
    ['BTN_NORTH', 'BTN_X'], 307
    ['BTN_WEST', 'BTN_Y'], 308
    BTN_Z, 309
    BTN_TL, 310
    BTN_TR, 311
    BTN_TL2, 312
    BTN_TR2, 313
    BTN_SELECT, 314
    BTN_START, 315
    BTN_MODE, 316
    BTN_THUMBL, 317
--------------------------------------------------------------------------------
  ('EV_ABS', 3):
    ('ABS_X', 0), val 135, min 0, max 255, fuzz 0, flat 15, res 0
    ('ABS_Y', 1), val 132, min 0, max 255, fuzz 0, flat 15, res 0
    ('ABS_Z', 2), val 128, min 0, max 255, fuzz 0, flat 15, res 0
    ('ABS_RX', 3), val 0, min 0, max 255, fuzz 0, flat 15, res 0
    ('ABS_RY', 4), val 0, min 0, max 255, fuzz 0, flat 15, res 0
    ('ABS_RZ', 5), val 128, min 0, max 255, fuzz 0, flat 15, res 0
    ('ABS_HAT0X', 16), val 0, min -1, max 1, fuzz 0, flat 0, res 0
    ('ABS_HAT0Y', 17), val 0, min -1, max 1, fuzz 0, flat 0, res 0
--------------------------------------------------------------------------------
  ('EV_MSC', 4):
    MSC_SCAN, 4
--------------------------------------------------------------------------------
デバイス Access Controller からの入力を監視しています...
軸 ABS_Y の値: 132
ボタン ['BTN_A', 'BTN_GAMEPAD', 'BTN_SOUTH'] が押されました
ボタン BTN_THUMBL が押されましたおまけ
このままevdevを使っても、アクセスコントローラーのボタンの設定を変えることはできない。PS5本体がなければ、どのボタンにイベントを設定するかはdefaultのまま。
ほかにソフトがないか探したら、Bleakというパッケージがあったが、アクセスコントローラを検知できず。。
モジュール構造図をClaude.ai に出してもらって、諦めた。





 
							 
							 
							 
							 
							