たのしい人生

コミケ C97 サークル「たのしい人生」のお知らせと今年の振り返りの話

この記事はキーボード Advent Calendar 2019、23 日目の記事です。

adventar.org

22 日目は ai03 さんの「海外コミュニティでの活動から学んだこと」でした。

docs.google.com

24 日目は foostan さんの「Let's Split Rebuild Log」です。

fstn.hateblo.jp

コミケ C97 告知

最初にコミケ告知です!サークルスペースは 4 日目 南ホール ラ13a です。クレジットカード決済対応予定です!

びあっこ @Biacco42

biacco42.booth.pm

KbD C96 August 2019 特集「遊舎工房インタビュー」「キーボードカスタマイズ最前線」

実店舗の遊舎工房成立の経緯とこれからを語っていただいたり、2019 年になって大幅に変わった自作キーボードのトレンド、カスタマイズの最新情報、そのなかでもアルチザンキーキャップワークショップ主催のお二人へのロングインタビューなど、2019 年の自作キーボードシーンを記録するコレクションとしてどうぞ。電子版もありますが、製本版に関しては在庫分で終了予定です。

既刊 KbD C95 も持っていく予定です。こっちも歴史やキーボードキットの情報の一覧など、資料性が強いかもしれない。

biacco42.booth.pm

せきごん @_gonnoc
I2C 接続可能なマウス IC 評価用モジュール。下の写真は作例。

f:id:biacco42:20191226013933j:plain
マウスIC評価用モジュール

f:id:biacco42:20191226014020j:plain
作例 (I2C 接続可能)

いつの間にかモジュール化されてましたすごい。

Kugel-1

booth.pm

言わずとしれた自作トラックボール付キーボードキット。

ゆーち @F_YUUCHI
Lily58 Lite

f:id:biacco42:20191226014755j:plain
Lily58 Lite

Columnar Staggered の定番 Lily58 の初心者向けに改良されたバージョン。組み立てやすくなっているとのこと。10,000 円予定。

というわけで、サークル「たのしい人生」はコミケ C97 4日目 (12/31) 南ラ13a でお待ちしています!

告知終わり。

今年の振り返り

ここからは、今年は目標としていたところと、期せずしてできたことがあったので、それらを軸に簡単に振り返ろうと思います。

目標:人を頼る・チーム作業をする・人と仕事をする

私はどうにも人を頼るのが苦手で、できることならスタンドプレーでやっていたいというタイプなのですが、歳を重ねるにつけていろいろと制約を感じたり、一人でいつまでやり続けられるのかという不安も出てきていました。

現職の仕事も 1 案件 1 エンジニアみたいなのが基本なので、ともかくチームでの作業やコミュニケーション、頼り頼られるみたいな人間的生き方からあまりにも離れすぎていたため、ちょっとまずいかな、と。こういう思考になるのは歳なんですかね。

ということで「人を頼る」「チーム作業をする」「人と仕事をする」というのをふんわり目標にしていました。目標というかほとんど焦燥感と言ってもいいかなと思います。

この観点・目標については今年はかなりがんばれたし、蒔いた種から収穫できたかなと思っていて、結構満足しています。具体的な話を 3 つほど。

ほぼ週刊キーボードニュース

実際には去年から種を蒔いていたほぼ週刊キーボードニュースですが、おかげさまで「ほぼ毎週」、 1 年間走り抜けることができました。

www.youtube.com

ともかく「人と協力し」「スケジュールを守りながら」「継続する」と、私の苦手なもの三段重ねの、今思えば随分攻めたプロジェクトでした。でも、兎にも角にもこれを実現してやりきれたのは、私を叱咤し諦めず一緒に創り上げてくれたぺかそ氏のおかげです。本当によく見捨てられなかったなと思います。

キーボードニュースに関しては、間違いなく私一人では絶対にこんなに良い結果にはならなかったし、そもそも継続も実現もできなかったと思うので、「人を頼って」「チーム作業をして」一人ではできないものづくりができたので、これは本当によかったなと思っています。

分業やマネジメントの仕方についても、二人で手探りながら少しずつ進めてこれました。ぺかそ氏が何事もプロフェッショナルなので、コミュニケーションも円滑で、チーム作業でありながらやりたいことなんかをサクサク実現できたりして、とても心地よい経験でした。チームとしてちょっと都合が良く回りすぎた (たぶんぺかそ氏が回してくれていた、が正確なのですが…) フシもあるので、来年はもうちょっと分業・マネジメントの仕組についても勉強・実践していきたいところです。

来月にはほぼ週刊キーボードニュースも放送開始 1 周年になります。まだまだやりたいことあるので、来年はもっとリスナーの方々とも関わりながら、楽しんでいただける放送を一緒に創り上げられたら幸いだなと思っています。

サークル「たのしい人生」

もうちょっとゆるい形で「人を頼る」ために、お声がけをさせてもらって、個人サークルだった「たのしい人生」が複数人の参加するサークルになりました。響きだけならめちゃめちゃリア充っぽい…。

上の告知でも書いたとおり、せきごんさん、ゆーちくんと 3 人で少しずつ活動させてもらっています。

ほぼ週刊キーボードニュースのように、1 つのものをガッツリ複数人で作る、というのはこれはこれで特殊スキルなので非常におもしろいんですが、やはりコミットの責任が伴います。なので、もうすこし軽く「人を頼る」ために、それぞれが作ったものを持ち寄るという形でのサークル活動をはじめてみました。

自作キーボード界隈では有名な「沼人の会」もそれぞれがそれぞれの成果物を持ち寄るという点で似ているのですが、いい意味で沼人の会は非常に進捗圧が高い空間のようなので、たのしい人生の方はもうちょっとほんわかした、自作キーボードの「きらら枠」になったらいいかなという感じで、おかげさまで非常に頼りまくってしまっています。

ともかく今まで、成果を出し続けること以外で人と関わることができない人間だったので (文字にするとひどすぎる)、今こうして見捨てられずに一緒にいてくれることに感謝しかないです。来年は少し自分も還元できるものを還元しつつ、まだまだ頼ってたのしいサークル活動ができれば…と目論んでいます。

ハロー、自作キーボードワールド

ここまでは「人に頼る」「チーム作業をする」など基本的には、協力する人間を作る、というテーマだったのですが、もう一つ、少し緊張感を足す目的で考えていたのが「人と仕事をする」でした。というわけで、つい先日始まった ITmedia さんでの連載「ハロー、自作キーボードワールド」です。

www.itmedia.co.jp

最近だと、連載とは別で新型 HHKB こと HHKB HYBRID のレビュー記事なんかも書かせていただきました。

www.itmedia.co.jp

これらは、明確に仕事として連載を請け負うということで、ある種の「契約という形での人との関わり方」「人と仕事をする」という目標がラッキーなことに実現させていただけたお話になります。締め切りや受け入れ品質のチェックなど、ある程度責任を負って、プロとして人となにかを作り上げる、という経験を今絶賛させていただいてます (編集井上さん、記事遅れていてすいません)。

上のような書き方だとちょっと敵対的に見えてしまうかもしれませんが、実際には編集の方に非常に支えられた状態で作業をさせていただいていて、いい人間・いい仕事をする方が社会にはちゃんといるんだ、と感動しています。

他にも蒔いてる種がちょっとだけあるのですが、それはもうすぐお披露目されると思うので、お楽しみということで。

というわけで、自分なりに目的意識を持って、人と関わる、人と一緒につくる、ということをやってきたつもりの 2019 年でした。とは言うものの、忙しかったり疲れたり、必ずしも常に気を配って過ごせていたわけではなかったのですが、結果としては「目的として意識してよかったな」と思える大満足な結果になったかと思います。

ただ、これはどれも関わってくれた、支えてくれた人たちのおかげで、当然一人で達成できるタイプの目標ではなかったので、迷惑をかけたことも多かったと思います。ですが、過度に自らを律しすぎず、「お互い様」精神で迷惑をかけることも、かけられることも自然と受け入れられるようになれたのなら、少しは成長できたのかな、と感じます。周りから見たら迷惑なおっさんが発生しただけにみえる…と今気づいてしまいましたが、そこは一旦目をつぶっておこうと思います。

できたこと・やれたこと

完全に期せずしてできたこと・やれたことといえば、ずっとコンプレックスだったお絵かきを始めることができました。

一端のオタクなので、やはり絵を描くということにはちょっとした神聖性を感じずにはいられないのですが、どうにもセンスが無いというか、人生で幾度となく挑戦しては挫折して、「自分には絵のセンスがないんだ」と自分を納得させてきました。ですがここ数年、ありがたいことに絵を描く友人・機会に恵まれ、「iPad Pro がお絵かきデバイスとしていいらしい」なんて話も重なって、昨年末から iPad Pro お絵かきマンとしてデビューしました。

挫折した、なんて言っていますが、今までどう描いていいかまったくもって見当もつかず、ほとんど手を動かすこともかなわないまま、ただちょっと描いては諦めていただけだったのですが、信頼できる友人に絵を見てもらい、レクチャーをしてもらうことできっかけを掴んで、絵を描き始めることができました。

なんだかんだ言ってこれも人の縁のおかげということで、なんだか今年は特別な年だったんだなぁ、と振り返ってみてひしひしと感じています。人脈が大事!という人間は信用できないですが、刺激を受けられるよい友人の存在は代えがたいですね。

ちゃんと仕上げたのは 6 枚ぐらいしかないんですが、自慢します。

f:id:biacco42:20191226032248p:plain:w420
びあっこちゃん

まともに描いた絵としてはこれが初です。ほぼ週刊キーボードニュースのリリース期限が迫っていた 1 月、必死で描いたのを覚えています。よく絵もかけないのに VTuber にいきなりなろうとしたなと、我ながら驚きます。

f:id:biacco42:20191226034045p:plain:w420
現場ぺかそちゃん

なんか突然描いてみたくて描いた。当時は本当に全然描き方がわからなくて、これ描くのに 4 時間ぐらいかけたんじゃないかと思います。アホでは?

落書き20190701www.pixiv.net

習作。このころから本格的に、神絵師に 囲んで棒で叩かれながら 優しく指導していただきながら練習をはじめました。これは好きな作家さん (ぎゃりん先生) の絵をトレース、模写練習をした後、手に感覚が残っているうちになぐり描きしたものです。当時は顔のパーツや輪郭などを完全に感覚というか何も理解せずに描いていたので、今見るとよく描けたなって感じがします。

びあっこちゃん 201908www.pixiv.net

「いや、びあっこちゃん描けよ」というあまりにもまっとうな指摘を受けて描きました。背景もちゃんと描いたえらい。まだこのころは骨格等の意識が曖昧だったはず。よく描けたな (2)。

立花先生が無限にかわいいwww.pixiv.net

ダンベル何キロ持てる?ブームで、同作品より立花先生。キーボード然り、愛はやっぱり原動力ですね。

健屋花那「それなー」www.pixiv.net

VTuber 事務所のにじさんじより、健屋花那。これはきちんと骨格等を意識して描きました。ポージングなんかも、骨格表現の練習としてつけたフシがあります。この絵はなんと健屋本人に使ってもらうことができました!生きていてよかった…

という感じで、今年は新しいこと、それも苦手意識を持っていた絵を描くことを始められました。絵を描く世界は過当競争で、とても自分がなにか意味のあることをできるとは思えないですし、「そんなことしてる時間でもっと価値のあることを…」という指摘も尤もなんですが、キーボードも絵も「自分が欲しい物」が市場にない以上自分で作るしかない、そして少なくとも絶対自分は得をするので、自分のためにやり続けようと思います。

まとめ

というわけで、後半は完全に自己満でしたが、振り返ってみると基本的に今年もキーボードを中心に生活が回っていたんだなぁ、という感じの 1 年でした。ずっと言及を避けていましたが、modulo! ほそぼそ試作開発を続けています!ちょっとどころじゃなく遅れていて申し訳ないですが、2020 年は modulo year にする (なる) ので、よろしくお願いします!

では、また来年。自作キーボードのたのしみが、より多くの方に広がって社会の総幸福が増えますように。

この記事は Ergo42 Towel (Gateron Silent Red Stock / Big Bang / Eucalyn 改配列) で書きました。 (7125文字 / 3 時間)

meishi2 keyboard ビルドガイド

meishi2 - The updated micro macro keyboard をご購入、もしくはリポジトリから製造いただきありがとうございます。この記事では、meishi2 keyboard の組み立て方を簡単に紹介します。

f:id:biacco42:20190810163730j:plain

必要なパーツ

f:id:biacco42:20190810163701j:plain

f:id:biacco42:20190810164057j:plain

項目 数量
meishi2 PCB 1
Pro Micro 1
ダイオード(1N4148) 4
リセット用タクトスイッチ(5 mm ピッチ 2 本足) 1
クッションラバーシール 4
キースイッチ (Cherry MX 互換 / Kailh Choc) 4
キーキャップ 4

※キースイッチとキーキャップは別売りです

(オプション) 組み立てに必要・あると便利な道具

白光 ダイヤル式温度制御はんだこて FX600

白光 ダイヤル式温度制御はんだこて FX600

温度調節機能が便利(ない安物は温度が高すぎてはんだづけが難しいし基板焼いちゃいやすい)。加温も早くてよいです。

白光(HAKKO) こて台 633-01

白光(HAKKO) こて台 633-01

コテ台も安いのもあるんだけど、熱いものを扱うのでちゃんと固定できる・保護できるものがおすすめ。これはコテ先クリーナーもついていて、スポンジに水をつけるタイプと比べてもめちゃめちゃ扱いやすいので総合的にお得だと思います。

goot はんだ吸取り線 CP-3015

goot はんだ吸取り線 CP-3015

はんだ吸取り器があったほうがよい場合も多いんだけれど、自作キーボード、多分そんなにはんだをミスったりするような複雑な部分もないし、とりあえずはこれだけあれば十分。

バイスの余った脚を切るのに必要。

これぐらいあればこのキーボードを作る分には十分だと思います。

はんだづけ

はんだづけは、合金であるはんだ線を高温で溶かして、2 つの金属接点を電気的に接続して固定する方法です。はんだは接着剤ではなく、きちんと加熱して接点同士を合金として接合しないと正しく動作しないです。 というと難しそうですが、 はんだは温度が高い方に流れる という基本ルールさえ押さえれば基本は大丈夫です。

はんだづけする際は、上記の はんだは温度が高い方に流れる の原則に沿って、まずは繋ぎたいパッド (写真の丸い輪っか状の銀色の部分) と端子 (写真のコンスルーの金色の棒) をはんだごてのコテ先で加熱します。このとき、母材 (繋ぎたいパッドと端子) を温めるのが目的なので、まだはんだ線は 溶かしません 。3 ~ 5 秒程度、十分に母材を温めてから、はんだ線をコテ先につけてはんだを溶かして流します。この時、母材が十分に温まっていれば、自然とはんだが母材に吸い付くように流れます。富士山型になる程度、軽くはんだを流し込んだら、はんだ線を離し、その後にはんだごてを離します。

f:id:biacco42:20190810171542j:plain 1. まず母材を温める

f:id:biacco42:20190810171559j:plain 2. はんだ線をつけてはんだを流す

組み立て

基本的には、すべてのパーツを正しく配置して、はんだづけしてキーキャップ・脚シールをつけるだけです。はんだづけの基本は背の低いパーツから、なのでその順番で付けていきます。パーツはロゴマークがついている側につけていきます。

f:id:biacco42:20190810184615j:plain 完成図

ダイオード

ダイオードの向き

ダイオードという部品は基本的には一方向にだけ電流を流す整流用に使われます。なので、どちらに電流を流すかという 向き の概念があります。この向きを間違えると正しく動作しません。

f:id:biacco42:20190810171111j:plain

写真のダイオードの右側、黒い線が入っている側が カソード、逆に入っていない側が アノード といい、アノード側からカソード側に向けて電流が流れます。

f:id:biacco42:20190810171251j:plain

キーボードに固定する際には、この黒線の入ったカソード側を、基板の白線のある側、四角いパッド側に向けてセットしてください。

f:id:biacco42:20190810175727j:plain

f:id:biacco42:20190810175748j:plain

ダイオードを差し込むときは、ダイオードの根元付近でリード (銀色の線の部分) を折り曲げて、スルーホール (銀色の穴) に通してください。通した後、軽くハの字型にリードを広げると固定されてはんだづけがしやすくなります。

タクトスイッチ

続いて、タクトスイッチをはんだづけします。タクトスイッチには向きがないので、スルーホールに通してはんだづけをするだけでオッケーです。

Pro Micro

コンスルーの固定方向

遊舎工房で販売されている meishi2 キットにはコンスルーという、基板にはんだづけしなくても抜き差しが可能になるパーツが付属しています。コンスルーがある場合は Pro Micro にコンスルーをはんだづけします。コンスルーを Pro Micro の部品実装面と逆側になるようにはんだづけします。

f:id:biacco42:20190810183033j:plain

コンスルーには向きがあり、金色の軸が側面から見える側 (窓側) が同じ向きになるように、また窓が端子に近い側を Pro Micro 側になるように揃えます。

f:id:biacco42:20190812023802j:plain

Pro Micro の固定方向

f:id:biacco42:20190810184615j:plain

上記写真のように、ロゴマークが入っている面を上にして、Pro Micro の USB 端子が基板の外に向くように設置します。

キースイッチの固定

この基板は Cherry MX / Kailh Low Profile 両対応仕様です。3 pin 仕様のキースイッチ (固定用の脚が出ていないもの) だと多少の遊びがあり斜めにキーを固定できてしまいます。そのため、5 pin 仕様のキースイッチ、もしくは、はんだづけする際に、セロハンテープ等でスイッチの向きを固定してはんだづけすることをおすすめします。

f:id:biacco42:20190810184054j:plain 5 pin 仕様のキースイッチ

完成状態

f:id:biacco42:20190810184615j:plain 表面

f:id:biacco42:20190810184556j:plain 裏面

ファームウェア書き込み

組み立てが完了したらファームウェアをビルドして書き込みます。meishi2 keyboard では QMK Firmware が利用できます。

QMK Firmware

ここでは詳細は省きつつ、ファームウェアをビルドしてインストールする手順と、キーマップの変更方法を「黒い画面」を使わない方法と、CUI で行う方法の 2 つで簡単に紹介します。

「黒い画面」を使わずにビルド・書き込み

なんと 2019 年にもなると、黒い画面を使わなくてもファームウェアをビルド・書き込みできるようになりました🎉

手順が、以下の動画で紹介されているので参考にしてみてください。動画中で Ergo42 としているところを meishi2 に読み替えるだけでオッケー (なはず) です。

また、サリチル酸さんの入門記事もまとまっていておすすめ です。


基礎からわかる!自キ入門講座 第12回「ファームウェアのカスタマイズ」

CUI でビルド・書き込み

QMK firmware documentation でデフォルトで紹介されている方法はこちらになります。CUI に慣れている人は、マクロ機能等自由な拡張ができる他、内部で何が起こっているかわかりやすくなるので、やってみるのも一興です。

ファームウェアの実装とビルドの詳細については QMK firmware documentation のドキュメントを参照してください。

環境構築

Git

まず Git が必要です。Windows / Mac / Linux 環境でそれぞれにインストール方法が異なるため、それぞれのプラットフォームの Git をインストールしてください。

Mac でかつ brew がインストールされていれば (brew についてはここでは説明しません)

$ brew install git

DebianLinux であれば

$ sudo apt install git

等でインストールできます。とりあえずファームウェアのビルドの目的だけであればこれで大丈夫です。

Git が準備できたら、ソースをダウンロードします。

ソースコードをダウンロードしたいディレクトリに移動して

$ git clone https://github.com/qmk/qmk_firmware.git

ソースコードを取得できます。

Build 環境

Mac / Linux の場合

QMK のプロジェクトルート配下の util/qmk_install.sh を実行することで、ビルドに必要な依存が解決されます。

$ ./util/qmk_install.sh

Linux の場合だと特権を要求されるので、

$ sudo ./util/qmk_install.sh

としてください。

Windows の場合

こちらの MarchRaBBiT さんの Windows 向け環境構築ガイド を参照して msys2 での環境構築をしてください。

ファームウェアのビルドと書き込み

組み立てた meishi2 キーボードを USB ケーブルで PC に接続しておいてください。

ビルド環境が構築できたら、ファームウェアをビルドします。

$ make meishi2:default:avrdude

でビルドとインストールをいっぺんにできます。途中リセットしろよという旨のメッセージが出るので、そこでリセットボタンを 1 回または 2 回連続で押します(ブートローダーによって挙動が異なるようです)。リセットを検出すると自動的に書き込みが始まります。

Linux 環境の場合は書き込みに特権が必要かもしれないので、権限不足で書き込めなかった場合は

$ sudo make meishi2:default:avrdude

としてください。

動作の確認

正常にファームウェアが書き込めたら、キーボードとして認識されて動作するはずです。default キーマップでは左から順に Ctrl-z Ctrl-x Ctrl-c Ctrl-v の配置になっています。動作が確認できたら meishi2 キーボードの完成です!お疲れ様でした。コピペがはかどりますね。

ファームウェアの改造

以上の工程でキーボードは完成しましたが、せっかくの自作キーボードですからコピペ以外にも使えるようにしたくなります。そのためにはファームウェアの改造が必要になります。その方法を簡単に紹介します。

meishi2 キーボードのキーマップを変更するには、キーマップが記述されている <QMK firmware root>/keyboards/meishi2/keymaps/default/keymap.c を編集します。また、新たに名前をつけてキーマップを作成したい場合は default ディレクトリをコピーして適当に名前を変えて keymap.c を編集してください。その際ビルドコマンドは

$ make meishi2:<your keymap directory name>

になります。

keymap.c で実際にキーマップが定義されているのは

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = KEYMAP( /* Base */
  LCTL(KC_Z),  LCTL(KC_X),  LCTL(KC_C), LCTL(KC_V) \
),
};

の部分、特に LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V) の部分になります。これが左から順番にキーの割当を表しています。簡単ですね。

このキーマップに指定するキーの一覧については QMK firmware documentation の Basic KeycodesAdvanced Keycodes に一覧があります。初期状態だと、LCTL(KC_Z) のような形で、Ctrl と Z の同時押しを表現しています。 LCTL を外せば単なる Z キーになりますし、MEH(kc) とすれば Ctrl+Alt+Shift+kc が一発で入力できます。その他にもメディアキー(音量操作等)や電源キー(KC_SYSTEM_POWER)等の便利キー系もあるので、いろいろ試してみてください。

また、ここでは説明しませんが、マクロ機能もあり、あるキーが押されたら一定の複雑なキーコードや文字列を送信することもできます。5000 兆円欲しい!キーボードとか。

お疲れ様でした

ここまで来たらあなたも立派な自作キーボーダーです。おそらくここまでたどり着けたなら、他のより高度な自作キーボードについてももう自分で作ることができるようになっていると思います。

しかしここで触れた内容は自作キーボードのほんの一部に過ぎません。キーキャップやキースイッチにこだわるのも楽しいですし、QMK firmware にはここでは紹介しきれなかったたくさんの機能があります。ぜひ、このキーボードをそういった次のキーボード道の道標として利用していただければ幸いです。

ようこそ自作キーボード沼へ!

Help

組み立ての際に困ることやトラブル等あるかと思います。その際には Twitter@Biacco42 にリプライを飛ばしていただくか、Self Made Keyboard in Japan Discord server で相談していただければ対応します。特に Self Made Keyboard in Japan Discord server には私以外にも自作キーボードを製作している方がたくさんいるので、より多くのアドバイスを得られるかと思います。大変気楽なコミュニティですので、ぜひこちらの利用も検討してください。

おわり

Maker Faire Tokyo 2019 に Self-Made Keyboards in Japan が出展します!

今年も Maker Faire Tokyo が 2019 8/3 ~ 8/4 に開催され、Self-Made Keyboards in Japan Discord 有志メンバーが今年も出展申し込みしています!

2018 年は自作キーボードが大きく羽ばたいた 1 年でしたが、2019 年、より裾野を広げ、多様性を増し、よりパワーアップした自作キーボードの世界を展示予定です。

f:id:biacco42:20190508020540j:plain

今後の展示当落情報・展示内容等はこの記事を随時更新して提供する予定です。おたのしみに!

f:id:biacco42:20181225003000j:plain

C95 たのしい人生お品書き

この記事は 自作キーボード Advent Calendar 2018 その 3 の 24 日目の記事です。

adventar.org

昨日ははのちゃさんの キースイッチが可愛い話 & キースイッチを愛でるアプリの話 でした。

メリクリ

メリークリスマス。みなさん良いクリスマスを過ごされたでしょうか? 私はこの時間に 24 日の Advent Calendar 投稿を行っている時点でお察しください。

なんにつけても脱稿しました! C95 は新刊と新自作キーボードキットが!でます!!!
(新キットは動作検証が取れたら出ますが、大丈夫なはず)

C95 お品書き

コミックマーケット C95 2日目 12/30(日) 東6 ナ18a たのしい人生 (Biacco42) で出展します。

本の部

KbD C95

出ます!

f:id:biacco42:20181228173735p:plain

今回はちょっといろいろやりすぎた部分も多く、結果として工数が爆発したりしてアレだったのですが、結果として観れる本・飾れる本にはなっていると思います。正直言ってかっこいいです。

f:id:biacco42:20181225002156p:plain

フルカラーで 1000 円になります。前回の瞬殺よりはだいぶ部数を刷ったので、即なくなることはないとは思いますが…

KbD C93

少部数ですが、既刊である KbD C93 も持っていきます。

f:id:biacco42:20181225002514j:plain

今回新刊が、用語説明とかをかなり端折っているので、沼の住人でない場合はこちらも買っていただいたほうがいいかもしれないです。

自作キーボードキットの部

Modulo Black Pill Pendant and Ergo42 Modulo Beta

動作検証がとれたら出ます。写真は Ergo42 Modulo Alpha ですが外見的には変わらないはずです。アクリルが新しい設計になったのでもうちょっとケースがきれいになるかも。

動作検証できましたので Ergo42 Modulo Beta / Modulo Black Pill Pendant 頒布あります!

f:id:biacco42:20181228174042j:plain

f:id:biacco42:20181228174245j:plain

Beta 版ということで、基板とケースの材料のみの販売です。電子部品及びネジ等のパーツは自分で揃えていただくキットになります。ただ、Alpha 版と違って動作検証ができているので、その点は安心できます。7 台限定 7000 円です。

Modulo BT Pendant Alpha

Modulo 準拠キーボードに差し込むだけで無線化できる Modulo BT Pendant の Alpha 版がなんとはやくもコミケで登場します! 1 つ 3000 円。

Ergo42 Towel

白アクリル Ergo42 Towel を 5 台限定会場価格 10,000 円で頒布します。

f:id:biacco42:20181008105334j:plain

おわり

というわけで、12/30(日) コミケでお待ちしております。

以上、脱稿後の限界オタクでした。

この記事は Ergo42 Modulo Alpha + Kailh Pro Burgundy + Eucalyn 改で書かれました。

モジュラーな自作キーボードアーキテクチャを求めて

この記事は 自作キーボード Advent Calendar 2018 その 1 の 12日目の記事です。

adventar.org

昨日は IKeJI さんの 今年作ったキーボードまとめ でした。

この記事では Modulo という新しい自作キーボードのアーキテクチャとその展望について紹介します。

f:id:biacco42:20181212220440j:plain
30 分前に動くようになった Modulo Series の試金石 Ergo42 Modulo Alpha

Modulo とは

Modulo は名前からもこの記事のタイトルからも分かる通り、モジュラーな設計が可能な自作キーボードアーキテクチャの名前です。大きく分けて、MCU を持つ Pendant Module と、いわゆるキーボートやトラックパッドなどの Input Module の 2 つの Module から成り立っています。

f:id:biacco42:20181213031759p:plain
Modulo イメージ図

Modulo について、よく自作キーボードに使われる プロジェクト と言う言い方ではなく アーキテクチャ という言葉を使っていますが、これは Modulo が、私が設計するキーボードに特異な ―たとえば Ergo42 の次世代機― の設計というわけではなく、多くの自作キーボードに適用可能な汎用的な設計・仕組みであることを表しています。もっと言えば、Modulo は自作キーボードにおける 規格のようなもの 、ソフトウェア的な言い方をすれば フレームワーク と言ってもいいかもしれません。

なにがうれしいの?

モジュラーな設計の最大の旨味は、車輪の再発明の大幅な削減が期待できることです。また、自作キーボードの場合、副次的な効果として MCU のキーボードからの分離による小型化・薄型化が期待できます。具体的にどんなうれしいことがあるか、いくつか考えてみます。

  • MCU がキーボードから離れるため 小型化・薄型化 がしやすい
  • Pendant / Input Module のインターフェースが規定されているので機能の追加・交換・共有が簡単
    • 新しいキーボードを設計するときに Pendant の実装部分については考える必要がない
    • Pendant を Bluetooth 対応のものに差し替えるだけで 追加開発なしに無線化 が可能
  • カスタマイズが簡単
    • このキーボードにテンキーパッドがついていればいいのに…というとき新規設計なしに 既存の Input Module の組み合わせでカスタマイズ が可能
    • トラックパッド等のキーボード以外の Input Module も登場予定で簡単に追加ができる

などなど、でしょうか?

前述の通り Modulo をフレームワーク、たとえば Ruby on Rails のアナロジーで考えてみると、みんなで同じ機能を何度も開発せずに、gem を組み合わせてサービスを構築する、というのを想像してもらうとしっくり来るかもしれません。

Why Modulo?

私はもともと ErgoDox という自作キーボードを使っていて、それはそれでメチャメチャにかっこよくてある種の完成形だと今でも思うのですが、それでもいくつか不満点が出てきてしまい、勢い余って Ergo42 というキーボードを自分で設計するに至りました。その顛末については 以前詳しく書いたので そちらを参照していただきたいのですが、Ergo42 でほぼ End Game だなと思っているものの、今度はその開発プロセスに対して不満が出てきてしまいました。

車輪の再発明と学習コスト

近年良く見かける QMK に準拠した自作キーボードの設計は基本的に

  • 一体型で、キーボード基板に Pro Micro 等の開発ボードや MCU を直接実装したもの
  • 分割型で片手の基板に開発ボード / MCU を、もう片手の基板には I/O Expander 等を実装したもの (ErgoDox 型)
  • 分割型で両手の基板ともに開発ボード/ MCU を実装したもの (Let's Split 型)

の 3 つに大別でき、いずれもキーボードの基板と MCU が一体となった設計となっています。市販のキーボードもそういった設計なので、自然な発想と言えます。

ですが、 ぼくのわたしのかんがえたさいきょうのキーボード を自分で設計しようと思うと、すべての機能がキーボード基板に詰め込まれているため、

  • 既存の全部入りキーボードの設計を読み解き設計意図を解釈し
  • 複数ある実装手段についてそれぞれの比較評価を行い
  • すべての機能を改めて自分で実装し直す

というかなり冗長でコストの高い手順を踏まなければいけません。

よくよく考えてみるとわかるのですが、自作キーボードを設計しようという動機の概ねはキースイッチの物理配列を変更したいという要求ではないかと思います。スイッチの物理配列を変えるために、MCU の仕組みやマトリックス回路について知らなければならない、ましてや設計実装まで行わなければいけないのはあまり DRY とは言えません。知らなくていいところはできればブラックボックスとして扱えるようにするのがエンジニアリングの常套手段です。

また、最近では無線化やトラックボールの実装など新たな機能の開発も活発に行われています。それらについても、それぞれのキーボード設計者が個別に調査し重複する設計実装をするのはあまりにももったいない し私がやりたくない ので、自作キーボードにもモジュラーな設計を導入し、エンジニアリングできないかと考えたのが Modulo です。

Modulo の現在とこれから

Ergo42 Modulo Alpha

Modulo は現在開発中でありまだまだこれからですが、5 月に Tokyo MK で展示した原理検証を始めてから、ついにキーボードとして使えるところまではたどり着くことが出来ました!(2018/12/12 現在)

天キーで頒布させていただいた、Ergo42 をベースにした Ergo42 Modulo Alpha が無事動作しており、これにて Modulo の基礎的な技術検証は完了したことになります。Ergo42 Modulo Alpha では Modulo 型の設計により、Cherry MX 互換スイッチを搭載するキーボードとしてはほぼ最薄となる本体厚さ 9 mm も実現することが出来ました。

f:id:biacco42:20181213054334j:plain

アクリルの加工精度の問題等改善すべき点はまだまだありますが、一旦キーボードとしては満足して使えるレベルになっています。今後は Ergo42 だけでなく新しい設計のキーボードの横展開も計画しています。

Modulo Track Pad & Modulo BT Pendant

@_gonnoc さんの協力の下、Modulo Series として接続できるトラックパッド Modulo Track Pad と、無線化 Module の Modulo BT (Bluetooth) Pendant の開発が進行中です。今後公開予定の Modulo Series のキーボード / 公開予定の Modulo 仕様に準拠したキーボードに装着するだけで無線化できるようになるよう開発を進めています。

Lime40 with Modulo (仮)

現在 @eucalyn_ さんが開発中の曲面配置キーボード Lime40 の Modulo Series 対応検討を進めています。また、Lime40 のような立体形状 / 空中配線キーボードに使いやすいような Modulo Breakout が計画されています。

C95 (冬コミ)

C95 2日目(日) 東 ナ-18a にて、たのしい人生が出展します!

Ergo42 Modulo Alpha / Modulo Pendant Alpha をベースに Ergo42 Modulo Beta-1Modulo Pendant Beta-1冬コミにてリリースできればと思っています (届けば)。また、欲張って他のデザインのキーボードの Modulo 版も出せれば出すかもしれません。

同時に Modulo BT Pendant についても、冬コミにて参考出展ないし頒布で準備を進めています!続報をお待ち下さい。

また、この Modulo について詳しく解説した KbD C95 という薄い本もリリース予定です。この記事で興味を持っていただけた方に、より一層詳しい Modulo の情報を提供できる本になる予定です (それ以外にも自作キーボードの情報を掲載予定です)。

Future Work

現在 Modulo Pendant はよく自作キーボードで使われる AVR ではなく ARM Cortex-M シリーズで開発されています。現在のファームウェアは QMK をベースに開発を行っていますが、C 言語書くのが大変とか個人的な趣味とかで Rust で ARM 向けファームウェアを開発する計画もあります (今止まってますが…)。いずれは、ハードウェアの設計のリファクタリングに合わせて、ソフトウェアの方も刷新していけたらたのしそうだなぁと思っています。

また、Modulo はキーボード側の設計がかなり単純化されるので、GUI でキースイッチ配置決めたら基板がポン as a Service できたらいいなぁとは思っています。思ってばっかだなお前。

まとめ

というわけでちょっと駆け足でしたが、いかがでしたでしょうか? この記事を通して Modulo シリーズや、自作キーボードそのものに興味を持っていただければ幸いです。

そしてそれらに興味を持っていただけたなら、ぜひ Self-Made Keyboards in Japan Discord Server も覗いてみてください。現在 900 人ほどのメンバーでワイワイやっています。Modulo の開発状況の共有や、開発にコミットしてくださる方とのディスカッションの場もこちらになっています。ぜひに。

以上、自作キーボード Advent Calendar 2018 その 1 の 12 日目に記事でした。明日 (今日) 13 日目はみなもさんの オリジナル自作キーボード開発(2D)を早足で説明する です。時空が歪んでいる。

この記事は Ergo42 Modulo Alpha + Kailh Pro Burgundy で書かれました。

The Beauty of Self-Made Keyboards

TL;DR

この記事は、最近話題になっている 自作キーボードを始めた人・これから始めたい人向け に、自作キーボードを実際に使ってみるとどうなのか?本当に使えるの?という疑問を解消するために書かれました。特に 自作キーボードって変な形してるけどちゃんと使えるの?どうやって入力するの? という点について、自作キーボードでの 具体的な入力方法を動画付きで解説 します。

自作キーボード 実用 入門

最近いたるところで自作キーボードの話題を見るようになり、本当に自作キーボード流行ってきていますね。

speakerdeck.com

qiita.com

techlife.cookpad.com

scrapbox.io

japanese.engadget.com

“究極”のThinkPad X1 Extremeに新型スマートウォッチ、はんだで作るキーボードを生チェック、ポチったのは? - ITmedia NEWS

【PR】KbD C93 印刷版再入荷しました & Ergo42 complite キット販売中

booth.pm

tanoshii-life.booth.pm

本日開催の 技術書典5 でも、いくつかのサークルが自作キーボードに関連する出展を行っています。今この記事を読んでいる方も、少なからずこういった最近の盛り上がりを見聞きして自作キーボードに興味を持たれたのではないかと思います。

一方で、現在巷にあふれている自作キーボード情報は、自作キーボードの組み立て方法や自作キーボードの完成形の情報等がほとんどで、自作キーボードを作る理由、そして 自作キーボードを使う理由・使うことでどういった事ができるのか についてはあまり言及されていないようです。これは自作キーボードという文化がまだまだ日本では未知で、そもそもどうやって始めていいのかという入門のハードルが高かったことや、自作キーボードで先行していたアメリカでの文化が photogenic な傾向にあり、日本における自作キーボードもこの文化の流れを多分に汲んでいることなどに起因していると思われます。

身近に自作キーボードを使っている人がいれば、実際に自作キーボードを触ったり、使っている人から話を聞いたりする機会が得られるかと思うのですが、まだまだそういった機会は十分には多くはないのが現状です。そこで、実際に私が作っている自作キーボード Ergo42 での打鍵動画を参考に、自作キーボードでどのように入力するのか、自作キーボードだとどううれしいのかご紹介します。

自作キーボードでの入力

まずは動画を観てみてください。

www.youtube.com

Ergo42 は自作キーボードの中ではそれほど少なくないキー数の、いわゆる 60 %キーボードというものに属していますが、それでもご覧の通りファンクションキーはおろか数字キーの行もありません。カーソルキーもありません。ですがご覧の通り数字や、それだけでなく記号もしっかり入力できていますし、この動画ではわからないですがファンクションキーももちろん入力できます。このような少ないキー数でしっかりフルサイズのキーボードと同様の入力ができる、自作キーボードでは常識で一般的には非常識な、いくつかの仕掛けがあります。

ハードウェアとソフトウェア

そもそも自作キーボードの両輪として、ハードウェアとソフトウェアという両方の要素が必要です。ハードウェアは写真で見たとおりスイッチがたくさん並んだものですが、ソフトウェアとしては一般にファームウェアと言われる 押されたスイッチに対応したキーの情報をコンピューターに送る ものが存在します。ハードウェアは自作というのが 見た目にわかりやすい ですが、この目に見えない ファームウェア というものもオープンソースで自分たちでカスタマイズが可能になっていて、こちらのソースコードを変更することで様々なカスタマイズが可能になっています。このカスタマイズ性によって、上記の動画のような比較的キー数の少ないキーボードでも自由な入力が実現されています。

レイヤー切り替え

自作キーボードではずせない、必須の機能としてあげられるのが、 レイヤー切り替え機能 です。この機能はざっくり言うと、ラップトップ PC でよく見る Fn キーと同様のもので、レイヤー切り替えキーを押すことで一時的にキーの配置を変更することができる機能です。例えば、上記の動画で使っているキーマップでは、メインのアルファベットのレイヤー、数字・ファンクションキー・カーソルキー等のレイヤー、記号レイヤーの 3 つのレイヤーを使っています。

Base Layer (アルファベット)

,------------------------------------------------.   ,------------------------------------------------.
| Tab  |   Q  |   W  |   E  |   R  |   T  |  [   |   |  ]   |   Y  |   U  |   I  |   O  |   P  |  @   |
|------+------+------+------+------+------+------|   |-------------+------+------+------+------+------|
| Alt  |   A  |   S  |   D  |   F  |   G  |  (   |   |  )   |   H  |   J  |   K  |   L  |   ;  |  :   |
|------+------+------+------+------+------+------|   |------|------+------+------+------+------+------|
| Sft  |   Z  |   X  |   C  |   V  |   B  |  {   |   |  }   |   N  |   M  |   ,  |   .  |   /  |\/Sft |
|------+------+------+------+------+------+------|   |------+------+------+------+------+------+------|
| Ctrl | GUI  |  App |PrtSc |ESC/  |Space/|Tab/  |   |Back  |Enter/| Del  |PrtSc |=>GAME|=>SYMB|  \   |
|      |      |      |      |~SYMB |RCtrl |Shift |   |Space |~META |      |      |      |      |      |
`------------------------------------------------'   `------------------------------------------------'

Meta Layer (数字・ファンクションキー・カーソルキー等)

,------------------------------------------------.   ,------------------------------------------------.
|   1  |   2  |   3  |   4  |   5  |   6  |  [   |   |  ]   |   7  |   8  |   9  |   0  |   -  |  ^   |
|------+------+------+------+------+------+------|   |-------------+------+------+------+------+------|
| Alt  |  F1  |      |Muhen | Henk |      |  (   |   |  )   | Left | Down |  Up  |Right |      |      |
|------+------+------+------+------+------+------|   |------|------+------+------+------+------+------|
| Sft  |  F2  |  F3  |  F4  |  F5  |  F6  |  {   |   |  }   |  F7  |  F8  |  F9  | F10  | F11  |\/Sft |
|------+------+------+------+------+------+------|   |------+------+------+------+------+------+------|
| Ctrl | GUI  |  App |PrtSc |ESC/  |Space/|Tab/  |   |Back  |Enter/| Del  |Reset |=>GAME|=>SYMB|  \   |
|      |      |      |      |~SYMB |RCtrl |Shift |   |Space |~META |      |      |      |      |      |
`------------------------------------------------'   `------------------------------------------------'

Symbol Layer (記号)

,------------------------------------------------.   ,------------------------------------------------.
|   !  |   "  |   #  |   $  |   %  |   &  |  [   |   |  ]   |   '  |   (  |   )  |   ~  |   =  |  ~   |
|------+------+------+------+------+------+------|   |-------------+------+------+------+------+------|
| Alt  |      |      |      |      |      |  (   |   |  )   |      |      |      |      |   +  |  *   |
|------+------+------+------+------+------+------|   |------|------+------+------+------+------+------|
| Sft  |      |      |      |      |      |  {   |   |  }   |      |      |   <  |   >  |   ?  |  \   |
|------+------+------+------+------+------+------|   |------+------+------+------+------+------+------|
| Ctrl | GUI  |  App |PrtSc |ESC/  |Space/|Tab/  |   |Back  |Enter/| Del  |PrtSc |=>GAME|=>SYMB|  \   |
|      |      |      |      |~SYMB |RCtrl |Shift |   |Space |~META |      |      |      |      |      |
`------------------------------------------------'   `------------------------------------------------'

このようにレイヤーを使うことでキー数を実質何倍にもすることができるため、物理的にかなり少ないキー数でも不足のない入力ができるようになっていて、自作キーボードの 物理的なレイアウトの自由度が高まって います。

長押し

もう一つ、普通のキーボードと大きく異なる自作キーボードの特殊な機能として、長押しでキーの機能を変えられる というものがあります。上記のキーマップだと / で区切られているものが <短押し>/<長押し> のキーマップになっています。この操作は通常のキーボードにはまずないモノでかなりトリッキーですが、うまく使うとより少ないキー数・指の移動量で打鍵をすることができます。個人的におすすめなのが親指の Space キーを長押しにすることで Ctrl キーになるというもので、これがあると Ctrl を小指で押すという不合理から開放されるので、コピペ操作が頻出する方も 目が 5 個の宇宙人 を信仰している方も小指がダメになるリスクを大幅に低減できます。

独自配列

勘のいい方はすでに気づいているかもしれませんが、このように自作キーボードではソフトウェアでキーの配置を自由に決められるので、当然 アルファベットの配置も自由 にすることができます。現在通常用いられているキー配列は QWERTY と呼ばれるものですが、これは歴史的な背景やなんやかんやいろいろあって、合理的な配列ではないという話や実は打鍵速度的にはいいという話等錯綜しているのですが、すくなくとも 指の移動距離は比較的長い配列であることは知られています

そこで、より合理的なモダンな配列を考えようという話になるのですが、この分野で言うと有名なのは Dvorak 配列で、これはみなさん聞いたことはあるんではないかと思います。ただ、一般に Dvorak 配列のキーボードというものは売っていないため、専用のソフトウェアなどで対応していました(が、外部デバイスから入力されるキーをソフトウェアで差し替えるという操作になるため、不具合が多かったりもしたようです)。

ですが、自作キーボードならキーマップは完全に自由で不具合フリー [要出典] です!こういったカスタマイズ可能なキーボードの出現の流れも手伝ってか、最近では新たな 僕の私の考えた最強のキーマップ が誕生してきています。その中でも、おそらく最も新しい世代のキーマップの一つが Eucalyn 配列です。

eucalyn.hatenadiary.jp

Eucalyn 配列は、Dvorak 配列同様左手のホームポジションに母音を並べることで左右交互打鍵を基本的な設計にしつつ、zxcv のようなショートカットキーとしてよく用いられているキーは QWERTY の位置を保つようにし、vim キーでカーソルに相当する hjkl をカーソルキー型の形状に配置するなど、移行コストを抑えながらホームポジションからの移動量が少ないキーマップを実現しています。

私はこの Eucalyn 配列を改変した Eucalyn 改配列を最近は使っていますが、その Eucalyn 改配列と QWERTY 配列との打鍵比較動画が以下になります。

www.youtube.com

動画中で使った Eucalyn 改配列

,------------------------------------------------.   ,------------------------------------------------.
| Tab  |   ;  |   ,  |   .  |   P  |   Q  |  [   |   |  ]   |   Y  |   G  |   D  |   M  |   F  |  @   |
|------+------+------+------+------+------+------|   |-------------+------+------+------+------+------|
| Alt  |   A  |   O  |   E  |   I  |   U  |  (   |   |  )   |   B  |   N  |   T  |   R  |   S  |  :   |
|------+------+------+------+------+------+------|   |------|------+------+------+------+------+------|
| Sft  |   Z  |   X  |   C  |   V  |   W  |  {   |   |  }   |   H  |   J  |   K  |   L  |   /  |\/Sft |
|------+------+------+------+------+------+------|   |------+------+------+------+------+------+------|
| Ctrl | GUI  |  App |=>BIAC|ESC/  |Space/|Tab/  |   |Back  |Enter/| Del  |PrtSc |      |      |  \   |
|      |      |      |      |~SYMB |RCtrl |Shift |   |Space |~META |      |      |      |      |      |
`------------------------------------------------'   `------------------------------------------------'

動画を見ていただければわかるかと思うのですが、ホームポジションからの移動量が少なくて快適な打鍵ができています。アルファベット配列の変更はそれなりにコストが高いですが、うまくやれば QWERTYバイリンガルにはなれますので、チャレンジしてみる価値はあります。アルファベット配列の変更 (のよさとその大変さ) については、Eucalyn 配列の考案者である @eucalyn_ と対談した podcast もあるのでぜひ聴いてみてください。

つまり…

ここまで、自作キーボードがどのように少ないキー数での入力を実現しているのか紹介してきました。自作キーボードの写真等を見かけることも多くなったかと思いますが、それらのような特徴的で自由なレイアウトのキーボードが実現できるようになったのも、オープンソースファームウェアによって キーボードの動作がカスタマイズできるようになった ことが非常に大きな役割を果たしたことがわかるかと思います。

ファームウェアは目に見えないため自作キーボードの重要な一側面であることが伝わりづらいのですが、実際はこのファームウェアのカスタマイズ性のために自作キーボードをやめられないという人もいるほど重要な要素です。また、自作キーボードは通常のキーボードに比べるとかなりキー数が少ない傾向にありますが、大抵の場合、いたずらにキー数を減らしているわけではなく、自作キーボードを長く使っているとだんだんと上記のレイヤー切り替えや長押し等の機能を使いこなして ホームポジションから極力移動しない キーマップに落ち着いていく傾向があり、結果として小さいキーボードにたどり着きやすいようです。

自作キーボードは、ハードウェアのキースイッチの種類で感触や音が変えられたり、キーキャップで好みの見た目にできたりと、 自分だけのカスタマイズ ができることが大きな魅力の一つですが、実はソフトウェアもカスタマイズできて、自分だけのキーマップ・挙動を実現できるのでした。自作キーボードは万年筆のようなもの、と言ったりしますが、万年筆もペン先やインクの粘度・色、そして所有欲を満たすデザインを選んで自分だけの書き味を追い求める、自作キーボードに似た所が多く見受けられます。自作キーボードでデザインにまでこだわる方が多いのも、こういった 日々使う上質なもの に対する執着のようなものがあるのかもしれません。

f:id:biacco42:20181008105334j:plain

というわけで、キー数が少なかったりレイアウトが独特だったりしても、意外となんとかなるので、ビビらずにぜひ作ってみて自分だけのカスタムキーボードを作ってみてください。(ハードウェア的に) 完成してからが、本当の自作キーボードだ…

おまけ

本日開催の技術書典5 では自作キーボード島とまでは行きませんが、4 つの自作キーボードサークルが け61 ~ け64 に並んで出展しているほか、場所は散っていますがいくつかのサークルさんが参加されているようです。たのしい人生は今回サークル出展はしていないのですが、 け62 のゆかりやさん、け01 の nopnop さんで既刊 KbD C93Ergo42 Towel フルセットキット 等を委託させていただいています (キット販売は け01 nopnop さんのみ)

よろしかったらぜひ、本日開催の技術書典5 で立ち寄っていただけたら幸いです。

Why Ergo42? - 私が Ergo42 を作った理由

この記事は 2018/5/6 に開催された東京メカニカルキーボード meetup の Ergo42 の発表を資料とともにまとめたものです。スライドの全体はこちら

Ergo42

f:id:biacco42:20180608005335j:plain

Ergo42 というキーボードをつくりました。

f:id:biacco42:20180608005346j:plain

Ergo42 は

  • 7x4
  • ortholinear
  • split

をコンセプトとした自作キーボードです。

f:id:biacco42:20180608005356j:plain

ちなみに全然伝わらなくて悲しいのですが、Ergo42 の「42」ってなんですか? Ergo56 じゃないの?って死ぬほど聞かれます。

Google で「生命、宇宙、そして万物についての究極の疑問の答え」と検索すると、なぜか電卓の UI で「42」と表示されます。それです。銀河ヒッチハイクガイドにもそう書いてある。

Ergo42 は「42」「DON'T PANIC」「The Answer to the Ultimate Question of Life, the Universe, and at least Keyboards.」等々、随所に小説「銀河ヒッチハイクガイド」へのオマージュを仕込んでいるのですが、びっくりするぐらい伝わらなかったので悲しいです。銀河ヒッチハイクガイドは古典的 SF の名作なので読んでください。

銀河ヒッチハイクガイドの紹介をしようと思ったんですが、本文より長くなるのでやめます。

Why Ergo42?

f:id:biacco42:20180608005406j:plain

おそらくかなりの人がこの記事で、自作キーボード、特にこの場合は ErgoDox を知ったかと思います。私も例に漏れずこの記事で ErgoDox、分割キーボード、ひいては自作キーボードというものをはじめて知り、この年 2016 年の夏頃 ErgoDox EZ という ErgoDox の完成品を販売するプロジェクトによって無事沼に足を踏み入れたのでした。余談ですが 2016 年夏といえば、Build Your Own Keyboards の第一巻が発売されたタイミングでもあり、自作キーボードのはしりの時期だったと思います(BYOK も買いました)。

そんなこんなで ErgoDox EZ を買い、間もなく、会社用だけでなく家用が欲しいということですぐに 2 台目の購入となり、今度は Falbatech からパーツを買い集めて、自分で組み立てる ErgoDox をつくり、順調に沼に沈んでいったのですが、そんな幸せな日々も長くは続きませんでした。

f:id:biacco42:20180608005415j:plain

ErgoDox は死ぬほどかっこいいのですし、スプリットキーボード、Columner Staggered なキー配置など自作キーボードの魅力満載なのですが、そのデザインをもってしても気になる点がないわけではありませんでした。

ErgoDox を使ったことがある人はわかると思うのですが、ErgoDox はおそらく外国人の手のサイズを基準に設計されており、かなり大きく・キー数が多く、日本人が使うとどうしてもキーが余ったり、その特徴的な親指のキーが多少遠くなってしまうという問題がありました。これについては正直慣れるのでなんとかならなくもないのですが、その巨大さは持ち歩くには少なくともちょっと悩むサイズで、当時 ErgoDox を持っていた日本人の間でも共通して聞かれる不満点でした。

f:id:biacco42:20180608005434j:plain

そんな気持ちを抱えたまま、日本の自作キーボードシーンの大きな転換点である、2017年 Let's Split ブームが到来します。おそらく多くの人を沼に陥れた元凶に、ご多分に漏れずまたしてもまんまと引っかかり、すわ Let's Split を作らん!となっていたのですが、ErgoDox で鍛えられていた私はそこで一歩踏みとどまり、私が求めるキーボードの要件について検討し始めました。

f:id:biacco42:20180608005450j:plain

そこで手始めにキーマップについて検討し始めたのですが、初手ここでつまずきます。Let's Split はその愛らしいデザインからも分かる通りびっくりするぐらい 初心者お断りなキー数の少なさです。

標準的な ANSI / ASCII なキーボードで 102 キー、JIS キーボードなら 109 キーのところ Let's Split はなんと 48 キーしかありません。半分以下です。正気か?

そんなわけで、ErgoDox で比較的潤沢なキー数 (それでも普通のキーボードよりはだいぶ少ない 76 キー) でのキーマップに慣れてしまっていた私には、どうしても 6x4x2 のキーに自分が必要とするキーマップを入れ込めず、Let's Split は断念となったのでした。

なかったからつくった Ergo42

というわけで、個人的に必須な要件が見えてきました。

  • 十分にコンパクトであること
  • 携帯性や設置性等、取り回しがよいこと
  • 親指の可動域や入力に無理のない適切なキー数、物理キーレイアウトを持つこと

特に最後のキー数・物理キーレイアウトについては、Let's Split の際の検討で非常に重要なポイントとなっていました。そして、そこを前提に検討した結果、Ergo42 の設計である

  • 7x4
  • ortholinear
  • split

というコンセプトが固まっていきました。で、きっと自分と同じことを考えるやつはいるだろうと思って調べてみたところ、意外にもこの仕様のキーボードが見つけられなかったため、自分のための自作キーボード Ergo42 を作ることにしました。

f:id:biacco42:20180608005602j:plain

完成した Ergo42 は正直個人的にはかなり end game といった仕上がりになりました。気に入っているポイントの 1 つがコンパクトであることと同時に、ケーブルの取り回しがしやすい(し、デザイン的にも優れている)ところです。

薄型化の思想については多分に ないんさん @pluis9 の Helix の影響を受けていますが、ケーブリングとそのデザインについては結構こだわりました。

Ergo42 は USB ケーブルが横に出るような、しかも本体の端からではなく本体の半ばから出るような設計になっています。これは、友人が HHKB を尊師スタイルで使っている際に、本体上部から飛び出す USB ケーブルが画面にぶつかって不便そうにしていた点に着想を得ています。また本体端から出さなかったのは、USB ケーブルが一般的に比較的固く、本体端から出した場合壁に干渉したり、不必要にケーブルが外に膨らんで机のスペースを圧迫する・美観を損ねるという問題を回避するためです。

TRRS ケーブルの引き回しについては悩んだのですが

  • 接続先の方向は一定(お互い内向き)
  • 手前のスペースはラップトップのトラックパッドトラックボールを置きたい
  • ラップトップの場合、TRRS ケーブルはマシンの後ろに回したい(視界から消したい・手前でぴろぴろして干渉してトラブルが発生するのを避けたい)

といった点から、USB ケーブルとは引き出す方向を 90 度変え、上方に出すことにしました。さっきの尊師スタイルの話と矛盾するじゃないかというツッコミが今にも聞こえてきそうですが、一般に TRRS ケーブルのほうが柔らかく、L字プラグには向きがない (USB の L字プラグは向きがある) ため、そして設計上のスペースとの兼ね合いから今の位置になりました。上記の写真のように、デスクトップで使う際も TRRS ケーブルを上でくるっとすると設置自由度が高いです。

f:id:biacco42:20180608005646j:plain

また、自分自身のためにも組み立ては簡単になるように色々配慮しました。Ergo42 は Cherry MX / Kailh Low Profile 両対応基板となっているのですが、Cherry MX のフットプリントと Kailh Low Profile のフットプリントを逆さまに配置することでパッド同士の距離を遠くし、ハンダジャンプしづらい設計になっています。

最初は Let's Split を パクって 参考に作る予定だったのですが、思っていたより Let's Split の設計が混乱していたので、そのあたりはフルスクラッチでできるだけきれいに、回路側でがんばって、組み立てがシンプルになるようにしました。わかりやすい例として、Ergo42 ではダイオードの向きは完全にすべての箇所で同じになっており、間違った方向にダイオードをつけてしまうありがちな問題の発生リスクはかなり低減されていると思います。

f:id:biacco42:20180608005655j:plain

そして、最大のポイントがここ、キーマップです。もともと私は ErgoDox で親指を酷使するキーマップにかなりなれていたため、QMK のリポジトリにもそういったキーマップをデフォルトで入れていたのですが(かなりウケが悪く)、より標準的なキーボードに近いキーマップをデフォルトとして今は設置してあります。これは想定していなかった副次的な効果なのですが、7x4 配列にしたことでキー数に余裕があり、カーソルキーも入れた、かなりオーソドックスなレイアウトのキーマップを定義することができました。

f:id:biacco42:20180608005702j:plain

また、もちもん私がもともと実現したかった親指酷使型キーマップもバッチリで、足りないキーがなくて困ることもなく、必要十分のキーを定義できました。

特におすすめポイントは、左手左下の Ctrl は LCtrl に、左手親指の長押しは RCtrl にすることで、Mac 側で Karabiner-Elements を利用して RCtrl を ⌘ コマンドキーに読み替えることで、Windows / Linux / Mac いずれの環境でも利用しやすいところです。Mac だと ⌘ コマンドキーと Ctrl は区別されていてどちらも非常によく使うので、これが同時にキーマップに登録できたところはキー数を増やした恩恵で、これ故に、これ以上キー数を削るのはなぁというところがあると言っても過言ではありません。

分割キーボードですと、割れ目は決まってしまっているので片手で扱えるキー数に厳密な制限があるのですが、列数が少ないと特に右手でキー数が足りないことになりがちです。Ergo42 の私の配列では、Enter や Back space 等の普通右端にあるキーを親指側に逃しつつ Enter や Back space の左隣の記号についてギリギリ詰め込めていて、前述の通り「これがなくて入力ができないよー」みたいなことが起きないように最大限配慮しています。

f:id:biacco42:20180608005711j:plain

という感じで、私の希望をできる限り詰め込んだ Ergo42 は、現在 Booth にてキットを販売中です!

現在予約を受け付けているキットについては、初の アクリルカラーがブラック のバージョンになる予定です。多分これはまためっちゃかっこよくなるので楽しみです!

f:id:biacco42:20180608005722j:plain

そして、現在自作キーボードの先を考えて、新しいアーキテクチャを設計中です。

f:id:biacco42:20180608005729j:plain

f:id:biacco42:20180608005738j:plain

技術書典4 で発行した KbD Pre 2018 April にその片鱗が出ているのですが、ARM による比較的高性能なチップをベースに、既存基板のマトリックス回路やダイオードがいらない、 基板設計できなくても自分好みの物理キーレイアウトのキーボードが作れる 、モジュラーな設計を検討中です。こちらは進捗あり次第 Pixiv FANBOX のほうで情報公開していけたらと思っています。

おわりに

そんなわけで、2016 年頃から自作キーボードの、そして日本での自作キーボードの盛り上がりを振り返りながら、Ergo42 をどうして作ったのかについて簡単にご紹介しました。

個人的には Ergo42 でかなり end game 感は出ているのですが、まだまだ新しい設計の自作キーボードが出てきたり、新しいキースイッチが出てきたり、3D プリンタでキーキャップを作ったりケースを作ったりと、幸い当面は飽きることも叶わず、やることも検討することもいっぱいありそうです。

そんな、たのしいたのし沼への案内として Ergo42 が少しでもお役に立てれば光栄です。

たのしいたのししま(1) (講談社コミックス)

PR

f:id:biacco42:20180608133152j:plain:w300

自作キーボード入門のための同人誌 KbD C93 2017 December や、自作キーボード入門用の 4 キーだけの極小キーボード Meishi ― The micro macro keyboard kit なども販売中です。なにとぞよろしくお願いいたします🙏🙏🙏

また、Maker Faire Tokyo 2018 に自作キーボードコミュニティで参加します! 自作キーボードを大量に見て触れる貴重な機会になるはずですので、こちらもぜひよろしくおねがいします。

Maker Faire Tokyo 2018 に Self-Made Keyboards in Japan が出展します!

いよいよ今週末ですね! 2018 8/4 - 8/5 に東京ビッグサイトで開催される Maker Faire Tokyo 2018 に自作キーボード好きの集まりである Self-Made Keyboards in Japan の有志で出展を行います!

f:id:biacco42:20180602002928j:plain

最近本当に自作キーボードをいろいろなところで見かけるようになりましたね。見ている世界が狭いというのもありますが。

なので、普段自作キーボードに縁がある世界だけでなく、ぜひより多くの方に自作キーボードを知ってもらおう!ということで、ものづくりの祭典 Maker Faire Tokyo に出展する運びとなりました。

展示内容

自作キーボードのかなり多様な範囲からの出展となりました!簡単に内容をご紹介します🙌

まだまだ紹介しきれていないので、随時追加していきます。まずは写真でのご紹介です!

Wooden case for iris Keyboard

f:id:biacco42:20180802122307j:plain

f:id:biacco42:20180802122322j:plain

Wooden case for iris Keyboard by @htomine

コンパクトな親指キーつき左右分割キーボードキット「iris」用の木製ケースの展示です。自作キットに多いプレートだけのケースではなく、コンパクトさを捨てて敢えてキーに被る高さのフレームを付けたのがポイントということで、とてもおしゃれです。

Helixのための薄型キートップの試作

f:id:biacco42:20180802121741j:plain

f:id:biacco42:20180802121755j:plain

Helixのための薄型キートップの試作 by @nameless911

Corne Keyboard (コルネ)

f:id:biacco42:20180802122147p:plain

自作小型キーボードCorne(コルネ) by @foostan

Atack25 - 5x5 PCB for hex pad and square split keyboard

f:id:biacco42:20180802122513j:plain

Atack25 - 5x5 PCB for hex pad and square split keyboard by monksoffunk

XD75re atomic_style_jp : Comic Sans Edition

f:id:biacco42:20180802123111j:plain

XD75re atomic_style_jp : Comic Sans Edition by @takashiski

これ以外にもまだまだありますので、情報更新と当日の Maker Faire Tokyo 2018 をお楽しみに!

仮想通貨『HOGYコイン(物理)』

f:id:biacco42:20180803144738j:plain

仮想通貨『HOGYコイン(物理)』 by @yohewi

Maker Faire Tokyo 2018 と自作キーボード

Self-Made Keyboards in Japan が出展する Maker Faire Tokyo 2018 ですが、私達だけでなく、Helix キーボードで有名な遊舎工房の ないん ( @pluis9 ) さんや、ねこでも作れる!オリジナルキーボード の著者の ゆかり さん、自作キーボードのパーツ購入でお世話にならないことはない TALP KEYBOARD (Twitter) TALP KEYBOARD (store) さん、Switch Science さんも自作キーボードに関連した展示を行われるなど、自作キーボードに関する出展が盛り沢山で、今年の Maker Faire Tokyo でも自作キーボードはやっていっています💪

当日は Maker Faire Tokyo 2018 自作キーボードマップ等も頒布予定ですので、ぜひ H / 14-03 Self-Made Keyboards in Japan へお越しください!

iOS アプリでマルチタスク切り替え画面に入ったことを検出する話

小ネタです。アプリがアクティブなときに、マルチタスク切り替え画面(ホームキー二連打)に入ったことを検出したい。

結論

マルチタスク切り替えそのもの画面に入ったことそのものは検出できないが、マルチタスク切り替え画面に入るとアプリケーションは Inactive になるので、たとえば UIApplicationWillResignActive を購読しておけばそれで検出できる。通知センターやコントロールセンターを開いた場合もアプリケーションは Inactive になるので厳密な見分けが必要な場合はもう少し考えなければいけないかも。

iOS アプリのライフサイクル

アプリにまつわるイベントであると考えられるので、 Execution States for Apps を見ましょう。これは散々引用されてますしみなさん一度は見たことがあると思います。

State Description
Not running The app has not been launched or was running but was terminated by the system.
Inactive The app is running in the foreground but is currently not receiving events. (It may be executing other code though.) An app usually stays in this state only briefly as it transitions to a different state.
Active The app is running in the foreground and is receiving events. This is the normal mode for foreground apps.
Background The app is in the background and executing code. Most apps enter this state briefly on their way to being suspended. However, an app that requests extra execution time may remain in this state for a period of time. In addition, an app being launched directly into the background enters this state instead of the inactive state. For information about how to execute code while in the background, see Background Execution.
Suspended The app is in the background but is not executing code. The system moves apps to this state automatically and does not notify them before doing so. While suspended, an app remains in memory but does not execute any code. When a low-memory condition occurs, the system may purge suspended apps without notice to make more space for the foreground app.

Inactive

アプリケーションライフサイクルのイメージとしては

Not running
 ↓
Inactive
 ↓
Active
 ↓↑
Inactive
 ↓↑
Background

ではないかと思います。 Notification で UIApplicationDidEnterBackground はよく使うと思いますが、 UIApplicationWillResignActive は通り過ぎるだけでなにに使うんだ...?

Inactive の説明を読んでみると

The app is running in the foreground but is currently not receiving events. (It may be executing other code though.) An app usually stays in this state only briefly as it transitions to a different state.

アプリケーションは通常、状態遷移する一瞬この状態になると言っています。やっぱり通過するだけ?

フォアグラウンドだけど UI イベントだけ受け取らない状態

Inactive の説明の前半にはこうも書いてあります。Inactive なアプリケーションはフォアグラウンドにいるけれど UI イベントは受け取らないよ。

よくよく考えると マルチタスク切り替え画面 はまさにこの状態に当てはまります。 エスパーじゃないと気づけないと思うんですが。

さらによくよく考えると、マルチタスク切り替え画面以外にもアプリケーションはフォアグラウンドだけれど UI イベントを取らない状態があります。通知センターコントロールセンター を開いた時もこの状態になります。よく出来てますね。でも遷移中一瞬なる状態だよって説明は消したほうがいいと思う。

というわけで、アプリケーションの状態が Inactive になる時を見ていればほぼ目的は達成できそうです。

おしまい。

ヴァイオレット・エヴァーガーデン雑感

ヴァイオレット・エヴァーガーデン、1 話を観ました。

いろいろ喋りたくなるオタク好みな作品だなーと思った。喋りたいことが多いので列挙します。

テーマがテーマだけにキーボード界隈で話題になっていた。

けれど 1 話の段階ではほとんどタイプライター出てこなくて残念。ただ、最後の方に出てきたタイプライターの描写、動きは最小限だったけど(まじめにやると作画コストが高すぎるよね)丁寧に描かれそうで期待は持てる。音はなんかそれこそキーボードっぽくない?実家にタイプライターあったけどもっとガシャガシャした重い音がする気がする。

試しに Ergo42 黒軸 PBT キーキャップで録音録画したらおもったよりそれっぽくなった。

作画

神作画みたいなツイートとかあったけど、結構省力作画というかバランス取ってる感はある。気合入っているところは入ってるけど、正直動きとしては息を呑むようなシーンはあまりなかったかなぁ。

全体的に動画の割り方もかなり離散的というかタイミングがフラットなのか、あまりドラスティックに動く感じではない。

ただ手の作画だけは異常なこだわりを感じる。もうこの画とタイプライターというテーマだけでいける。

あと、一部シーンでは髪の毛の動画が妙に細かったり、ある印象的なシーンにたいする細部へのこだわりみたいなものは随所に感じる。

美術

どちらかというと背景美術にはかなりこだわりを感じる。

影の出方、色の付け方がかなり特徴的で、リムライト的というか影色も特徴的で GI ぽさともまた違う画としてのおもしろさがある。

タイムラプス

日常とも共通するけど、サチュレーションかけたような写実的な固定カメラでのタイムラプス京アニ好きなのかな。朝ガス灯を消しに来る描写が入ってるのがよかった。

加持リョウジ

みたまんま

ヴァイオレットの人格

ヴァイオレットの人格が不安定すぎて、そういう状況・設定だしなぁうーん、と思っていたけれど、結構最後の方でいい感じにストーリーに回収されていって、やりすぎなぐらいがいいバランスだったのかもしれない。ヴァイオレットの今後が気になる。

音楽

音楽は派手さはないけどしっかりシーンに合わせて作ってあって贅沢さがある。オケの収録はスタジオ感強くてちょっとフラットな印象なのが惜しい。けどファゴットとか目立ってたりしてちょっとたのしい。

とりあえず、先が気になるので今期楽しみ。

Amazon.co.jpアソシエイト