TinyGo Keeb に参加してキーボードを作ってきた
はじめに
TinyGo Keeb Tour 2025 in Osaka というワークショップのイベントに参加してキーボードを作ってきました。
個人的に、Raspberry Pi Pico や Raspberry Pi Zero 2 W、Raspberry Pi 等を幾らか保持はしていますが、ぶっちゃけ自作キーボードには興味がなく、どんなもんだろうという程度の気持ちで参加しました。
午前の部
イベントは午前の部と午後の部に分かれており、午前の部でプリント基板にダイオードや抵抗、マイコンやキースイッチなどを乗せてはんだ付けをします。
この基盤、Gopher の絵が付いていてとてもかわいいです。作り上げてしまうとこの絵が見えないのが残念なくらい。
はんだは久しぶり過ぎて、そして老眼で手もとが危うく、お手伝い頂きながらなんとか。
これが完成品です。
左上がジョイコン、右上がロータリースイッチ、それと12個のキーから構成されます。真ん中の上部に 128x64 ピクセル、モノカラーで表示できるディスプレイが付いています。
午後の部
午後の部では、これにソフトウェアを組んでいきます。マイコンは rp2040、TinyGo でも扱えます。
ワークショップでは既にサンプルが幾つも用意されており、この作ったハードウェアを制御する為に必要な物が用意されています。
一番分かりやすい例が 80_checker です。ジョイコンやロータリースイッチやキーの状態を監視する事が出来ます。
割とまったりとした時間進行で、午後の部でコードを書ける時間がたっぷり取れそうになかったので、ディスプレイに適当な物を表示するネタ行為に走る事にしました。
このネタをやる為に workshop のリポジトリから参考になりそうな物をあさっていたので、コードを書く時間を消費してしまいました。
実際のコードはこんなに雑な物です。
この後、懇親会で色々とお話を聞いたりお話したりできました。楽しかったです。運営された皆様、お疲れさまでした。
自宅にて
このキーボードに付いているマイコン rp2040 は、僕も持っている Raspberry Pi Pico と同じマイコン。今回の TinyGo Keeb を主催されておられる sago35 さんが、rp2040 でも動作するゲームエンジン koebiten を開発しておられます。koebiten は hajijmehoshi さんが開発している Ebitenjin (旧 Ebiten) を TinyGo でも動作させられる様にした物です。
サンプルコードに幾らか動くゲームも用意されています。
tinygo flash --target ./targets/zero-kb02.json --size short ./games/flappygopher
なんか作ろう
さすがにゲームを一から作るのは時間が掛かるので、ひとまずこのハードウェアの事を知る為に、一通りの制御を試す意味も兼ねて、簡単な HID キーボード兼マウスを作ってみました。
ジョイスティックを使ってマウスカーソルを移動できます。ジョイスティックを押し込みながら移動させると2倍の速度になります。ロータリースイッチを押し込むとマウスクリック、ロータリースイッチをひねるとマウスホイールとして動作します。
キーにはカーソルキー移動や、Ctrl/Shift/Alt というモディファイアキー、C/V/Tab/Enter という適当なキーを割り当てていますので、コピペ程度であれば、このキーボードで出来る様になっています。
※ Tab が割り当ててあるのは Windows で Alt-Tab を使ってウィンドウスイッチする為です
簡単なウェブブラウジング程度であれば、このハードウェアだけで出来るはずです。
おわりに
前述の様に、自作キーボードには実はそれほど興味が無かったのですが、ジョイコンやロータリースイッチ、そして押したら光らせる事ができるキーには、なぜか人を引き寄せる物があるんだなという事が分かりました。
またこういったイベントがあってタイミングが合えば、参加させて頂こうと思います。プレゼント頂いた TinyGo Keebook じっくり読みます。
ところで TinyGo を世に知らしめるためのイベント TinyGo Conf 2025 が開催されるらしいです。興味のある方はぜひ参加してみてはどうでしょうか。
Discussion