USBデバイスが作りたいんじゃ:フットスイッチ


はじめに

第2回「USBデバイスが作りたいんじゃ」。今回はフットスイッチ編。
(第1回はコチラ:「USBデバイスが作りたいんじゃ:CPUメーター」)
フットスイッチとは、足でマウスやキーボード操作をさせようというもの。
一般的には以下のようなもの。

※Google画像検索より

今回は、1ペダル式で1ボタンキーボードのようなものを作る。すでにAmazonで1,500円程度で売られている。

先に完成品

見た目は、市販品とほぼ同じ。

ハード

1,000円でできる!!手間を考えれば買った方が安い。
中華製の制御ソフトを入れないで良いという利点がある!

組み立て

1. フットペダルスイッチを分解する

このフットスイッチは汎用的に使えるようにケーブルの先端には何も付いておらず導線が剥き出し状態(だから安い)。
ケーブルはケース内のスイッチにハンダ付けされているが、スイッチから5cm辺りで切って使う。


支点となる金属の棒のところにあるネジを外すと棒が(写真では棒が刺さっているが)抜けるので簡単に開く。その際、バネが固定されていないので飛ばないように慎重に開く。

2. スイッチを外す


黒赤白のケーブルが一つにまとめられているので、5cm ほど残してちょん切る。(上記黄色線辺りで)


スイッチがネジで固定されているので外すと上記のように取り出せる。人差し指辺りの黒いのがボタン。

3. Digisparkと結線する

使わなくなったマウスなどから USBケーブル を切り出してきて Digisparkと結線する。上記、黒緑白赤。
前述で 5cm ほど残して切ったスイッチ側の 赤-P0、白-GND、黒-未使用。スイッチをONするとP0とGNDが繋がるように。USBケーブルとDigisparkをハンダする前にUSBケーブルはケース穴に通しておく(黒赤白ケーブルが通っていた穴)。

4. ケースに収める


(ポリミイドテープでグルグル巻になっていますが)ケースに固定する。

Digispark

セットアップは主旨ではないので Digisparkに付いては割愛します。

ソース

P0ピンを内部プルアップして入力として使う:pinMode(0, INPUT_PULLUP);
スイッチがONになると P0ピン がGND に落ちるので、それを監視する。
下記では、P0ピンが 0 になれば、 PCに Hello Digispark! を送信する。

ここを変えれば任意のキーを送信できる。
DigiKeyboard.sendKeyStroke(KEY_ENTER);
など。

DigiFootKB.ino
#include "DigiKeyboard.h"

// the setup routine runs once when you press reset:
void setup() {                
    // initialize the digital pin as an input.
    pinMode(0, INPUT_PULLUP);
}

// the loop routine runs over and over again forever:
void loop() {
    if(digitalRead(0) == 0) {
        DigiKeyboard.sendKeyStroke(0);
        DigiKeyboard.println("Hello Digispark!");
    }
    DigiKeyboard.delay(10);
}

動作確認

YoutTube