3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Bluetooth接続のフットスイッチを作ってZoomのミュートON/OFF切り替えに活用してみる

Last updated at Posted at 2020-05-06

はじめに

WEB会議で、他の人の発言中はマイクをOFF、自分が発言するときだけマイクをON、しようとして、操作に手間取ることありませんか?というわけで、WEB会議ツールのZoom1を対象に、簡単にマイク(ミュート)のON/OFFを切り替えられるデバイスを作ってみました。

方針

WEB会議ツールによりますが、マイクのON/OFFはキーボードからのショートカットキー入力でも可能です。Zoomの場合、Macでは「Shift+Cmd+A」、Windowsでは「Alt+A」です。しかも、Zoomの場合、設定画面で「グローバルショートカットを有効化」しておくと、Zoomがバックグラウンドにあっても(Zoomにフォーカスがあたってなくても)、ショートカットキーの入力によってマイクのON/OFFを切り替えられます。
スクリーンショット 2020-05-06 14.02.05.png
そこで今回は、このショートカットキーを入力するための専用のキーボードを作ることにしました。ただし、「キーボード」と言っても、入力するのは1つのショートカットキーだけで良いので、キー(ボタン?スイッチ?)は1つで十分です。また、両手をフリーにできると嬉しいので、足で押せるものにしてみます(ついでに、足元に置けるようBluetoothで無線化します)。

要は、「Bluetooth機能を備えたマイコン」に「足で押せるスイッチ」をつないで、ショートカットキーを1つだけ入力できるBluetoothキーボード的なものを作ることにします。

実装

ハードウェア

まず、「Bluetooth機能を備えたマイコン」としては、定番のESP322を使います(今回はプロトタイプということで、スイッチサイエンスの開発ボード3を使用)。Arduino4の開発環境でソフトが書けるのが大きなメリットで、今回も、Bluetoothキーボードを作るためのESP32用ライブラリ5を見つけたので、これをそのまま活用しました。

次に、「足で押せるスイッチ」ですが、今回は、パナソニックが電化製品を足でON/OFFするための配線器具として販売しているフットスイッチ6を使ってみました。Amazonでも購入可能(購入時点では636円でした)です。分解して以下のように配線することで、普通のスイッチとして使えます。
fp_01.jpg
あくまで普通のスイッチなので、配線を「Bluetooth機能を備えたマイコン」のデジタル入力ピンにつなぐだけ。非常にシンプルです。
fp_02.jpg

ソフトウェア

ESP32で動かすArduinoのスケッチは以下のとおり。
Bluetoothキーボードのライブラリ5のおかげで、非常に簡単に書けてしまいました。ありがたい。。。
パナソニックのフットスイッチがオルタネイト型7だったので、これをモーメンタリ型として使えるよう、ちょっと余計な処理が入ってます。

ZoomButton.ino
# include <BleKeyboard.h>

# define PIN_BTN 23

BleKeyboard bleKeyboard("Zoom Button", "none", 100);
int state = HIGH;

void setup() {
  pinMode(PIN_BTN, INPUT_PULLUP);
  bleKeyboard.begin();
}

void loop() {
  if(bleKeyboard.isConnected()) {
    if(digitalRead(PIN_BTN) != state){
      // Shift + Cmd + A (Mac)
      bleKeyboard.press(KEY_LEFT_SHIFT);
      bleKeyboard.press(KEY_LEFT_GUI);
      bleKeyboard.press('a');
      /**
      // Alt + A (Win)
      bleKeyboard.press(KEY_LEFT_ALT);
      bleKeyboard.press('a');
      **/
      delay(100);
      bleKeyboard.releaseAll();

      while(digitalRead(PIN_BTN) != state);
      state = (state + 1) % 2;
    }
    delay(100);
  } else {
    delay(5000);
  }
}

上記のコードをESP32に書き込むと、普通のBluetoothキーボードと同じように「Zoom Button」というデバイスがパソコンに認識されて、ボタンを押すたびに「Shift+Cmd+A」のショートカットキー入力をしてくれます。
スクリーンショット 2020-05-06 17.00.32.png

おわりに

とっさに発言したいとき、画面操作やキーボード入力ではなく「足でボタンを押して」マイクON、って、意外と理にかなってて便利です。
fp_03.jpg

  1. Video Conferencing, Web Conferencing, Webinars, Screen Sharing - Zoom

  2. ESP32 - Wikipedia

  3. ESPr® Developer 32 - スイッチサイエンス

  4. Arduino - Home

  5. T-vK/ESP32-BLE-Keyboard: Bluetooth LE Keyboard library for the ESP32 (Arduino IDE compatible) 2

  6. 10Aフットスイッチ(ホワイト) WH5709KWP 商品概要 | 配線器具 | Panasonic

  7. 押しボタン式のスイッチのうち、ON状態を保持するタイプのスイッチが「オルタネイト型」。ON状態を保持しないタイプは「モーメンタリ型」。

3
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?