※ このゲームパッド(mk-gamepad)の作成に必要な3Dモデル、PCBガーバーデータ等を https://github.com/momoji-san/mk-gamepad で公開しています。
以前、VialファームウエアでRP2040-Zeroを使ったMachiKaniaやPCで使えるキーパッド(ゲームパッド)を作成しましたが、ボタンにタクトスイッチを使っているので押したときにカチカチ音がするのが気になっていました。
まあ、音が気になる以外特に不満はなかったのですが、最近下記のXiamoconのボタンにPS4のゴムパッドを使っているのを見て、この方法で作り変えてみようと思い基盤の設計から作り直しをしてみました。
エンクロージャ — xiamocon documentation
基盤の修正は、回路に変更はないのですが、タクトスイッチの代わりにメンブレイン用に接点が接触したときに導通するようなフットプリントを作成しました。
KiCadで作成したフットプリントはこのようなもの

これは、下記のようなパットを組み合わせて作成しています。

そして、ボタンの位置合わせをするために、コントローラーのゴムパッドを入手しました。
ボタンのゴムパッドはXiamoconと同様にPS4の補修部品を使います。
Amazonで次のものを購入しました。
コントローラーのバージョンによりセット内容が異なるようですが、PS4の場合今回使うボタン4つついている2つのパーツについてはどのバージョンでも同じ形みたいです。
(なので、一番安いやつを選択w)
ちなみに、PS5は初期バージョンのコントローラーのみ同じ形のようです。
上のAmazonの商品写真の左上の形のパーツは半分に切って、十字キー以外のボタンに使い、右上の形のパーツを十字キーに使います。

KiCadでボタン位置を変更しながら、等倍でPCBのイメージをプリントアウトして調整。
KiCadでの基盤設計が出来たら、安い、早い、きれいの3拍子揃った安定のJLCPCBに発注。
ちなみに、最近下記で紹介されているプラグインをKiCadにインストールしたので、ガーバーデータを作成して発注するのがめちゃくちゃ楽になりました。(ボタンを押して作成されたzipフィルをJLCPCBの発注画面にドラッグ&ドロップするだけ)
発注した基盤が1週間ほどで到着。

早速、RP2040-Zero を基板にハンダ付け(ピンヘッダなしで基盤直でハンダ付け)
写真のようにピンヘッダをつけてずれないようにして、まず5Vの端子をハンダ付けしてずれてないことを確認してから、ピンヘッダを取って他の端子をハンダ付けしました。

そして、ファームウエアをインストールして動作確認。
問題なく動作しました。
これに3Dプリンターでケースを作成します。
Fusion でモデリング。
前回作成したものをベースにボタンの位置の修正と、ゴムパッドを固定する構造などを追加して調整しています。

これを3Dプリンタで出力し、各パーツを組み合わせます。
ケースにボタンをセット

ゴムボタン乗せる

基板をのせてねじ止め

ネジは、M3x8mm の木ネジを使っています。

完成

これでMachiKaniaのインベーダー、カプコムタウン(captown.capcom.com/ja)のクラッシックゲームにある1942をプレイした操作感は、まさにファミコンのコントローラー。
タクトスイッチのようにカチカチ音がしなくて良いです。

ゲームパッドをUSBケーブルでPCに接続して、https://vial.rocks/ に接続するとボタンの割り当てを変更できます。
MachiKaniaの操作のために、デフォルトのLayer0、Layer1 は次の様に設定しています。
MachiKaniaを起動した直後にエディタが表示された場合は、SELECTボタンを押して Layer1(青) にし、 F1、Enter、Escと方向キーを使って実行したいプログラムを選択してからSELECTボタンを2回押してLayer0(白)にしてプログラムを実行します。
(MACHIKAP.INI の EMULATEBUTTONxxx は全て# を削除して有効にしておく前提)


タクトスイッチを使用した前作に比べて厚さも薄くなったのでコンパクトになり、実用的なものが出来ました。
【おまけ】
裏面は基板そのままでRP2040-Zeroの基板のチップがそのままむき出しになっているので、これを保護する目的で裏面に透明のプラバンを取り付けました。
使ったのは、100均で売っているオーブントースターで温めると縮まってマジック等で描いた絵がアクセサリーみたいになるおもちゃとして売ってるプラバンです。
購入したのは下記のもの。厚さが0.3mmのものが多いですがこれは0.4mmで他の物より厚かったのでこれを選択。

これを 40mm X 10.5mm で切り取り、4つの角は丸めてカットしておきます。

ゲームパッドの裏に合わせて、ネジ位置をマジックでマーキングして、マーキングした点をキリで小さな穴を空けてから3mmのピンバイスで穴をあけました。

そして、ネジを締めて完了。
これで裏面の保護ができますし、スケルトンモデルみたいでちょっとカッコよくなりました。
