PlayStationのマルチタップ(SCPH-1070)をPro MicroでUSB化する

PSマルチタップ × Pro Micro

PSマルチタップコンバータの完成図。

ナツヤスミガオワル、ナツヤスミガオワル、デモ、モウイチニチダケ…モウイチニチ…

キッカケは家に残っていた、PS1のマルチタップ。ハードオフで掘り出してきたジャンク品で、購入目的自体もArduinoで低遅延コンバータを製作することであった。趣味の移り変わりとともに自室に封印され忘れ去られたマルチタップ。だが、DegharlはスポッチャでBEMANIと再開することになり、その熱はPSにも向かうこととなったのである。ちなみに映ってるコントローラーはDDRのハンドコントローラー。冗談みたいなシロモノだけど結構使える。

※Degharlの技術不足で初心者向けのサポートにまで手が回らないので、基礎知識は各自で習得をお願いします。また、開発環境やPro Microの設定なども事前に済ませている前提で話を進めます。

コンバータの性能

簡潔にマトメさせてもらうと、

  • 接続すると4つのゲームパッドとして認識され、4つのコントローラーを接続可能
  • 遅延は市販のコンバータと同等で、接続数に影響されない
  • ハットスイッチの概念が無く、十字キーが独立したボタンとして認識される
  • 左右のアナログスティックが使用可能

とくにかく安定性が高く、十字キーの独立によって↑+↓や←+→の入力が通るため、DDRコンやポプコンにも有効である。遅延は市販のコンバータと同等なのが残念。

※ポプコン=ポップンミュージックコントローラー。接続を判定するために常に←+↓+→が入力された状態になっており、非対応のソフトでは正常に動作しない。

また、今回はハンダ付けや部品の取り出しなどを最小限に抑えた非破壊的な方法で制作を進める。そのため、Arduinoにピンソケットなどが標準装備されていればハンダ付けは不要になるし、PSマルチタップもジャンパーワイヤを刺すだけで一切破壊しない。

必要な物

ヒンモクコストコウニュウカカクカイセツ
Arduino Leonardo及び互換品。約300円~3000円2個セット1000円今回はLeonardoの互換品のPro Micorの互換品を利用。互換品の場合、ATMega32U4が搭載されたモノを強く推奨する。
PlayStation マルチタップ(SCPH-1070)100円~324円ハードオフ等のジャンクコーナーからの発掘が現実的と思われる。
ジャンパーワイヤ約200円~579円&無料PSマルチタップの端子に繋ぐため、片方はメスで。穴の広いモノでないとそもそも刺さらないので注意。

制作工程 ~配線編~

ハンダ付け

この工程はピンソケットのないArduino MicroやPro Microにジャンパーワイヤをつなぐために必要なピンヘッダを付けるものであり、ピンソケットが標準装備されたArduino Leonardoでは不要になる。

  1. ピンヘッダをブレッドボードに刺しこむ
  2. ピンヘッダにArduinoを嵌める
  3. ピンヘッダに半田ごてを当て、ハンダを溶かし込む

再利用性にこだわらない場合はジャンパーワイヤに直接ハンダ付けするという選択肢もあるので要検討。

写真のハンダ付けは非常に不出来だが、半田ごてが古く、ハンダ付けの途中で体力が尽きたため。余裕があるなら全てのピンへの半田付けを強く推奨するし、ハンダブリッジ(経験済み)などは以ての外である。

ピン接続

PSのオス端子のピンは左から、

  1. DATA
  2. COMMAND
  3. 9V
  4. GND
  5. 3.3V
  6. ATTENTION
  7. CLOCK
  8. NC
  9. ACK

の9ピンで、この内の3.と8.と9.は今回は不使用。とあるPS2用ライブラリではほぼ全てのピンを使い、9Vは振動に使われるらしいのだが…?

ピンアサインは以下の通り。PSマルチタップはジャンパーワイヤのメス、Arduinoは適合した端子(Leonardoのピンソケットならオス、MicroやPro Microのピンヘッダならメス)を使用すること。

PSマルチタップArduino
1.DATA2
2.COMMAND3
4.GNDGND
5,3.3V3.3V/VCC
6.ATENTION4
7.CLOCK5

制作工程 ~プログラミング編~

事前に以下のスケッチとライブラリをダウンロードする。IDEとPro Microの設定は割愛。

GitHub - mcgurk/Arduino-USB-HID-RetroJoystickAdapter: Arduino joystick/gamepad/other USB-adapter
Arduino joystick/gamepad/other USB-adapter. Contribute to mcgurk/Arduino-USB-HID-RetroJoystickAdapter development by creating an account on GitHub.
GitHub - MHeironimus/ArduinoJoystickLibrary at version-1.0
An Arduino library that adds one or more joysticks to the list of HID devices an Arduino Leonardo or Arduino Micro can support. - GitHub - MHeironimus/ArduinoJo...
  1. ライブラリ「JoyStick」をインストール
  2. Arduino-USB-HID-RetroJoystickAdapter」の「RetroJoystickAdapter_Playstation.ino」をArduinoに書き込む。

ココまで来ればもう問題はないだろう、4つのゲームパッドとして認識され、PSコンで快適なゲームライフを楽しめるハズだ。Arduinoを収めるケースを作ったり、スケッチを最適化して遅延を減らしたりなど、出来る事はまだまだあるハズだ。健闘を祈る…

参考リンク

404 - ファイルまたはディレクトリが見つかりません。
プレイステーションのマルチタップをUSB化して複数コントローラーを接続 - レトロでハードな物語
これまでファミコンやNINTENDO64のコントローラーをUSB化してきました。でも普段PCなどで利用しているコントローラーはプレイステーションのコントローラーなんです。PCに接続するときにはこれを使っています。ELECOMのJC-PS201USVです。このUSB変換コネクタで、自宅に幾つも転がっているPSやPS2コン...

コメント

  1. […] 先月のPSマルチタップコンバータPSマルチタップコンバータに引き続き、今月もArduinoを使ってPlayStationコントローラーのコンバータを制作していた。実はあの量の遅延には満足出来ず、ハ […]

タイトルとURLをコピーしました