Zoomをミュートする物理ボタンを作る


Zoomのマイクミュートの切り替えがめんどくさい&今ミュートなのか不安になるので、
物理的に切替可能で、見た目にもわかりやすいボタンをATOM Matrixで作りました。

※仕組みはただのショートカットキーなので、切り替えられるか&本当に今ミュートかどうかは保証できません

できたもの

ソース

Arduino
#include "M5Atom.h"
#include <FastLED.h>
#include <BleKeyboard.h>

#define NUM_LEDS 25

#define LED_PIN 27

CRGB leds[NUM_LEDS];
BleKeyboard bleKeyboard("MUTE BUTTON");

const uint8_t cmd[] = {KEY_LEFT_SHIFT, KEY_RIGHT_GUI, 'a'};
bool isMute = true;

void sendCmd(){
    int length = sizeof cmd / sizeof cmd[0];
    for (int index = 0; index < length; index++) {
        bleKeyboard.press(cmd[index]);
    }
    delay(100);
    bleKeyboard.releaseAll();
}

void setColor(CRGB c){
    CRGB converted = CRGB(c.g, c.r, c.b);
    for (int index = 0; index < NUM_LEDS; index++){
        leds[index] = converted;
    }
    FastLED.show();
}

void setup() {
    M5.begin(true, false, true);
    bleKeyboard.begin();

    FastLED.addLeds<WS2812, LED_PIN>(leds, NUM_LEDS);
    FastLED.setBrightness(15);
}

void loop() {
    M5.update();
    if(bleKeyboard.isConnected()){
        if(M5.Btn.wasPressed()){
            sendCmd();
            isMute = !isMute;
        }
        setColor((isMute) ? CRGB::Red : CRGB::Lime);
    }else{
        setColor(CRGB::Black);
    }
    delay(10);
}

Bluetoothキーボードとして認識させるためにESP32-BLE-Keyboardを、
LEDの制御にFastLEDを使用します。
それぞれインストールしてください。

ボタン(正面のLEDマトリクスのところ)を押すたびに、⌘ + ⇧ + Aを入力し、Zoomのマイクミュートを切り替えます。

※Zoomを表示していないときにも切り替えるためには、Zoom側でグローバルショートカットを有効にする必要があります。


USBで繋いでるのにBLE経由なのが悲しい…技術力が足りませんでした。
気づいたこと、気になったことをコメントしていただけると励みになります。