11月25日発売 書籍『Arduinoと3Dプリンタでロボットを作ろう』を出させて頂きました!

【自作基板 / 電子工作】GP2040-CEを使ったファミコンコントローラー型USBゲームパッド化基板の製作![PCBWayに基板と3Dプリントケースを発注]

以前、ATmega32U4を使ってファミコンコントローラーをUSBゲームパッド化するカスタム基板を製作したことがあります。

製作記事を公開したところ、「GP2040-CEに対応させることは出来ないか?」というお問い合わせもいくつか頂いたのを覚えています。

【電子工作 / PCB】ファミコンのコントローラーをUSBゲームパッド化する基板を作ってみました!

当時はまだGP2040-CEの存在すら知らず、また自作基板の製作を始めたばかりということもあって、普段電子工作で馴染みのあったATmega32U4やArduino環境で製作を進めていました。

GP2040はアーケードコントローラーの製作などでもよく使われているのを見かける定番ファームウェアのようで、機能が豊富かつ評判も良いとのことで、今回いい機会だと思いあらためてこのファームウェアにも触れてみることにしました。

また、ファミコンコントローラーのケース形状を3D CADで正確に再現したモデルを作成していたこともあり、今回はそれを活かしてカスタムケースも合わせて製作してみることにしました。

GP2040をベースにしType-C端子を備えた基板設計でカスタムケースとの組み合わせや、また本家オリジナルのファミコンコントローラーケースでも無加工で収まり使える仕様で製作を考えています。

ファミコンらしい懐かしさはそのままに、今風の仕様でUSBゲームパッドを製作してみたいと思います!

GP2040-CEを使ったファミコンコントローラー型USBゲームパッド化基板の製作!

以前製作したゲームパッド化基板は、本家ファミコンコントローラーのケースを使いUSBケーブルを取り付ける形でゲームパッド化させました。

今風に作るとしたら、Type-C端子を搭載したコントローラーの方が使い勝手がいいと思います。
とはいえ、Type-C端子を搭載するとなると本家ケース側の加工が当然必要になってきます。

そこで、以前設計したファミコンコントローラーの正確なCADモデルを活用し、USB端子まわりをカスタムしたオリジナルケースを作ることにしました。

【電子工作 / 3Dプリンタ】ファミコンコントローラーのCADモデル(STL)を公開しました!

もちろん本家ケースとの組み合わせでも使えるように、基板形状&USB周りの仕様を対応させることにしました!

CAD & 基板設計

GP2040-CE は、Raspberry Pi PicoやRP2040-Zero、XIAO RP2040といったRP2040を搭載した各種市販ボードに対応しています。

参考 Multi-Platform Gamepad Firmware for RP2040GP2040−CE

これら既存ボードをそのまま使えれば最小限の構成でGP2040を動作させることが出来ますが、コントローラー内部に収めるには基板サイズやケースとの干渉などネックとなる部分が多くなります。

特に今回のファミコンコントローラーのように筐体サイズや内部形状が厳密に決まっているものでは、既存ボードをそのまま組み込もうとするとビス穴との干渉などにより本家ケースでも使えるという今回のコンセプトでの製作は難しくなってきます。

そこで今回は、RP2040を基板上に直接実装するオンボード構成で基板を設計することにしました。

基板の形状は、本家コントローラーのケースにも収まるようにオリジナルと同じサイズ&形状、そして同じ取付穴位置としつつ、カスタムケース向けにType-C端子も搭載出来るようにしました。

これにより、使用シーンに応じて以下のような2通りの使い方が出来るようになります。

2通りの使用パターン
  1. Type-Cポートを使った「ケーブルレス」スタイル(カスタムケースとの組み合わせ)
  2. USBケーブル(4ピン)を直付けするスタイル(本家ケースとの組み合わせ)

ファミコンコントローラーの正確な3Dモデルを以前製作していたため、カスタムケースを作成するのは比較的簡単でした。

使いやすい位置にUSB端子を配置し、それに応じてケース側を加工しカスタム形状で仕上げるというものです。

カスタムケースの3Dモデルおよび基板形状、そしてUSB端子を取り付ける位置が決まったので、これら3D CAD上で確認しておいたケースとの干渉部分なども含めKiCadの方にインポートして基板設計に移りました。

カスタムケースを作るなら透明なスケルトン素材で成形するのも面白いと考え、背面にRGB LEDを搭載することに・・・

GP2040では、スイッチを押した時に直下に配置したLEDを点灯させたり、また装飾用のケースLEDを点灯させることがファームウェアの設定で出来ます。

しかしキー数の少ないファミコンコントローラーなので、点灯モードの切替などスイッチの割り当てがちょっと厳しいかな・・・?

動作テストをやってみて、ホットキーを上手く設定することによりLEDの点灯色や輝度の調整、点灯パターンの変更などをファミコンコントローラーの少ない8キーのみで上手く変更出来ることがテスト段階で分かったので、基板背面にケースLEDを6個搭載することにしました。

本家オリジナルケースを使う場合は見えなくなっちゃうんですけどね!

こちらの記事で、本家ファミコンコントローラーのCADデータを公開しているので、透明ケースとして作るならLEDは活かせると思います。

以上で基板の設計が完了しました。

KiCadの基板データを使いもう一度3D CAD上で組み立ててみて、Type-C端子の位置を微修正して、その他クリアランスや干渉等の最終確認を行いました。

問題が無さそうだったので、いよいよ実際の製作に向けて基板とカスタムケースの発注です。

せっかく作るなら見た目にもこだわりたいと思い、今回はファミコンカラーの赤をイメージした透明スケルトンケースで仕上げることにしました!

完全にファミコンカラーに寄せて作るのか?
それとも少し薄い赤にして、内部の基板やパーツが透けて見え、そして点灯させるLEDも映えるようにしようか?
・・・などなど、結構迷いました!

PCBWayでは、このようなイメージを形にすることが出来ます。
透明レジン(UTR-8100)にPANTONEカラーを指定して染色できるサービスがあり、これを使えば自分のイメージに近い色合いのカラークリアケースの製作が可能です。

以前何度か試したことがあるのですが、非常に綺麗な仕上がりのカラー透明ケースを作ることが出来ます!

【PCBWay】PCBWayの3Dプリントサービスを試してみました![スプレー塗装・透明レジンの染色]
【自作キーボード / 電子工作】4ポートUSBハブ機能を持ったテンキーパッド『NumDock』を製作しました!

完全オリジナル仕様のファミコンコントローラー型USBゲームパッドとして完成させるべく、PCBWayに基板と3Dプリントケースを発注しました。

PCBWayに基板・3Dプリントケースを発注

PCBWayでの発注も少し見ておきます。

基板の発注

PCBWayでの基板発注は、[概算の見積価格の確認(仮発注)] → [データチェックを受け最終価格が決定] という流れで進めていきます。

発注項目の選択は特記すべきところはなくデフォルトで選択されている項目から変更する必要はありませんが、今回の発注では以下2ヶ所オプションを付けて発注しました。(レジストカラーはお好みで選択して下さい!)

1つ目は、基板製造時に入る製造番号を削除するオプションです。

大きなパーツの直下に隠してしまってもいいのですが、透明ケースで使うことも想定して、[Remove product No.]に[Yes(extra+$1.5)]を選択し削除オプションを付けました。(1.5ドルのオプション料金がかかります)

2つ目は、表面処理オプションとして[無電解金フラッシュ(ENIG)]オプションを選択しました。

これは通常の有鉛はんだレベラー[HASL]よりも加工料金がかかってしまいますが、基板で使っているメンブレンスイッチ部分に有効となります。

ENIGは通常のHASLと比べて表面がフラットかつ耐久性に優れており、メンブレンスイッチといったこのようにパッドがむき出しになったスイッチの接触面と相性が良いとされています。

特に今回のような物理的な押下を伴うパッド構造では、摩耗に強く酸化しにくいENIGが適しています。

また今回はリフローでの実装を想定しているので、メタルマスク(ステンシル)も発注しました。

手実装となるので、[枠なしメタルマスク]を選択、そして実装面は[裏面のみ]となります。

以上、オプションおよびメタルマスクを選択し基板を発注しました。

ここからガーバーファイルをアップロードしてデータのレビューが行われ、最終価格が決定された後に本発注への流れとなります。

PCBWayでの基本的な基板発注方法は、こちらの記事で詳しくまとめています。
あわせて見て頂ければと思います。

【PCBWay】初めてPCBWayで基板を発注してみました。ユーザー登録から基板発注までの手順をご紹介!

3Dプリントケースの発注

次に3Dプリントケースの発注です。
ケースデータ(STL)をPCBWayのサイトにドラッグ&ドロップしてアップロードします。

PCBWayの3Dプリントサービスでは選択出来るマテリアル(材料)やカラーバリエーションが非常に豊富なので迷いますが・・・
CADの設計段階からイメージしていたカラー透明ケースとして発注します。

透明レジン[UTR-8100(transparent)]をベースにして、表面処理オプション(Surface finish)から[染色(Dyeing)]を選択しカラーを指定します。

色味の選択は、標準で用意されているベーシックカラー以外にPANTONEカラーコードから指定することも出来るので、選択出来る色数は非常に膨大になります。

今回ファミコンカラーの赤をイメージしつつ、LEDの点灯やPCB・内部パーツの透過性を考え、[PANTONE red 032C]を指定して発注してみました。

完全なファミコンカラーの赤からは少し外しましたが、若干ピンクに近い赤でLEDの透過性もいいかな?ということで迷いに迷って選択しました。(ボトムケースも同じ色味指定で発注しました)

さて仕上がりはどうなるでしょうかね、楽しみです…!

以上、基板と3Dプリントケースをカートに入れレビューを受けます。
レビュー後、最終価格が決定されるので決済へと進みます。

PCBWayでの3Dプリントパーツの発注方法は、こちらの記事でまとめています。
あわせて見て頂ければと思います。

【PCBWay】PCBWayの3Dプリントサービスを試してみました![スプレー塗装・透明レジンの染色]

最後に!

というわけで、PCBWayへ基板と3Dプリントケースの発注が完了しました!

発注品が到着したらパーツの実装や動作テストを行い・・・、完成までの製作過程もまた改めてご紹介できればと思います。

問題が無ければ、いつものように基板データや3Dケースデータをダウンロード出来るようにしておきます。

果たしてスケルトンケースとType-C搭載基板の仕上がりは…?
到着が今から楽しみです!

コメントを残す