PlayStationコントローラーの仕様を理解したい
配信でPS/PS2のコントローラーの入力表示をしたいな~~と思ったのでちょっと仕様を調べてみることに。
多分配信画面に載せるだけならプレステコントローラー用のインターフェースをUSBに変換してPCに接続すれば問題なさそう。
ただ、執筆時(2025年1月)現在ではUSB変換するアダプタおよびプレステコントローラー関連製品は販売終了しているのが大半であるのと、プレステに入力する用とPC接続する用でプレステコントローラーの信号を分岐させないといけない。ここまでくると電子工作するのが手っ取り早そうだなと思ったのでついでに仕様理解も試みた次第。
なお電子工作はこれまでほとんど触ったことなく、電気回路の読み方もわからないようなまったくの初心者なので基礎の基礎から学ぶ必要がある。頑張って調べてみる
とりあえずコンバーターとしてはサンワサプライから出てるこの製品がいいらしい
サンワサプライ JY-PSUAD11
初代PS / PS2のコントローラーの接続部には9本のピンがある。
各ピンは次の通り
table:PS_pin
pin 信号 機能
1 DAT パッドからのデータ
2 CMD パッドへのコマンド
3 +7V 振動機能用?
4 GND
5 +3V 3.3V供給
6 SEL セレクトピン
7 CLK コマンド/データのクロック
8 --- 無
9 ACK 応答信号
参考:
また、パッドとの通信の決まりは以下
☆データ・コマンドはBIT0から7の順に転送される.16進数の01hはb"10000000"となる.
☆PICからのコマンドはクロックの立ち上がりでパッドに受信される.パッドからのデータはクロックの立ち下がりでPICに取り込む.
☆参考資料にはデバイスは100μs以内にACKを返さない場合,未接続と認識される.とあるが,ACKを使って何かしようという気はないので,ここでは無視する.
☆PADのSELから次のSELまでの時間は約16ms.
☆PADはPSからのコマンドを検出して動作を開始する.クロックを送信しながら,1バイト目から5バイト目まで 01h,42h,00h,00h,00hと送信することで,DATピンにデータが送られてくる.SW1,2の部分が我々が今必要としているボタン押下情報 が入っている.
http://morokyuu.way-nifty.com/blog/2014/09/dualshock2-97da.html より引用。
うーんなんのことかさっぱり。
とりあえず最初の項目で言ってるのはデータのやり取りは8bitってことっぽい...?
2項目に出てくる『PIC』についてもわからないので調べてみる。
PIC(ピック、Peripheral Interface Controller)とは、マイクロチップ・テクノロジー社 (Microchip Technology Inc.) が製造しているマイクロコントローラ(制御用IC)製品群の総称である。
引用:https://ja.wikipedia.org/wiki/PIC_(コントローラ)
ただのICチップのことらしい。
SPI
https://synapse.kyoto/glossary/spi/page001.html