キーボードの配列最適化についてあれこれ考える

自作キーボードのふか~い沼の一つはキー配列。多くの人が究極のキー配列を求めて日々研究しています。途方もない感じがして底なし沼に見えるので避けていたのですが、最近読んだブログ記事にすっかり影響され、ああでもない、こうでもないと色々考えを巡らせてしまいました。ここでは考えを巡らせたキー配列の最適化ついて書いてみます。

この記事を書くことになったきっかけ

キーボード配列はQWERTY配列が標準的となってしまっているが、これは最適ではないと感じる人も多い。その強い不満から究極のキー配列を求めて日々研究を進めている猛者がいる。

 

この記事はまさにそんな探求から生まれた一つの成果であり、著者の並々ならぬ情熱を感じることができる。

tomisuke.hatenablog.com

 

この記事の良いところは、情熱だけで突っ走ることなくデータを示してそれをもとに議論しているところである。説得力があるし多くの人がこの記事に影響を受けたはず(私もその一人)。人を感化させるほどのこんな文章を書けるようになりたいものです。そしてこれが高校生の手によるものであるというのだから脱帽する。

 

キー配列の評価に使用しているのはこのサイト。

patorjk.com

いやー、よくできてるページですね。スコアは

  • 指の移動距離(33%)
  • 特定の指の使用頻度(33%)
  • 指と手を切り替える頻度(34%)

を考慮した加重計算ということらしい。

 

こういう研究を見ていてしばしば思うのは、どういう評価基準が良いのだろうかということ。評価し、点数化するというのはどんな場合でも難しい。

 

自分は深い沼であるキー配列には手を出すまいと思っていたが、上の記事に刺激を受け、キー配列の評価基準について、ああでもない、こうでもないと考えを巡らせてしまいました。この記事ではそのことについてつらつらと書いてみます。以下では物理配列はRaw staggeredとし、日本語、英語の文章の入力を想定します。日本語はローマ字入力としてかな入力は考えないものとします(かな入力の経験がないので全然わからない...)。

 

自分が考えるキー配列のスコアリング項目

キー配列を評価するときに打鍵するキーの位置やパターンによってスコアリングする方法がよくとられている。ここでは打鍵が速いパターンと逆に遅くなるパターンについていくつか項目を挙げてみる。

打鍵が速いパターン

ホームポジションのキー

QWERTY配列での教本的なタイピングではasdf、jkl;がホームポジションとなる。指はこの位置に待機しているわけなので、ホームポジションのキーは指を前後左右に移動させることなく打鍵できる。文字の頻度を考えるとjや;がこの一等地にあるのことに我慢ならない人は多いはず。

指の移動が少ないキー

これもキー配列の探求でよく言われていること。極端な例を挙げればアルファベットよりも数字のほうがホームポジションから遠くて打ちづらい。あるいはr,t,gは左手人差し指が担当だが、多くの人はtよりもホームポジションに近いrやgのほうが打ちやすいと感じるだろう。

片手で指が異なるキーを連続して打鍵する場合

たとえばpointは慣れるとだいぶ速く打鍵できる。poinはすべて右手が担当で片手で連続して打鍵することになるのだが、すべて指が異なるのである程度慣れるとだいぶ速く打てる(pを右薬指で打鍵する人はそうではないだろう)。

 

片手での連続打鍵でも指が異なれば左右の指で交互に打鍵する場合に比べて速く打てると思う。実際にfjfjfjと左右交互にタイプするのと、jkjkjkと片手でタイプするのを比較してみるとよくわかる。多くのキー配列の研究ではこの点が考慮されていない場合が多いように思われる(自分が知らないだけかも)。

 

実際このパターンを評価するのは難しい(もしくは面倒)。片手で指が異なればいつも速くタイプできるわけではない。たとえばbeとかは教本的にはbは左手人差し指、eは左手中指なので、片手で指が異なる。しかし自分はこれを速くタイプできない。これは人によるのかもしれない。他の人はどうなんだろうか?

 

速くタイプできるパターンかどうかは、キーの同時押しが無理なくできるかどうかで判断できると思う。poinは同時押しすることができる。一方beの場合、自分は人差し指と中指がそんなに開かないので同時押しは無理しないとできない。

 

この議論は格子配列や挟ピッチになると変わるだろう。キー配列の最適化を考える際にRaw staggeredとそれ以外を比較しようとすると、片手連続打鍵の場合の評価値も変える必要があるだろう。

 

打鍵が遅いパターン

同じ指で異なるキーの連続打鍵

同じ手の同じ指で異なるキーを連続して打鍵するのはどうしても遅くなる。たとえばdeとかは左手の中指で連続して打鍵することになる。これを速く打つのは難しい。

同じキーの連続打鍵

bookのooなどの同じキーの連続打鍵は場合によってはタイピングを遅くするかもしれない。これはある程度打鍵スピードが速くなると煩わしく感じることがある。どれくらい打鍵スピードが速くなるとそう感じるかは何とも言えないが、例えばMonkeytypeで90wpmくらいを出せるくらいだとそう感じる。

 

ただしこれはタイピングテストなどの場合に限られるかもしれない。普段文章を書いているときにはあまりストレスを感じていないような気もする。ただ日本語の「ん」を打鍵するときにnnと打たないといけないときがあって、それは煩わしく感じる。他の人はどうなんだろうか?

 

この同じキーの連続打鍵はキー配列をいじるだけでは改善できない。キーマップで打鍵速度を向上させるならマクロなどを上手く割り当て、それに慣れるための訓練が必要になる。

小指での打鍵

多くの人は小指を器用に動かすのは苦手だろう。pは教本的には右手小指の担当だが、薬指で打鍵する人は結構多いのではないだろうか?

 

薬指も自分はあまり器用に動かせない感じがするが、タイピングでそれを感じたことはない。他の人はどうなんだろうか?

これらのスコアの優劣

キー配列の優劣を議論する場合、ある文字列を与え、上の項目で打鍵の打ち易さ(辛さ)をスコアリングして比較するのが良く行われている。難しいのはこれらの項目の優先順位付けだろう。

 

上に挙げた項目でわかりやすいのはキーのホームポジションからの遠さ。例えばホームポジションはキーが速く打てるので+10点、ホームポジションの隣は+5点、yなどは少し遠いので加点無しと仮に設定してみることにしよう。

 

次にわかりやすいのは同じ指で違うキーを連続打鍵する場合。これは打鍵を遅くするので減点。じゃあどれくらい減点すべきだろうか?ホームポジションの隣を打鍵して得する打鍵時間に比べると失う時間のほうが多い気がするのでー5点よりは大きい減点という気がする。じゃあホームポジションのキーの打鍵で得する時間に比べて損する時間はどうかと問われれば、どうなんだろう?よくわからない。そもそも最初に設定したホームポジションとその隣のキー打鍵の加点が2倍違うというのは妥当なのだろうか?

 

考えだすとこんな具合に各項目の尺度をどうすべきかすぐにわからなくなってしまう。自分ではスコア基準をリーズナブルに決定できる気が全然しない…。

Carpalx

あれこれ考えを巡らせながらこの記事を書いていたら、こんなサイトにたどり着いた。

mkweb.bcgsc.caこのサイトのtyping effortの項目で評価値について詳細が説明されている。すべてを理解できていないけれど、これは自分が考えていたことにかなり近く、より深化させたものとなっている。自分が大変そうだなと考えていた打ちやすい、打ちづらい文字列の組み合わせを3つの連続する文字(triad)で分類している。すごい!

 

なんか見覚えがあるなーと思ったらだいぶ前にTalpkeyboardさんがTwitterで紹介していた。さすがです。

 

Carpalxはキー配列の評価モデルとしてとても良くできている。ただし、それぞれの重みづけを決めるパラメータの値は任意性がある。実際subjecteive(主観的)という語をしばしば目にする。たとえばrowごとにペナルティーを設定していて、1.5を数字行、0.5をQ行(top row)、0をA行、1をZ行(bottom row)に割り振っていたりしている。自分ではQ行とZ行の打ちづらさは大差ないように感じるので、2倍も評価値が違っていいのだろうかと感じてしまったりする。

 

どうやってこれらパラメータの重みを決定するのがいいのだろうか?

 

タイピングデータの取得が必要では?

ある程度客観的に決めるなら、タイピングのデータを取り、各項目でタイピング時間がどれくらい短く、あるいは長くなるかを評価(測定)するのが良いだろう。これはデータさえ取れれば実現できる。またデータがあれば、どういうキーやキーの組み合わせのときに打鍵が速くなる・遅くなるというのも評価できるので、上にあげていない項目も見いだせるかもしれない。

 

ただし、日本語なのか英語なのか、はたまたプログラミングなどかで全然違うだろう。タイピングする文章の内容にもよるし、人によっても違うはず。結局究極のキー配列を選定するためのスコアリング基準は誰の何のタイピングを対象にするかで変わるだろう。万人受けするキー配列はきっと難しいと思うが、”俺の最強のキー配列”にはたどり着けるのではないかという気がする。とても興味があるので自分のタイピングのデータが取得できればなぁと思う。そんなソフト誰か作ってくれませんか?(他力本願)

 

以下ではちょっと違う観点からキー配列の最適化について考えてみる。

言語でのタイピングリズムの違い

日本語と英語のタイピングテストを交互にやってみるとよくわかるが、これら2つの言語の場合で打鍵のリズムが全然違う。英語のタイピングテストでは単語の後にスペースを打鍵する。実際の英作文でも似たような状況になる。単語の間のスペース入力が打鍵のリズムを作っている。

 

一方日本語のタイピングテストでは単語の切れ目でスペースを押すことがない。10以上のアルファベットキーを連続してタイプしたりする。息を止めて水の中に潜るのになんとなく似ている気がする。これに対して実際の日本語の文章を書くときでは漢字変換のためにスペースキーを押すので、作文時とタイピングテストのときでリズムが異なる。これが原因なのか自分は日本語のタイピングテストがちょっと苦手。

 

またQWERTY配列で英語をタイピングしているときは、格ゲーのコンボ技みたいに気持ち良く3文字かそれ以上の文字列を速く打てる組み合わせがある(上述のpointなど)。日本語ではこのコンボはあまりないような気がする(自分のタイピングの練度が低いせいかもしれない)。英語は表音文字で決まった音節の文字列が頻出するからだろうか?

 

上に述べた打鍵のリズムと最適なキー配列というのは何か関係があるのではないかという気がする。日本語の打鍵では子音と母音が交互に現れてある程度の長さの文字列をタイプするのがほとんど、というのを前提とした場合(これはどこまで正しいのだろうか?)、Tomisuke配列のように母音と子音を左右に分け、左右交互に打鍵するようなキー配列は打鍵のリズムを良くする最適解の一つという気がする。

 

キー配列の最適化は指8本でいいのか?

キー配列の研究では左右の親指を除く8本の指の最適化の議論がほとんどだと思う。これはステレオタイプなのかもしれない。

 

タイピング女王のmiriさんの打鍵動画(例えばこれ)とかを見ていると、教本的なホームポジションやキーと指の対応に捕われていないのに気づくとこができる。これは示唆に富んでいて面白い。とてもタイピングが速いので運指を追うのは大変だが、右親指をアルファベットの打鍵に使用していたりする。そのためなのかホームポジションasdf、jkl;ではないように見える(母音のキーをホームポジションにしている?)。

 

多くの人はスペースキーは左親指だけで押しているのだと思うが、そうすると右親指は使われていないわけだ。この指もアルファベットの打鍵に参加させればタイピング速度を向上させることができるだろうし、タイピング女王はまさにそれを行っている。

 

自作キーボード界隈ではほとんどの人は親指にModifierを担当させていると思う。これはもちろんわかりやすい。ただタイピング女王の運指を見ていると、親指の役割はもっと柔軟に考えても良いのかもしれない。

 

キーへの指の割り当てを固定するのが最適なのか?

教本的なタイピングではそれぞれのキーに対してある1本の指を割り当てる。これはたぶん初心者の混乱を避けるためではないかと思う。このルールに従うと、例えばnumberとタイプする場合、numは右人差し指で3連続してタイプすることになり速く打つのは難しい。

 

自分はすでに基本からズレてしまっていて、numberをタイプするときにはどうもnを右人差し指、uを右中指、mを右人差し指でタイプしている(ことにこの記事を書いていて気づいた)。underをタイプするときのuは基本通り右人差し指なので、文字列によって切り替えているらしい。自然と物理配列に適応した結果なのだろうが、ある程度ブラインドタッチができるくらい熟達した人ならキーと指の対応は固定しなくてもいいのかもしれない。

 

別の例はb。教本的な指の割り当てだと左人差し指の担当である。だたbeやbaなどの組み合わせの場合、自分はbを右人差し指でタイプしている。一方bi,、bu、boという場合はbは左人差し指を使っているみたい。bキーはちょうど左右のホームポジションの真ん中に位置していて左右から等距離にあるので、原理的にはどちらの手で打鍵してもいいはず。

 

これらのようにタイプする単語によってキーを担当する指は柔軟に変えてもいいのだと思う。こういうことを言い出すと、キー1個に対して文字が1つである必然性もない。究極はやはりステノタイプだろう。憧れるけれど、学習コストがハンパないので一般人には手が出ない。

 

あまりに発散的に考えるとキー配列の最適化をどうしたらいいのかわからなくなるので、

  • 日本語の入力方法(ローマ字入力、かな入力)
  • 物理配列(raw staggered、ortholinear、column staggered)
  • 親指は文字入力に参加させるかどうか
  • 使用する指とキーの物理配置との対応

等の項目は決めたうえでキー配列の最適化に取り組み始めるのが妥当だろう。raw staggeredとortholinearの比較とかもできたら面白いと思うけれど公平な比較は簡単ではないだろう。

 

あとがき

キー配列の最適化はやっぱり沼ですね。深遠で考えるほどわからなくなってきます。実際この記事を読み返すと?がたくさんある…。

 

独自の配列とか作ってみたいと思いますが、今のところは自分が納得できるようなキー配列の評価基準を決定できる気がしません。タイピングデータを取得ができるようになったらぜひチャレンジしてみたいですね。

 

この記事は自作分割キーボードopyc3437で書きました。

3Dプリントで作った自作キーボードケースの塗装

3Dプリントで作った分割キーボードケースの塗装にチャレンジしてみました。

 

3Dプリントサービスを利用して作ったケース

最近自作した分割型のキーボードopyc3437ではJLCPCBの3Dプリントサービスを利用してケースを作った。3Dプリントサービスを利用すると、立体的なケースを作成することができるけれど、そのままだと白くて味気ない(素材のそのままの質感を味わうというのもあるかもしれないけれど)。ケースの見た目が良いとやっぱりテンションが上がるし、だからなんかこう良い感じにしたい。そんなわけで全く経験のない塗装にチャレンジしてみることにした。

 

どうやって塗装すればいいの?

これまでの人生では塗装と全く縁がなかったので、どうしたら良いか右も左もわからない。調べてるとプラモデルの塗装について情報が多く見つかる。3Dプリントされたものの塗装について例をあまり見つけられなかったが、一番参考になったのは下記のサイト。

www.form2.shop

www.form2.shop

こんなふうに綺麗に塗装できるようになりたい。

 

手順はこのページに従うことにして、どうやってスプレーを吹くのかをYouTubeで調べる。丁寧にやり方を説明しつつ実演してくれている動画がたくさん見つかる。いや~、いい時代ですね。ポイントは

  • 使用前にスプレー缶よく振る。
  • 10cmくらい離して吹く。
  • 吹き始め、吹き終わりの時は対象物から外す。
  • 吹き足りないくらいで止める。後で足せる。吹き過ぎてはダメ。
  • 塗装、乾燥を繰り返す。

という点かな。

 

さて、どんな色にしようか?上のクワガタの塗装の例のようにメタリックな色に憧れる。メタリックで明るい色だとうるさい感じになるかなと思い、暗めの色にする。結局ディープメタリックブルーにすることにした。またトップコートも落ち着いた仕上がりにすることを意図して艶消しを用いることにした。

 

使用したのは以下のスプレー。

www.mr-hobby.com

www.tamiya.com

www.mr-hobby.com

※2022/07/23追記

サリチル酸さんは数年前にMJFの3Dプリントしたケースの塗装をしていたようです(この記事を見つけられなかった我が検索力よ…)。3Dプリントされた自作キーボードケースの塗装をしてみたい方はこちらも参考になるかと思います。

Colosseum44のビルドログ(準備~塗装編) - 自作キーボード温泉街の歩き方

 

塗装の予行練習

いきなり本番は怖いので、適当なプラスチックに吹き付けてみて練習。練習台にしたのはケーブルを束ねるコイル状のプラスチック。試しに塗装して練習&仕上がりの色や質感を確認。つや消しのトップコートを吹くとかなり落ち着いた感じになる。ぼんやりイメージしていた質感に近かったのでこのスプレー缶の組み合わせで良さそう。

適当なもので練習&色や質感の確認。真ん中の部分にはマクキングテープを貼ってマスクのテスト。

 

塗装の準備

塗装する分割キーボードはしばらく使用していたので塗装前に洗浄したい。でも3Dプリント素材のLEDO6060の耐水性が気になる。調べてみるとWenextのページにはwaterproofとあったので大丈夫そう。本当は脱脂とかするべきなんだろうけど、何が使えるかがわからない...。結局水洗いだけにして中性洗剤とかを使うのはやめておいた。

 

塗装するときに持ち手を用意する必要がある。練習したときに使ったワニ口クリップが先端に付いた竹串みたいなやつは、プラモデルの塗装によく使われているみたい。ただしキーボードケースは大きいし重量もある程度あるので同じものは使えない。

 

どうしたもんかと少し考えたが、割りばしをケースねじ穴に結束ワイヤーを利用して固定し、それをダンボールで作った三角の柱に固定した。簡易的に作った割には悪くない。

割りばしと結束ワイヤー、ダンボールを組み合わせて塗装用台&持ち手を作る

マンション住まいなので塗装はベランダで。ベランダを塗装してしまわないようにダンボールで簡易的な塗装ブース(という名のただの箱)を作ってその中で塗装をすることにした。

ベランダに塗装用ブースという名のダンボール箱を準備する

 

まずは左手側ケースの塗装

サーフェイサー

サーフェイサーを吹く。最初に薄く吹き付け、20分ほど待って乾かす。その後さらに吹き付け、素材の元の色が見えず、表面全体がグレーになるまで吹いた。下の写真は2回目の吹き付けの後。

サーフェイサーを吹き付けた後

カラー塗装

サーフェイサーが乾いたらカラー塗装。練習で結構な量を消費していたためか、1回目のケース塗装中にスプレーが切れた。切れる直前はドバっと霧が大きくなることがあり、ケースの一部に大きな水玉ができてしまった。

 

スプレー缶を補充して別の日に2回目の塗装。表面が一様に濡れるくらい吹き付けた。あまりやりすぎると水たまりみたいになってしまうので、その手前でやめるイメージ。結構厚塗りかもしれない。完了したら20分くらい乾燥させる。

トップコート

2回のカラー塗装のあとはトップコート。まず側面の4面が一様に濡れるくらい吹く。その後上面を吹き始めるが、吹き始めたところでスプレーが切れる。次の缶を2分程度振って再開。上面が一様に濡れるくらい吹く。その後20分程度乾燥。

 

2回目はキーキャップのすぐそばになるケース内壁も塗ることを意識して吹き付ける。スプレー缶が切れてしまったので終了。だいたい全体に吹きかけたが、一部ドバっと吹き出て玉になってしまった。とりあえずこれで左側ケースの塗装は終了。

 

左手側ケースの塗装の反省点

やってみるといろいろわかる。

  • 全体が一様に濡れる程度に色の塗装・トップコートの吹き付けを行うと仕上がりが良い
  • ケース左手側の塗装に必要な量はだいたい以下の通り
  • サーフェイサー170ml缶 x 1本
  • カラー 100ml缶 x 1.5本
  • トップコート100ml缶 x 1.5~2本

初めてやったこともあって、どちらかというと反省点が多い。

塗装前でケース全体が白い色の状態では気にならなかった3Dプリントの積層痕や小さな窪み・傷などは、塗装後だとはっきりとわかるようになる。これはサーフェイサーを吹いた時点でよくわかるのだが、1000番のサーフェイサーでは番手が細かすぎて消すことはできない。良い仕上がりにするためには塗装前に十分にやすりがけをしておく必要がある。

塗装すると傷や積層痕がよくわかるようになる

 

また、積層痕が見えない面でもサーフェイサーを吹いただけだと表面がざらざらしている。仕上がりにこだわるなら参考にしたページにあるようにサーフェイサーを吹いた後に爪磨きややすりなどで表面をつるつるにしたほうが良いだろう。

 

ダンボールの柱は少し不安定で何度か転倒させてしまった…。転倒させるとゴミがついたり傷ついて塗装が剥げたりして、良いことは何もない。もっと低くていいし、安定性が大事。あるいは塗装後の乾燥は室内のほうが良いかもしれない。

 

良い仕上がりのためには、スプレー缶が切れる直前を見極めるのが非常に重要であることがわかった。切れる直前は塗料の出が少なくなったりして安定しなくなる。もったいなから使い切りたいと思ってさらに続けるとドバっと出て霧の球が大きくなり、これが対象物に乗ると大きな(といっても1mmくらいの)玉になってしまう…。

 

スプレー缶はケチらずに、切れかかったら多少残っていても新しいものに交換したほうが良い。缶の塗料の量が減ってくると、缶の中の撹拌玉のカラカラとした音が良く響くようになる。これとスプレー時の塗料の出具合からスプレーの交換タイミングをよく見極める必要がある。

 

最も難しいと感じたのはトップコートの吹き方。出来上がったものの表面は若干白化しているように見えなくもない。雨の日のような湿度が高い状況だと白化するというのは事前に調べたときに目にしたのでこれが原因かと思った。ただ窓全開状態の部屋の湿度計は50%程度だったので、湿気が問題ではなさそう。吹き付けすぎなのだろうか?

 

右手側ケースの塗装準備

いろいろしくじった左手側の反省を活かし、まずはサーフェイサーを軽く吹いてケース表面の凸凹を見えやすくする。そしてやすりがけ。グレーのサフが削られて元の3Dプリントの素材が見えるくらいで積層痕がはっきりと見える。これがなくなるまで320番のやすりで磨いた。

 

いくつか小さな凹みや傷があるが、すべて除去しようとするとだいぶ削る必要がありそうなので諦めた。そういう場所はサフを集中的に吹いてもいいのかもしれない。積層痕が見えなくなったら600番でやする。さらに1000番くらいでやすったほうが良い気がするけれど、それはサフが埋めてくれることを期待して省略。

 

やすりがけが終わったら水洗い。粉が角に残ったりするので綿棒で削りカスを取り除いておく。その後、左手側と同じ要領で塗装用の持ち手を作る。今度はダンボールの柱の背を低くして安定性が良くなるように丁寧に作る。

 

右手側ケースの塗装

塗装準備が整ったらサーフェイサーを吹く。1回軽く吹いた後20分程度乾燥。その後2回目のサーフェイサーを吹く。2回目は表面が全部覆われて3Dプリンタの素材が見えなくなるくらいまで吹く。吹き終わったら1時間くらい乾燥させた。

 

乾燥後表面を指でなぞってみると、やっぱりザラザラしている。今度はここで磨きの工程を加えてみる。あらかじめ準備しておいた爪磨き#1000で表面を軽くやする。数回磨いたら指でなぞって感触を確かめる、というのを繰り返して表面全体がつるつるになるまでこれを行う。トップコートがつや消し仕上げなので目立たない気がするけれど、光沢のあるトップコートであればこの工程は重要だろう。磨き終わったら水洗いして粉を落とす。

サーフェイサーを吹き付けただけだと表面が少しざらざらしている

 

次はカラー塗装。これも2回に分けて吹く。1回目に軽く吹き付けて15分乾燥。その後もう一度吹き付ける。面が一様に濡れるくらい吹き付ける。ただしやり過ぎないように。今回はスプレー缶が切れるのをちゃんと見極めたので、塗料がドバっとでることもなくきれいに塗装できた。

 

さて、次は問題のトップコート。左手側ケースの時を反省して吹き付けすぎないことを意識してみる。1面ずつ一様に濡れるくらい吹き付ける。乾燥後割といい仕上がりだが、トップコート1回だと耐久性は大丈夫だろうか?心配なので乾燥後にもう一度吹き付けてみることにした。

 

ただ、吹き付けすぎて左手側のように仕上がりが白っぽくなってしまう心配がある。そこで一番目につかない背面側だけ2回目の吹き付けを行い、様子を見てみることにした。1回目と同様に面全体が一様に薄く濡れるくらい吹き付けた。これを行っているときに、吹き付けていない上面側が白い粉が吹いているみたいになっているに気づく...。そこで上面も吹き付けることに。ただ、ここでトップコートが切れかけてきたので中断する。

 

この時に一つの仮説が浮かぶ。塗装ブースという名のダンボール箱の中でスプレーしていると、対象物にかからなかった霧が結構長い時間ダンボール箱の中を漂う。これが塗装していない乾燥した状態の面に付着すると、白い粉が吹いた状態になるのではなかろうか?

 

だとすると、ケース全ての面が一様に濡れる状態になるように素早く吹き付ければいいのではないかと考えた。さらにダンボール箱のような半分閉じた空間だと霧が長時間漂うので、比較的換気の良いところで吹くほうが良いはず。

 

そこでもう一度トップコートを吹くことにした。これはダンボール箱の中では行わず手に持った状態で行う。トップコートは透明なので、ベランダに多少付いてもわからないし。全体が薄く一様に濡れる程度に素早く吹き付ける。その後乾燥。ベランダに置いておくと風で転倒させそうだったので室内で。

 

結果としてこれが正解みたい。左手側にあったような白い粉が吹いたような様子はなく、いい感じの仕上がりになった。

 

左手側ケースの修正

左手側ケースは特にトップコートでのしくじりが残念。ドバっと出たところが白い塊になっていたり、一部は吹き付けすぎ(?)で白いポツポツができている。この修正を試みる。まずは薄め液をつけてみた。使用したのはこれ。

www.mr-hobby.com

薄め液を少しだけ紙コップにとってそれを綿棒につけ、白い塊のところをトントンしてみる。多少目立たなくはなるが、完全には除去できない。さらに少しゴシゴシ擦ってみる。これも大差ない。どちらも乾いた後の質感が他と違う…。薄め液での対処はいまいちのようだ。

薄め液をつけた綿棒でトントンしたりこすったりした後

 

次にやすりをかけてみる。トップコートの白いポツポツを取ることができるが、見た目が変わってしまう。トップコートの層が除去されたからかな?

 

薄め液ややすりをかけた場所の質感がだいぶ値がてしまっているので、最後にトップコートを一部に吹く。乾燥したのを見るとだいぶ目立たなくなった。ヨシ!

 

ケース内壁にトップコートを追加

塗装の作業をして気になり始めたのはケース内壁の部分。ここはキーキャップと接近するところ。ここをしっかり塗装するのはちょっと無理。キーキャップをつければほとんど見えないのだが、気になるのはトップコートの塗り。これが不十分だとキーキャップが少しあたった時に色が移りそう...。それは絶対に避けたい。

 

そこでトップコートをこの内壁部分に追加することにした。スプレーでこの狭い領域を狙って吹きかけるのは無理なので筆で塗る。トップコートを紙コップの中に少量吹く。これを筆で取って内壁に塗る。粘度が高いので塗りづらい。後で思ったけど上の薄め液を少し足せばよかったかもしれない。塗りが難しいために少し失敗して上面側にはみ出してしまった…。

 

完成!

塗装してから2日程度乾燥させた後、基板とキーキャップを再び取り付けて完成!初めて挑戦した割には悪くない仕上がり。2回目に塗装した右手のほうが表面の質感が良い。多分サーフェイサーの後に磨いたのが効いているのだと思う。やっぱり手間をかけるほどいいものになりますね。

左右で少し色の深さが違う

色の選択はばっちり自分のイメージしていた通り。暗めの青だけれどメタリック感がでしゃばることなく主張していていい感じ。写真だとわかりづらいけれど左右で色の深さが少し違う。右のほうが少し明るくて左は少し暗くて濃い。これはカラー塗装の厚さが違うせいだろうか?やっぱり塗装は難しくて奥が深い。こういうのやってみるとキーキャップで色を均一にするのとかすごいなと思う。

出来が良い右手側ケースの違う角度からの写真

一つだけ心配なのは色落ち。これはしばらく使ってみないことにはわからないけれど、今のところ手が青くはなっていない。

 

あとがき

3Dプリントしたケースの塗装にチャレンジしてみました。試行錯誤しましたが、結構良い仕上がりになったと思います。これができると、3Dプリントで任意の形状のケースを作り、塗装で好きな色・質感にできるので、キーボードケース製作の可能性がぐんと広がります。

 

この記事は自作分割型キーボードopyc3437で書きました。

 

分割型キーボードの自作(4)

今まで触ったことすらなかった分割型キーボードを自作しました。今回は組み立てて完成まで。

 

キーボード基板のはんだづけ

まずは右手分のPCBにMCUセラロック、抵抗や10μF, 1μFのコンデンサなどをはんだ付け。セラロックはFA238などの水晶振動子と比べると手はんだしやすいのでいいですね。さらにUSBコネクタ基板とリード線でつなぐ。VCCが他と導通していないことをテスターで確認後、PCにつなぐ。ちゃんとMCUが認識されたらファームを焼く。

 

ファームはQMK firmwareで作成。左右のMCUに同じものを焼くことになるらしい。自分が作ったのはMasterが右。QMKは左Masterが標準と思って作ってあるっぽい(アップデートしてないので最新版は知らない...)。

#define MATRIX_ROW_PINS_RIGHT { <row pins> }

はあるけど、_LEFTはない。最初そのことに気付かず少し混乱した。ファームを焼いたらUSBコネクタを接続して右手のスイッチ部の配線を導通させて入力を確認。

 

問題ないことを確認出来たらダイオードをはんだ付けする。今回は配置を一列に並べたのでとっても楽なはず!と思っていたのだが、やってみるとそうでもなかった。少しでも位置がずれているものがあると目立って気になってしまうのです。そのため、ずれないように位置合わせにとても神経を使うようになり、結果疲れる。まあでも頑張ったおかげでダイオードは綺麗に並んだ状態にできた。

 

右手ができたら同様に左手も。左手側の動作を確認するためにはPCBとTRRSコネクタをリード線でつなぎ、左右を接続する必要がある。コネクタのどのピンにVCC, GND, Dataの線を繋ぐかを考える。挿入時にVCCと他の電極が導通してしまう可能性は避けられないので、TRRSを繋いでからUSBで繋ぐということにする。そう思うと何をどうつないでもいい気がする。

 

foostanさんの自作キーボード設計入門によれば、3極のケーブルを挿しても問題ないようにしておくと安心とある。これは頒布するなら考えていたほうがいい。ただし自分しか使わないのでやっぱりどうでもいい気がする…。

 

TRRSコネクタを良く観察してみると、ピンの1つだけ色が違う。データシート見ると1つだけ金メッキしてある。オーディオで使用するときに信号線を繋ぐことを想定しているのだろうか?とりあえずこれにシリアル通信のData線をつなぐことにする。VCCとGNDはピンが変形しても導通しないようにピンが対面になるようにした(だったら熱縮チューブで保護すべきだが...)。VCCがスリーブ(コネクタの入り口側)に来ると少し気持ち悪いのでGNDをスリーブにした。

 

TRRSコネクタのピンにリード線をはんだ付けしたら、自作した固定用アルミアングルにコネクタを固定してリード線に熱縮チューブを通す。その後、リード線をPCBにはんだ付け。PCBのスルーホールの間隔が狭すぎた。はんだ付けの難易度が高い…。心配なのでテスターで各電極が導通していないことを確認。

(左)TRRSコネクタをアルミアングルに固定、(右)TRRSからの線をはんだづけするスルーホールは間隔が狭すぎた

TRRSコネクタもつけて左右を接続できるようになったので、左側基板の動作確認を行う。

ダイオードまでつけて動作確認

特に問題ないのでスイッチをはんだ付けする。いつもなら組み立てを始める前にキースイッチの選定をしておくのだが、今回は完了できていなかった。すぐに使いはじめてみたかったので、とりあえず家に大量に余っているスイッチをつけることにする。ルブの有無で滑らかさが全然違うので最低限ルブされたスイッチを使いたい。ただし面倒なので、過去に使用したルブ済みのスイッチを使いまわす。これに加えていくつかのスイッチを新たに購入して試す。

今回新たに購入したのは以下のリニアスイッチ。

  • Green snake switch
  • JWK JWICK white linear

これらを右手の頻度が高いアルファベットのキーに配置する。残りは家で余っているルブ済みの以下のスイッチをつけた。

  • Everglide aqua king
  • Gateron pro yellow
  • Gateron Box Ink Pink

スタビライザーはDUROCK V2, Tecsee, Mekanisk Ultramarine stabilizer v2を使用。Holee Modを施し、PCBにはKBDfansのStabilizer foamを貼り付ける。スタビライザーが2Uサイズの場合にはこのModで結構好みの打鍵音になる。Stabilizer foamをつけると、1.6mm厚のPCBの場合はスタビライザーの取り付けが結構きつくなるが、そのためかスタビライザーのハウジングの爪が折れてしまった。スタビライザーって割と高級なのに…。一応使えるのでしばらくこのまま使ってみるけど、キーキャップを交換するときが不安。

スイッチをはんだ付け。スタビライザーのひっかけるところが折れてしまった…。

 

アクリルのボトムプレートの組み立て

ケースのボトムプレートは、アクリル板にガスケット受けとなる3つの板を接着剤で固定して作る。アクリル接着について調べると、セロテープで固定せよ、というのが出てくるのでこれまでセロテープで固定していた。ただセロテープが作業中に無くなってしまったので代わりにメンディングテープで固定した。ちょっと心配だったが特に問題にはならなかった。セロテープを使え、というのは粘着力が強くてテープの強度があるからかな?

 

接着は一発勝負。ズレた状態でくっつけてしまうわけにはいかない。接着を行う前に、テープで固定したボトムプレートを3Dプリントケースとキーボード基板と組み合わせ、位置を確認する。ズレていれば位置を修正して、再度組み合わせて確認をする。これを複数繰り返し、調整が終了したらアクリル接着剤で接着。すぐにくっつくけど念のため1日程度置いておく。完成したボトムプレートは下の写真。

アクリル製のボトムプレート

キーボード基板をケースに取り付ける

PCBの両面にキースイッチ部を囲うように3mm厚のPoronシートを貼り付ける。基板にシルクで貼付け領域を描いておいたので位置合わせがやりやすかった。

PCBの両面にPoronシートを貼り付ける

その後、キーボード基板を3Dプリントケースに収めて、コネクタをねじ止め、ボトムプレートをケースに固定する。フォームの粘着シールの厚さを考えていなかったためか、結構Poronフォームを潰した印象がある。また手前側のフォームは少しハサミでカットするなどして体積を減らした。そうしないとキーボード基板がケース背面側に寄ってしまい、キーキャップをつけたときにケースと干渉してしまう。

 

組み立て後の裏側の写真はこんな感じ。

組み立て後のケース裏面の写真

完成!

最後にキーキャップをつけて完成!とりあえずBキーが2つある(そういうセットを購入した?)MT3 Extended 2048のキーキャップを装着した。

完成!

一番のお気に入りポイントは側面から見たときのケースのシルエット。幅の広いベゼルの緩やかな曲線が良い感じ。またケース上面のキーキャップとケースの隙間を小さくしたので、その隙間からケース内部(PCB)が全く見えない。これも自分的には満足度が高い。

 

TRRSケーブルは、左右のキーボードを目いっぱい離して配置しても大丈夫なように2mを用意しておいたのだが、これはあまりにも長い…。1mでも十分な気がするけどまあ使えるからよし。

 

ちょっと煩わしいのは、USBでPCとつないだ状態でPCを起動するとキーボードが反応しない。右側だけでも同じ症状が起こるので無駄に長いTRRSケーブルや左側基板が原因というわけではないみたい。再起動の場合は大丈夫。何が原因だろう…。まあUSBコネクタ抜き差しすれば使えるのだけれど。

 

あとがき

初めての分割型キーボードが完成しました。完成したら早速使ってみようとするわけですが、いろいろわかりません。どれくらい離しておくのか?前後の位置は?角度は?そもそも普段から姿勢が悪いウルトラ猫背人間なので姿勢の良い状態が感覚的にわからない…。分割キーボードはどのような配置で使うのがよいのか、いろいろ試してみる必要がありそうです。

 

また3Dプリントケースは真っ白い色でこのままでも悪くないですが、せっかくなので塗装にチャレンジしようと考えています。塗装の心得が全くないので見た目を劣化させてしまうかもしれませんが。

 

分割キーボードの配置や使用感、塗装のことなどについてもそのうち記事を書くかもしれません。

 

この記事は自作ガスケットマウントキーボードchex68で書きました。

分割型キーボードの自作(3)

今回はケースの設計について。いろいろな寸法の遊びとかがちょうど良かったので自分のメモ代わりに無駄に細かく書いています。

3Dプリントのケースに挑戦

キーボードを自作するたびに、何かしら新しい要素を取り入れたり、やったことのないことに挑戦するのが自分ルールになりつつある。今回は分割というのが自分にとっての新しい試みなのだが、ケースについても何かしら今までやったことないことをやりたいなと考えていた。木をくりぬいたりして木製の立体的なケースが作れたらいいなとぼんやりと思っていたけど、分割だと左右2つのケースがいるのであまりに手間がかかるのはしんどい。そんな中このブログの記事に出会う。

kurihara.hatenadiary.jp

3Dプリンタはとっても魅力的ではあるけれど、積層痕が好きになれなくて選択肢にはならないなとずっと思っていた。ただ、このブログの画像を見ると積層痕は全然見えない。これは光造形だからだろうか?しかもだいぶ安く製作できるみたい。これだったら仕上げに塗装すればいい感じの立体的なケースができるのではないかと考えて、初めて3Dプリントサービスを利用したケース製作にチャレンジしてみることにした。

 

外形

前回の記事の通り、USBコネクタ基板やTRRSコネクタのスペースを確保するためにケース奥側のベゼルを広く取ることにする。いつのもように設計はAutodesk Fusion 360で行う。まずはPCBとキースイッチ描き、それに合わせてざっくりとケース外形を描いてみる。

 

できるだけPCBやキースイッチを見えないようにするのが好みなので、キーキャップ底面の高さがケース上面よりも低くなるようにしたい。これは見た目だけではなく、打鍵音の点でも重要ではないかと思っている。音がケースの中に閉じ込められるからだ(ちゃんと調べたことないけど...)。自分はたいてい背の高いプロファイルのキーキャップを使うので、キースイッチの位置は結構低めにしても問題ないはず。

 

今回は側面から見たときにキースイッチのステムが半分くらいケース上面よりも下に来るようにしてみる。最悪ガスケットのフォームの厚さで調整すれば1,2mm程度は修正できるはず。チルト角度は6度くらいにすることが多いけれど、今回は8度とややキツめにしてみることにした。

ケース外形をざっくりと作る

 

さて、ベゼルが広くてただの角ばった形だと面白味がない。あれこれといじりながら模索した結果、広いベゼルの面を緩やかな曲線にすると柔らかい印象になっていい感じがするという結論に至った。側面のスケッチでスプライン曲線を描いて切り取ると2次元的な曲面を作れる。どのくらいの曲率にするのかは勘だけど、曲面であることがぎりぎりわかるくらいの緩やかさを狙った。

ケース奥側のベゼルを緩やかな曲面にする

手前側のベゼルも奥側と同じように緩やかな曲面にする。はじめは大きなRをつけてまるっとした形状を考えていた(下図)。ただ、どうせ手前にはアームレストを配置することになる。そうすると曲面の半分くらいが隠れてしまう。ケースの前面でケースとアームレストの高さがだいたい合うほうが良いかなと思って手前の面は平面にし、上面は緩やかな曲面にした。

最初に考えていた手前側ベゼルの形状

 

上面を曲面にしてみると、他が平面なのはなんだかしっくりこない。側面と背面もちょいと細工してみることにする。せっかく3Dプリンタでケースをつくるので、統一感はあまり気にせずに板材の加工では作るのが難しいような形状にして遊んでみる。背面はデコボコな形。適当に書いた台形っぽい形を5mm切り取ってへこませる。柔らかい印象にしたいのでフィレットをつける。凹んだところにUSBとTRRSコネクタがだいたい左右対称になるように配置する。

ケース背面の形

 

側面はちょっと違う作り方をしてみる。3度傾けたスケッチ面に楕円を書いてそれを射影して切り取ると下図のような形ができる。ただ、この切り取りは浅すぎてレンダリングで確認するとこの形はぱっとわからない。実際も浅くてほとんどわからなかったのでレンダリングでの凹凸感は結構現実に近いのかもしれない。

ケース側面。傾いたスケッチ面に楕円を書いて切り取るとこんな形が作れる。

 

それにしても立体的なケースのデザインは難しい。曲面があると特に難易度が高い。曲面を上手に使って恰好いいカスタムキーボードとか設計している人の頭の中は一体どうなっているんだろうか?どんなふうに設計しているのか一度お手本を見てみたいものだ。

 

あとは細かい部分。キーキャップの端が来るところのそばまでケース内壁を内側へ伸ばす(下図)。できるだけキーキャップとケースの間の隙間は小さくしたい。1Uのキースイッチのピッチは19.05mmになっているので、キーキャップは19.05x19.05mmの四角に収まるようになっているはず。その四角の辺のところまでケースの端を持ってきてもいいような気がする。一方でガスケットマウントで多少キーボード基板の位置がずれる可能性があるので、余裕を持たせたほうが良い気もする。そんなんを考えながらいつもこの遊びをどれくらいとるか迷ってしまう。

キーキャップの端が来るところに合わせてケースの形を整える

これまで自作してきたキーボードでは0.5mm以上の遊びをとっていた気がする。今回はもう少し攻めて19.05mmの四角から0.2mmのところにケースの端がくることにした。3Dプリントの公差が0.1mm~0.2mm or 0.1%~0.2%となっているので、これ以上は攻めないほうがいいかなと。結果としてちょうどいい寸法だった。

 

コネクタの固定部分

選定したパネルマウントのTRRSコネクタは、取り付け板厚が最大2mmまでとなっている。ケース背面の板厚を2mmにしてコネクタを通す穴を空けておけば取り付けられるのだが、3Dプリントの強度が全然想像できず、あまり薄いとパキッといったりしないだろうかという心配があった。そこでTRRSコネクタを19mmx19mmx1mmのアルミアングル(これは自分で加工する)に取り付け、それをケースに固定することにした。

 

アルミアングルのケースへの固定はM2ネジとナットを使用する。逆さにしたケース内部にアングルをのせる台座を作り、台座の側面に4.2mmx2.0mmの四角い穴をアングルが接する面から2.5mmの位置に空ける。この穴にM2のナットを入れることになる。JLCPCBの3Dプリンタのデザインガイドでφ2mmの穴の深さは2.0-6.0mmにすべしとあるので、これに準じてナットの四角穴の深さは6.0mmとしておく。ねじを通すための穴を底面側、側面から3mmの位置に空ける。

ケース内部を底面から見た図。パネルマウントのTRRSコネクタをアルミアングルに固定し、それをケースに固定する。右は断面図

実際のケースは結構がっちりした印象なので、アルミアングルはなくても強度は問題なさそうな気がする。アルミアングルを使う利点としては組み立てしやすいということ。もしパネルマウントのTRRSコネクタを直接ケースに固定するのであれば、基板とケーブルの接続ははんだづけではなく着脱可能なコネクタにするのが良いだろう。そうしないと組み立てが大変になる。

 

USBのコネクタ基板についても、TRRSコネクタと同様に台座を作って穴を空けておきM2ネジ・ナットで固定することにする。基板固定のためのねじを締めるときに、ケースの底板を受ける部分が邪魔してドライバーが使えなかったりしないかが心配。

USB基板を固定するための台座とねじ穴を空ける

 

キーボード基板の固定方法

キーボード基板はガスケットマウントでケースに固定する。基板のキースイッチ部を四角で囲うように上面・底面両面にポロンシートを貼り付けて、ケースで上下から挟んで抑える。上面からは3Dプリントケースでおさえ、底面側は下図のような支持する部品をケース底板につける。これをアクリルで工作することにした。底面の板を3Dプリントで作るのは強度が心配だったのと、アクリルだったらある程度安くできるかなという考えから。

(左)ケース底面と(右)ガスケット受け部の断面図

底面側からガスケットフォームを受ける左右の三角形の部品は、手前まで伸ばすととても鋭くなる。そんな部品だとパキッと折れる未来しか見えない。三角形のパーツの先端は角を削り、キーボード基板の手前側は3Dプリントケースで上下を咥えるようにする。

 

キーボード基板は手前側を先にケース内に入れてから背面側をケース内に入れていくことになる。Fusionで基板の手前側を軸に基板を回転させて、ケース背面と干渉せずにちゃんと入れられることを確かめておく。

 

ガスケットはポロンシート3mm厚を使用する。上下のガスケット押さえの間隔は6.6mm(右図)、基板の厚さは1.6mmなので上下のフォームは0.5mmずつ潰すという計算になる。あとで気づいたけれど、使用するフォームは粘着シール付きでこれの厚さがそれなりにあるはず(0.5mmとかあるのでは?)。なのでフォーム潰し過ぎかもしれない。

 

アクリル底板は3Dプリントケースの切り取った部分にカポッとハマるようにする。こうすれば側面から見た場合でも底板は見えなくなる。底板は3mm厚のアクリルを用いることにし、その板厚の分だけ3Dプリントケース底面を切り取る。切り取る部分と底板の寸法を一緒にしてしまうと嵌められるけど取れない、ということになりかねないので、前後左右に0.2mmずつ遊びを取っておく。

 

3Dプリントケースに底面のアクリル板を固定するための穴をケースに空ける。固定方法はコネクタと同じ。四隅と前後中央の計6か所に穴を空ける。前後中央はそのためにケース内側に柱を追加する。

ケース底面から見た図。四隅と前後の中央に底板固定用の穴を空ける。

 

ケースの肉抜き

JLCPCBにstepファイルをアップロードすると見積もりが出る。設計している途中に価格が気になって数回アップロードして見積もりをチェックしたが、なんとなくプリントする対象の体積で価格が決まっているのではという仮説がたった(ちゃんと調べたわけではない)。

 

ケースはそれほどコンパクトではないし、左右分の2個つくることになるので、1個当たりの価格はできるだけ抑えたい。そこでケース手前の部分などの肉抜きをして体積を減らす。実際これをやると価格が少し下がる。

 

打鍵音の点では空洞を作らないほうが良いだろうし、空洞が無いほうがケースの剛性が向上していいだろうけど、今回は打鍵音よりもできるだけ安価にすることを重視する。ケース設計が複雑で失敗しそうな気がしていたので…。ただし肉抜きをやり過ぎてあまりに薄くしてしまうと強度や変形が心配なので、コネクタがつく背面を除いて3mmは厚さを取ることにした。断面図は以下のような感じ。

ケース断面図

 

ケースの発注

右側のケースデザインのコピーをもとに左側もデザインする。左右のケース外形を共通にできたので、大きな修正が必要なくて作業がだいぶ楽だった。ケースの設計が終わったらいよいよ発注。

 

JLCPCBのSLAだと3種類の選択肢がある。一番安価なのは9000Rだけど、Heatproofが46度。真夏に直射日光があたった場合の暑さに耐えられるのだろうかという不安からレジンの中でも最もHeatproofの温度が高い(56度)LEDO 6060を選んだ。

 

オーダーするとまずチェックが入る。10分ほどでメールが帰ってきた。早い!複数のパーツがあって問題があるよとの指摘。しかしパーツは1個のつもりなので、あれ?と思ってstepファイルをFusionで開いて確認してみる。チェックのために描いたナットがあったり、一体と思っていたケースが一部だけ別のパーツになっていたのが原因だった。オーダーする前にファイルをちゃんと確認しないといけないですね…。

stepファイルをFusionで開いてみるとボディが複数ある…

 

修正・確認してもう一度オーダー。システムの都合で最初にオーダーしたものはfailedとして、もう一度新しくオーダーする必要があったため。担当者にお礼を添えてメールを返信。40分後くらいにapprovedの連絡を受けた。早っ!!

 

アクリルパーツはいつもお世話になっているはざいやに発注。オーダー発注なのに安いしカットの精度も良いので助かる。ただ部品数が片側4個あるので、もしかしたらガスケット受けの部分だけ3Dプリントで作ったほうが安かったかもしれない(けどこれは未確認)。

 

3Dプリントケースが来た

JLCPCBに発注したケースはApproveされてから28時間後くらいに発送された。すごい早いっ!!!まあ輸送で8日くらいかかったけれど。下図は届いたケースの写真。

(左)ケース底面側。(右)ケース上面は模様が見えて少しデコボコしている。

総評としては結構精度が出ていて変形などはなく良い感じ。面によって表面の粗さが違う。人間の手は感度が高くて小さなデコボコが結構わかるものだが、背面はつるつる。一方で側面や上面はデコボコを感じる。側面はよ~く観察すると斜めの積層痕が見えるがとても細かい。この積層痕は、ケースをデスクの上に置いて部屋の照明でふつうにみるだけなら全然わからない(光を反射する白色だからかもしれない)。

 

上面は少しデコボコしていて少し模様がある。プリント時にサポートがついていたのかな?どうせなら背面よりもこの上面をつるつるの仕上がりにしてくれたほうが良かったのだけれど…。ただしこれも目立たないのでそれほど気にならない。側面の丸く切り取った形状はだいぶ薄っすい感じでうまく光を当てないとわからないくらい。今後このような模様をつけるなら要改善ですね。

(左)ケース側面、(右)底板固定用のねじ・ナット穴の確認

 

一番心配だったのは固定用のねじ・ナット穴など。USB基板のねじ止めの際にケースが邪魔でドライバーが使えないかもしれないという心配があったが、ぎりぎり固定できたのでケースを削らずに済んだ。またナット穴の寸法はきつ過ぎずゆる過ぎずでちょうど良くて完璧。ヨシ!

 

唯一の後悔は梱包に入っていた緩衝材(写真のケースの下の白いやつ)を捨ててしまったこと。これ厚さがあって加工しやすいので今作のキーボードのケースの中に仕込んで空間を埋めるのにちょうど良かったのだけれど…。

 

何箇所か心配なところもありましたが、幸運なことに致命的な設計ミス無く3Dプリントケースが完成しました。それにしても3Dな形状のケースの設計は難しいですね。プラモデルの設計している人とか超人に思えてきました。次回は組み立てについて書こうかなと思っています。

 

この記事は自作分割型キーボードopyc3437で書きました。

 

 

分割型キーボードの自作(2)

今回はPCBの設計についてあれこれと書いてみました。

分割キーボードの左右の通信ってどうやるの?

これまで複数のキーボード基板の設計をしてきたが、分割キーボードは作ったことがなかった。左右の通信はどうやったらいいのかわからなかったので調べてみると、左右の基板それぞれにMCUを配置してそれらをシリアル通信するらしい。

 

foostanさんの自作キーボード設計入門を読み返してみると、左右接続のシリアル通信は3線(GND、VCC、Data)がつながればよいみたい。3線だけつながればいいのでTRSでもいい気がするのだが、TRRSコネクタがよく使われるのはI2C通信でも対応できるようにするためなのかな?またこの本ではTRSケーブルにも対応できるようにピンの対応を決めるとよいということも書かれている。なるほど。

 

MCUはATmega32U4を使用する。これは以前買ってストックしておいた+昔作ったけど使っていないキーボードから剥がしたもの。最近は入手しづらく価格も上がっているので、このMCUでキーボードを作るのはこれで最後になるかもしれない。

 

USBコネクタとTRRSコネクタ

ほとんどの自作キットでは表面実装型のTRRSコネクタをキーボード基板につけている。ガスケットマウントにしたいと考えていて、そうするとケースとの高さ調整がシビアになる。なのでこれまで製作してきたものと同じように、キーボード基板とUSB、TRRSは別にし、それぞれをリード線でつなぐことにする。USBコネクタはちょうど以前つかったSparkFunのUSB基板が余っていたのを流用する。TRRSコネクタについては、秋月電子で販売されているパネルマウントのMJ-064Hを使うことにした。

 

ただ、このTRRSコネクタは全長が20mm以上でケース内で結構なスペースを取る。どうせ3線しかつながないのだから、もっとコンパクトにできないもんかとあれこれ考えたが、いいアイデアが浮かばなかった...。五月中に組み立てたいという時間的制約があったので、小さいコネクタにすることはあきらめて、このコネクタに合わせてケースを設計することにした。

 

これまでの設計してきた基板からの変更点

TRRSの接続部分以外はこれまで作ってきたキーボード基板の設計を流用すればすぐに出来上がるが、それでは面白くない。次の要素を今回導入することにした。

 

コンデンサ・抵抗などは1206(3216M)サイズのものを使うのが自分の定番になっていた。初めて基板を作ったときは何も考えずにコンパクトなサイズの0603(1608M)を使用したのだが、慣れていないこともあって手ではんだづけするのがとっても辛かった。そこであるときからはんだづけが優しい少し大きめのサイズを使うようにしていた。

 

まあPCBAでやればいいのだけれど、頒布とかしなくて基板1枚しか使わないことがほとんどなので、結局いつも手はんだになってしまう...。これは少し面倒ではあるけれど、手間をかけたほうが愛着がわくので普段使いするつもりなら手はんだするのも悪くない。

 

そういうわけでキーボード基板にMCUを含む素子を手はんだするというのを繰り返してきたのだが、おかげで小さい素子のはんだ付けにだいぶ慣れて心理的抵抗が無くなっていた。そこで今回はコンパクトにできる0603(1608M)サイズのものを使うようにした。

 

セラロックもコンパクトなこれをを使用する。以前導入したときは適当に部品を選定してしまったおかげでそれほど小さくなく、全然省スペース化になっていなかった。これならだいぶコンパクトになる。

 

電源ラインにTVSダイオードを入れて静電気対策を強化する。効果がどれくらいあるのか、そして実装のやりかたが合っているかはよくわからないけど、まあ最悪取れば今まで作ってちゃんと動ているキーボードと同じになる。とりあえず基板パターンに含めておくことにする。だた、部品を調達しようとしたら品薄で納期がすごいかかることがわかったので、結局実装はしていない。

 

KiCadを使った基板設計

KiCadを利用して基板を設計する。だいたいの部分はこれまでのものを流用すればいいが、外形などは新たに考える必要がある。このときにケースの設計もざっくりとしておく必要がある。ケース内部にキーボード基板、USB基板、TRRSコネクタを収めるのだが、TRRSコネクタが結構スペースを取る。いつもケースを考えるときはベゼルをできるだけ狭くしようとして四苦八苦するのだが、今回は逆に広いベゼルのケースを作ってみることにした。

 

TRRSコネクタは側面に向けるか、背面に向けるかという選択肢がある(上面に向けるという選択肢もなくはないけど…)。分割キーボードの利点の一つは左右の間にものを置くスペースを作れるということ。であれば左右を繋ぐケーブルはその邪魔にならないほうが良いだろうと考えて背面側に向けることにした。ケース奥側のベゼルを広く取り、コネクタをこのスペースに配置することにした。

 

ケースベゼルが広ければキーボード基板を頑張ってコンパクトにする必要もなくなる(だったら小さい素子をつかう意味はないのだけれど...)。そこで以前からやりたいと思っていたダイオードを一列に並べる、というのをやってみることにした。こうするとはんだ付けがとっても楽になる。キーボード奥側のUSB/TRRSコネクタが来ない空いているスペースにダイオードを一列に配置する。規則的に並んでいるダイオードの配置に合わせて配線するので配線パターンがきれいになる傾向があると思う。

ダイオードを一列に並べて配置する

部品はすべてPCBの底面側にすべて実装することにした。ケース内でそちらのほうがスペースがあるのでケースとの干渉を気にしなくて済む。はんだづけ時にわかったが、左右のシリアル通信のためのリード線をはんだ付けする3つのスルーホールは、間隔が狭くてはんだ付けがちょっとしんどかった。USBコネクタと線でつなげるための4つのスルーホールくらい間隔をあけておいたほうが良い。

MCU周りの配線

シリアル通信のDataをつなぐMCUのピンは左右でそろえておくのがファームウェアの点で良いみたい。意識していなかったけどたまたま左右で同じピンを使っていたのでQMK_Firmwareで特に苦労せずにファームウェアを構築できた。左右でピンが違ってもできないことはないと思うが、ファームを書くのが大変かもしれない。

 

キースイッチはホットスワップ用ソケットは使わずにはんだづけでスイッチを固定することにした。以下がその理由。

  • スイッチをはんだづけすることに心理的抵抗がなくなっている
  • ソケットとスイッチプレートがいらないのでこれらの費用がかからない
  • ポロンフォームをつかったガスケットマウントと打鍵音の点で相性が良い(自分の好み)
  • 大量に使っていないスイッチがあるのでスイッチをケチる意識がなくなっている

まあでも費用の点が一番かな。デメリットは3ピンのスイッチは使えないこと(頑張れば使えるけどはんだ付け時に何かしらの位置決め治具が要る)。

 

これまで自作してきたガスケットマウントのキーボードでは、高級カスタムキーボードに倣ってスイッチプレートや基板にタブをつけてそこにポロンフォームを貼り付けていた。今回はガスケットとなるポロンフォームでキースイッチ部をぐるっと囲うように1周させる。こうするとスイッチ部底面を半密閉状態にさせることになるので、打鍵音に影響があるかなぁと思ってこのようにしてみた。5mm幅の粘着付きフォームを貼ることにして、基板の両面には貼付ける部分をシルクで描いておく。

 

あとは念のためPCBだけでキーボードとして使えるように、四隅に穴を空けておく。スペーサーを介して余っている基板を底板としてつければケースが無くても使えるはず。加えて雑にMCU付近にもコネクタ固定用の穴も空けておく。もしケース設計に失敗してもこれらの穴を利用すれば基板だけでキーボードとして使えるようになる(はず)。

 

最後にDRCを確認し、シルクを整えて完成。基板は以下のようになった。キースイッチからの配線は結構きれいにできたと思う。これだけ基板にスペースの余裕があるとだいぶ設計が楽になる。

右手基板

左手基板

基板の発注

左右のPCBをマウスバイトでつなげて1枚のPCBとして発注するか、分かれた基板としてそれぞれ発注するか迷ったが、結局分けて発注した。

  • 1枚にしても安くなるわけではない
  • マウスバイトで切り離したあとでやすりがけするのが面倒
  • もし片方の基板でミスがあった場合、最初から分けてあった方が修正が楽

というのが理由。

 

基板はJLCPCBに発注。3Dプリントサービスで作るケースと一緒に発注して送料を浮かせたいという考えだったが、3D プリントは別送になるようで結局基板とケースは別々に発注することになった。それぞれ送料がかかるけどまあしょうがない。基板の色はこれまで選んだことのない紫にしてみた。

 

基板が来た

実際に届いた基板の写真がこれ。

到着した基板の写真

最近は面倒なのでGNDベタを全体に入れないのだが、そうすると色がだいぶ渋い。配線パターンやGNDベタの部分は割と明るい色になっている。明るい色にしたい場合にはGNDベタを入れたほうが良いと思う。

 

次回の記事はケースの設計について書こうかなと考えています。

 

この記事は自作分割キーボードopyc3437で書きました。

分割型キーボードの自作(1)

分割型のキーボードは自作ならではの形態。それなりの数のキーボードを自作してきた割には分割型のキーボードをこれまで触ったことすらなかったので、設計して作ってみることにしました。今回からこの分割キーボードについて記事を書いていこうと思います。今回は主にキー配列について。

 

動機

日本では自作キーボード=分割キーボードといっても過言ではないほどたくさんの自作分割キーボードがある。その割には自分は分割キーボードを触ったことすらない。日本人たるもの分割型キーボードに触れてみなくては自作キーボードを嗜んでいるとは言えないのでは、と頭の中で誰かが囁く気がするのです。

 

というわけで分割キーボードを自作してみることにした。分割キーボードは自然な姿勢になる、肩こりが取れるというようなことが言われている。自分は肩こりは全然ないものの猫背がひどくて姿勢が悪い。最近は運動不足もあってかさらに姿勢が悪化しているなと感じているので、分割型のキーボードを使うことによって姿勢が改善することを期待。

 

分割キーボードの自作キットはとってもたくさんある。自分に合いそうなものはないものかと、まずはRemapカタログを眺めてみる。NKNL7EN、Acperience70、mint60はかなり自分の求めているものに近いのだが、後述するようにBキーが左右両方にあって欲しいのでちょっと求めているものとは違う。結局いつも通り自分で設計することにした。

 

キーレイアウト

方針

普段使いとしてしばらく(少なくとも1か月くらい?)使用してみて、分割キーボードで姿勢が良くなるのかを試したいというのが一番の動機。あんまり攻めたキー配列にして使いづらいようでは使い続けることができなくなってしまう。そこで、現在自分のスタンダードとして使用しているRow staggeredの68キーの配列からは大きく変えない、というのを今作の方針とする。

 

いつもの様にKeyboard Layout Editorでいじりながら考える。キー配置は最終的に以下のようになった。

キーレイアウト

Bキー

Bキーは左でタイプするのが教科書的な指づかい。ただ自分は無意識に左右両方の指を使っている。どうも「ba」や「be」などの組み合わせの時は右手でBをタイプしているようだ。これは最近買ったこのキーボードを使っていたら気づいた。

www.amazon.co.jp普段と違うキー配列のものを使うと自分の癖に気づけるので面白い。

 

「be」とかは左手だけでタイプするのは苦痛な感じがするんだけれど、世の中の人はどうしているのだろうか?この機会に教科書的な指づかいに矯正するという考え方もあるけど、右にBが無いとイライラしそうな気がしたので現在の運指を保てるように右にもBを配置することにした。6については頻度が少なくてどちらの指を使っているのかわからないけれど、Bと同様にとりあえず左右両方に配置しておく。まあ使わなければスイッチ外してブロッカー置いておけばいい。

 

矢印キー・Deleteキー

矢印キーとDeleteキーはデフォルトレイヤーに欲しい。自分が愛用している68キーの配列ではよくあるテンキーレスのキーボードのように右側に配置している。ただ、単純にこの68キーを分割すると右側のキー数が多くなってしまって左右の大きさのバランスが悪い。これを避けるために、矢印キーについては以前自作したほぼ60%サイズのキーボードと同様に右下に詰めて配置する。また矢印キー隣にFnを配置し、組み合わせてPage Upなどにする。以前自作したほぼ60%キーボードでFnキーの位置がLeftキーのすぐ隣になかったのが使いづらかったので、今回は隣に配置する。おさまりをよくするために、Upは右Shiftの右ではなく左に配置する。

 

あとはDeleteキー。CADやExcelなどをいじっていると、右手でマウスを操作しながら左手でDeleteを押したくなる時がある。上で述べた68キーのキーボードのようにDeleteが右上にあるととっても押しづらい。左右のキー数のバランスのこともあるので今作では左側にDeleteを配置する。同じ場面でEnterも左側に欲しくなる気がしたので左にも配置する。これらは左端に配置。この2キーだけだと余白が広すぎて持て余している感じがあるので、さらにPage Up/Downの2キーも配置する。

 

はじめはこれらの4キーを間をEsc~Ctrlの左端にRowを揃えてピッタリつけていたが、そうするとRow staggered感が薄れる。

左端4キーをピッタリつけた場合

これを避けるだけなら0.25u隙間を空ければ十分。ただ、いろいろいじっていて気づいたが、間を0.75uにするとキースイッチ部の横幅が左右両方とも9uになる。これは左右のバランスが良いし、なによりケースのベゼル幅と外形寸法を左右で同じにできる。ケースの左右でデザインの異なる部分を減らせたほうが設計ミスを引き起こしづらくなるはず。というわけで0.75uの間隔を空けることに決定。

 

左端4キーの前後方向はあえて他の部分に対して0.5uずらす。手前側・奥側の余白のバランスということもあるけれど、0.5uずらすことでキーキャップのRow(高さ)が一致しなくても気にならなくなるかなぁという期待。

 

スペースキー

英単語のタイピングテストをしているとき、自分はスペースキーを右で打鍵している。一方で日本語の文章を書いているときには変換の時に右だけでなく左でもスペースキーを打鍵している。最近気づいたのだが、多くの人はスペースキーを左手で打鍵しているみたいで右手は少数派みたい。これ、YouTubeの打鍵動画を複数見てたらみな左手なのでふとそう思ったのだが、@k2___________さんが集計してくれたおかげで確認することができた。

 

まあでも自分は少なくない頻度でスペースを左でも打鍵しているようなので、自作する分割キーボードではスペースキーも左右両方に配置する。

 

ではキー幅をどうするか。1uのような小さいサイズは避けることにした。分割キーボードを使ったときに自分の親指がどのあたりを押すようになるのかが予測不能なためだ。なのである程度幅のあるキーにする。3uが一つの選択肢だが、キーキャップやスタビライザーのワイヤーの入手性は良くないのでこれはなし。結局スペースは他のキー幅との兼ね合いで、左右にそれぞれ2u、2.25uを配置することにした。一体型の場合、打鍵の左右位置は左親指はVBの間、右親指はBNの間辺りなので、左右のスペースキーの端がBの中心くらいまで伸びていればきっと問題ないはず。

 

あとはスペースキーのRowの他のキー幅を整える。右Altは全然使っていないのでこのキーは除くことにした。スペースと矢印の間に2キー配置するのがおさまりが良い。矢印キー隣のFnは使用頻度がそれなりにありそうな気がしたので、1uでなく1.25uのやや広めのキーにする。現在使用している68キーの配列に比べると、左スペースの左側に空きができるので、ここにはとりあえずFnを追加しておく。このFnキーは左端のキーとの組み合わせを片手で押せるようにするため。ちょっと遠いけど。押せなくはない。

 

キーキャップ問題

標準的なRow staggeredをベースにしているので、キーキャップは右Shiftの1.75uが少し特殊なくらいで多くのキーキャップセットは適合するはず。問題なのはBと6キーが2個ずつあるところ。キーキャップの印字を合わせたい場合には、これらのキーキャップがそれぞれ2個必要となる。Bが2つあるキーキャップセットは存在するが、6はキーキャップセット2個買わないと印字・Rowを一致させられない気がする。ケチな自分はそんな贅沢はできない。ここは目をつぶることにする。

 

キーボードの名前

設計に取りかかる前にこのキーボードの名前を考える。今回のキーボード自作の一番モチベーションは姿勢を良くしたいということ。最初、open your chestの頭文字をとってOYCにしようかと考えた。ただ、読み方がオーワイシーとなって読みづらいし憶えにくい。そこでopyc(オーピック)とすることにした。石油輸出機構感があるような気がしなくもないけどまあ良し。左右のキー数もつけてopyc3437という名前に決定。

 

 

記事が長くなると推敲が大変なので今回はここまで。次回はPCBの設計について書こうかなと考えています。

 

この記事は自作分割キーボードopyc3437で書きました。

 

 

打鍵音ほぼエンドゲームの自作キーボードが完成した

ついに打鍵音に満足いく自作キーボードが完成した。今回の記事はそのキーボードについて紹介します。

タイピング音

タイピング音はこちら。

www.youtube.com

 

ケース構造・マウント方式

もともとはプレートレスPCBガスケットマウントキーボードとして設計したもの(ケースの詳細はこの記事を参照)。PCBにスイッチをはんだ付けするのでスイッチの位置固定用のプレートは必要ない。PCBにはガスケットをつけるために前後4ヶ所ずつにタブがついている。ここに5mm厚のPoronフォームを底面側につけて、キーボード部を下からケース底面で支える。

 

PCB上面側には5mm厚のシリコーンゴムシートを両面テープで貼り付け、このシートの外周部分をケース天板で抑えている。同じ厚さのPoronフォームと比較すると、シリコーンシートの方が打鍵音をマイルドにできるように思う。密度が高い分だけ防振能力が高いということだろうか?

 

しかしこれだけだと打鍵時の振動が大きく、打鍵感がバインバインでどうも自分の好みではない。そこでPCBーケース底面の間に衝撃吸収フォームを挟んでいる。この手のフォームは本来、PCBーケースの間の空間を埋めて音が反響するのを抑制するという狙いで入れられていると思う。そのため、通常はぎりぎりつぶれないような厚さになっていると推測している(いまだにカスタムキーボードを買ったことがないので実際を知らない)。自分的にはフォームが少し潰れるくらいに押し付けた状態のほうが打鍵音がコトコトした感じになって好みの音色になるような気がする。このキーボードでは押し付け具合の調整のために、衝撃吸収フォームの下にさらに1mm厚のフォームを入れている。

 

下の写真はアクリル積層ケースの側面を取り外した状態の写真。PCBのタブにつけた5mm厚のPoronは結構つぶれていて、底面に敷いている黄色い衝撃吸収フォームもPCB底面にピッタリくっついて、PCBから少し飛び出しているスイッチのピンのところでは少しつぶれた状態となっている。

f:id:kgnwsknt_chef:20220416074627j:plain

ケース側面のアクリルを外した状態

 

こうなるとPCBはガスケットタブの部分をケースで支えられているわけではなく、PCB底面全体を下から支えている状態になる。これはよくあるガスケットマウントとは違う気がする。フォームマウント?でも上面はシリコーンシートでケースと接している。何マウントと呼べばいいんだろう?

 

PCBのスタビライザーのステムがあたる部分は穴を空けてある。これによりスタビライザーのついたキーを打鍵したときの底打ち音をかなり低減することができる。シリコーンシートを使ったことにより控えめな打鍵音となっているので、スタビライザーがついたキーだけ打鍵音がやたら目立つ、というのを避けることができる。

 

キースイッチ

キースイッチの選定のために次のリニアのスイッチを試した。

  • Gateron yellow (milky top, black bottom) + UHMWPE stem 
  • Gateron yellow (milky top, white bottom)
  • MOMOKA Flamingo
  • MMK Frog
  • Wuque Studio OA swtich
  • Lychee UHMWPE Linear

どれも同様にKrytox GPL205g0でルブし、下図のように3個ずつ取り付けて1週間くらい使用してみた。また、SA-P、MT3、MDAプロファイルのキーキャップを嵌めて打鍵音を比較した。

いろんなスイッチを試してみる。中央以外はGateron yellow(milky top, bottom black)にUHMWPEステムを入れたもの 。

比較からGateron Box Ink Pinkが一番自分の好みであるとという結論に達した。滑らかであり、またBoxタイプの特徴であるステムのぐらつきが小さめであること、そして何より打鍵音が抑えられている点が良い。トラベルが短めは自分は全然使ってこなかったので、合わないか少し心配したが杞憂だった。慣れれば全然違和感はない。強いてこのスイッチの欠点を上げるなら価格か?他のスイッチと比較すると少しお高め。

 

他のスイッチについても簡単に感想を述べておく。Gateron yellowは何よりコスパが素晴らしい。打鍵音が抑えられていいのだが満点まではいかない。若干のかすれる感じがある。MOMOKA Flamingo、MMK Frogはどちらも悪くないのだが、打鍵時の底打ち音、戻ってくるときの音がGateron Box Ink Pinkに比べて大きいと思う。Lycheeは打鍵音の点では音が抑えられていて自分の好み。ただしキーの奥側をタイプするとかすれる感じがしてしまう。またSA-Pのキーキャップは緩くてしっかりはまらずに結果として打鍵音が残念になる。これはどちらかというとキーキャップ側の問題な気がする。他のUHMWPEステムでも同様にはまりが緩いし。OA switchは打鍵感・打鍵音ともに良いのだが、Gateron Box Ink Pinkに比べると少し戻りの音が大きいか?(どれも個人の感想です)

 

キーキャップはMDAを使うことにした。これが一番打鍵音がしっくり来る気がする。これまでずーっと背が高いプロファイルのほうが打鍵音が低音に寄って自分の好みになると信じていたのだが、どうも心地良いと感じるのはそれだけではないみたい。MT3は何だか軽い感じがしてしまうのに対してSP-Aはちょっと打鍵音が強すぎる印象。これはキーキャップの厚さだろうか?あるいは音の高低とケース等との相性なのだろうか?やっぱり打鍵音はいつまでたっても「完全に理解した」にならない。

 

スタビライザー用キースイッチ

はじめスペースキーにもGateron Box Ink Pinkをつけたが、このスイッチはトラベルが短いせいか、打鍵時の底打ち音がとても目立ってしまう。これではせっかく空けたPCBスタビライザー部分の穴が活きないので、スタビライザーありのキーについてはトラベル長めのスイッチに変更することにした。

 

はじめMOMOKA Flamingoを試した。トラベルは3.9mm。狙い通りに底打ち音をかなり抑えられたのだが、一方で押し下げた後に戻ってくるときの音が大きくて、これもタイピング時の打鍵音のバランスが悪い。この戻りの時の音はルブで変化することが多いけど、このスイッチではそこまで抑えられなかった。自分が求めているのはこのスイッチではない。まあでもトラベルが3.9mm以上であれば底打ち音は小さくなることが確認できた。

 

つぎにOA switchを試した。このスイッチだと底打ちも戻ってくる音も抑えめで、かつ滑らか。タイピング音のバランスが良くなったのでこれを採用することにした。

 

まとめ

ついに打鍵音が満足できるほぼエンドゲームの自作キーボードが完成しました。「ほぼ」とつけているのは、木製の机の振動音がやや気になってしまうこと。ケース底面の足の下に5mm厚のPoronフォームを敷くと幾分ましになるけれど、家の机との相性はイマイチかも。まあほとんど気にならないですけどね。

 

最初に組んだGateron yellow (bottom black, top milky)+UHWMPEステムの打鍵音(打鍵音はこちら)と比較すると、音の違いはわずか。カサカサ音は少し低減して、なんていうか、もう少しはっきりとした打鍵音になっていると思う(音色を文字化するのは難しい…)。

 

打鍵音が心地よいのに加えて音が控えめなので職場で使おうかなと考えています。そうすると自宅用にメインに使うキーボードがもう一台欲しくなります。打鍵音に満足したので、違う要素に注目してキーボードを自作しようかなと考えはじめています(何台作れば気が済むのか…)。

 

この記事は打鍵音ほぼエンドゲームの自作キーボードchex68で書きました。