はじめに
キーボードの主要部品の1つがマイコンです。マイコンをPCBに直接実装することもできますが、マイコンとその他周辺回路を含めて販売されているマイコンボードをPCBに実装することが多いです。
またマイコンにはソフトウェアを実装する必要があります。1からコードをすべて実装しても所望の機能は実現できるかもしれませんが、先人たちが培ってくれたファームウェアを採用した方が、短期間で質の良いものを実装することができます。
今回はマイコンボードとファームウェアの簡単な紹介と選定の経緯を示していきます。
自作キーボードで採用されるマイコンボード
まず前提として、キーボードとしての機能を発揮することができれば、どんなマイコンを選定してもいいです。ただしその中でも、自作キーボードとしての採用例が多いマイコンボードの方が情報が手に入りやすく、トラブルがあっても解決しやすいです。
自作キーボードでは以下のようなマイコンボードが比較的よく採用されているようです。
- Pro Micro
- マイコンとしてATMega32U4が搭載されています。
- 厳密にはSparkfunのPro Microのことを指しますが、多くの互換機が開発されています。
- 純正品はMicro USB Type-Bコネクタが採用された有線接続のみですが、Type-Cコネクタ採用品や、Bluetooth採用品もあるようです。
- 自作キーボード界隈では以前から使用された実績があり、軽く調べてみても多くの採用例があります。
- Raspberry Pi Pico
- マイコンとしてRaspberry Pi財団が開発したRP2040が搭載されています。このマイコンボードもRaspberry Pi財団が開発しています。
- こちらも自作キーボードでは多くの採用例があります。
- 本記事執筆時点で、新しく開発されたRP2350が搭載されたRaspberry Pi Pico 2が発売されています。
- Seeed Studio XIAO RP2040
- Seeed Studio社の開発したRaspbebrry Pi Pico互換機です。
- Raspberry Pi Picoと比べて使用できるピン数は減っていますが、サイズは半分程度となっており、ボード上にはRGB LEDが搭載され、コネクタはUSB Type-Cが採用されています。
- 小型のマクロパッドなどに採用されている例があります。
今回採用したマイコンボード
自作キーボードに使用できるマイコンは上記以外にも色々あります。その中でも以下のような方針で選定しました。
- 日本国内で安価に手に入れやすい
- 採用例が多く、情報が手に入りやすい
- 今後、第2作目以降を作成することになっても採用しやすい
今回は初めて自作キーボードを採用するということもあり、調べながら開発していくことになります。そのため日本で手に入れやすく、日本語での情報が手に入りやすいものを選ぶことにしました。
今回は小型のマクロパッドを作成することにしましたが、ゆくゆくは通常のサイズのキーボードも作っていきたいため、ある程度ピン数・機能が多いものを選ぶことにしました。
そのためPro MicroかRaspberry Pi Picoの2択に絞って調べていたのですが、Pro Microに採用されているUSB Micro-Bコネクタは取れやすいという記事が散見されました。モゲマイクロなんて呼ばれているようです。
Raspberry Pi PicoにもUSB Micro-Bコネクタが採用されていますが、USB Micro-Bコネクタにはいくつか種類があるようで、Pro Microに採用されているコネクタは取れやすい構造になっているようです。
以上のことから、Raspberry Pi Picoを採用しました。
自作キーボードで採用されるファームウェア
自作キーボードのためにいくつかファームウェアが開発されています。今回は私が調べたものをいくつか紹介します。
- QMK Farmware
- ドキュメント: https://docs.qmk.fm/
- ソースコード: https://github.com/qmk/qmk_firmware
- 自作キーボードのデファクトスタンダードの位置付けになるファームウェアです。多くの採用例があります。
- プログラミング言語はC言語です。
- PRK Farmware
- ドキュメント: https://github.com/picoruby/prk_firmware/wiki
- ソースコード: https://github.com/picoruby/prk_firmware
- プログラミング言語としてRubyを採用したファームウェアです。ソースコードをビルドせずに動かすことができます。
- KMK Farmware
- ドキュメント: https://kmkfw.io/
- ソースコード: https://github.com/KMKfw/kmk_firmware
- プログラミング言語としてPython(正確にはCircuitPython)を採用したファームウェアです。こちらもソースコードをビルドせずに動かすことができます。
今回採用したファームウェア
まだどれもそれほど触っていないですが、少なくともいずれを選んでも実現したい機能を実現することはできそうでした。
そのうえでKMK Farmwareを採用しました。理由は以下の通りです。
- ソースコードをビルドする必要がないため、基本的に準備するものがテキストエディタだけで良く、準備が楽。
- 私がPythonを良く触っている。逆にRubyは触ったことがない。
情報量としてはデファクトスタンダードとして広まっているQMK Farmwareの情報の方が多いですが、GithubでのKMK Farmwareの作例を見ていると、私がやりたいことを実現している例もいくつかあるようなので、所望の機能は実現できると判断しました。
加えて私はあまりC言語は好きではないことと、Pythonの方が使用した経験が多いため、同じ機能を実現するのであればPythonを採用した方が早く実現できると考えて、KMK Farmwareを採用しました。
おわりに
今回は自作キーボードに採用するマイコンボードとファームウェアを選定しました。
マイコンボードは物品と情報の入手性からRaspberry Pi Picoを採用しました。
ファームウェアはどれを選んでも実現したい機能は実現できそうでしたが、私自身のスキルと好みの観点からKMK Farmwareを採用しました。
コメント