【Digispark】Bluetoothのペアリング補助装置を作ってみる
当方が愛用しているBluetoothキーボードには若干の不具合があるように見受けられます。それは、なんの前触れもなく接続が切れること。
キーボードの電源OFF/ONや電池交換をしても状況に変化はナシ。もちろん、キーボードのスリープでもありません。
PC的にはペアリング状態であるものの、なぜか接続が切れている。そんな雰囲気の症状がたまに現れます。
そうなると、一旦PCに登録されている該当キーボードのBluetooth情報を削除し、再ペアリングしないと回復しません。
その時に面倒なのがペアリング操作。ウチのキーボードはPIN入力方式のペアリングが必要であり、わずか数バイトの文字を入力するためだけにUSBキーボードを用意しなければなりません。
一応、USBキーボードも保持しているのですが、緊急用として塩漬けになっております。それを引っ張り出してくるのは、なかなかに面倒。
まぁ、WindowsのスクリーンキーボードでもOKな訳ですが、その使い方を調べるためにキーボードが必要になる、というジレンマが生じます。
ということで、手元に置いてもジャマにならず、手軽に使えるキーボード代わりのUSBデバイスを作ってみることに。
USB Type-CなDigisparkを買ってみた
これまでに使ったことのあるDigispark(の互換ボード)は、USB直挿しタイプのみ。冒頭の写真で右側に写っているヤツです。
一見便利ではあるのですが、ポートによっては端子のプレッシャーに負けて基板が浮いてしまい、接触不良になるという問題があります。
そんな訳で、今回はUSBケーブル接続タイプを選んでみることに。当初はUSB micro Bタイプを想定しておりました。が、探してみるとUSB Type-Cタイプもある様子。
最近では手持ちデバイスのほとんどの充電ポートがUSB Type-Cであり、新たに買うならUSB Type-Cの一択です。なので、サクッとこれを注文。
で、届いたのが冒頭の写真(左側)の品。機能的には他のDigisparkとまったく同じです。ただ、インターフェースとしてUSB Type-Cが搭載されているのが唯一の違い。
サイズ的な話をすると、全幅はほぼ同等で、全長は直挿しタイプの方が3mmほど長くなっています。
価格的にはUSB Type-Cタイプの方が若干高くなっておりますが、Aliexpressで見る限りmicro Bタイプに数十円を足したレベルでした。
スケッチを書いてみる
で、目的のコトができるように書いてみたスケッチ(ソースプログラム)がこちら。
#include <DigiKeyboard.h> void setup() { //インジケータLED設定 pinMode(1, OUTPUT); //文字の欠落防止(ダミー打鍵) DigiKeyboard.sendKeyStroke(0); //0000を出力 DigiKeyboard.println("0000"); } void loop() { // LED点滅 digitalWrite(1, HIGH); delay(100); digitalWrite(1, LOW); delay(100); }
やってるコトはすごくシンプル。PCのUSBポートにDigisparkを接続すると仮想USBキーボードに化け、"0000"を自動タイプした後、基板上のLEDをビカビカ点滅させる。これだけ。
LEDはループ処理で延々と点滅し続けます。文字の入力処理は接続時の1回のみなので、何か悪さをすることはありません。
が、つなぎっぱなしというのもアレなので、Digisparkの取り外しを促すよう、ウザい仕様にしてみました。
使い方など
まぁ、こうしたデバイスを作ろうなどと思う酔狂な方はそういないと思いますが、一応使い方の説明など。
ペアリング途中までは、一般的なUSBキーボードを使った操作と同じです。PIN方式によるペアリングの流れに関してはこちらの記事を参考に。
キモとなるのは、ウィンドウが以下の状態になった時。1度めのPINコード入力時です。
PINコード入力用のテキストボックスをクリックしてフォーカスを移します。テキストボックス内にキャレットが表示されればOK。
その状態で今回作ったデバイスをUSBポートに接続し、ボード上のLEDが点滅するのを待ちます。または、PCの画面上でPINコードが入力されるのを確認します。
後は通常のペアリング操作と同じ。"接続"ボタンをクリックし、テキストボックスがグレーアウトした状態でBluetoothキーボードから同じ文字列をタイプ。最後にEnterキーを押せばペアリングの完了です。
最後に
スケッチ内の"0000"を書き換えると、出力される文字列も変わります。なので、他のPINコードにも応用可能。自分だけのオリジナルなペアリング補助装置ができます。
何なら、応用的にパスワードの自動入力装置なんてのもできます。ただし、テキストエディタで使用するとパスワードが平文で見えてしまいます。セキュリティ的にザルなのでやらない方が賢明。
USB Type-CなDigisparkですが、Amazon.co.jp辺りでは見かけない様子。しばらくしたら販売されるとは思いますが、急ぎで欲しい場合にはAliexpressなどで探してみることをオススメします。
コメント