自作キーボード製作記 ~準備編~
昨今の感染状況により在宅勤務が続く。
やはりそうなると自宅のPC環境は快適なものにしたい
というもっともらしい理由をつけて自作キーボードに挑戦することを決意。
色々下調べをしてみると割と奥が深い。
まず、自作キーボードとは、名前の通り自作したキーボードのこと。
ただし「どこまで自作するか」というレベルは人によって違うらしい。
その界隈で有名な遊舎工房さんなどでキットを購入して作る人、
キットを購入したうえで自前のfirmwareも書く人、
PCBの設計から始める人
色々いるそう。自キニキしゅごい。
自分は3つ目を選択。
あえて難題に挑んでみた!と言いたいところだが自分の欲しいフルキーボード*1でお気に入りのキットが見つからなかったためである。
まずわからないところをひとつづつ調査
・そもそもキーボードの回路ってどうなってるのか
多くのキーボードがマトリックスと呼ばれるキースイッチの行列でどこが押されているかを判別しているらしい。ただしキーの同時押しがあるとキーの判定を絞れなくなるので同時押しがある場合はダイオードを使用する。
マイコンなどの信号の制御部がrow0, row1, row2, .....と順番に信号を切り替えてその時のcolの値を読んで導通を判断する。ダイオードがないと、例えばSW1 とSW8を押したとき、row0,row1,col0,col1が導通と判断しSW1,SW2,SW7,SW8が判定されてしまう。
このマトリックスという手法を使うことでキー数=ピン数必要という問題を回避できる。
・マイコンは何を使っているのか
自作キーボードで王道のマイコンはPro microらしい。
ここの二点を調べたタイミングでとある問題が頭をよぎる
「あれ?マトリックスでもフルキーボードだとピン数足りんくね?」
Pro microの入出力ピンは16pin, つまり最大で(16/2)^2=64キーということになる。
この問題をフルキーボードを作ってる人はどう解決しているんだろうかと
いろいろ調べていくとすごい手法「倍マトリックス」という方法に突き当たった。
これは簡単に言うとダイオード向きを変えたもう一つのマトリックスを用意して
rowをHighにして信号を読んでいくタイミング、colをHighにして信号を読んでいくタイミングで二つのマトリックスのどちらかも判別できるという方法らしい。天才だな。
これで64*2=128キーまで判別可能、フルキーボードが作れる。
キー配置・LED信号など情報はファームウェアとしてpro microに書き込まれる。
すでに作りたいキーボードのキー配置などが一致するファームウェアがあるならhexファイルをQMK toolboxというツールでフラッシュすればよいのだが、今回はないので
ファームウェアはQMK firmwareというツールでビルドする必要がある。
と、いうことで準備するものは以下の通り。
・キースイッチ
・LED
・pro micro
・タクトスイッチ
・スタビライザー
・ボルト+スペーサ
・PCB(基板)
・パネル
黒字の項目は今回は遊舎工房さんで調達する。
赤字の二つはこれから設計する
次回、PCB設計編。
*1:テンキーまであるキー配列