自作キーボードアドベンドカレンダー3枚目の5日目、ginjakeです
前回、マサコの知らない自作キーボードの世界を投稿したところ、
予想以上の反響をいただきました。
あれから約3ヵ月。様々なキットが発売され、自作キーボード界は日々飛躍的に発展しております。
前回書けなかった内容や新登場のキットについて触れていこうと思います。
(Qiitaなので、後半はプログラミングに関係する話にもなります)
イ カ れ た キ ー ボ ー ド 紹 介 す る ぜ!
見て!
— 声豚⌨ (@sirojake) 2018年12月1日
オタク色のZINC! pic.twitter.com/9XXJNW07aL
以上だ!
自作キーボードの良さとは?
・自由なキー配置
・自由なキースイッチ
・なんか凄い事やってる感がある
様々なキット達
前回もいくつか紹介しましたが、この3ヵ月の間に様々なキットが登場しました。
ざっと紹介していこうと思います。
また、液晶やLEDに対応しているキットがありますが、不要ならつけなくても問題ありません。
Helix、Helix pico


Helix自体もロープロファイルスイッチに対応しているので薄く出来ますが、
HelixPicoならさらに薄くなります。
Corne Cherry
前回の記事でも紹介したキットの最新版。
キースイッチがソケット化しており、後から自由に付け替える事ができます。
プレートの色や素材も変わっており、とてもカッコよくなっています。
手前が前のバージョンCorne Classic、奥がCorne Cherryです。
(私は両方とも組み立てました。)
技術書典5にて販売した「四⼈の知らなかった⾃作キーボードの世界」
で取り上げたのはCorne ClassicとCorne Cherryになります。
ちなみにHelixPicoもそうですが、ダイオードが米粒より小さいためまともなピンセットが必要です。
ダイソーの毛抜きをピンセット代わりにするのはおすすめしません。
販売ページ
Zinc

冒頭で紹介したキーボードはこのZincです。
ラブライブ!サンシャインの4thライブに感銘を受け、そこで購入したオタク棒の光り方を再現しています。
本当はとてもおしゃれなキーボードで、インスタ映え間違いないでしょう。
キー配置が真っすぐなキットが多い中、Zincは斜めにズレている為
従来のキーボードに近い感触で打てると思います。
Mint60

スターターキットならば必要なパーツが全て含まれており、
なんとファームウェアも書き込み済み!
パソコンが家にない人でも組み立てられるので安心ですね
Mint60公式
Ergo42 Towel

Lily58

Fortitude60

ロゴまでパワフルな拳の絵になっているのは、強さを求めすぎた結果でしょうか?
販売サイト
ErgoDash、ErgoDash mini

Rhymestone

Treadstone48

Mini Axe

基板設計も組み立て方法も独特であり、凄いキットだと思う。
小型化最優先のため、若干組み立て難易度が高くなってしまっているが魅力的な事には変わらない。
販売ページ
namecard 2*4

Attack25

universal16

イカれたキット達
Blockey

作者はスライドの操作に使っていたので、作ってみたら結構使い道はあるのかもしれない。
パーツが小さいだけでなく基板への実装密度も半端なく高いため、腕に自信のある方は挑戦してみてもいいかもしれない。
販売ページ
Colosseum 60 (with 無限の可能性)

戦士たちよ…闘いの幕開けだ。
— しろとり@無限の可能性 (@swan_match) 2018年10月30日
今こそ情報化社会を勝ち抜く剣を取れ!
フルカラーLED円形闘技場型キーボード「Colosseum60」
最後に生き残るのは誰だ…?#Colosseum60 pic.twitter.com/ehaOZt3X4i
「無限の可能性」という1キーずつ切り離して使う事のできる基板を組み合わせた上、
DMM.makeでケースを3Dプリントする必要がある。これだけで3万円くらいするらしい。
いろんな意味で難易度が高いが、英雄になれること間違いなしの円形闘技場キーボード。
無限の可能性
ケース3D印刷
完全にネタだと思っていたが、普通に使いやすいから困る。
キー配置をカスタマイズしてみる
前回の記事でも少し触れましたが、プログラミングの知識があれば自由にカスタマイズすることが出来ます。
namecard2*4というキーボードを例に出すと、
keymap.c の
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[DF] = LAYOUT(
KC_1,KC_2,KC_3,LT(LW,KC_4),
KC_5,KC_6,KC_7,LT(RS,KC_8)
),
[LW]= LAYOUT(
RGB_VAD,RGB_VAI,RGB_HUI,RGB_HUD,
KC_TRNS,RGB_MOD,RGB_RMOD,KC_TRNS
),
[RS]= LAYOUT(
KC_MYCM,KC_MAIL,KC_VOLU,KC_MUTE,
KC_WSCH,KC_CALC,KC_VOLD,KC_TRNS
)
};
という部分を書き換えることで好きに変更することが可能です。
マクロはもちろんの事、「一瞬だけ押すとB、長押しするとレイヤー(後述)」
というのもLT(レイヤー,KC_B)
のように設定が可能です。
上記のコードで[DF] = LAYOUT(
[LW]= LAYOUT(
[RS]= LAYOUT(
とありますが、これがレイヤーと呼ばれる機能です。
デフォルトではDF
に書いたキーが適用されます。
LW
やRS
についてはそれぞれのレイヤーが有効になっているときに適用されます。
レイヤーの切り替えについては、あるキーを押している間のみだったり、
一度押したらそれ以降ずっと有効になったりと、好きにカスタマイズすることが可能です。
私は猫がキーボードの上に乗っても大丈夫なように、キーを設定していない「CATLOCK」レイヤーを作り、
特定のキー同時押しで有効/無効 になるようにしています。
イベント展示時、参加者がキーの感触を試しているうちにパソコンが操作されるなんて事例はよくありますが、
この機能のおかげで課題が解決され、すごく助かっています。
キースイッチ
少しキーボードに興味のある方なら「赤軸」「茶軸」という言葉を聞いたことがあると思います。
世の中には数多くのキースイッチが存在します。自分が触っただけでも100種類以上あります。
「押しはじめが少し硬く、途中からストンと入る」
「とても軽く、音もほとんどしない」
など打鍵感は様々です。
既製品だとある程度種類が限られてしまいますが、自作キーボードなら自由にカスタマイズできます。
小指や薬指は軽いスイッチにして、人差し指は重くする 等も可能です。
自分のお気に入りはBOX Royalスイッチです。
自作キーボードで遊びながら、技術を身に付ける
OLED(液晶)で遊ぶ
前回はキャラがただ表示されるだけだったので、今回はアニメーションするようにしてみました。
— 声豚⌨ (@sirojake) 2018年12月4日
bmpなんて画像形式は当然使えません。
画像データはコード化されており、ピクセル毎に白か黒かが格納された8bitのデータが配列になっている感じです。
また、マイコンのフラッシュメモリも全然足りない為、適当にやってるとすぐ容量が超過します。
容量超過した事に気づかず書き込むとマイコン自体が死んでしまいます。
警告が出るので普通は気づきますが、何百回と書き込んでるとたまにやってしまいます。
直すためにProMicroを使って自作のAVRライタを作る程度には壊しました。
前の記事でも軽く触れましたが、灰色を表現できない為「■□■□」と「□■□■」を交互に描画することでそれっぽく見えるようにしています。
灰色部分を白黒で打つのは骨が折れるため、まずはそういうツールを自作しました。
OLED用ドット絵コンバーター
画像データからコード化するために@zk_phi氏作成のツールを改造したものがこちらです。
glcdfont-tracer
アニメーション自体は3種類ですが、白黒交互表現のため6枚分の画像データを保持しています。
1枚の画像データに6つの画像を入れ、描画範囲を切り替えるというのがこの手だと一般的だと思いますが
6つ分の描画範囲の配列を作ると容量が死ぬため、fontデータを3*2の配列にして1つの描画範囲で済ませています。
一応、参考までにfirmwareのコードも載せておきます
github
こんな感じで、webプログラミングだけでは普段気にしない事を学べて面白いです。
LEDで遊ぶ
冒頭のオタクZincのように、ピカピカ光るのは良いものです。
beatmania IIDXだって光ると嬉しいですし、クリスマスだってディズニーランドだってとにかく光っています。
輝くというのは素晴らしい事です。
輝きを見つけたときの高海千歌氏1の嬉しそうな顔を今でも鮮明に覚えております。
キーキャップで遊ぶ
親指の位置にハマっている1.5Uのキーキャップ、何の変哲もない金属キーキャップに見えますよね。
なんとこれ、3Dプリントで作ってもらった銀製キーキャップです。
@zk_phi氏がモデルを製作し、DMM.makeに公開してくれている為、
素材を選んで注文するだけで勝手に出来上がります
(ナイロンやMJF用に作られている為、銀の場合はスイッチ側の軸を少し削る必要はあります)
実際にこちらで印刷することが出来ます
OpenSCADという関数型言語を使ってモデルを作ってるらしいです。
というわけで明日は@zk_phi氏による、
自作キーボードアドベンドカレンダー1枚目の6日目、「3Dプリントキーキャップの話」です。
この記事はZincを光らせつつCorne Cherryのハンドスピナーを回しながらCorne ClassicとLibertouchで書きました
-
ラブライブ!サンシャイン!! の登場人物
LEDについては、自作キーボード #3 Advent Calendar 2018の21日の記事で題材にする予定です。 ↩