キーボードにディスプレー
Ergodox、というかキーボードにはたいていディスプレーなど付いていません。ですが、今回のErgodoxの基板はオリジナルからちょっと変更されていて、ファームウェアに修正が必要になっています。バグが発生することもあるだろうし、原因の切り分けなんんかをするために内部の状態をわかるようにディスプレーを付けおくと役に立つでだろうと、基板を譲っていただいた方からアドバイスを貰っていました。
取り付けたディスプレーですが、前にも書きましたが、Seeed Studioというところが出しているものです。
https://www.seeedstudio.com/Grove---OLED-Display-0.96%26quot%3B-p-781.html#
手頃なサイズで表示も64x128で十分な広さで、接続方式はI2Cです。Ergodoxは分離した左右の通信にI2Cを使っていますので、追加の仕組み不要で場所に余裕のありそうな左側にディスプレーを付けることができます。
ディスプレーの動き
今のところ、ディスプレーには- どのモディファイアキー(シフトなど)が押されているか
- CapsLock, NumLockの状態
- USBで送信されるキーコード
- キーボードの状態の変化
- レイヤーの状態
が表示されるようになっています。
モディファイアやCapsLockの状態は一番下の行の四角いマークで表示しています。
左から、NumLock, CapsLock, Ctrl, Shift, Alt の順にならんでいます。動画では見にくいのですが、一応、種別ごとのマークになっています。
下から2行目はキーコードの列で、キーが押されたところだけキーコードが入るようになっています。
USBのメッセージに入る、6つのキーのデータが表示されています。動画の音と変化を見ていただけるとわかると思いますが、現在のファームはロールオーバしていなくて、7キー目は無視されてしまいます。
下から3行目はレイヤーの状態表示で、一番左が現在のレイヤーになっていて、下のレイヤーが右に続いています。
最初の表示はキーボードの状態が変化するごとに月が満ち欠けするようになっています。
上半分は、ロゴマークです。
このディスプレーにいろいろ表示させる方法を研究しているときに大きめの画像を表示させたりしたのですが、そのときにちょっと作ってみたのがこのロゴで、なかなかよかったので、そのまま使うことにしたものです。
キーボードはパソコンにつないだままにしておくことが多いので、スクリーンセーバのつもりで、だいたい4分くらいするとスクロールして、そのまま10分くらい使わないでいると、消灯するようになっています。
ケース
Ergodoxのケースは、専用のできあがっているものが何種類か入手可能ですが、自作するのであれば、
- カットした板を積層して作る
- 3Dプリンタで作る
のいずれかになります。
3Dプリンタで作る方がそれらしくて無駄の無いものができそうです。 最近は、3Dプリンタも表面かかなりなめらかで強度のあるものが作れるみたいですよ。そのうち挑戦してみたいですね。
ですが、今回は、以下のような理由でカットした板を積層する方式を選びました。
- 基板がカスタムされているので、図面をいじる必要がある。
- 3D CADをいじった経験あまり無し。
- 2D CADならそこそこ使えるはず。
- 知り合いにレーザーカットを仕事にしている人がいる。
ということで図面が必要です。
機械に読み込ませるデータは、Adobi Illustrator(ai)形式のものが必要になるとのこと。
以前レーザーカットで物を作ってもらったときに、途中から図面の加工までお願いしていたのですが、調整で手間をかけさせてしまうなどしました。
今回は、形も複雑で種類も多いので、自前でaiファイルまで作りたいと思います。
CAD
まずは、CADソフトの選択です。ラジコングライダーの自作をやっていて、自分でCADを使って図面を書いたりしていたのですが、小さなパーツなどの図面を書いて、紙に出力して、材料に貼って、手で切り出す程度のことしかしてなくて、そのときに使いやすいものを使ってました。 主にJW_CADを使ってました。
ただ、JW_CADは、Windowsじゃないと動かないとか、dxf形式がものによってはうまく読めないとか、操作性が今一肌に合わないとかいろいろ不満がありました。 なので今回、dxfがちゃんと扱えるということを基準にFreeのCADを調べてみました。
- FreeCAD
http://www.freecadweb.org/?lang=ja - DraftSight
http://www.3ds.com/ja/products-services/draftsight-cad-software/
結果としてこの2つがよさそうで、今回はDraftSightを使うことにしました。
FreeCADの方はどちらかというと3Dデータを作る作業に向いている感じで、2Dデータを作るならDraftSightのほうが直感的な感じです。
図面を引く
CADの練習をちょっとして、実際の図面を作っていきます。図面作成でキーになるのは、スイッチをはめ込む穴がたくさん開いたプレートです。ここにはめ込んだスイッチが基板にちゃんとはまらなければなりません。
基板を分けていただいた方が、JW_CADの図面を作っていただいていたのでその部分は使わせていただきました。
残りの部分については、基本的に全面書き直しました。
- レーザーカットを効率的にやるには、繋った線はポリラインにする必要がある。
- ポリラインにするためには、全ての線がちゃんとつながっていないとだめ。
ということ。
あと、元データそのものがこれまでいろいろな人がいじったものであるためか、
- 余計な線などのゴミデータがあちこちにある
というのが理由です。
慣れないCADでの作業なので、何度もはじめからやり直したり、途中で効率的なやりかたを発見したりなどしましたが、なんとか作ることができました。
- つながっているところはちゃんとつながっている。
- ポリラインにする。
- スケールの調整のために流さがわかっているキリのいい長さの線を入れておく。
aiファイル
さて、aiファイルです。基本的に、Adobe illustratorが無いと作ることができません。できたとしても互換性に心配があります。
ただ、上記のDXFができていれば調整はすぐできるはずなので、こちらで用意しなくてもよかったのですが、なんと、CS2であれば手に入るという情報があり、ちょっと試してみることにしました。
ここでは詳しく書きませんが、調べてみると黒に近いグレーということで、おすすめできる方法ではありませんでした。
ですが、たしかに使うことができて、aiファイルを作ることができました。
Illustratorでやった作業は以下のことです。
- dxfファイルを読み込む。
- 縮尺がおかしいので、入れておいた長さのわかる線、今回は3cmのものを使って縮小率を計算して全体を縮小する。
- 線を消す。
これだけ。
カット!
持ち込んでカットします。カットの様子。カットした部品です。
コスト削減のため、加工で出た端材を使ってもらったので、保護のための紙がない状態でのカットだったので、表面が曇っていたりしますが、使うのに支障はありません。
タップを立てる。
組み立てるためには、底面の板の穴に3mmのネジを切り(=タップを立て)ます。今回はここまで。