M5StickCPlusでZoomのミュート&ビデオのON/OFFボタンを作るの記事をみてM5 ATOM Liteを使ってMAC用にミュート切り替えボタンを作ってみました。
M5 ATOM Liteは、ボタンひとつとLEDぐらいしかありませんが、1000円でBluetoothとWifiがついたマイコンです。千石通商やマルツからも手に入ります。
なお、WinとMACはZOOMのショートカットのキーアサインが違います。(Win Alt + A, MAC Command + Shift + A)
まあ、MACはスペースでPush To Talkができるんですが...
環境構築
M5Core Quick Start - Arduino Mac に従って環境を構築します。
シリアルポートは、tty.SLAB_USBtoUART
でなくて/dev/tty.usbserial-xxxxxx
の形式でした。
(2) Search M5Stack , find it and click Install
ではなくて、M5Atomを検索してください。
Tools->Board->M5Stack-Core-ESP32
ではなくて、Tools->Board->M5Stick-C
のほうがよいようです。(ほかだとビットレートを下げないと書き込みが失敗する)
追加ライブラリ
スケッチ-ライブラリをインクルード-ライブラリを管理から、FastLED
で検索してインストールをしてください。
ESP32-BLE-Keyboardより、最新版のESP32-BLE-Keyboard.zipをダウンロードして、スケッチ-ライブラリをインクルード-.ZIP形式のライブラリをインストールから、さきほど落としたzipファイルを指定してインストールします。
ソースコード
IDEのソースが書いてあるところに以下をコピーペーストします。"AtomKeyboard"はMACから見えるBluetoothデバイスの名前になります。長すぎるとMACから見えませんので注意してください。
エディターの上部のレボタンで検証して、→ボタンで書き込みます。
書き込みでタイムアウトとかでる場合は、ATOM LiteとのUSB-Cを抜き差しします。
# include <M5Atom.h>
# include <BleKeyboard.h>
BleKeyboard bleKeyboard("AtomKeyboard");
bool blestate = false;
void setup() {
Serial.begin(115200);
M5.begin(true, false, true);
M5.dis.drawpix(0, 0x00f000); // init red
Serial.println("Starting BLE work!");
delay(20);
bleKeyboard.begin();
delay(20);
M5.dis.drawpix(0, 0x001000); // dark red
}
void loop() {
if (bleKeyboard.isConnected()) {
if (!blestate) {
blestate = true;
Serial.println("BLE connect");
M5.dis.drawpix(0, 0x001000); // dark red
}
delay(100);
if (M5.Btn.isPressed()) {
Serial.println("Sending key...");
M5.dis.drawpix(0, 0x0000f0); // blue
bleKeyboard.press(KEY_LEFT_SHIFT);
bleKeyboard.press(KEY_LEFT_GUI);
bleKeyboard.write('a');
delay(100);
bleKeyboard.release(KEY_LEFT_GUI);
bleKeyboard.release(KEY_LEFT_SHIFT);
}
M5.dis.drawpix(0, 0x100000); // dark green
} else {
if (blestate) {
blestate = false;
M5.dis.drawpix(0, 0x001000); // dark red
}
}
delay(100);
M5.update();
}
おそらく以下のようにすればWINに対応したショートカットキーになるとおもいます(未確認)。
// sending key
bleKeyboard.press(KEY_LEFT_ALT);
bleKeyboard.write('a');
delay(100);
bleKeyboard.release(KEY_LEFT_ALT);
動作確認
ツール-シリアルモニタで、Starting BLE work!
とでているか確認します。
出ていなかったらATOM Liteのサイドボタンでリセットするか、USB-Cの抜き差しをします。
MACの設定からBluetooth設定を出して、AtomKeyboardと表示されているか確認をして接続します。
接続できるとシリアルモニタで、BLE Connect
とでます。ATOM Liteのボタンを押すと、Sending key...
と表示されます。
ここまでくれば動いているので、実際にzoomで試しましょう。