[アケコン改造]ArduinoでFIGHTING STICK V3をオリジナル基板化
1.ごあいさつ
こんにちは。えうれかです。
最近格ゲーとSTGが楽しくてアーケードっぽく遊びたかったのでアケコンを買いました。安く仕入れたジャンク品のガワを利用して中身をそっくり魔改造したので本記事はその記録です。
2.Arduino Pro Micro
まず今回使っていく基板ですが、マイコンボードのArduinoというものを使っていきます。Leonardoというシリーズの互換及び小型モデルのProMicroが搭載しているATMega32U4というチップにはHID機能が備わっていて、要はプログラムを書き込んでUSBケーブルで接続するとキーボードやゲーム用コントローラーになれるようになっています。この機能とコントローラーとして扱えるようになるライブラリを利用してゲームコントローラーとして使うわけです。一応高校の時にC言語を齧っていたので何とかなるのではないかということで今回低コストで済み、またArduino以外のパーツを揃えたのにプログラムが面倒でチャレンジしなかった高校時代の反動でマイコンボードでの自作を計画しました。お金持ちだったらUFB搭載しますよ。ええ。
今回はレバーのある普通のアケコンを作るので恩恵は薄いんですが、レバーレスのアケコンにSOCDクリーナー(同時押しの挙動を変えるやつ)を安く搭載したい場合簡単に実装できると思いますので、安くHitboxもどきを作りたい場合は候補の一つになるかもしれません。
3.使用パーツ
パーツ調達はホームセンター、100均、ドンキ、EVO公式オンラインストアのATASSA、Amazonで行いました。
[ホームセンター]
・電子工作用コード
・M4トラスネジ 5mm 4つ
・110型平型ファストン端子 メス 12個(ボタンに直はんだする場合は不要)
[ATASSA]
・セイミツ工業 LS-55-01-MS 基盤タイプジョイスティックレバー
・セイミツ工業 H5Pハーネス
・セイミツ工業 LB-35 レバーボール
・三和電子 OBSF-30 押しボタンスイッチ
[ドンキ]
・Y字ドライバー(天板に装飾をしない場合は不要)
[Amazon]
・Arduino ProMicro 互換ボード
・ユニバーサル基板
・データ通信用MicroUSBケーブル 2~3m(Arduinoの端子と同じものを選択)
[100均]
・壁紙用カッティングシート(天板に装飾をしない場合は不要)
・PPボード 0.5mm厚(裏の穴を隠さない場合は不要)
・電子工作用はんだ
[手持ちの工具]
・ドライバー(大きめの+、小さめの+、大きめの-)
・30Wはんだごて
・ホットナイフ
・ニッパー
・電工ペンチ
[テスト用小物]
・Arduino Leonardo 互換ボード
・ブレッドボード
・タクトスイッチ
・ジャンパピン
通販で購入したものは1/4に注文して1/6の夕方には届きました。年明けなのに早すぎます。時間がかかっても良ければArduinoはAliExpressで注文すると安く購入できるので覚えておくといいでしょう。テスト用のLeonardoが思っていたより小さかったのでそのまま組み込もうかと思いましたが、ジャンパピンを刺してテストができるのでこいつはまだ使わないことにしました。
買った時点でボタンが壊れていて手持ちのハヤブサボタンを直はんだで取り付けしたアケコンを使用したんですが、110型平型ファストン端子を使って作ればボタンが壊れた時の交換が一瞬で終わるのでそのほうがお勧めです。大きめのホームセンターの車用品コーナーで売ってます。250型は大体どこでもあるんですが110型は小さいホームセンターだとないかもしれないです。
4-1.ボタン・レバーの交換
まずはボタンとレバーを好きなものに交換しましょう。ボタンはアーケードと同じΦ30のはめ込み式ボタンが入るのでセイミツ製でも三和製でも好きなものを購入してください。ネジ式は試したことがないので今度検証しようと思います。
レバーは通常の平鉄板付きの三和レバーかMSベースのセイミツレバーを取り付けできます。三和レバーはベース板を外してホリレバーがはまっているネジ穴にネジ止めすることもできるらしいんですが、レバーガイドにドリルで穴開けをしないといけないので今回はポン付けできるベース板ありで進めていきます。今回はセイミツのLS-55-01-SCのMSベースを使用します。セイミツレバーの中では比較的柔らかめでシャフトの長さが三和レバーに近いちょっと特殊なレバーです。
最初にコントローラーの裏蓋を開けます。ゴム足がついているネジは外さず、それ以外の7つのネジを外すと裏蓋が開きます。中にはコントローラー自体の基板、ボタンが直付けされている基板、上のスタートボタンなどがついている基板がありますが、今回使う基板はスタートボタンの基盤だけなので、まずはメインのコントローラー基板の配線を全カットしてネジを外して取り外します。
次にはんだ吸い取り機や吸い取り線を使ってはんだを取りながらボタンを基板から外し、ツメを押して天板からボタンを取り外します。古いアケコンのボタンなので壊れるかもしれませんがどうせこのボタンは使わないので派手に壊しても大丈夫です。レバーもシャフトの下部にある溝にマイナスドライバーをあてがいながらレバーボールを回してボールを外し、レバー本体のネジ4本を外してレバーを取り外します。
要らないものを外したらボタンを天板にはめ込み、レバーを謎のプラスチックの穴にベース板の穴を合わせてM4のトラスネジで固定します。穴にねじ切りはされていませんがネジをまっすぐ上から入れてドライバーで回すとプラスチックが柔らかいのでネジ自体でネジ山を切って固定できます。これで本体への取り付けは終了です。
4-2.基板の作成
次は本改造の目玉、Arduinoでの自作基板です。まずはArduinoの開発ソフトのIDEと外部ライブラリのArduino Joystick Libraly(AJL)を導入します。IDEは公式サイトから、AJLはGitHubのページから入手できます。ProMicroは適当なものをネットで買えばOKです。
ちなみにArduinoはオープンソースでチップさえあれば基板を作ることができるので安く高品質な互換基板が出回っています。事実今回のProMicroは「Arduino Leonardoの互換基板の小型互換基板のSparkFun ProMicroの互換基板」という互換の互換の互換という立ち位置です。このような経緯があるため適当なものでも基本的に品質が保証されています。もし心配であればオリジナルのArduino Microを購入しましょう。
導入が終わったらArduinoをPCに接続します。ドライバが勝手にインストールされるので終わったらIDEを起動、上の「ツール」タブからボードの種類とポート番号を指定します。ProMicroはMicroとして扱われる場合とLeonardoとして扱われる場合があるみたいなのでドライバインストール後にデバイスドライバで名前を確認しましょう。ポート番号も同じくデバイスドライバで確認できます。
ソフトの導入が終わったら以下のinoファイルをIDEの「ファイル」タブから開いてボードに書き込みます。このプログラムは以下のサイトのプログラムのボタン数を増やしてアケコン用にしたものです。レバーは左のアナログスティックとして扱われるようになっています。ハットスイッチ(十字キー)として扱えるようにもできたらいいんですが記述の仕方がよく分からなかったので今回は保留で。気が向いたら作ります。
Arduinoのデジタル入出力ピンの0番と1番はあまり使わないほうがいいみたいなので避けて2番から使用しましょう。また、A0~A3のアナログピンはデジタルピンとしても使用できますが、プログラム上ではピン番号が18~21番として扱われるので注意しましょう。コンパイルしてエラーが出ないことを確認したら書き込みましょう。
プログラムが無事に書き込めたらArduinoにピンヘッダをはんだ付けしていきます。ピンが曲がってしまうとブレッドボードやユニバーサル基板に刺せなくなってしまうのでまっすぐ付けるようにしましょう。
4-3.組み込み
ピンヘッダのはんだ付けが終わり、ブレッドボードで導通確認ができたらユニバーサル基板にはんだ付けしていきます。細かい作業ですので根気よくやりましょう。ロボコンをやっていた時電気担当の人がみんなやっていた「利き手にコテ、逆手で基板、口ではんだ」という最悪な絵面ではんだ付けをしましたがケチらないで固定用の万力とかクランプ買った方がいいです。間違いなく。
今回は1箇所ネジが入るようにユニバーサル基板をペンチでへし折って筐体内に納めました。面倒であればテープとかで空きスペースに固定してもいいと思います。固定場所が決まったら固定する前に本作業で1番大変であろう配線のはんだ付けを行います。ボタンにプラスとマイナスはないのでどちらをGNDにしても問題ありません。
Steamやパソコンの設定でどうにでもなるのでアナログスティックに割り当てする最初の4ピン(2・3・4・5ピン)以外は正直ピンの場所は適当でいいです。配線しやすいようにはんだ付けしてあとは設定かプログラムをいじりましょう。Windowsで元のFSV3を接続すると1~10番のボタンが
[四角・バツ・丸・三角・L1・R1・L2・R2・SELECT・START]
となっているので、参考にしながら結線すると良いと思います。GNDが3箇所あるのでゴチャゴチャにならないように分散させてもいいですし、1箇所にまとめても構いません。レバーの配線はレバーガイドを取り外してプリント基板から配線を読み取りましょう。LS-55の場合は基板についているピンは上から順に
[下・上・右・左・GND]
となっています。三和レバーは逆だと聞いたことがあるので一度ガイドを外して確認するか、公式の製品情報ページや先駆者の方々の記事を探しましょう。
システムボタンとLボタンのついたパネルの配線は一番左がGND、一番右の次の線から5本が
[L1・L2・PS・SELECT・START]
になっています。今回は連射機能とSteam内での挙動が怪しいPSボタンは使用しません。配線が終わったら筐体内にProMicroがついたユニバーサル基板を固定しましょう。なお、PSボタンを実装する場合のボタン番号は13です。お好みで付けてみてもいいでしょう。数行書き換えればいけます。
余談ですが、パソコンの前で膝置きして作業していたため終わるまで全く気付かなかったんですがLeonardoのおまけでついていたケーブルが短くて裏蓋を閉めたらケーブルが45cmくらいしかないことに気づきました。少なくとも1.5m以上はあったほうがいいと思うので注意しましょう。中華製の変な奴で十分です。
4-4.干渉部分の切除
基板を収納し終わったら裏蓋を閉めて完成といきたいところですが残念ながらもうひと仕事あります。三和レバーも同じみたいなんですがレバーの底が底板と干渉してしまいます。このままではニュートラルに戻る動作に支障が出てしまいますのでどうにかしないといけません。
先駆者の皆様はドリルで底板に穴を開けたり天板の土台を削り取ったりしていますが、今回は底板に穴を開ける方針でいきたいと思います。とはいえリューターやドリルは持っていないのでここはホットナイフでゴリ押しします。もし近所に工具貸し出しをしてくれるところがあったり工具を持っていたらそちらの方が綺麗に仕上がるのでオススメです。
1度裏蓋をネジ止めせずに閉めてレバーを動かして底板に跡をつけて穴を開ける目星をつけたらホットナイフで切ります。だいたいレバーガイドと同じくらいの大きさでOK。バリをカッターややすりで削ったら蓋を閉めて動作確認。大丈夫そうであれば裏蓋を閉めて完成になります。
4-EX.装飾
動作するものは完成しましたが見た目をカスタマイズしようということで天板にカッティングシートを貼って、PPシートを使って裏蓋を塞ぎましょう。
まず天板ですが、ボタンを全て外したタイミングで天板についている黒いシートを剥がします。かなり厚みがあって糊からシンナーみたいな臭いがします。換気をしましょう。剥がすと出てくる天板の本体である鉄板はY字ネジで6点留めされているのでYドライバーで取り外します。天板に残った糊は気合いで擦りとります。鉄板の側面が鋭利なので指を切らないように気をつけましょう。私は切れました。
糊を剥がし終わって綺麗になったらカッティングシートを気泡を抜きながら天板に貼り付けします。ねじの部分はキリなどを使って、ボタンやレバーの穴はカッターなどで切り取ります。終わったら天板を戻してボタンとネジをはめ込んでみましょう。
次に底板。底板のゴム足を外して出てきたネジ穴と半透明のPPシートを合わせて画鋲やキリでネジ穴を開けます。終わったら底板と同じ大きさにカットしてお好みでカッティングシートを貼り付けて元に戻しましょう。裏蓋を外す時いちいちPPシートも外さないといけないので少々面倒ですが、そんなに頻繁に開けるものでもないしまあいいでしょう。
5.完成品
完成です。名前はFIGHTING STICK Pro.VM3-SEとしています。後は思う存分好きなゲームで使いましょう。私は基本的にSTGで使用しています。格ゲーで遊ぶ時に1.2キロは少々軽くて動いてしまうんですが、逆にSTGは通しが30分くらいかかるのでこのくらい軽い方が疲れないです。
格ゲーもSTGも動作確認しましたがコマンドも普通に出せてチョン避けもできてチャタリングも起こりませんでした。遅延は自分が使っているキーボードとほぼ大差なく、実際ProMicroは自作キーボードの基板にも使用されているようで、音ゲーでも十分使えました。
6.感想
1回目の作業の時ははんだが全然上手くいかずピンヘッダ付けでグロッキーになりましたが、2回目の友人にあげるものを作ったときは慣れもそうですが、それ以上にファストン端子化して作業の大半が筐体外で済んだので非常に楽でした。1度目は既に配線されていたボタンにはんだ付けしたので狭い筐体内で作業するしかなかったので非常に面倒でした。
プログラミングに関してはアナログピンのデジタル入出力使用の方法で少してこずりましたが何とかなりました。先駆者の皆様とAJLに感謝です。SOCDクリーナーのような機能も簡単に搭載できるので怖いもの見たさで注文した中華ボタンが届いたらレバーレスコンも作ってみようと思っています。
本記事ではアケコンを作りましたが、低遅延の旧ハード用コントローラー用のコンバータを作ったり今回のように組み込んでオリジナルUSB接続基板化したりもできます。アナログピンを使えばINFINITAS用コントローラーなどに搭載されているアナログスクラッチも搭載できるかもしれないので機会があったら是非作ってみたいと思います。
長くなりましたが本記事はこれで終了です。最後まで読んでいただきありがとうございました。また何か進捗があれば追記したいと思います。