はじめに
この記事はAdvent Calendar 2021キーボード #3 に寄せて書かせて頂いています。
Advent Calendar 2021キーボード #3 15日目担当の121gouです。
前の記事は、サリチル酸(Salicylic_acid3)さんの”65%汎用キーボードケース「GL516ケース」のデザインガイドを公開したよ!”でした。
次の記事は、おおやけハジメさんの”キーボード作りデビュー”です。
自己紹介
突然キーボードを作りたくなり、ゴールデンウィークから師走までどっぷりはまりまくっています。
プログラムは多少作れますがキーボードのような組み込み系のプログラムは初めてなので、毎日が発見という自キ生活です。ハード面の知識はほぼゼロですが、いろいろ調べながらなんとか進んでいます。
Advent Calendar 2021 に投稿しようと決意した時点ですでに完成までは間に合わないかなーとは思っていましたが、この投稿を書いている時点で未完成(パーツが全部揃っていない)です。
今回は、はじめの計画がどんどん遅れた(泥沼の)製作過程を書いて、結果と動作するまでの過程はブログの次回以降の投稿で書きたいと思います。
自作キーボード生活のはじまり
きっかけは、ゴールデンウイーク。
息子が新しいゲーミングキーボードを買いました。
これを見てゲーミングキーボードが欲しくなってしまったのが沼にはまるきっかけとなりました。
おおよその計画を立てる
今のキーボードは息子の初代キーボードのおさがりです。傾斜をつけるための脚が片方なくなっているので、打ちにくいし謎の機能がついているけど使い方がわかりません。取扱説明書もありません。だから早く新しいキーボードが欲しいんです。ということで、まずはゴールデンウィークより後の最初の大型連休になるお盆休みに完成させることを目標にしたいと思います。そこから逆算して、だいたい以下のような計画ですすめることにしました。
5月中旬 仕様をきめる
5月末 作り方を調べる
6月 試作機を作る
7~8月 設計
お盆休み 組み立て
知識や作業時間を考えると結構ぎりぎりな感じですが、やったことないことばかりでちゃんとした計画を立てられるわけもないので、まずはいろいろ調べながらやってみることにしました。
仕様をきめる
息子のゲーミングキーボードを見てキーボードが欲しくなったので、今回作るのはゲーミングキーボードです。一言でいうと、光ってるやつです。そこで、まずは私が考えるゲーミングキーボードの条件をあげてみました。
- バックライト
- メカニカルスイッチ
- 同時押し対応
次に、ゲーミングキーボードということ以外に必要な条件をあげると、以下のものがあります。
- USB接続で使える
- Bluetooth接続で使える
- 60%ぐらい
さらに、せっかく3000円でそれなりのメカニカルキーボードを買える時代に〇万円もかけてキーボードをつくるので、なるべく全部自分でつくりたいと思います。具体的には以下の項目です。
- PCBを設計する
- ケースを設計する
- Pro Microを使わない
- 既存のファームウェア(QMKとか)を使わない
- 手ではんだ付け可能
他に今回作りたいキーボードはハンドメイドっぽいイメージではなく、工業製品ぽいイメージのデザインです。
試作機をつくる
試作機用のPCB購入
60キーのキーボードをつくる前に、キーボードのしくみでわかっていない部分を理解する必要があると思い、SU120というテンキーぐらいの大きさのキーボードをつくれるプリント基板を買ってみました。
キースイッチ候補を購入
あと、実際押して感触や音を確認してみないとキースイッチの種類を決められないと思ったので、ネットで見て候補にあげたキースイッチをいくつかTALP Keyboardさんから購入して、SU120につけて決めることにしました。
実際組み立てた結果
SU120はバキッと折って他の位置につなぐだけでいろいろな配列を試すことができるので、いろいろな配列を試してみました。それと同時に、自作キーボードのしくみを学ぶことができました。
このあと作るキーボードが60キーぐらいの予定なので、テンキーとかも含まれるキーキャップを買って、余ったテンキーなどのキーキャップを使い、完成させる予定です。
概要を考える
キースイッチ
SU120での試作の結果、一番気に入ったキースイッチがGazzew Boba U4でした。感触や音も気に入りましたが、これであればLEDの光も通してくれるので、光るキーボードも実現できます。
キーキャップ
はじめは自作したいと思い、3Dプリント、切削加工、レジンなどを使った方法を検討しました。3Dプリントは、家庭に導入するのであれば実質積層方式一択のようですが、積層痕ができてしまうこと、キーキャップに使うような樹脂だとどうしても収縮できれいな仕上がりにならないと聞いたのでコスパを考えて今回は断念。切削加工は何度も加工を繰り返す必要がありそうなので、切削加工できる機械を自由に使える状況でないと難しいと思い今回は断念。UVレジンなどを使う方法は、見たことない液体をいくつも購入して家に置くのは、家に猫がいるので悪い予感しかしないことと、どうしてもハンドメイド感が出そうなので今回は断念しました。そのためキーキャップを自作するのは断念し、キーキャップメーカーのものを使うことにしました。ただ、次に作るキーボードはキーキャップの自作を中心にしようと思っています。
キーボードをつくろうと思い立ったときはバックライトをつけて文字を光らせたいと思ったのですが、どのキーキャップを買うか検討するうちに、もっと高級感のあるGMKとかDOMIKEYとかMAXKEYのキーキャップがかっこよく見えてきて、11月まで迷いましたが、最終的にブラックフライデーセールのときにようやくバックライトで文字が光るタイプのキーキャップを買うことに決心がつきました。
キー配列
keyboard layout editorでキー配列を考えました。
60キー程度で、標準的な配列に親指シフトを追加したような配列にしたくて試行錯誤しました。しばらく検討した結果3周ぐらいして最終的にはANSI配列に決めました。Dvorak配列とかも気になりますが、キーキャップは今回自作を断念したので、市販のキーキャップでできる配列ということでこの配列です。ただし、親指シフトを使いたいので、スペースキーを3つに分割して取り付けることもできるようにします。
PCB
回路図から設計して製造のみ業者に依頼しました。
FusionPCBに依頼しようと思っていたのですが、見積もりをとったところElecrowの方が安かったので、Elecrowに注文しました。
プレート
Plate & Case Builderでキーとスタビライザーの穴を出力したものをまず作成しました。
穴以外の部分は、ケースの設計にあわせて考えることにしました。
マウント方式
プレートマウント方法とスイッチとの相性情報を見てガスケットマウントに決めました。問題は、ガスケットマウントのケースをどう作るのか、はっきり書かれているページが見当たらないことでしたが、なんとかケースとプレートを設計しました。
MCU
BluetoothとUSBで接続できるようにするには次の4つの方法があります。
- MCU(Bluetooth・USB機能付き)
- MCU(Bluetooth機能付き)+USBコントローラー
- MCU(USB機能付き)+Bluetoothモジュール
- MCU+USBコントローラー+Bluetoothモジュール
実ははじめはここで致命的なミスをしました。USB機能は最近のMCUであれば当然ついているものだと思い込み、Bluetooth機能のみのMCUを選んでプログラムを試すための評価ボードまで購入してしまいました。このとき選んだのがBGM220PC22WGAです。
いったん概要の絵を描く
ここまでに決まったことを、一旦手書きの絵でまとめました。とても拙い絵でひらがなだらけなので大変恐縮ですが、掲載しておきます。
ここからは、いよいよ本格的に設計をすることになります。
回路設計をはじめました
回路図をつくる
はじめはEAGLEで書こうと思って参考書もEAGLEでの例を書いた本を買いました。「TRSP No.115 プリント基板作りの基礎と実例集」です。
しかしKiCADの方が手軽に使えそうだったので、どのソフトウェアを使うか悩みましたが結局はKiCADで設計をはじめましました。EAGLEは使いませんでしたが、上の本は基板設計のノウハウを学ぶのに使いました。
KiCADで設計するときに参考にしたのは自作キーボード設計入門と 自作キーボード設計入門2です。
そのほかKiCADについてはKiCADに付属のチュートリアルで操作を学びました。
回路の設計については、ネット、データシートのサンプル、アプリケーションノートで情報を拾い集めてなんとかなりました。
電源
Bluetoothで接続するときはUSBを接続しないので、電源は電池を使うことになります。USBで接続するときは、電池を節約するためにUSBを電源とします。そのためUSBを接続した場合にUSBからの電流を優先させて電池から電流を流さないためのPowerPathコントローラーを使用しています。
電圧問題
今回使おうとしているARM系のMCUは3V駆動です。一方マイコン内蔵シリアルLEDは3V駆動のものを探しましたが5V駆動のものしかみつかりませんでした。そのため、USBを接続したときだけLEDを光らせることにしました。もう一つ問題なのがLEDへの信号をどうやって3Vから5Vに変換するかという問題です。この問題はhsgwさんの「ARMマイコンを使ったスプリットキーボードの作り方」を参考にさせて頂きました。
基板設計に四苦八苦
基板の配線をきめる
1回目の配線では、 自作キーボード設計入門と 自作キーボード設計入門2を参考に部品を並べていって、freeroutingで自動配線して、配線の気に入らないところを手で修正しながら配線の設計をしました。
何度も何度も夜通しfreeroutingを動かして、ようやく一通りの設計が終わったのが8月のはじめでした。このあと何度も配線のやりなおしをするのですが、長くなってしまうのでざっくり書くと以下のような経過をたどりました。
やりなおしの経過
- BGM220にはUSBコントローラーがついていないことに気づき、USBコントローラーを追加。MCUの出力ピンが足りなくなったのでMCUをBL652に変更してやりなおしました。
- 部品の配置が機能ごとのブロックになっていないのできれいに配線するためにやりなおし。
- 全部裏返しだと気づき、基板設計からやりなおし。
- IKeJIさんの「キーボードのマトリクス方式の分類」を見なおして、倍マトリックスに変更してやりなおし。
- 上側に約1cmPCBをのばしてMCUなどを並べていたのですが、のばさなくてもスペースキーの横などを使って配置できそうだと気づきやりなおし。(過去4回の配線で配線が上達してしまった…)
BL652のリンクとIKeJIさんの「キーボードのマトリクス方式の分類」へのリンクを張り付けておきます。
電圧問題再び
MCUをBL652にしたところ、オープンドレイン出力の設定がどうもなさそうだったので、3Vから5Vに変換する方法を調べました。オープンドレイン出力以外に以下の方法があるようです。
- 受信側に3VでHiと認識する部品を使う
- トランジスタを使う
- MOSFETを使う
- ロジックICを使う
- 電圧変換用IC(レベルシフター)を使う
受信側は決まっているため1はNG、2にしようとしてしばらくMOSFETを使う設計にしていたのですが、ネットを検索していると、電子回路の実験というHPの「3.3V 5V レベル変換」に思ったより遅延がありそうでLEDの動作に影響しそうだったので、5.電圧変換用ICを使用することにしました。
ようやく基板発注
部品の在庫を調べて発注
設計時に使用することにしていた部品をネット通販で検索して、価格が安い店舗に注文しました。利用した店舗をざっと紹介すると、キーキャップをDrop、キーキャップ以外のキーボード関連商品をTalpKeyboard、PCBの製造をElecrow、電子部品を秋月電子通商とMouserに発注しました。あとねじ類を買い忘れので後からモノタロウに発注しました。
プレートとケースは未発注です。
組み立て
ここでタイムアップになりました。キーキャップは届いたので、テンキー等をSU120に取り付けて、(ケースは作らない予定なので)こちらは完成です。
今年のキーボード生活まとめ
お盆休みに完成させようとしていた初の自作キーボードはこの投稿の時点で未完成でこういう状態です。
現在この投稿をしているキーボードも、まだ息子のおさがりです。
以上、ゴールデンウィークから年末までかかり、結局完成させられなかったキーボードの記録をご紹介しました。続きはこのブログの別の投稿で、完成して使えるところまで書く予定です。
今回の自作がまだ終わっていない状況ですが、次の自作は再来年ぐらいをめどに、手作りのキーキャップを中心にして自作しようと思っています。
コメント