※自分用のメモも兼ねてます。随時更新予定。
Arduinoで各種コントローラを制御する。①検討 は こちら
Arduinoで各種コントローラを制御する。②ハードウェア は こちら
Arduinoで各種コントローラを制御する。③ソフトウェア は こちら
コントローラ分解
MCU付近 | ボタン付近 | 回路検証 |
---|---|---|
![]() |
![]() |
![]() |
中華の怪しいやつは分解も簡単で初心者むけ。
ArduinoPINの対応関係
テストパターン | DUALSHOCKのボタン | 制御方式 | ArduinoPIN NO. |
---|---|---|---|
X | □ | ① | 0 |
A | x | ① | 1 |
B | ○ | ① | 2 |
Y | △ | ① | 2 |
KL1 | L1 | ① | 4 |
KR1 | R1 | ① | 5 |
KL2 | L2 | ② |
|
KR2 | R2 | ② |
|
SH | SHAREボタン | ① | 8 |
OP | Optionボタン | ① | 9 |
KL3 | L3 | ① | 16 |
KR3 | R3 | ① | 17 |
PS | PSボタン | ① | 18 |
TO | TouchPad | ① | 19 |
AU | 上ボタン | ① | 20 |
AR | 右ボタン | ① | 21 |
AD | 下ボタン | ① | 22 |
AL | 左ボタン | ① | 23 |
制御方式①:HIGHで待機。ボタンを押したときLowになる。
電流制御用の抵抗4MΩがあるため、そのまま制御信号でショート。
制御方式②:ボタンを押すとテストパターンの電圧が0V~2.8Vくらいまで変化。
GND-パターン間の抵抗3.3kΩとスイッチ部の可変抵抗の分圧電圧を読み取っている。
Analog入出力をすることで制御可能? -> 入力のみ確認
出力はPWM出力のため、コンデンサなどを利用する必要がある。
出力用にコンデンサをつけると入力時に遅延が起きるため見送り(2020/7/19追記)
回路図
コントローラ基板改造&Teensy用基板作成
コントローラ基板改造 | Teensy用基板作成① | Teensy用基板作成② | Teensy用基板完成 |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
完成
Future work
・L2R2への対応
・アナログスティック入力への対応
参考サイト
「[デュアルショック4乗っ取り] - 松蔵さん家の物置場(仮)」 2020/06/21アクセス
https://rezius2.jimdofree.com/%E5%B7%A5%E4%BD%9C%E3%81%AE%E6%A3%9A/%E3%83%87%E3%83%A5%E3%82%A2%E3%83%AB%E3%82%B7%E3%83%A7%E3%83%83%E3%82%AF4%E4%B9%97%E3%81%A3%E5%8F%96%E3%82%8A/
「DualShock 4-PS4開発者Wiki」2020/06/21アクセス
https://www.psdevwiki.com/ps4/DualShock_4
「デュアルショック4のアナログスティックを乗っ取る(1):分解〜回路図〜試験 | ファミコンと心中するの?」2020/06/21アクセス
https://ameblo.jp/bit287/entry-12426938822.html