ちょっとコーヒー淹れてくる

WoTやDbDなどよくやってるゲームについて書いています。

*非キット*自作キーボードを作った的な記事 ~その2~

本記事はこの記事の続き。

gearppuccino.hatenablog.com

この記事はKiCADの使い方に関しては基本的に書いていない。 基本的な使い方がわかった上でのtips的なことは書いてある。

KiCADの準備

今回使ったPCB CADはKiCAD。 おそらくEAGLEとの選択性になるだろうが、PCB CADを触ろうとしたときに当時のEAGLEはライセンス関係が面倒くさかった(今もだろうが)のでKiCADを使っている。 操作性が独特なので敬遠する人もいるが、出た当初からはっきりしている「KiCADがやらせたいこと」を理解したら相当使いやすいと思う。 で、サクッとインストールしたら、Arduino Pro Microを扱うためにライブラリを追加する。 SparkFunが自ら配布しているのでこれを落としてぶち込む。追加の仕方はググってもらって。

github.com

その他の部品はデフォルトで入っている。 Cherry MXのfootprintすら入ってるのでそれを使う。 自作キーボードはKiCADの用途の中でも割とメジャーな方らしく、参考にできるものもたくさんある。ただし英語。

回路の設計

さて、部品も発注したのでいよいよ設計である。 まあ難しいことはない、キーマトリクスとそれをマイコンをくっつけるだけ。 なのだが、実はまだ悩んでいることが2つある。一つはマイコンで、一つはどの範囲で基板を作るかという話である。

マイコンの方は、設計しながらPICをいじるためにMPLABやコンパイラを色々入れて、サンプルプロジェクトをビルドしただけであのライブラリが見つからないだのこのライブラリが見つからないだの散々な目にあったので、PICはとりあえず保留ということになった。自動的にArduino Pro Microになる。

そしてどの範囲で基板を作るかであるが、これはキーマトリクス+マイコンの基板を作るか、キーマトリクスだけの基板を作って外にマイコン用に端子を引くかという話である。 とりあえずArduino Pro Microを使うことにしてはいたが、PICでの実装も諦めきれず、両対応の基板でお茶を濁そうと思っていた。 まあ最終的にはめんどくさくなったのでPro Microをガチャコンとつけてしまえということになった。

最終的にこれで完成とした。

f:id:gearppuccino:20200915113919p:plain
今回の回路図

備考、プルダウン抵抗だが、Arduino内蔵*1のを使うという手もあるとは思うが、内蔵のは割と抵抗値が高かった記憶がある。 それではキーマトリクスを駆動するにはちょっと不安になったので、4.7kをつけることにした。 また、inとoutがなんだかわかりづらくなってるのは分割するかどうか迷いながら作っていた名残でキーマトリクスのinとoutになってるからである。 あと、デバッグ用なり通電確認用なりになるかなと思ってLEDをなんとなくつけたが、Pro Microにそもそも乗ってるのでいらなかった気がする。

で、フットプリントと関連付けておく。今回はこんな感じに割り当てた。

f:id:gearppuccino:20200915122543p:plain
その1

f:id:gearppuccino:20200915122556p:plain
その2

キースイッチだが、今回はソケットやマウントプレートなどは一切考えずに、基板にベッタリとはんだ付けしてしまうことにしたのでそういうフットプリントと関連付けた。 色々使うときはまた別のやり方になる。

基板の設計

さて、引き続きいじっていくのはKiCADである。 ちなみに部品配置にあたってはこのページも参考になる。

deskthority.net

とりあえずぐちゃぐちゃになってる部品群を並べていくのだが、まず配置すべきは目玉のキースイッチ。 前述のページによると、配置する前にグリッドを0.1875"(つまり4.7625mm)にすると良いということなのでまずそうする。 でまあ並べていくのだが、結局きれいにはならないので座標を手打ちした。 選択してEキーを押すとプロパティが出てくるので、そこのXとYに予め計算した値を入れていくのである。 基本的にCherry MX系のキー間隔は0.75"(つまり19.05mm)なのでこれを基準に計算していく。

f:id:gearppuccino:20200915132802p:plain
プロパティに手打ち

f:id:gearppuccino:20200915132814p:plain
spread sheetで計算・・・沼

なにかスマートな方法もありそうだがよくわからん。 ちなみに用意されてるフットプリントのパターンだが、外の白枠がキーキャップの外形で内側の緑枠がキースイッチの外形である。 これは例えば白枠同士が重なっていしまうとキーキャップが衝突してしまうので避けなければいけないが、白枠と緑枠の隙間は基板上には何ら障害となるものはないので部品を実装してしまってもOKということになる。

f:id:gearppuccino:20200915133221p:plain
こんなふうにダイオードを配置しても大丈夫

さて、キースイッチを配置したらグリッドを1"系に戻すことをお忘れなく(1敗)。 そしたら後は適当に部品を配置しておしまい。 DRCもやって最終的な完成形はこれ。

f:id:gearppuccino:20200915133411p:plain

そう、ベタパターンは今回しなかった。 基板の殆どはキーマトリクスでべったりつけなきゃいけないGNDらしいGNDもないし、いいかなって。 自分でエッチングするんだったら溶液の節約のために浮島になってしまってもつけただろうが、 今回は外注だし、今はNC加工だろうからガッツリ削って貰えればいいかということでつけなかったが、実務経験がないので正解を知らない。 迷惑な客だ。

部品配置についての反省は完成したところで書きたいと思う。

Elecowで基板発注

今回はElecowで基板発注をした。 なんでElecowかと言うのは、過去にここで基板発注した事があるからである。 じゃあなんで過去Elecowで発注したのか?と言われると・・・過去の自分に聞いてくれとしか答えられない。特に深い理由もなかったんだろう。

というわけで発注に必要なガーバーデータ及びドリルデータを出力する。 ファイル→プロットでこのダイアログが出るので適切な設定をして製造ファイル出力を押す。

f:id:gearppuccino:20200915141407p:plain

今回必要だったのは裏表の配線、シルク、マスクと基板外形だったのでそれらにのみチェックを入れる。 で、続いて同じ画面のドリルファイルを生成から適切な設定をしてドリルファイルを生成する。

f:id:gearppuccino:20200915141632p:plain

これで出力できたと思うので出力されているであろう拡張子.gbrjobのファイルを開くとそれっぽいのが見られる。

f:id:gearppuccino:20200915141834p:plain
それっぽいやつ

大丈夫そうだったら、注文ページを見ながらファイルをリネームする。

リネーム元 リネーム先
*-F_Cu.gbr *.GTL
*-B_Cu.gbr *.GBL
*-F_Mask.gbr *.GTS
*-B_Mask.gbr *.GBS
*-F_SilkS.gbr *.GTO
*-B_SilkS.gbr *.GBO
*-PTH.drl *.TXT
*-NPTH.drl *-NPTH.TXT
*-Edge_Cuts.gbr *.GML

NPTH(スルーホールなしの穴あけ)のファイルは下の方にひっそりとIf you need some holes not plated, please name the non-plated holes as pcb.name-NPTH.txt and leave a comment.と書いてある。 これが最初見つけられなくて狂いそうになった。 これらのファイルをZIPで固めてしまえばElecrowに投げるファイルは完成する。

f:id:gearppuccino:20200915142809p:plain

後はフォームにしたがって発注すればOK。

そういえば発注の詳細画面を見たらステンシルが数ドルで頼める事になっていた。 今回はSMD部品は一切ないし、そもそもリフローできる道具を持ってないので関係ないが、このお値段で頼めるんだったら個人でバリバリSMDな基板もやっていけるんだなぁと思った。いい時代だ。

次回、ハードソフト両実装実装と感想など編へ続く。

*1:プルアップだが