見出し画像

【マイコン直付】自作キーボード初心者がケースごとキーボードを設計した時に得た知見

どうも、kと申します。

最近、ATmega32U4直付のキーボードを一つ設計しました。

キーボード自体は満足のいく出来で、なんなら今現在普段使いしているのですが、しかし完成させるまでの過程は回り道の連続でした。
なのでそんな人を一人でも少なくするため、こうして筆を取った次第です。他のキーボードを設計したい人の参考になれば幸いです。

はじめに断っておくと、一つキーボードを設計したとはいえ、私はまだまだこの分野の初心者にすぎません。そのためこの記事には間違いが含まれている可能性があります。その際は、コメント等にて間違いを指摘してくださると嬉しいです。

ちなみに、基板の設計についてはKiCad、ケースの設計については Blenderを使いました。



1.お世話になったサイト

まず最初に、キーボードを設計する上で特にお世話になったサイトを紹介しようと思います。こんなくだらないペーペーが書いた記事よりもよっぽど優良なものばかりですので、是非参考にしてください。

ATMega32u4を使う場合の設計メモ.md

ATmega32U4に関する資料です。
こちらはATmega32U4のどのピンがどのような作用をするのか、どうしてこの部品を配置するのかなどの説明がされています。

この資料を読んでATmega32U4に対する軽い理解をしてから、下記の ai03 PCB Design を読み設計を行うのが良い流れなのではないかと思います。

ai03 PCB Design

ai03様が書かれた、 キーボードPCBデザイナーガイドです。
ATmega32U4直付キーボードの設計に関する、おそらく最大の資料なのではないでしょうか。

こちらは主に、キーボードの設計を行いつつKiCadの操作方法を学ぶPCB Designer Guide、自分のキーボードの設計をより良いものにするためのAdvanced Infoの二つから構成されていて、基本的にこのサイトの情報を見ればキーボードを完成させることができます。

ちなみに、英語の資料なので読むためには覚悟とGoogle翻訳が必要になります。もしくは英語スキル。

Self-Made Keyboards in Japan

自作キーボードに関するあれこれがまとめられたサイト。日本語資料です。
本当にさまざまな情報が集まっていて、足りない部分も外部へのリンクで補われていることもあります。困った時に覚えておくと助かります。

QMK Firmware

QMK Firmware の公式リファレンスです。
多くの資料が日本語翻訳済みで、パソコンだと右上の Translations から言語を変更できます。

このサイトは当たり前すぎてわざわざここに書くか少し悩んだんですが、もしかしたらこの記事をポータルサイトみたいに使う人がいるかもと思い、一応貼っておきました。

一応ここで軽く説明を。
QMK Firmware とは、ものすごく雑に言って仕舞えばキーボードの中身です。非常に高機能で、自分でやるなら面倒くさくて馬鹿らしくなるようなことも簡単にできてしまいます(経験者は語る)。
まぁ簡単とはいえプログラミングが必要になるので、一般的な人は下のサイトも同時に使うことになると思います。

Remap

ものすごく雑に言ってしまうと、WEB上でQMKを編集するサイトです。
プログラミングなしで、直感的に編集できるので、一般的にはこちらで困らないと思います。

Remap に対応させる方法についてはこちら(リンクを飛ぶとVIA対応と書かれていますが、Remapでも同様ですので安心してください)、Remap を編集する方法についてはこちらの、サリチル酸 様の記事が参考になります。

Git Hub のコード

QMKの開発中に壁にぶつかった時、助けになるのが Git Hub です。Git Hub にはたくさんのQMKの例(だけではないですが)があり、困ったときはこれらのコードをコピペしながらエラーを読めばなんとかなることが多いです。

自分も分割キーボードの設定についてお世話になりました。

他にも、数字列の配置などのアイデアを見つけられたりして楽しかったり。

Keyboard Layout Editor

キーボードのレイアウトを妄想できてたのしい。疲れた時のモチベ上げにどうぞ。

自作キーボード設計入門

私は買ったことがないのですが、調べているなかでこの本が参考になったという声を多く見かけたので載せておきます。

キーボード設計に関して体系的にまとまっている本です。これはサイトではなく本、購入品なのでご注意を。

分割キーボードやロータリーエンコーダー関係の情報はネット上には少なく、調べるのに非常に時間がかかりました。しかもその情報も古かったり正確性に難があったりしていて、情報収集には苦労しました。今となっては、素直にこの本を買っておけばよかったかなぁ、なんて少し後悔しています。

ただ、この本にはマイコン直付に関する情報は書かれていないようです。

2.得られた知見

私は趣味に関してはあれこれ悩んでしまう性質で、結論を出すためにいろいろ調べ物をしました。回り道の8割はこれです。
ここにその時に得た知見やら情報やらを書き込んでいこうと思います。多分似たようなことで悩む人は沢山いらっしゃると思うので、そういう方達への助けになれば幸いです。

私の屍を超えていってください……┌┘墓└┐

ケースをどのソフトで作るか問題

キーボードケースを作る時、おのずと3D CAD を使うことになると思うのですが、その3D CADソフトにもさまざまな種類があります。
多分これが私の一番の試行錯誤ポイントで、結果を書いていこうと思います。

・FreeCAD
上級者向けです。
設計図の延長のようなCADで、複雑なものを作るのは難しい。

正直、ケースを作ろうとしてこれを使うのはあまりお勧めしません。
私もKiCadの3d部品をいくつか作ったものの、複雑なものを作る難しさからこれでのケース作りはやめておきました。

プラグイン? を入れられるらしいのでそれを入れると化けるのかも。

・Open SCAD
こちらの記事を読み、久々にPythonをしたくなったこともあり、私はOpen SCAD+Pythonで運用していました。
結論としては楽しかったんですが、やっぱり複雑なものを作るのは難しいかなと。こちらもKiCadの3d部品をいくつか作って満足してやめました。

・Blender
こちらは本来3D CGソフトで、3D生成物を作るものではないんですが、モデリングに関してはピカイチで、慣れれば快適に使えました。
欠点としては、綺麗な曲面のプリントが難しいらしいことです。多分やすりがけとかでなんとかなります。自分はケースに曲面を使わないのでBlenderでケースを設計しました。

何か一つBlenderのチュートリアル動画とこちらの動画を飛ばし飛ばしで見れば、おそらくケース制作は始められると思います。ただ、ショートカットなど機能が非常に多いので、やりたいことをどうやったらできるのか適宜調べる必要があります。

ちなみに、自分は最後の方に気がついたのですが、「ナイフ」ツールがとても便利です。

部品の出力に関してですが、3Dプリントしたいものを選択した上で右上からファイル>エクスポート>STL(お好みのファイル形式)を選択し、内容から選択物のみにチェックを入れてからスケールを1000にしたらうまく出力できました。
参考にしてください。

・DesignSpark Mechanical
これは私が使ったものではないのですが、有名なので紹介。
どうやらこれを使うのが主流派らしいです。有料プランもありますが、基本的にには無料プランでなんとかなるようです。他にも学生プランがあったり。

私はこの辺りが面倒でBlenderに逃げました。あと3D CGにも興味があったし。

RP2040 vs. ATmega32U4

基本的には、RP2040の方が高性能らしいです。ピン数も多い。
ですので、マイコン直付けではなくマイコンボードを利用する場合はRP2040の方をお勧めします。

しかし直付けの場合は、RP2040はピン数が多いゆえに手ハンダでは難易度が高く、基板を熱することでハンダ付けを行うリフロー炉が必須でしょう。
世の中にはこれを手ハンダでやる人がいるらしいのですが、その人には尊敬しかありません。

またネット上にはRP2040で直付けキーボードを設計する情報が(私が調べた範囲では)少なく、私は無難にATmega32U4で設計しました。

基板発注どこにする問題

現在個人向け基板発注サイトは国内外を問わず多くあるのですが、国内のものは高価で、私は海外サービスであるJLCPCBを活用しました。

送料についてですが、私の場合は1回につき数$で安くできました。まぁ、その代わり届くまで一週間近くかかったりするんですけどね。
海外注文を不安に思う方も多くいらっしゃるでしょう。なのでここで安心できるようなことを言っておくと、私はなんだかんだで4回もJLCPCBを利用したのですが、その一回も届かなかったり中身が壊れたりすることはありませんでした。

ちなみに、10 cm × 10 cmまでならなんと2$で基板を作れるらしいので設計段階からそれを意識しておくといいかも。

また、JLCPCBは3D printサービスも行っていて、基板とケースの発注を同じサービスで完結できるのも選んだ理由です。
ただ、配送の都合(なのかな?)で基板とケースは一つとして注文できなくて二倍送料がかかるので注意。

基板の色はいろいろ選べますが、特にこだわりのない限り緑がお勧めです。
ただ下のように、白に比べて緑だと配線の跡がはっきり出るようなので、これは好みが別れるところかもしれません。
私は好き。かっこいいよね。

あとJLCPCBはクーポンがすごいと言われますが、条件がいろいろ厳しいので当てにしてると散々な思いをします。
私は結局$1も割引できませんでした。泣いていいかな?

ケースの設計に関して

3D プリントをする際、形状によってはサポートと呼ばれるものをプリントする際につける必要があるのですが、実はJLCPCBに発注する場合はそれらはいらないようです。
自分もサポートが必ず必要なものを駄目を承知で試しに注文してみたのですが、案外あっさりOKサインが出てしまって、面食らいました。おそらく、サポートは向こう側でつけてくれているのでしょう。

JLCPCBに注文するならば、無理のある形状なら無理があるとしっかり言ってくれるので、不安のある形状でもとりあえず注文してみるっていうのはアリです。

それから、私はそこまで詳しくないのですが、3D プリント品にはそれなりの誤差が生まれるようです。なので、設計段階からある程度の余裕を持たせておくと良いでしょう。

あとついでに。JLCPCBで3dの注文を行うとき、Product Descという選択欄があると思います。キーボードケースの場合、ここはOffice Appliance and Accessories からKeyboard Enclosure -HS Code 392690 を選べば良いです。
どうやらこれは、関税を通すためのもの? らしいです。実は私もよくわかんない。誰か教えて。

ケースの素材何にする問題

JLCPCBの3D printサービスにはさまざまな素材があり、ケースを注文する際、最初はどれを選べば良いかわからないでしょう。

ズバリ、8111X Resin です。
私はこれで問題ありませんでした。おそらく多くの方にもそうだと思います。もう少しお金をかけられるなら、8000 Resinでもいいかもしれません。
より詳しくは、こちらのサイトが参考になると思います。

色に関してですが、これは届いてから簡単に塗装できるのでそこまで気にしなくても良いでしょう。
プライマー(メタルプライマーで可)と好きな色のスプレーだけで塗装できます。さまざまな会社から出ているのですが、困ったときはタミヤのスプレーを選べば問題ないでしょう。
トップコートはお好みで。

塗装に関してはプラモデル系の塗装動画やサイトなどを調べると良い情報を見つけられると思います。ただ一つ強調しておくと、プラスチックと違いレジンは塗装の前にプライマーを行う必要があるので注意。

ただこの辺りに関してはより良い方法があるかもしれません。情報求ム。

おわりに

この文章を読まれているということは、あなたはこの長ったらしい文章をここまで読むことのできる忍耐力を持った素晴らしいお方ということでしょう。ここまで読んでくださり、ありがとうございました。

ここに紹介している以外にも、私はこのnoteを初めさまざまなサイトやブログの情報に助けられて、キーボードを完成させることができました。私がこうしてこの記事を書いているのも、助けになったサイトを書かれた方達の、自ら労力をかけて情報を無料で公開するという姿勢に憧れてのことです。
この場を借りて感謝を申し上げさせてもらいます。ありがとうございました。

こういう記事を書くの、初めてですが結構楽しいですね。

後で思い出したことがあれば加筆したり、他に記事を書いたりしようと思います。
ご質問にはできるだけ対応しようと思うので、疑問点等があれば是非コメントしてください。まぁ、私みたいな初心者にあまり過度な期待を寄せられても困りますが。

それでは、この記事もここで終わりとさせていただきます。
ここまで読んでいただき、ありがとうございました。

執筆: とあるk


この記事が気に入ったらサポートをしてみませんか?