Shiki’s Weblog

新キーボード プロジェクト? - プロトタイプ1号機

2013/12/06 #新キーボードプロジェクト

前回からすこし時間があいてしまいました。今回はいきなりですが実際に動く新キーボードのプロトタイプが完成したので、そこに至るまでの経過をまたまたGoogle+への投稿を再編集したりしつつ、まとめていきます。

新キーボードのプロトタイプ新キーボードのプロトタイプ

立体配置 第3版

新キーボードのプロトタイプは前回のモックアップではなくて、立体配置第3版を元に作っています。下のモックアップの写真と上のプロトタイプの写真を比べると、 F5からF8キーの位置が変わっているほかはモックアップと同じように仕上がっていることがわかるかと思います。

立体配置 第3版のモックアップ立体配置 第3版のモックアップ

立体配置 第3版では、中迫勝先生の「キーボードの手前端の高さを低くすることによって机上面との段差をできるだけ小さくすれば、机上面を手・腕の支持台の延長として利用できると考えられる。」という考え方を第2版よりも推し進めて、本体手前端外側の一番低い部分を高さ4mmまで下げました。ここまで端を下げるとパームレストを別途付けなくても、日本人の標準的な男性の手の大きさであれば特に違和感なく使うことができます(5, 6キーにもこのままで無理なく指が届く人が多いかと思います)。そのかわりに手のひらで押す位置に用意していたCtrlキーは高さを下げるのに障害になる ので親指側に移した他、傾斜を前方向と横方向にそれぞれ10°と第2版の5°よりもきつくしています。(これはどちらもふだんパームレストが不要になるこ とのメリットの方が大きいという想定での変更です。) また、このモックアップでもう1つ違うのが親指用キーのあたりに配置していたカーソルキーを削除している点です。ひとつには手前端の高さを下げるためでもあるのですが、正直なところ邪魔なのでした。どちらにしてもホームポジションから手を離すなら、やっぱりオーセンティックなIBMのキーボードの位置の方が使いやすいように思います。ただこのモックアップのまま作るとカーソルキーがまったくないのでどうするかというと、一見SHIFTキーに見えるキーが実はfnキーになっていて、fnキーを押しながらオレンジ色のキーを押すとそれがカーソルになるという具合になっています。この方がホームポジションから手もあまりずれないし、そういう使い方が合わなければ横にカーソルキーのユニットを置けばいいし、ということで結構割り切った作りになっています。ちなみにSHIFTキーはTRON英語キーボードの流れを組んで、親指用キーのうち内側から3番目のキーがSHIFTキーになっています。もっともPICマイコンで制御しているので、ファームウェアを変更すればどんな配列にもすることができます。TRONかな配列はもちろん、親指シフト(Nicola)を使われている方にも向いているのではないかなぁと思います。

基板設計 ― KiCadとFreeRoutingで自動配線

今回、いきなりプロトタイプまで完成してしまっている一番の理由はKiCadというフリーのEDAソフトウェアの存在です。以前はソフトウェアに費用を掛けずに済まそうとすると、プリント基板の自動配線ができるソフトウェアは基板サイズに制限があったり(キーボードはパターンは単純だけれど基板サイズが大きいので使えなかった)、パターンの配線はすべて手作業だったりと、ちょっと基板を作ってみようという雰囲気ではなかったのです。それがKiCadだとFreeRoutingというソフトウェアと組み合わせて、基板の設計図上に部品の配置だけすれば配線は自動的にできる[1]ということで、試してみました。自動配線してもらうためには回路図を描いておかないといけないので、回路図エディタでまず作図しておきます。

制御基板の回路図制御基板の回路図

鍵盤基板(右手側)の回路図鍵盤基板(右手側)の回路図

PIC18F4550まわりの回路はICの仕様書に記載があります。PIC18F4550は内蔵されているプルアップ抵抗を使えるのはポートBとポートDだけ、というのがちょっと注意点ですね。左右の鍵盤部分はふつうのキーマトリックスの回路です。回り込みを回避するためのダイオードは全部のキーにつけるのも大変なので、今回は一部のキーに限定して付けてあります。(ジャンパーが回路図にある理由は後述。) 続いて図形エディタで作画したキー配置図を基板エディタに読み込んで(Bitmap2componentを使って配置図を部品化して読み込んでいます)、実際にキーを配置していきます。基板に部品を置くだけなので、スイッチの配置を図形エディタで描いてあれこれ考えるのとそこの手間はほとんど同じです。

プリント基板エディタで部品を配置プリント基板エディタで部品を配置

配置できたらFreeRoutingに自動配線をさせてみます。両面基板を使える場合だとあっという間に配線が完了します。今回は感光基板を使って作りやすいように片面基板(表がジャンパーで裏が銅パターン)で作るので、配線と配線が交差しそうなところにジャンパー(0Ω抵抗)を回路図に追加して基板上に配置してからFreeRoutingに配線させてみて、うまく行かないようならまたジャンパーを追加して配線させてみて、という手順で作ってみました。

自動配線を終えて外形線とベタを追加したところ自動配線を終えて外形線とベタを追加したところ

KiCadは、はじめて使ったのでまだベストな使い方をできているかどうかわからないのですが、手作業で配線したりすることを考えると基板作りは相当に楽になりました。KiCadは日本語の情報交換サイト(kicad.jp)もあるので、すこしずつ使いこなせるようになったらいいな、というところです。今回使ってみたところでは、FreeRoutingは 45°以外の斜めの外形線があると周辺をうまく使って配線できないようなので、まずは外形線を引かずに自動配線を終わらせて、外形線から飛び出しそうな配線があれば、ツールバーからDragを選択して内側に押し込めたい配線の外側から内側へマウスをドラッグして配線をまとめて移動して、後から外形線を引くようにするとうまく行きました。Drag中はネジ穴とか動いてほしくない部品まで動かそうと思えば動かせてしまうようなので、そこはちょっと注意です。またネジ穴用に用意したNPTHホールにローカルのクリアランスを設定してあったのですが、ローカルのクリアランスの情報が自動的にはFreeRoutingに渡されていないようで、FreeRoutingに.dsnファイルを読み込ませるまえに.dsnファイルを編集して穴径をクリアランスを含めたサイズ(FreeRouting内部では円は正8角形で囲う形で処理しているようです)にテキストエディタで修正したりしています。兎にも角にも試しでKiCadを使ってみたところ、数時間もあれば写真のような基板パターンを作れてしまうことが判明して、それならということで今回一気にプロトタイプまで作ることにしてしまったのでした。

基板作りと組み立て

ここまでできると、基板を作って組み立ていくことができます。最近は特に小さなサイズの基板は基板メーカーに発注してとてもやすく作ってもらうことができるようになっているようですが、今回は感光基板を使って組みました。

感光基板用フィルム感光基板用フィルム

感光基板を作るときは感光基板用のフィルムがきれいに仕上がっていないときれいな基板が作れません。黒い部分がちゃんとべったり塗られていなかったり、線がかすかにでも途切れていたりするとあとで基板の修正にとても時間がかかったり、最悪フィルムの作成からやり直しということも。すこし高いですがサンハヤトのインクジェットフィルムにエプソンの染料系のプリンタを使って印刷するのが無難そうな感じですね(顔料系のプリンタやレーザープリンタだと、真っ黒に見えている部分も実は点の集まりになっていたり、薄かったり、ということがあるみたいです。ふつうに紙に印刷する分にはまったくわからないのですけれど)。今回はEPSONのEP-705A(年賀状シーズンの所為かネットの最安値よりも近所の電気屋さんの方がさらに安く売っていました)というプリンタで印刷してみました。フィルムの原稿は、KiCadのプリント基板エディタからSVGファイルを出力するとドリル穴まで空いた原稿を作ることが出来ました。

鍵盤基板(右手側)とその部品鍵盤基板(右手側)とその部品

きれいなフィルムができたら、露光、現像、エッチング、外形加工、穴あけという手順で上の写真のような基板ができあがります。ここまでできれば、もう中学校の技術家庭科で習った範囲で作れますね。

基板の組み立て完了基板の組み立て完了

こんな感じで左右の鍵盤と制御基板の計3枚を作ってFFCで繋げたら基板の組み立ては完了です(LEDは別途制御基板から右鍵盤にQIケーブルで接続しています)。そしてこれらの基板をアクリル板に固定してハウジングをかぶせたものが最初に載せたプロトタイプの写真になります。

アクリル板に固定した基板とハウジングアクリル板に固定した基板とハウジング

注意 : この一連の作業の内、現像とエッチングは薬品を使うので誰にでもお勧めというわけではありません。基板メーカーに発注したり、CNCでプリント基板を作る[2]こともできるようなので、そのへんは使える機材や環境に応じて工夫してみて下さい。ちょこちょこ基板を作るような予定がなければ、必要な機材を揃えるよりも基板メーカーに発注する方が安く済みそうに思います。

ファームウェア

「コンピュータ ソフトなければ ただの箱」という言葉がありますが、PICマイコンを使ったこのキーボードもマイコン用のソフトウェア(ファームウェア)がなければ、ただのおもちゃで、マイコンの中のフラッシュROMの中にファームウェアを書き込んであげる必要があります。PICマイコンの開発環境はmicrochip社からMPLAB Xという統合開発環境が無償で提供されています(以前のものと違ってWindows以外のOSでも利用できます)。またPICマイコンをUSBキーボード化するファームウェアは、Microchip Libraries for Applicationsをダウンロードすると、Device - HID - Keyboardというデモがあるので、これをベースに作っていくことができます。ボードのコンフィグレーションは、PICDEM_FSUSBがPIC18F4550のものなのでそれをもとに新キーボードの回路に合わせて変更していきます。ただ肝心のソースコードの内USBのデモが新しいXC8コンパイラに未対応なので、jtemplesさんがmicrochip社のフォーラムに投稿されたものに差し替えるとうまくコンパイルできるようになります。ファームウェアが出来上がったら、PICKit3などを使ってキーボードのPICマイコンにプログラムして(書き込んで)完成です。

まとめ

今回は新キーボードのプロトタイプができあがりました!、というお話と、どんな風にキーボードを作っているかというお話を簡単にまとめてみました。今回のこのブログも新キーボードで入力しています。自分の手に合うことはちゃんと確認してから作っているのでまあ当然ですが、なかなかいい感じで使えています。 :-) あとは3Dプリンタでハウジングを作ったりできると楽しい感じですが、今回の新キーボード シリーズはここまでです。ガジェットを作るのもどんどん簡単になってきていますね。ちなみにこの新キーボードを大量生産するという話はまったくありません(笑)。もし5セット以上需要がありそうであれば基板メーカーにまとめて作ってもらうようにもう少し進めてみますので、基板だけでもほしいという方がいましたらお気軽にご連絡下さい。

[1] http://toragi.cqpub.co.jp/tabid/670/Default.aspx

[2] http://www.fumi2kick.com/komekame/archives/1656