おかゆ++

IT業界の片隅で生き残るブログ

Raspberry Pi Picoで薄型レバーレスコントローラー(Hitbox)を作る

Raspberry Pi Pico でアケコンが作れる

GP2040 Firmware を使うと、めっちゃ簡単にRaspberry Pi Picoをアケコン基盤として使えます。

github.com

GP2040 is a gamepad firmware for the Raspberry Pi Pico and other boards based on the RP2040 microcontroller, and provides high performance with a rich feature set across multiple platforms. GP2040 is compatible with PC, MiSTer, Android, Raspberry Pi, Nintendo Switch, PS3 and PS4 (legacy controller support).

PC、Switch、PS3Android等で使えるようです。PS4はレガシーコントローラーとして対応。残念ながらPS5やXbox Oneはサポート外。 PS系はコントローラーの認証周りが厳しいっぽいですね。

Raspberry Pi Picoの利点

Raspberry Pi Picoの何がいいかというと、とにかく安いことです。スイッチサイエンスだとなんと550円。Brookの基盤の中でも安いZERO-Piでも4000円なのを考えると破格です。その分サポートする環境は少ないですが、PCで動けばいいよって人にはマジでおすすめです。

www.switch-science.com

安いこと以外の利点として、小さく、薄いことが挙げられます。

Raspberry Pi Picoを使えばめっちゃ薄くて軽いレバーレスコントローラー(Hitbox)が作れそう。

なので作った。

スイッチ

アケコンでよく使われる三和電子やセイミツのボタンだと厚みがあるので、あまり薄くできません。

キーボード用のキースイッチ、とくにKailhロープロファイルスイッチがめちゃくちゃ薄くていい感じです。これを使います。 接点は1.5mmなのでCherry MX 銀軸よりちょっと深いですが、許容範囲だと思います。

Kailhロープロファイルスイッチ(10個)shop.yushakobo.jp

ロープロファイルのスピードスイッチ、どっかのメーカーに出してほしい。待ってます。

筐体&キーキャップ

いつものように3Dプリンターで作ります。

今回だからこそできる取り組みとして、うちにある3Dプリンター(Ender-3 V2)の最大印刷サイズ 220mm x 220mm 以内に収めることにしました。

これまで作ったアケコンは最大サイズよりも大きかったため、複数のパーツに分割して印刷してから、接着剤等で接着していました。 やはり継ぎ目があるのは見栄えが良くないので、せっかく小型にするなら一発印刷&接着なしを目指しました。

Fusion360モデリングして、こんな感じになりました。

f:id:okayu-moka:20220312170204p:plain

3層構造になっていて、トップのプレート、キースイッチを固定するプレート、ボトムのプレートに分かれています。

市販のhitBoxでは三和電子の24mmボタンが使われていますが、この自作筐体は26mmにしました。通常は30mmボタンの部分も、32mmの穴があいてます。 せっかく自作するならなるべく大きいボタンにしようと思い、hitBoxと同じ配置のまま、ギリギリまで大きくしてみました。

あとはボタンっぽいキーキャップ。24mmと30mmの両方を作りました。

上記のように穴が26mm/32mmなので、ボタンの直径が24mm、30mmあります。 三和の24mmボタンの押下部分は19.5mmしかないので、それと比べるとかなり大きく見えます。

印刷してキーキャップつけて、こんな感じになりました。

f:id:okayu-moka:20220312172716j:plain

Thingiverseにもアップロードしています。

www.thingiverse.com

FirmwareのInstallation

Githubを見ながらインストール。

github.com

  • Download the latest GP2040.uf2 file from the Releases section for your board (e.g. GP2040-PiPico.uf2 for the Raspberry Pi Pico). Unplug your Pico.
  • Hold the BOOTSEL button on the Pico and plug into your computer. A new removable drive named RPI-RP2 should appear in your file explorer.
  • Drag and drop the GP2040.uf2 file into the removable drive. This will flash the board.
  • The board is now running the GP2040 firmware and will appear as a controller on your computer.
  • Releasesページから最新の GP2040-PiPico.uf2 ファイルをダウンロード
  • Raspberry Pi Pico の BOOTSEL ボタン(白いボタン)を押しながらPCに接続する。RPI-RP2 という名前のリムーバブルドライブとして認識される。
  • 認識されたリムーバブルドライブに GP2040-PiPico.uf2 をドラッグ&ドロップ。すると自動で書き込まれる。
  • 書き込みが終わると自動で再マウントされ、コントローラーとして認識される。

めっちゃ簡単でした。びっくり。

配線

配線についてもしっかり GitHub にあります。すばらしい。

github.com

これをみながら配線していきます。

f:id:okayu-moka:20220312172724j:plain

配線きたなっ。動けばいいんです!!!

組み立てて出来上がり

ネジで固定して出来上がりです。M3 12mmのネジでピッタリとまります。

f:id:okayu-moka:20220312172728j:plain

完成したコントローラーと、サイズ比較用のDSi。縦140mm、横210mmのコンパクトなコントローラーになりました。

f:id:okayu-moka:20220312172721j:plain

横から見たところ。ほぼDSiと同じ厚みの14mm。ネジの突起部分を含めると17mmくらい。

使ってみての感想

  • よかったこと
    • めっちゃ小さいし薄いし軽い。簡単に持ち運べる。
    • トップ面に継ぎ目がない。素晴らしい。
    • ふつうに実用レベル。PCで格ゲーするときは使っていきたいです。
  • ちょっとどうかなと思ったこと
    • 慣れ親しんだ三和ボタンとの押し心地の違いはありましたが、使っているうちに気にならなくなりました。
      • むしろ右手側のボタンが24mmなことに慣れなくて困った。
    • ボタンを撫でるように押す入力方法(ピアノのグリッサンドみたいな)のは厳しい。これは三和ボタンなどの方が圧倒的にやりやすい。
      • ヨガコマンド(41236)などを上記のように入力するのはちょっとむずかしいです。キーキャップが壊れそう。
      • キーキャップの形を工夫したり、もっと精度を高く印刷すればできるようになるかも。ただ我が家の3Dプリンターではこれが限界でした。
  • 次にやってみようかなと思ったこと
    • 右手側のボタンを30mmサイズで作りたい。アケコンに慣れたオッサンなので30mmじゃないと同時押しをミスるので。
    • Brookの基盤でPSで使えるものを作りたい。