お世話になっておりますキーボードを作る



TLに流れてきたこのツイート

できるぜコレ。てか、ショートカットキーをまとめた、カスタマイズ可能なキーボードを、前々から作りたいと思ってた。

部品を選定

一番大事な部品は、細長いキートップなんだけど、カスタマイズキーボードを作っているメーカーに有った。

MX Series BCタイプキートップ

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がオンの状態で使用してもらう前提です。スイッチを押すと、ローマ字の文字列のキー信号をバーっと出すプログラムです。

Arduino leonardo互換にしたので、Arduino IDEからプログラミングが可能です。

#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);
        }
    }
}

完成品はこちら

コメントはありません
コメントをどうぞ

*