C
Arduino
canvas
Keyboard
自作キーボード

マサコの知らない自作キーボードの世界

DlIFCA1UYAE5Iph.jpg

そのキーボード、本当に満足していますか?

「弘法筆を選ばす」で有名な空海は、遍照発揮性霊集にてこう述べています

 良工は先づ其の刀を利し、能書家は必ず好筆を用う

一流のエンジニアの皆様におかれましては、もちろん一流のキーボードを使っていることでしょう。

でもちょっと待ってください!

それは本当に最高のキーボードですか?
HHKB?
いいですね。間違いなくあなたは凄腕プログラマーでしょう。

しかし量産機である以上専用機にはかないません。1
タイピングの質はコーディング速度に直結します

小指の負担がすごい

よく使う{}や*;が小指にあるのって、不便じゃありません?
TabもbackspaceもEnterも全部小指。
スペースキーとかあんなに長い必要ありません。半分にして代わりのキー置きたくないですか?
速度も精度も中指>小指なのはエクストリームタイピング競技者2の間でとても良く知られています

タイプライターはもう化石

今のキー配置は今から100年以上前
ジュラ紀に爆発的な進化を遂げたタイプライターが起源だと言われています。
キーが列ごとに少しずつズレているのもその名残。
タイプライターは原理的にそうせざるを得なかったからです。
有名なデマだそうです。gentaroさんご指摘ありがとうございました。
恐竜の時代はもう終わり。これからは自作キーボードの時代です

自作キーボードのすゝめ

twitterとFGOが同時に出来る。
そう、自作キーボードならね。
DlIMgZVU4AAhzGn (1).jpg

キーって入れ替えられる?

簡単に出来ます。
C言語を使ってカスタマイズしていきます。
ちょっとキーを入れ替えるだけなら、なんらかの言語経験者なら問題ないでしょう。
コンパイルや書き込みはコマンドラインで行うので
最低限の知識cdでディレクトリ移動するとか は必要かもしれません

真っ黒画面アレルギー の方はごめんなさい。
ターミナルの背景色を変えたりして克服しましょう。

キー数足りなくない?

普通のだってShiftを使い入力します。ああいう感じ。

レイヤーというのを設定でき、それごとにキーを割り当てています。
RAISEキーを押してる間はRAISEレイヤーになりキー配列が変化します
私はデフォルトレイヤーRAISEレイヤーLOWERレイヤーADJUSTレイヤーの4つを使っています
まあようするに、3種類くらいShiftキーがあると思えばいいです

ピカピカうるさくない?

アルコール駆動開発には最高です。電気を消してDJ3流せばそこは渋谷のDJクラブ。

近隣住民に怒られたらオフにしましょう。オフにするキーももちろんあります。
完全に不要ならLEDパーツをつけないというのもありです。1000円くらい材料費が浮きます

いくらで作れる?

その気になれば1万以下で作れます。
私は工具を揃えたり、ちょっと高めのキーキャップを買ったりしたので20kくらいです

誰でも作れる?

いろんな方が作り方を載せているので、知識がなくてもググり力さえあれば作れると思います。
工具もハンダゴテや500円のテスターとかなので、5000円あれば揃うと思います

ちょっと興味が出てきた。でもどうすればいいの?

まずはキットを選びましょう。売り切れの場合は再入荷を待ちましょう。
以下のキーボードは初心者にもおすすめだと思います。
今回は日本国内で通販できるキットを抜粋して紹介します。

crkbd 

私が作った奴です。キー数が少なくとてもコンパクト
よく売り切れてる。
crkbd公式サイト

helix pico

コンパクトさにこだわったキーボード。持ち運びとか便利そう。
既に何色か売り切れてる。
helix pico公式サイト

mint60

必要なものがすべて揃っているしおしゃれ、コミケで売り切れ。
マイコンも書き込み済のため、C言語わからなくてもイケる
予約受付中との事
mint60 公式サイト

Ergo42 Towel

横が一列多いため、bは両手にほしい みたいな場合はこれ
機能性重視のため、LEDや液晶はつけれるか不明
前作が売り切れた
フルセットならキーキャップとキースイッチ以外ありマイコンも書き込み済
旧型のErgo42は売り切れた
とてもわかりやすいビルドログ(組み立て記事)
Ergo42 Towel

パーツを揃える。

各キットのページに必要なものが書いてあります。
言われたとおりに購入しましょう。
大抵は遊舎工房 さんで買えますが
秋葉原で工具を揃えるついでに買ってもいいかもしれません。
キースイッチ、キーキャップ以外は千石電商や秋月電子、aitendoで大体揃います。
キースイッチやキーキャップは取り扱っている店が非常に少ないです
amazonやAliExpressなどの通販で買うか、ヨドバシに置いてあることを祈るかです。
AliExpressで注文しましたが届くのに1ヶ月かかると言われたので、アキバを探し回った結果、
ゲーミングキーボードとかマウスがやたら置いてある店に運良く2種類だけあったので買いました

電子工作

はんだ付けのお時間です。
キットの公式ページに大体載っていますが、
ビルドログもたくさん乗ってるので困ったらググりながら作りましょう。

カスタマイズ例

ここから先はcrkbdのカスタマイズ自慢例です
他のキットでも大体同じなので参考になれば幸いです
qmk_firmwareをForkして
keyboards/crkbd/keymaps/defaultの中をいろいろいじっていきます

LEDを光らせる

キーが個別に光るLEDは難易度が高かったため、今回は裏側のLEDだけ実装しました。
アクリル板を透過していい感じに光ります。
DlISDDUVsAYQsG7.jpg

crkbdのデフォルトにはありませんでしたが、qmk_firmwareのドキュメントを読むと
スネークモードクリスマスモードなどいかにも治安の悪そうなキーワードが。
もちろん使えるようにし、調子に乗ってオリジナルのキラキラパターンを実装したり。
かなりいろいろ遊べるところです。

液晶に絵を書いてみる

ここもかなり遊べるところであります。
デフォルトではレイヤー情報や入力したキー、ロゴが表示されます
ロゴではなく、やはり絵を表示したいものです。

ハードウェア自体が横32縦128、白黒2色だったため非常に苦戦しました。
しかもbmpとかの画像形式ではなく、16進数のデータを描画していく感じ。
画像の実際のコード
意味分からんと思うので、画像化するとこんな感じ

ダウンロード.png

こんなんじゃあ作業が出来ないので友人が作ったコンバーターを改造し
pngから変換できるように。
お絵描きツール

灰色については、白と黒を高速で描画することでそれっぽく表現

□■□■ ←→ ■□■□
■□■□ ←→ □■□■
□■□■ ←→ ■□■□
■□■□ ←→ □■□■

↑こういう感じの絵を用意して切り替える
試行錯誤しながらめっちゃ頑張って書きました。この作業が一番大変だった。
font9.png
古のゲーム制作者の苦労が良く分かりました。

最終的に

firmwareのコードはgithubにあります
make crkbd:default:avrdude で書き込むことができます

改善の余地がまだまだある

治安を悪くする余地がまだまだあります
・今回諦めてしまった表面用のchipLEDを実装してピカピカ
・キーキャップを青軸にしてカチャカチャなるようにする
・サウンドモジュール付きのキットにする

でも使っているマイコンの容量が32kb、現時点でもかなりきつい。
「どうやって最適化しようか」と日々悩んでおります
普段はweb系しかやっていないのですごく勉強になりますね。
コンパイル後の容量なんて気にした事ありませんでした。

マイコンを変えるという解決策がありますが、そっちも知見不足のため全然分かりません。
3Dプリンターを用いてキーキャップの自作とかもやってみたいところではあります。

最初は自作キーボードなんて作ってどうするの?なんて思いましたが
すっかり沼にハマってしまいました
2万で滅茶苦茶遊べるので本当におすすめです。

宣伝

技術書典に出展いたします。
お30「riconken」でcrkbd(コルネキーボード)の本を出す予定です。
同じキーボードを複数人で作り、各々のカスタマイズ例や感想。
作り方なんかをまとめていく、というコンセプトです。
興味がある方、立ち寄っていただくとありがたいです。

謝辞

メンターとして指導してくれたりコンバーターを作ってくれた@zk_phiさん
ProMicroを壊して途方に暮れている中、2日で送ってくれた遊舎工房さん
本当にありがとうございました。

追記

「Tokyo Mechanical Keyboard Meetup Vol.5」にて

hachi8free Myonさんに写真を撮ってもらいました。
実物以上に綺麗に撮っていただき、ありがとうございます
30406440418_96e6a00b47_k.jpg
44277179281_3ffd5d300f_k.jpg

参考

弘憲寺 心の講話 http://blog.livedoor.jp/koukenjikokoro/archives/7075884.html
キーボードの文字配列はどうして「QWERTY」なのか? https://gigazine.net/news/20160316-origin-of-qwerty/!


  1. 1stガンダムを見て、専用機の性能の良さに愕然とした。 

  2. beatmaniaIIDXの事 

  3. ニコ生やYouTubeライブのアーカイブをよく聞いています。CLUBめうめうが最近のお気に入りです。VtuberのDJなんかも出て来始めてて最高ですね。