数年ぶりに格闘ゲームをやろうと思ったのですが、引っ越しのときにアーケードコントローラーを手放してしまいました。
普通に買うのもおもしろくないので、ジャンク品を買って家に余ってたRaspberryPi Picoを基盤にして使えるようにしてみました。
特に安上がりというわけではなく、工具を持っていない場合既製品よりお金がかかるのであくまでも自己満足です。
事前知識
今回使用するライブラリ
元のGP2040というライブラリの派生レポジトリに辺り、GP2040は更新が止まっている(完成したから?)ので更新が続いているCE版を使用しました。
CE版はOLEDでの状態監視機能などが追加されています。
今回使用したのは最新版の0.6.1です。
GP2040は遅延の部分で他基盤より一歩抜きん出ているらしく、検証している方たちのデータによると結構速いそうです。
ドキュメントでもハードウェア的な遅延は最小限だということが強調されています。
対応プラットフォームはPC、PS3、PS4、SwitchでPS4はレガシーコントローラーに対応しているゲームでしか動作しないみたいなので注意です。
PS5とXbox oneについては認証を合法的に突破する方法がないみたいなので非対応だそうです。
使用した部品
電子部品なので当たり前ですがほとんど秋月電子さんと千石電商さんで揃います。
・RaspberryPi Pico
・入れ物
メルカリでQanba Evo Droneの箱のみが3000円で出品されていたのでこれにしました。
基盤は取り外されているものだと思っていたのですがついていました。。。
見なかったことにしてpicoに置き換えます。。。
・ボタンとレバー
どちらも静音にしました。
これが一番高いです。
秋葉原の千石電商さんのジョイスティックコーナーがラジオデパートに移転していて少し迷いました。
・その他端子コード類
私は太い方が加工しやすいのでAWG24を使用しました。
スッキリさせたい場合はAWG28を使用するといいと思います。
・工具
書き込み
こちらのGP2040-CE_0.6.1_Pico.uf2
をpicoへ書き込みます。
picoのBOOTSELボタンを押しながらPCとUSB接続するとディスクとして認識されるのでそこにドラッグドロップします。
MacだとOSによってはドラッグドロップだと書き込めないのでコマンドでコピペします。
# なにか書き込んでいた場合はflash_nukeで初期化
cp -X flash_nuke.uf2 /Volumes/RPI-RP2/
cp -X GP2040-CE_0.6.1_Pico.uf2 /Volumes/RPI-RP2/
はんだ付け
Picoに以下のようなピンをはんだ付けしてブレットボードに挿しておきます。
後々のメンテナンスも考えてユニバーサル基板は使わず、ブレットボード上で作業します。
端子作成
ファストン端子、ピンコネクター、電子ワイヤーを圧着工具でカシメていきます。
ボタン用に8*8計16個の端子を作ります。
GND側はこのように数珠つなぎにすることで工作が楽になる&配線がスッキリします。
配線
あとは箱にレバーとボタンをはめ込んで、ドキュメントにあるピン配置を見ながら作成したジャンパー線を挿していきます。
完成
上のPSボタンなどは接点が基盤直付けで再利用できなかったので飾りです。
格闘ゲームはだいたいR2とL2は必須ではないので、steamの設定でstart,selectに割り振って使っています。
次やりたいこと
タッチパッドとstart,selectはやっぱり欲しいですね。
上の飾り部分を外して自分でタクトスイッチをつけて無理やり増やしたいと思います。
あとはOLEDもどこかにつけたいです。
一気に自作感が増してカッコよくなりそう。
参考