続・キーボード作ってみた

Posted on Jan 26, 2019


キーボードを作ってみてから数週間たちました。

最初は配線不良でLEDがチカチカしまくりましたが、何回か補修工事をすることで、今は安定して動いています。今回は、その後施した修正をいくつかまとめておこうと思います。

かな・英数変換

作ったキーボードは、基本的に Mac で使っています。Mac はここ7〜8年前から英字キーボードで使っており、日本語と英語の入力切替は、Karabiner 使いつつ、Command キーのタップで行なっていました。

Zinc キーボードを作った当初は、Ctrl + Space で言語切り替えを行なっていたのですが、やはり、ワンキーで言語切り替えする方が楽。ということで、調べた結果、簡単にできることが判明。

キーマップを一部変更するだけ。挙動の制御は、TAPPING_TERM の長さで挙動を調整するのも手ですし(Zinc の初期値は 100ミリ秒)、RETRO_TAPPING を True にしてしまうのも手かと思います。

快適です。おまけに、入力の判定をキーボード側でやっているため、Karabiner も不要に。良い。

ただし、この機能を使ってしまうと、LOWER / RAISE 押してもアニメーションしなくなったり、同時押しで Adjust レイヤー使うとかは出来なくなりますので。その点は注意。

キーキャップ

仮で Lofree のキーキャップつけてたんですが、やっぱりしっくりこない。という事で、代替品を探しました。

どこで買えるかは、ここにまとめられてます。

いろいろ巡った結果、今回は、AliExpress でいくつか買ってみました。“DSA Keycaps” とかで検索すると、Zinc でも使いやすそうなキーキャップが色々と出てきましたのでその中からいくつか注文。で、頼んでから2週間ほどで到着。Amazon 慣れした体には、なかなか辛い2週間でした

まず、試したのがこれ。DSA サイズの透明キーキャップ。正直、見た目は好みの分かれるところかな。ただ、「DSA のキーキャップだと、音もいいし、なんか打ち易い」、という点は確認できたので良かったです。というか、最初使っていた、Lofree のタイプライター風キーキャップが打ちにくいだけ、かもしれません。

で、次に試したのが乳白色の半透明のキーキャップ。これは、Ortholinear キーボード用ではなく、普通のキーボード用ですが、刻印がないですし、使えるかな、と。実際に届いてみたのを見ると、なんか、作りがいまいち。上記の透明キーキャップ同様、裏側がすけて見えちゃってるし。半透明になった分、色も少しわかりにくくなってしまいました。部屋の電気消すと、いい感じなんですけどねぇ。

ぬ、沼深い。

バックライト LED

「キーキャップに文字ないけど、代わりに、LEDで色分けすればいいんじゃない?」と思ったこともあり、標準装備の LED Animation に頼らず、バックライト LED で細かく設定してみました。

参考にしたのはこの辺り。

で、理解するまでに時間がかかってしまったことがいくつか。わかってしまえば、大したことではないのですが。

  1. キーマップの設定はマスターの ProMicro のファームウェア更新するだけで反映されるけれど、LED に関しては両方の ProMicro のファームウェアを更新しないといけない。 Zinc の各種設定ファイルをみるとわかりますが、RGB の数が48個じゃなくて24個になっています。なので、Slave 側のLEDで何かしようと思うと、そっちのファームウェアも更新しないといけない。
  2. **RGB matrix じゃなくて RGB Lightning のAPIを使うべし。**Zinc はマトリックス上にLEDが配置されているので、RGB Matrix だと勝手に思い込み、遠回りしました。

今回は、「英数字キー」「矢印キー」「MODキー」って感じで大きく三つに分けて着色。全てのキーの Saturation と Value は同じにし、Hue だけグループごとに変えてみました。Hue については、絵で描くとこんな感じ。

で、こんな感じで、気分に合わせて色を変えられるようになりました。

あわせて、一定時間アイドル状態になったら、バックライトを消す設定も導入。毎回毎回、作業終わったら LED 消すのめんどくさいので。参考にしたのはこちら

出来上がったコードはこんな感じ。現状、ケーブルを抜いてしまうと、LEDの設定が初期されてしまう問題が残ってますので、そのうち修正します。


以上。

コルネが欲しくなってきた。あと、いいキーキャップが欲しい。


comments powered by Disqus