自作キーボード Advent Calendar 2018

kicadでキーレイアウトを試行錯誤する方法
設計中のキーボード

この記事は自作キーボードアドベントカレンダー2018 その1 7日目の記事です。
昨日の記事は@zk_phiさんのキーキャップ設計のための OpenSCAD 入門でした。

 

こんばんは。hsgwです。みなさん、キーボード作ってますか?

私は設計中のキーボードが3台溜まってどれから製造するか悩むぐらい毎日作っています。

 

今回の記事では、

の2本立てでお送りします!

 

 


 

kicadでキーレイアウトを試行錯誤する方法

 

キーレイアウトにこだわりたい


自作キーボードの設計において、人によって好みの分かれる部分のひとつで見た目にも大きく関わってくるのはキーレイアウトです。

ANSI配列、ISO配列、直行配列、(色々含めて)エルゴノミック配列と多々研究されている分野で、実際に作る前にある程度試行錯誤したい方も多いのではないでしょうか?

そこで、精度良く色々なキーレイアウトを簡単に作って試すためにkicadのpcbnewを使う方法を紹介します。

 

方針


おなじみの回路図・基板CADのkicadに含まれる基板レイアウトエディタ 'pcbnew'に直接部品を置いて回路図を書かずにレイアウトを試行錯誤する。

試行錯誤したものを基板にするのに再利用しない。

ついでに3Dモデルも作って眺める。

 

利点


  • オンラインのエディタよりも細かい調整が楽
  • pro microなど他の部品の配置もできるのでネジや部品の干渉も考慮できる
  • dxfとかsvgを出力してレーザーカッターや3Dプリンタでそのまま製造できないこともない
  • 3Dモデルが出力できるのでイメージが湧きやすい
  • 頒布・販売されているキーボードは大体kicadのデータが公開されているので参考にしやすい

 


例題として以下のキーボードのレイアウトを設計してみます。

  • 基本は4行6列の直行配列で小指キーだけ下げたい
  • 親指キーは傾けたい
  • スプリット

 

準備


kicadでレイアウト検討用のプロジェクトを作成して、ライブラリを追加します。
追加方法は適当にググって下さい。
もちろんこのライブラリではないものでも大丈夫です。

https://github.com/hsgw/SMKJP_kicad_components

 

キーレイアウトの作成


早速、作ったプロジェクトからpcbnewを開きます。

最初はキーを配置するためにグリッドの設定をしましょう。
表示→グリッド設定→ユーザー定義グリッドを開いて、一般的なキーピッチ19mmを設定します。(19.05mmでもどっちでも)

SnapCrab_NoName_2018-12-6_15-12-57_No-00.jpg

 

設定後、pcbnewのグリッド切り替えでカスタムユーザーグリッドを選択します。

.PNG

 

これでキースイッチを追加する準備ができました!
早速、左ツールバーのフットプリントを追加を選んで、ウインドウのどこかをクリックします。
フットプリントを選択するダイアログが表示されるのでブラウザーで選択から先程追加したsmkjpライブラリを見つけます。

.PNG

selectfootprint.PNG

このライブラリにはCherry MX互換のスタビライザーが必要ない大きさのキーが含まれています。
使用するものを選択してウインドウ上に置いていきます。

必要な数だけキースイッチをグリッドにそって配置しました。

.PNG

 

あとはグリッドの設定を切り替えながらずらします。

もし、ANSIやJISのようにユニット単位でずらしたい場合はカスタムユーザーグリッドで19mm/4=4.75mmを設定してから移動させます。

小指で扱うキーを10mm下げて最下段のキーを1.5uに、親指キーを1つ右にずらしました。

.PNG

 

もし、回転させたいキーがあるなら、設定→一般設定→回転角度に5など小さい値を設定して、フットプリントを選択して回転(R)・逆回転(shift+R)で任意の角度に回転します。

kaiten.PNG

 

oyayubi.PNG

 

親指キーだけ回転させました。

通常の回転を使うと、フットプリントのアンカー位置を中心にして回転してしまうのでキーの角をきちんと揃えたいのなら回転後に0.001mmなど極端に小さい値をグリッドに設定して動かしてやると良いでしょう。
厳密に回転させたい場合はpythonスクリプトを使う方が賢明です。

 

次に外形を作図します。

外形はEdge.Cutsレイヤーに図形ラインを追加で記入します。

.PNG

.PNG

 

この段階で図面をプリンタで紙に印刷して確認してみます。
smkjpライブラリを使っているなら、スイッチのフットプリントのF.Fabレイヤーに19mmの枠が入っているので実際に指をおいてみたりキーキャップを並べたりできます。

この工程を何度も繰り返して最上のキーレイアウトを見つけ出しましょう。

.PNG

 

最後に、pro microとTRRSジャックを追加して外形を調整してレイアウトの試作は完成です。

kannsei.PNG

 

最後に、表示→3Dビューアー(alt+3)で3Dモデルを見てみましょう。
smkjpライブラリを使っているならキースイッチや部品が載った3Dモデルが表示されるはずです。
エクスポートして3DCADでケースの設計をしたり、イメージを膨らませるのに大変便利です。

3d.PNG

 

ここで作成した基板データにはプレートのための穴も含まれています。
そのデータをdxfやsvgに変換して処理することでレーザーカッターを使ったプレートやケースを製造できます。
プレート用の穴データはDwgs.Userレイヤーにあるので外形データとあわせてエクスポートしましょう。

 

 


 

 

設計中のキーボード

 

スプリットじゃない一体型キーボード


cheshire.PNG

 

AtreusTGR Aliceが欲しい気持ちだけで設計しています。

小指のキーを極端に下げることで小指上側のキーを押すときでも手首がなるべく動かないこと、ホームポジションからほとんど動かないことを目標にしています。

左右の角度はこだわりの40度です。(Atreusは多分30度ぐらい)

ちなみにマイコンは100ピンのSTM32F072でダイオードなし直結でホットスワップ対応の予定です。光らないです。

cheshire_mcu.PNG

 

Planck スルーホールキットのATMEGA328版

planck_thk_328.PNG

 

Planckを全部スルーホール部品で作ろうキットであるPlanck Throgh Hole KitのMCUをATMEGA328pというArduinoで昔からよく使われているものに変更してキースイッチ以外を省きました。

Planck thkが不安定らしいのでこっちはちゃんと動くようにしっかり設計しました。(つもり)

前述のキーボードよりもこちらの方が先にリリースできそうです。今年中にはテスター価格でパーツセットを売ろうと思っています。人柱わかっている人募集中。

これがうまく動けば次はレツプリTHKしかないなとも思ってます。

 

まとめ


今年の春にnameless911くんに「最近自作キーボード流行ってんすよ~」とhelix見せてもらったところから私の自作キーボード道がはじまりました。それからちょこちょこQMKにコミットしたり楽しんでいます。

来年も色々リリースできれば良いなと思っています。お楽しみに!

そして、皆様の成果、楽しみにしています!

 

明日はシャカリキ!!鍵盤道★の@void_keysさんです。(いつも読んでます。 )

 

この記事はergoinuで書きました。