月面三点倒立

後方2回宙返り1回ひねり三点倒立

オリジナル自作キーボード開発(2D)を早足で説明する

はじめに

この記事は 「自作キーボード Advent Calendar 2018」その1(3まであるよ!)の13日目の記事です。 adventar.org

どもどもども。自作キーボードを5月頃に始めたので半年ちょっとのまだまだ初心者の みなも です!
この記事を書いてる時点ではまだ 3台位しか自作キーボードを開発してない のですが、2Dキーボード開発が思ったより簡単で楽しかったので、もっと多くの人に作ってもらいたいし、色々見てみたいので、今回は
「2Dオリジナルの自作キーボード開発のきっかけになる」を目標に書いています。(3Dは手配線だと思うので大変...)
まず、キーボード開発の全体の流れですが

順番 内容 初心者的難易度 備考
1 キーボードの回路を学ぶ ★★★ 難しいというより基本
2 KiCadで基板を設計 ★★☆ 慣れたら楽しい
3 DraftSightでプレートを設計 ★☆☆ チェック大事

の3ステップで進めます。
これらの内、最初のキーボードの回路だけゆるく分かれば後は出来た様なものです。
 

キーボードの回路を学ぶ

booth.pm こちらを読めば解決です。ゆかりさんの本では今まさに界隈で始まりつつある立体的なキーボードについても扱っておられますが、全体の約半分(32ページ位)までを読めば 2D のキーボードに取り掛かれる感じです。
押さえておきたいポイントとしては

  • 可能なら手元で実際に試しながら読む(オススメ!)
  • キーマトリックスを理解する

です。
補足というか、適当な図解を描いてみました(筆圧感知変で所々ヘロヘロ)。

f:id:X---MOON---X:20181201215558p:plain
逆方向は流れにくいけど流したら壊れると思われるダイオードの図
f:id:X---MOON---X:20181201183419p:plain
キーマトリックスはお得らしいですヨの図

ヘロヘロな図解ですが、要するに 沢山のスイッチを限られたポートを使って全てチェックする方法 です。
行と列をどの様に分割するかは開発者次第です。(上の図は拙作 ことのは『侘寂』 の左手側として見た回路)
国内自作はスプリット型が多いのでシリアル通信についても知っておくのが当然良いのですが、OSSとして基板やファームが公開されている自作キーボードを参考にさせてもらうことで、最低限キーマトリックスだけ押さえておけば出来てしまったりもします。
( ただし後でちゃんと勉強すること )
回路を学ぶ上で重要なのは「実際に手元で動かしながら少しづつ読み進めること」で、手元に余分に買っておいた ProMicro などがあるならブレッドボードなどの道具を揃えて、動かしてみるだけでも 難易度がゴリゴリ下がって理解が早くなります
検証大事。
回路を押さえておけば6割位は出来たようなものです。

KiCadで基板を設計

回路について理解したら後は作業するだけです。
まず、取り掛かる前に KiCad での全体の流れと工程の目的を押さえましょう。

順番 作業 目的
1 キーボード回路を書く 部品をどう繋ぐか指示する
2 フットプリントを決める どの部品を使いたいか決める
3 配置したり外形を決めたりする EndGameを目指す

間違えないでおきたいのは KiCad は「部品を取り付けるための基板を設計する」ためのソフトです。私も最初は「いきなり電子回路を書くなんて。。動かないかもしれないし、マヂ無理。。」と思っていましたが、回路は既に学んでますし、他のキーボードキットの基板を参考にしつつキーマトリックスだけちゃんと出来てれば案外問題無いことに気付いて気持ちが楽になりました。
KiCad は「電子回路の動作をチェック」するのではなく「回路が正しいか知らないけど、未接続だったり うっかり繋がってしまった配線のチェック」位のイメージです(個人の感想です) 。

※ とは言え、ショートさせるような変な繋ぎ方をすると危険なこともあり得るので丁寧に進めましょう

f:id:X---MOON---X:20181201234525p:plain
作りやすさも考えて「フットプリント」を決めてネの図
f:id:X---MOON---X:20181202224141p:plain
回路通りに補助線出るからその通りに繋げば良いですの図
f:id:X---MOON---X:20181202231543p:plain
某キャラはあまり似せない様に描いたの図

開発者の性格なども影響すると思いますが、細かくきっちりとやり過ぎると反対側に回すビア(穴)を空けるスペースが無くなったり、接触をかわす為に裏に回したけど裏も隙間が無くて詰む、みたいなこともあるので多少ゆるくやると良いかもしれません。
(回路の良し悪しを考えるとノイズの発生を避ける良い配線の仕方などもあるようなので慣れてきたらその辺りを追求しても楽しいと思います)

配線を経験しておくと、他の開発者のキーボードキットを作る時に「この配線はこの穴で裏に回ってるのかー」とか基板を眺めてみるとチョット楽しいです。

全体の作業を把握したら、まずは KiCad ことはじめ で操作方法を確認しましょう。
(チュートリアルはぼんやり進めるとあまり役に立たないこともあるので、今やっている作業の目的が何かを考えながら進めると良いです)
その後は
booth.pm こちらの foostan さんが書かれた入門書がオススメです。
特にキースイッチの高さや、スペーサーとプレートの厚みの関係など、設計する上で押さえておきたい情報が沢山載っています。
部品のフットプリントもライブラリを使わせてもらうことでかなり簡単に良いものが作れるのでひたすらありがたい...。

また、配置や外形の決定は下の順で進めると EndGame を妥協せず、手戻り無しで出来るのでは?と思います。

順番 作業 備考
1 スイッチの配置 これが一番大事。妥協しない
2 その他部品の配置 作りやすく無理せず配線も考えながら置く
3 外形の決定 必要なら手順2の部品も再調整しつつ形を決める
4 ネジ穴 配線前にプレートの形もネジ穴も決めておく(大事)
5 配線 楽しい。繋ぎ忘れだけは要注意

※ 今回プレートは後でサンドイッチ型で作るので「こんな感じで付けたい」という 形をイメージしつつ、止めるネジを決めておく

ここでのポイントは

  • 後の工程になるほど置ける位置や動かせる範囲が狭くなること
    • ⇒自作の目的であるスイッチの位置は自由に配置出来る序盤に決めましょう
  • プレートやネジ穴など回路に存在しない要素を忘れない内にちゃんと考慮して早めに配置すること
    • ⇒配線後に思い出してもネジを付けたい位置に配線が通ったりしてると大変です

部品はなるべく余裕を持って配置したいですが、どうしても狭い範囲に置きたい場合は、既存キットで狭い箇所を見てどの位スペースを取っているか確認したり、
後は...ダメになることを覚悟して発注して気絶する位...かなぁ?
(フチギリギリのスイッチはプレートの枠の幅などにも影響するので、プレート発注先のデータ作成ルールなども先に確認しておくと安心です)

配線まで終わったら基板の方は Elecrow などの PCB を作成してくれるサービスに発注します。
各サービス毎にデータの提出方法が異なると思うので、提出方法やフォーマットを確認しつつ、好みのサービスに発注しましょう。

またこの時、海外のサービスを利用するのであれば、PCB が出来上がるまでにある程度時間が必要なので、待ち時間にプレートの作成を進めておくと効率的です。

そんな訳で、今回は KiCad から Draftsight 用に DXF ファイルを出力することにします。
出力はチェック付けたレイヤーが個別のファイルで出力されるため、合成するなどの手間が少し掛かります。

f:id:X---MOON---X:20181211001459p:plain
レイヤー合成の目印も一緒に出力する

DraftSightでプレートを設計

DraftSight での作業の全体の流れは

順番 作業 備考
1 位置合わせ 比較的簡単
2 穴や外形の調整 作る時の精度に影響
3 トップやボトムなどの調整 組み立てを意識する
4 配置 パズルっぽい
5 紙に印刷して確認 めちゃ大事

紙に印刷しての確認は 必ず行いましょう
確認のやり方としては、コンビニなどで 等倍印刷 してから、 実際に切り取って基板に乗せてみること が重要です。
(なので、PCB基板が届いて確認してからプレート発注みたいなスケジュールがオススメ)
筆者が『侘寂』を作った際、少し急いでいて 印刷した後、紙を切り取らずに表も裏も基板とサイズや穴が合うことだけしか確認してませんでした が、
その後、「部品を付けたら部品の高さと干渉する箇所があってプレートを切らないと付けられない」という事態に陥りました。
紙でも問題無いので、必ず切り取って実際に組み立てる様子をシミュレートしながら、干渉する場所が無いか十分にチェックしましょう。

全体の流れを把握したところで、実際に Draftsight で合成してみます。

f:id:X---MOON---X:20181211001528p:plain
多分枠本来の使い方間違ってるけど今の所不具合無し

イラレは持ってないので詳しいことは分からないのですが、Inkscape の場合だと枠ごとグループ化しておいて計3つのオブジェクトを中心揃えで整列したのちグループ化を解除して枠だけ消せば
同様のことが出来たと思います。(その後、結局 Draftsight にしたので詳しいことはあまりよく分かってないです)

レイヤーの合成がサクッと終わったら、プレートを作成する前に調整を行っていきます。
まずはキースイッチから

f:id:X---MOON---X:20181211001537p:plain
PCBでプレートを作るなら外側が良いかも

画面を撮影し忘れましたが、外形も2重の線になっています。外側の線の方が角を丸めてあったりするので
内側の線を消しておけばひとまず問題無いと思います。

次にネジ穴ですが、M2用の穴ではなかったり、出力した DXF の円が直線で構成されている為カクカクしているので
ひとまずM2ネジのサイズで綺麗な円になる様に修正します。
これはもっと上手な方法があるかもしれませんが、私の方は現状こんなやり方でやっています。(参考にならないかも?)

f:id:X---MOON---X:20181211001548p:plain
これももっと上手な方法あるはず

合成が終わり、外形、スイッチの穴、ネジ穴の調整が終わればいよいよプレートの作成です。
途中で失敗した場合にすぐやり直せるように、調整が終わったものを別の位置に配置して、トップ用・ボトム用のプレートとしてコピーしてから作業します。

コツとしては実際の組み立てを頭の中でシミュレートしながら、各プレートに何が必要で何が不要なのか、また干渉する部分を別のパーツに分割することを忘れないようにすることです。

合成・調整が終わったものをベースにしているのでそこから大きく外れなければプレートを少しだけ大きめにしたり、逆にフチの部分を少し小さくしたり丸めたり等々、アレンジを加えてみるのも良いでしょう。

f:id:X---MOON---X:20181211001557p:plain
この配置パズルが結構難しい...

のんびり進めれば、配置が終わる頃には PCB が手元に届いてるハズなので、等倍で印刷してハサミで切り抜いて確認した後、プレートを発注します
(大事なので念押ししておきます...)

終わりに

さて、かなり早足でしたが、キーボード開発の全体の流れと、要所要所のポイントとかを筆者のヘロヘロな図解と共に紹介しました。
色々な方のキーボードキットを組み立てるのはとてもワクワクするのですが、「最終的には自分で設計しないとジリ貧かな」と 10台近く作ってから薄々と 気づき始めて、えいや、で作ってみましたが参考となる資料がとても良いものばかりだったのでかなり楽に作ることが出来て驚きました。
完全自作する前はあんなに欲しがっていた Minidox も Orthodox も今では懐かしい思い出です。
(それでも一式キットで出てきたら少し揺らぐかもですが)
自分のPCBやプレートなどが揃ったら是非一度小袋にネジとか部品一式を入れてキットっぽく揃えて眺めてみてください。
結構嬉しいものですよ?
(揃うのを待ちきれずに少しずつ作り始めてしまうかもしれませんが)

そんな訳でこの記事で「なんかヘロヘロで簡単そうだし、ちょっとオリジナル自作やってみようかな?」って思ってくれたら嬉しいですし、
筆者としても日々新しいキーボードを見て「いいね」を押したいなー、と思っています。

そしてこの後はお待ちかね、30キーのキーボードのレイアウトやキーマップの妙について
(...えっ?紙面が無いし、30キーを使う人は殆どいないって?...いやいやいや、実は30キーはレイアウトの自由度がめちゃくちゃ高いし、30キーじゃないと作れない形があってね...あぁ、うん、その内また紙面があれば書こう。)

ー 了 ー

この記事は自作30%キーボードシリーズより、
ことのは『侘寂』(Kailh Speed RosePink) やことのは『居合』(Kailh Speed Silver)で書きました。

f:id:X---MOON---X:20181205234742p:plain
「えにし」なので読み方は違いますけどね