失敗談: M5StickCを使用した親指シフトコンバータの作成
引き出しを整理していたら、M5StickCが出てきました。「何か使えないだろうか?」と考えたところ、Bluetoothが使えることを思い出しました。
「BluetoothキーボードとiPadの間にM5StickCを挟んで、親指シフトの変換器として使えたら便利だな」と思い立ち、挑戦してみることにしました。
やりたいこと
目指したのは以下のしくみです:
Bluetoothキーボード → 変換器 (M5StickC) → iPad
すべての通信はBluetoothで行い、M5StickCはBluetoothキーボードの入力を親指シフトに変換してiPadに送る
「完成度はさておき、簡単に実装できるだろう」と軽く考えていたのですが、予想以上に厳しい道のりが待っていました。
キーボードが繋がらない
まず最初に、Bluetoothキーボードの入力をM5StickC経由でそのままiPadにスルーする簡単なプログラムを作ろうとしました。M5StickCからiPadへの通信はすぐに成功しましたが、BluetoothキーボードとM5StickCの接続がどうしてもできません。
IDの固定、セキュリティレベルの変更、使用しているBluetoothライブラリの変更など、色々試行錯誤しましたが、結果は同じでした。Bluetoothキーボードを認識はするのですがペアリングしません。
最終的に、接続しようとしていたBluetoothキーボードのBTバージョンが問題だと判明しました。Bluetooth 5.0対応のキーボードを用意すると、無事に接続できました。それまで使用していたキーボードはBluetooth 4.0対応のものでした。
Bluetooth 4.0対応のコンパクトなキーボード(Microsoft Universal Foldable Keyboard)を使用したかったのですが、現状このキーボードはM5StickCと接続できません。また、接続に成功したBluetooth 5.0キーボードも、一定時間が経過すると接続が切断されてしまいます。接続を維持するためのコードを追加してみましたが、改善されることはありませんでした。
断念
現状の私の技量ではこれ以上続けても時間を浪費するだけだと判断し、今回はここで終了することにしました。失敗の記録として、動作したスケッチを以下に掲載しておきます。
実現したこと:Bluetooth 5.0キーボード → M5StickC→ iOS へのBluetooth接続により、キーボード入力をM5Stickを通じてiOSに送信します。
問題点:一定時間が経過すると接続が切断され、再接続が必要になります。
必要なツール:コンパイルにはArduino IDEが必要です。