お世話になっておりますキーボードを作る
TLに流れてきたこのツイート
できるぜコレ。てか、ショートカットキーをまとめた、カスタマイズ可能なキーボードを、前々から作りたいと思ってた。
部品を選定
一番大事な部品は、細長いキートップなんだけど、カスタマイズキーボードを作っているメーカーに有った。
MX青軸水平用2倍キーBC黒(5ケセット) MX-ENN-WHBCG を購入。キートップにラベルが入れられるタイプです。キー本体は、コダワリの青軸(カチカチ音がするタイプ)です。直販で5個で700円+送料500円+税です。
次に大事なのはケースですが、タカチのSW-95Bを切削加工してもらい作りました。マルツを通して3個で8,488円。
基板を設計
Arduino互換機にしました。プログラマブルにする事でキーのカスタマイズに自由度を持たせます。マイコンにATmega32U4を使い、Arduino leonardo互換にする事で、HIDキーボードのシミュレートできる機能を使います。
Arduino互換機としては、最小構成だと思います。使っていないピンも含めて出してありますが、何に使用するか不明です。一応です。また、D2~D4のLEDとSW1~SW3のLEDの部分は一応配線している感じで部品は付ける気はありません。
回路としては、実にシンプルです。ケースに合わせたので、余白が多いですね。もっとシルクで遊べばよかった。
中国のFusion PCBに基板を頼み、その他の部品をRSコンポーネンツで発注します。
組み立て
難しいところは無く、チップ部品を1608(0603)にしたので、裸眼じゃちょっと辛いぐらいです。
組み立て終わったところ
ケースにねじ止めできそうなところが無かったので、スペーサーをかまして裏蓋と挟むことによって、基板がケース内で動かないようにしています。
ケースに入れたところ。がたつきも無く、ピッタリ収まっています。
USB Micro-B部
ソフトウェア
このハードウェアから、パソコン側のIMEがオンになっているかどうかは把握できないので、IMEがオンの状態で使用してもらう前提です。スイッチを押すと、ローマ字の文字列のキー信号をバーっと出すプログラムです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #include <Keyboard.h> #define key1 10 #define key2 11 #define key3 12 char message3[] = "osewaninatteorimasu. \n" ; char message2[] = "otukaresamadesu. \n" ; char message1[] = "yorosikuonegaisimasu. \n" ; void setup() { pinMode(key1, INPUT_PULLUP ); pinMode(key2, INPUT_PULLUP ); pinMode(key3, INPUT_PULLUP ); Keyboard.begin(); } void loop() { if (digitalRead(key3) == LOW){ for ( int i = 0; i < sizeof (message3) - 1; i++) { Keyboard.print(message3[i]); delay(10); } } if (digitalRead(key2) == LOW){ for ( int i = 0; i < sizeof (message2) - 1; i++) { Keyboard.print(message2[i]); delay(10); } } if (digitalRead(key1) == LOW){ for ( int i = 0; i < sizeof (message1) - 1; i++) { Keyboard.print(message1[i]); delay(10); } } } |
完成品はこちら
コメントはありません