Neste tutorial vamos ver como construir um stream deck com a Raspberry Pi Pico 2 W. O projeto apresentado é bastante simples, mas pode ser facilmente expandido conforme as suas necessidades. Como destaque, esta versão não requer conexão via fio com o computador, usando o recurso de Bluetooth Low Energy (BLE) da Pico 2 W.
O que é um stream deck?
Um stream deck é um teclado auxiliar programável, para facilitar o uso de aplicações. Seu uso mais comum é com aplicações de geração de transmissão de vídeo ao vivo (streaming), mas pode ser usado com qualquer aplicação que possa ser controlada via teclado.
Um stream deck é como um “painel de controle” super prático: você programa cada botão para realizar uma tarefa específica, como abrir um programa, colar um texto, ou até iniciar uma transmissão ao vivo. Isso economiza tempo e torna o fluxo de trabalho mais rápido e organizado. Para quem faz lives, edita vídeos ou trabalha com automação de tarefas no PC, ele é praticamente um companheiro indispensável!
Stream deck com a Raspberry Pi Pico 2 W: Circuito
O material que será usado para a montagem em uma protoboard é o seguinte:
A figura abaixo mostra a montagem na protoboard:
Como simular um teclado via Bluetooth?
Bluetooth é um padrão de comunicação sem fio para comunicação a curto alcance que possui diversos profiles, cada um destinado a um tipo de dispositivo ou aplicação. A partir da versão 4.0, o Bluetooth suporta dois protocolos: o Clássico (chamado às vezes simplesmente de Bluetooth) e o Low Energy (ou BLE). Ambos os protocolos possuem um profile para os Dispositivos de Interface Humana (HID), que inclui suporte a teclado, mouse e joystick.
Neste tutorial vamos implementar nosso Stream Deck usando o Bluetooth Low Energy, porém o programa pode ser facilmente alterado para usar o Bluetooth Clássico (como será visto no final).
Embora os protocolos envolvidos sejam complexos, existem bibliotecas que os implementam fornecendo interfaces de programação extremamente simples. No caso vamos usar as bibliotecas que vem junto com o pacote de suporte a placas baseadas nos microcontroladores RP2040 e RP250 na IDE Arduino.
Instalando o suporte à Raspberry Pi Pico na IDE Arduino
Neste projeto vamos usar o pacote mantido por Earle F. Philhower, III. Na IDE do Arduino, entre em File Preferences e acrescente o link abaixo no campo “Additional Boards Manager URLs”:
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
Clique em Ok e entre em Tools Boards Board Manager. Digite RP2350 na caixa de busca, localize o pacote Raspberry Pi Pico/RP2040/RP2350 by Earle F. Philhower, III e clique em INSTALL:
Stream deck com a Raspberry Pi Pico 2 W: Código
Use File New na IDE do Arduino para criar um novo programa (sketch) e copie o código abaixo:
// Stream Deck #include <KeyboardBLE.h> // Rotinas de geração de teclas void geraCtrlC(void); void geraCtrlV(void); void abreTaskMgr(void); void digitaNome(void); // Tabela de teclas struct { int pino; void (*aciona)(void); } teclas[] = { { 15, geraCtrlC }, { 14, geraCtrlV }, { 13, abreTaskMgr }, { 12, digitaNome }, { -1, NULL } }; // Iniciação void setup() { // Inicia pinos ligados às teclas for (int i = 0; teclas[i].pino != -1; i++) { pinMode (teclas[i].pino, INPUT_PULLUP); } // Inicia Teclado Bluetooth KeyboardBLE.begin(); // Aguarda iniciar delay(5000); } // Laço Principal void loop() { for (int i = 0; teclas[i].pino != -1; i++) { if (digitalRead(teclas[i].pino) == LOW) { // Apertou uma tecla, espera soltar while (digitalRead(teclas[i].pino) == LOW) { delay(10); } // Gera as teclas correspondentes (*teclas[i].aciona)(); } } } void geraCtrlC(void) { KeyboardBLE.press(KEY_LEFT_CTRL); KeyboardBLE.press('c'); delay(100); KeyboardBLE.releaseAll(); } void geraCtrlV(void) { KeyboardBLE.press(KEY_LEFT_CTRL); KeyboardBLE.press('v'); delay(100); KeyboardBLE.releaseAll(); } void abreTaskMgr(void) { KeyboardBLE.press(KEY_LEFT_CTRL); KeyboardBLE.press(KEY_LEFT_SHIFT); KeyboardBLE.press(KEY_ESC); delay(100); KeyboardBLE.releaseAll(); } void digitaNome(void) { KeyboardBLE.print("Maker Hero"); }
No menu Tools faça as configurações como indicado abaixo (estão destacadas as configurações que diferem do padrão):
Com a tecla BOOT da Pico 2 W pressionada, conecte-a a uma USB do computador. Solte a tecla BOOT, deve aparecer no computador uma unidade chamada RP2350. Use o botão Upload para compilar e carregar o programa na Pico.
Importante! Após a primeira carga de programa, o computador associará uma porta serial à placa Pico 2 W. Use Tools Port para selecionar esta porta, com isso não será mais necessário apertar o botão BOOT para gravar o programa.
Conectando o Stream Deck no Windows
Para o funcionamento correto do Stream Deck, você deve alimentar a Raspberry Pi Pico diretamente de uma fonte (por exemplo, um carregador de celular com saída USB) ao invés de conectá-lo à USB do computador.
Com o Stream Deck alimentado, entre no computador em Configurações / Bluetooth & outros dispositivos:
Selecione a opção “Adicionar Bluetooth ou outro dispositivo”:
Click em Bluetooth:
Após alguns instantes, vai aparecer a opção “PicoW BLE Keyboard”. Clique nela e aguarde.
A mensagem acima indica que o Stream Deck está conectado com sucesso ao computador. Clique em “Concluído” e observe que o dispositivo aparece na lista de Mouse, teclado e caneta:
Stream deck com a Raspberry Pi Pico 2 W: Funcionamento
O nosso Stream Deck possui quatro funções. Para vê-las funcionando, abra o Bloco de Notas e certifique-se que ele possui o foco da digitação.
Pressione o último botão (que na foto no início está marcado como “Maker Hero”): o texto “Maker Hero” será digitado no bloco de notas. Selecione uma parte do texto e pressione o primeiro o primeiro botão (Ctrl C), mova o cursor para outro ponto e aperte o segundo botão (Ctrl V): o texto foi copiado e colado.
Por último, pressione o terceiro botão (Task Mgr). Após alguns instantes o Gerenciador de Tarefas será aberto. Neste caso o Stream Deck gerou a sequência Ctrl Shift ESC, que é o atalho para executar o Gerenciador de Tarefas.
Alterando as teclas do stream deck
Você pode alterar o comportamento das teclas mudando o programa. A biblioteca KeyboardBLE possui as mesmas funcionalidades que a biblioteca Keyboard do Arduino, cuja documentação pode ser vista em
https://docs.arduino.cc/language-reference/en/functions/usb/Keyboard/
As principais funções são print (comanda a digitação de um texto), write (gera o apertar e soltar de uma tecla), press (gera o pressionamento de uma tecla), release (gera a liberação da tecla) e releaseAll (gera a liberação de todas as teclas que estavam pressionadas).
Usando o Bluetooth clássico ao invés do BLE
Basta substituir todas as referências no programa a KeyboardBLE para KeyboardBT. Ao adicionar o dispositivo, o nome que aparecerá será “PicoW BT Keyboard”.
Próximos Passos com o stream deck com a Raspberry Pi Pico 2 W
O pequeno exemplo apresentado aqui pode ser expandido para criar um Stream Deck tão poderoso como os comercialmente disponíveis. Algumas ideias de expansão:
- Faça a montagem usando uma placa de circuito impresso e acondicione em uma caixa
- Use teclas ou botões mais sofisticados (como botões arcade iluminados ou botões com LED.
- Coloque em cima dos botões um display para apresentar o nome ou um ícone com a função da tecla.
- Implemente um esquema de menu, para poder alternar a função das teclas conforme o programa que você pretende usar.
E então, gostou do Stream Deck com a Raspberry Pi Pico 2 W? Pretende montar um? Tem ideias de aperfeiçoamento? Conte para gente nos comentários e coloque fotos nas redes sociais.
Se você tiver dúvidas, sugestões ou experiências para compartilhar, fique a vontade para deixar um comentário abaixo. E para não perder nenhum conteúdo como este, não deixe de nos seguir no Instagram.
O post Monte o seu Stream Deck com Raspberry Pi apareceu primeiro em MakerHero.