しっぽをくるん

ぺらねこのにっき

キーボードを割った話

2017年に一世を風靡したものの中に、分割キーボードが有ります。

分割キーボードとはなにかというと、PCを操作するKBを左右に分割し、肩の負担を減らそうというものです。

市販品もあるのですが、ANSI準拠の英語配列が多く、導入が難しい面がありました。そんな中、昨年は待望の日本語108/109キーボードが市販されたり、同人頒布物としてキットが入手できるようになったりしました。

その結果、キーボードの組み立てや自作を楽しむ方が増え、ついに今年末広町秋葉原御徒町の中間ぐらい)に、自作キーボードの専門店がオープンしました。

yushakobo.jp

今までにもGitHubやQuiitaで交換されていたキーボードキット製作のノウハウですが、Quiitaはともかく、Gitはちょっと敷居が高いいんしょうがありました。
この敷居が、実店舗ができることによりかなり改善され、お店で販売されている商品に対して質問できるようになったり、併設の自作スペースで組み立てができるようになったのです。
また同時に、Discordの自作キーボードチャンネル(Self-Made Keybord-JP)の賑わいも特筆するべき点でしょう。一部のキットはDiscordでのサポートを行っていますし、実際に同じキットを制作したことがある方も、知見を提供してくださいます。

 

というわけで、去年からDiscordを眺めたり、良さそうなキットを物色したりしていたぺらねこは、これ以上この波に乗り遅れるわけには行かじと、ついに自作しました。

 

今回使用したのは、Helixの5行版です。バックライト付きのキットを購入しましたが、バックライトは装着せずに組み立てました。

yushakobo.jp

 

完成したキーボードはこちら。

f:id:peraneko:20190127042941j:plain

左手側

f:id:peraneko:20190127043014j:plain

右手側

f:id:peraneko:20190127043036j:plain

 

バックライトはキーボード上のキーを下から照らす機能なのですが、そもそも透過するキーが必要になったり、はんだ付けの手間が2倍以上になるためあきらめました。

組立の難易度はバックライトを省略したため簡単でしたが、完成後にすでに2回補修をしました。どちらもキーが押されたときの反応が怪しくなってしまったためです。


追記(1月27日) 組立3日目に、背面のアクリルパネルを低くしようとして、キーキャップを外してつけ直した所、右手側が複数キー破損し、結局PCB基板を交換して修理しました。作業時間およそ6時間ほどでした。


Helixはキースイッチの実装されているPCB基板と上面のアクリル板(四角い穴が空いている方)をはさみ、はんだで固定したあと、下面のアクリル板と6箇所のネジで下面のアクリル板を挟む構造になっています。そのため、厚い方のスペーサーを使うと、PCBのたわみがかなり気になります。

HelixはMX互換キースイッチをアクリル板にはめ込んでから、PCB基板にキースイッチの足をはんだ付けするようです。オフィシャルの手順だと、この部分の説明がロープロファイルスイッチを使っていてよくわからないので、手順書にMX互換スイッチを使う場合の手順も記載してほしいとおもいました。

 

さてキーボードを自作したということは、キーマップを自作したとも言えます。

キーマップの自作とは、キーボード上のどのキーに何の役割を与えるか、という作業です。

 

Helixはデフォルトで4つの階層をもっています。

通常のキーボードでは、1階層のものが多いのですが、HHKBなどは2階層になっていたりします。2層でも多いっちゃ多いのですが、Helixは4層もあるため、使い分けを考えなければなりません。

とはいえ、通常面は一番使う面なので、ここでほとんどのキーを操作できるようにしたいわけです。

 

で、こうなりました。

gyazo.com

[_QWERTY] = LAYOUT( \
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_JYEN, \
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_EQL, KC_MINS, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, JP_LBRC, JP_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, \
ADJUST, KC_LALT, KC_LWIN, KC_APP, LOWER, KC_MHEN, KC_SPC, KC_ENT, KC_HENK, RAISE, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT \
),

 Lower/Reise面に関しては、通常面を補う機能として、置ききれなかった記号やファンクションキーをおいています。

gyazo.com

[_LOWER] = LAYOUT( \
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, \
_______, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, JP_MINS, JP_PLUS, JP_AT, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, JP_SLSH, JP_ASTR, KC_INS, \
_______, _______, _______, _______, _______, _______, JP_COLN, JP_SCLN, _______, _______, _______, _______, _______, JP_SCLN, \
_______, _______, _______, _______, _______, KC_ZKHK, KC_SPC, KC_ENT, _______, _______, KC_HOME, KC_PGUP, KC_PGDN, KC_END \
),

 

gyazo.com

  [_RAISE] = LAYOUT( \
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, \
_______, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, JP_MINS, JP_PLUS, JP_AT, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, JP_SLSH, JP_ASTR, KC_INS, \
_______, _______, _______, _______, _______, _______, JP_COLN, JP_SCLN, _______, _______, _______, _______, _______, JP_SCLN, \
_______, _______, _______, _______, _______, KC_ZKHK, KC_SPC, KC_ENT, _______, _______, KC_HOME, KC_PGUP, KC_PGDN, KC_END \
),

この2面は、どちらも全く同じ配置にしました。
また、Adjust面については手を加えていません。

 

慣れてきたら、Lower面の右手側を10キーパッドにしたいのですが、コレはそのうちやろうかとおもいます。

また、すでに自作KBを作成している方には、JP_で始まる定義が見慣れないかもしれません。

これは、ANSIキーボードとJISキーボードのズレを埋めるための定義ファイルを使っているからです。

使い方は簡単で、keymap.cの中に、下記を追加するだけです。

#include "keymap_jp.h" //JP対応

 ぺらねこ環境では、6行目にインクルードしています。

 

現状、今まで使用していたキーボードと比べて、若干タイプミスが多い程度で、じわじわと慣れてきています。さらに、半信半疑だった肩こりへの効果ですが、こちらは完全に肩が楽なことを実感しています。

長年ひどい肩こりに悩まされていただけに、コレは嬉しい。本当に嬉しいです。

ぜひ皆さんも、キーボードを割って、肩への負担の少ない生活に移行しましょう。