MicMute: controle de microfone com Arduino Leonardo
Que tal um controle de microfone com Arduino? Usando um Arduino Leonardo Pro Micro você pode ligar e desligar o microfone quando estiver usando o Google Meet (ou outro programa) no seu computador de um jeito fácil e rápido.
O que é o controle de microfone MicMute
O MicMute (baita nome criativo, hein? 😀 ) é um dispositivo que usa o Arduino Leonardo para enviar um comando para o Google Meet, ligando e desligando o microfone da sua sala de reunião virtual.
E no que isso ajuda? Quem usa o Google Meet sabe que a barra inferior muitas vezes é recolhida automaticamente quando estamos em uma reunião.
Isso acaba atrapalhando um pouco na hora que você precisa ligar ou desligar o microfone, já que é necessário arrastar o mouse até a parte inferior da tela, esperar os botões aparecerem e aí sim clicar no botão do microfone.
Montando o MicMute com Arduino Leonardo
A montagem é bem simples e eu usei um Arduino Leonardo Pro Micro 5V, para que esse coubesse na caixa que eu montei.
Usamos um botão tipo push-button conectado na porta digital 7. Opcionalmente você pode colocar um led para mostrar se o microfone está ligado ou desligado, mas no meu projeto optei por não usar. Explico isso no final deste post.
Posso usar outras placas da linha Leonardo? Claro! Uma boa opção é você usar a Placa BS Micro Pro ATMega32U4 Leonardo, que pode ser plugada diretamente na USB do seu computador.
Programa controle de microfone com Arduino Leonardo
Com esse circuito extremamente simples já montado, vamos ao programa. Ele utiliza a biblioteca Keyboard, já presente na IDE do Arduino, para emular um teclado que vai enviar comandos para o seu computador.
Já vimos essa biblioteca antes no post Usando placa Arduino Leonardo como teclado e mouse, onde eu explico mais sobre o funcionamento do Arduino Leonardo e a comunicação USB embutida do microcontrolador ATMega32U4.
O que o programa faz é enviar para o computador um comando CTRL+D para ligar e desligar o microfone (CTRL+D é o comando nativo do Google Meet para habilitar/desabilitar o microfone). Apesar de também ser uma coisa simples, temos alguns pontos de atenção no programa.
O comando Keyboard.press() serve para você simular o acionamento de várias teclas ao mesmo tempo. No caso, estamos usando a tecla Control do lado esquerdo do teclado, logo o comando completo fica assim:
Keyboard.press(KEY_LEFT_CTRL);
Fazemos depois a mesma coisa com a tecla “d”:
Keyboard.press('d');
Agora, já que você pressionou, precisa “soltar” os botões, certo? Isso é importantíssimo e vai evitar algumas dores de cabeça quando a sua placa estiver conectada. Acredite. 🙂
Para liberar os botões que foram acionados use o comando Keyboard.release(), nestas linhas:
Keyboard.release(KEY_LEFT_CTRL); Keyboard.release('d');
Isso tudo está dentro do IF da linha 19, que é a parte do programa que verifica se o botão foi pressionado.
//Programa: MicMute controle de microfone com Arduino Leonardo //Autor: Arduino e Cia #include "Keyboard.h" //Pino do push-button int botao_comando = 7; int valor; void setup() { Serial.begin(9600); pinMode(botao_comando, INPUT_PULLUP); } void loop() { valor = digitalRead(7); if (valor == 0) { Serial.println("Botao pressionado..."); Keyboard.begin(); Keyboard.press(KEY_LEFT_CTRL); Keyboard.press('d'); delay(100); Keyboard.release(KEY_LEFT_CTRL); Keyboard.release('d'); delay(100); } while (digitalRead(7) == 0) { delay(50); } delay(100); }
Agora basta carregar o programa no seu Arduino Leonardo e usar o MicMute.
Considerações sobre o programa e comandos do teclado
- Você pode adaptar facilmente este programa para outros ambientes, como o Zoom por exemplo, que também permite que você ligue ou desligue o microfone usando uma tecla de atalho. No Zoom, é o ALT+M;
- Como o programa simplesmente envia os comandos como se fosse um teclado comum, você pode colocar mais botões para ligar ou desligar a câmera, abrir o chat, sair da reunião, etc.;
- Por que não coloquei um led, apesar de ser possível? Porque o botão só vai mutar o microfone quando você está dentro do Google Meet. Então se durante a reunião eu estou com outra janela ativa, posso até acionar o botão pois o CTRL+D será enviado, mas para o programa ativo no momento, ok?
- Se você quiser adaptar o seu programa para outras aplicações, confira uma lista dos comandos de teclado para o Arduino Leonardo, ali você vai encontrar também os comandos para as teclas ALT, DELETE, BACKSPACE, etc.
Gostou ou tem alguma dúvida? Deixe o seu comentário logo abaixo e confira outros projetos com Arduino aqui mesmo no Arduino e Cia!