家庭用ゲーム機でも練習したい
以前作製したアーケード基板用のコマンドコントローラーをテストしたのはVF3tbでしたが、3tbに特化した作りにはしていないため、4ボタンまでのアーケード基板であれば汎用的に使用できるはずです。
しかし以前ヤフオクで購入したバーチャ2基板はまだ動かすことができていません(元から壊れていた可能性もあり)。
そんな現状では肝心のバーチャ2の練習はできません。。
最近オンラインバーチャ2界ではレジェンド勢の参戦もあって活気を見せています。それぞれ新しい技術を開発したりしているようです。
でも自分はそういった深い読みあいに行く前に、基本的なことがわかっていないのでそもそもじゃんけんできていないことが多いんですよね。
あと自分はコマンド入力がとても下手で、正確なコマンド入力ができていない(入力が遅い)ようです。
そういった知識不足・技術不足の対策として、なんとか反復練習できる環境が欲しいなと感じていました。
マリー
そんなわけで、アーケード基板用に作成したのと同じレベルのコマンドコントローラーを、家庭用ゲーム機(PS3 or XBOX360)でも作りたいなと思ったのでした。
まだ全然完成していないのですが、放っておくと何をやっていたのか忘れてしまうので、備忘録がてら記録していくことにします。
現時点の成果
動作が安定しないものの、千本パンチは実現できています。
基本方針
- アーケード基板用と同じく簡易コントローラー経由でArduinoに接続
- 家庭用のコントローラーは基本的にUSB接続。
- ひとまず簡単な練習ができればいい
認証問題もありUSBデバイスの設計から行うのは無理なので、既存アケコンのコントローラー基板を使用する
相変わらず志は低く、単純な練習ができれば良しとします。
もちろん完成形としてはかなり使い勝手が良いものにしたいとは思っています(思っているだけ)
最初は流用を考えた
当初はアーケード基板用に作製したコマンドコントローラーを家庭用でも流用しようと考えていました。
家庭用アケコンのコントローラー基板から、アーケード基板用のコマンドコントローラーに配線するアプローチです。
アーケード基板用のコマンドコントローラーで使用しているのはArduino MEGA2560なのでGPIOの電圧は+5V。
単純な流用を考えた場合、アケコンのレバー・ボタンにかかる電圧が+5V(負論理)である必要があります。
USBコネクターにはアーケード基板と同じように+5V/GNDが来ているのですが、これはUSBデバイスを動作させるためのようです。実際のデータはD+/D-ピンによってシリアルで差動伝送されています。
ではアケコンのボタンやレバーのスイッチ両端の電位差がいくつかというのを計ってみると、物によって異なることがわかりました。
- 約3.3V
- 約2V-2.3V
XBOX360用のHORI RAP VX.SA/Figthing Stick VX
Brook Fighting Board など
PS3/4用HORI Fighting Commander/RAP HAYABUSA など
私が把握している各コントローラー基板の電位差リストはこちらにまとめています。
【家庭用】バーチャ2練習ツールを作る③
この通り、アーケード基板のように+5Vがかかっているものは見つかりませんでした。これではアーケード基板用のコマンドコントローラーをそのまま使うことはできないことになります。
まずは74HC4050等で+5V⇒+3.3Vと電圧変換する方向で考えたのですが、コマンドコントローラーを作る場合、同じGPIOピンが電流を出す側(高電位)にもなりますし、電流を受ける側(低電位。GND)にもなります。
そのため双方向の電圧変換が必要であり、うまく動作しませんでした。
簡単かつ安価に双方向の電圧変換ができることをこの当時は知りませんでしたし、電子工作の経験が少ない自分にとって、マイコンを変えてしまった方が完成が早いと踏んでマイコンを変えることにしました。
部屋に転がっていたRaspberry PiがちょうどGPIO +3.3Vだったのですが、いくつかの理由から採用をあきらめ、格安の互換機があることを知ってArduino Dueを採用することにしたのでした。
今回も長くなりそうなのでいくつかに分けて書くことにします。