自作キーボードにBluetoothとバックライトは必要か?
一番くだらないのは調査ばかりして結局なにもやらない奴だ。くだらないことばかり考えてないで、思いついたらすぐに始めろ!
起業家界隈でよく言われる話だし、確かにやらないよりはやったほうがいいのだけど、それをわかった上で、今回はちょっと情報収集に時間を割いてみました。
先月のオリジナルキーボードを自作したくなった話の続きです。
MX Keys Miniにあって、HHKB Lite2になかったもの
前回の記事の中で、昔はHHKB Lite2を使っていたのだけど、いまはMX Keys Miniを使っていると書きました。
HHKB Lite2からMX Keys Miniに乗り換えてよかったなと思っているポイントが2つほどあって、これらはどうにかして自作キーボードにも引き継ぎたいと思っています。
一つ目はBluetooth。
どうしてもBluetoothでなくてもいいのですが、無線化はどうにかして実現したい。
デスクトップPCのキーボードって、一度置き場所が決まったら同じ位置に置きっぱなしだから、必ずしも無線である必要はない。
そう思いがちなのですが、これが、一度無線キーボードを使うと全然違う。これまで動かさなかったのは、ケーブルが煩わしかったから動かせなかっただかで、ケーブルなんてなくていいならないに越したことはない。
長時間PCの前に向かうとなると、椅子に座っているとはいえ、姿勢を頻繁に変えるわけですが、姿勢に合わせてキーボードの位置を無意識に前後にスライドさせているんです。
しかも、ケーブルを気にせずパッとキーボードを脇に除けることもできるし、キーの隙間に埃がたまってきたらゴミ箱の上でパンパンできる。
最近は、頻繁にキーボードをゴミ箱の上に掲げて、帯電防止ハケでササっと埃を払っているので、大変清潔。
二つ目はバックライト。
こんなもんいらんやろ!の筆頭に挙げられそうな機能ですが、これ、あったらすごく便利なんです。
HHKBのハイパーユーザーのようにブラインドタッチしか認めない人たちには一生理解してもらえないと思いますが、自宅で仕事をするようになってから、少し薄暗くなってきたけど部屋の電気をつけるほどでもないなというときに、キートップの文字が「はっ、み、見えない!」となって慌てることが結構あるのです。
そんなときは冷静にキーボードのバックライトをON!
事なきを得るというわけです。
最初からハードルを上げても仕方ないので、とりあえずはできることから始めるべきなのかもしれませんが 、とりあえずこの二つは欲しいなと……(;^_^A
調査
バックライトはLEDを光らせればいいので、如何様にでも手はありそうですが、Bluetoothはどうでしょうか?
そんなことも含めて、調べていくと(調べると言ってもインターネットで検索を繰り返すだけですが)いろんなことがわかってきました。当初の目論見と変わってきたところもいろいろありました。
Bluetooth
ArduinoにはBluetooth搭載のものもあります。先日、ルネサス エレクトロニクスからいただいたArduino Uno R4 MINIMAの上位機種にあたるArduino UNO R4 WiFiにもBluetoothが搭載されています。キーボードの中に実装するのに小さい方がいいとなれば、Arduino NanoのシリーズからBluetooth付のものを選べばよさそうです。
みんなそうしているのだろうなと思ったのですが、検索してみると意外にそうでもなく、一旦USBの有線キーボードを作って、それをBluetooth化するという流れを踏んでいる方が多いような印象。
しかも、皆さん結構ご苦労されているみたい。
ヤバいですね。やっぱりBluetoothはハードル高いのかもしれません。
もう少し調べてみると、自作キーボード界隈ではBluetoothを搭載していないPro Microというマイコンボードでの作例がすごく多い。もう自作キーボード界のデファクトスタンダードではないかと思うぐらいPro Microでの作例が多い。
Pro Micro
で、Pro Microって何なんだろうと思ったら、Arduinoの互換ボードなんですね。元々はArduino Leonardoと同じATmega32U4というマイコンを積んでいるLeonardoの小型互換ボードです。
Pro Microのサイズは3.30cm x 1.78cm、元になったArduino Leonardoが5.33cm x 6.86cmなので、面積にすると6分の1ぐらいになっています。かなり小型ですね。
しかも、このATmega32U4というマイコン、USBのコントローラーを持っていて、PCのUSBポートに接続するとUSBドライブとして認識されるモードを持っているのだそうです。細かいことをいうとマイコンが持っているという表現はちょっと微妙で、内部のフラッシュメモリーにそういう機能を持ったブートローダーが書き込まれた状態で売られているということのようですが、これによって、PCからドラッグ&ドロップで内部のプログラムを書き換えることができるのだそうです。
なんか、メチャ便利そうですね。
これを使えば、簡単にキーボードの設定が変えられるというわけです。ファームウェアそのものを書き換えるわけですから、個々のキーの機能も後から簡単に入れ替えられるというわけですね。
もう、なんか、Webアプリ上で各キーのキーマップを書き換えて、そのままファームウェアをコンパイルして、ダウンロードできるサイトまであります。
なんかすごいなぁ、なんでこんなことできるのだろうと思いながら見ていくと、このKeyboard Firmware Builderからキーマップをカスタマイズできるのは、QMK Firmwareというファームウェアを使っている(対応している)キーボードのようです。
おっ、おっ、なんかまた新しいものが出てきましたね。QMK Firmwareとは何でしょうか?
QMK Firmware
QMK Firmware公式ドキュメントの日本語版に書いてあります。
なるほど。やっぱり既にあるんですね、先人たちの知恵の結晶が。
これは使わない手はないですね。
ただ、そういうことになるとArduinoを使うというよりは、ハードウェアはArduinoの互換ボードを使うものの、実際にはQMK Firmwareを使うことになるわけですね。
さて、そうなるともう一度立ち返って、QMK FirmwareでBluetoothを扱おうとするとどうなるのかが気になります。
Bluetooth
おっと、Bluetoothにも対応していますね。そりゃそうだ。せっかく作るキーボード、Bluetooth対応にしたいなーなんて思うのは筆者だけではないはず。
ただ、対応しているボードが少ない。
Bluetooth Low Energyに対応しようとすると、Adafruit Bluefruit LE SPI Friend 一択です。逆に考えれば、迷わなくていいかもですね。
ありがたく使わせていただくことにしましょう。
キーコードが割り振られているので、キーボードからUSBとBluetoothを切り替えることもできるようです。
Pro MicroとはSPIで通信をするようですので、そのぶんピンがふさがってしまいますが、そこはまぁ、致し方ないでしょう。
なんか、こういうものも見つけたのですが、本家のQMK Firmwareでは未対応のようです。
なぜでしょう? 作例も結構あるみたいですが。
そのうち公式にマージされるのでしょうか。
とりあえずBluetoothはどうにかなりそうです。
バックライト
バックライトに関してもQMK Firmwareが対応していますね。
キーコードも割り振られているので、バックライトの照度設定など、キーボードから変更できるようです。
ただ、RGBライトが気になります。
モードによって色を変えたり、キーごとに色を変えることもできるんですね。ん~、基板の設計が面倒になりそうですねー。でも気になるなぁ……
やりたいことは実現できそう
当初、Arduinoで一からプログラムを書くのだと思っていたのとは、だいぶ方向性が変わってきましたが、どうやらやりたいことをやる手段はありそうだということがわかりました。
さて、次は肝心かなめのキーそのもののハードウェアを検討してみたいと思います。
(続く)