Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Eu vi algo da minha viagem à América que achei muito legal e útil - The Stream Deck. São basicamente teclas de atalho para qualquer aplicativo que você quiser, ótimo para multitarefa. Mas a questão é que é muito caro para mim (100 $) e nem está disponível no meu país. Mesmo assim, achei que seria incrivelmente útil para o meu trabalho, então decidi fazer um para mim (que custou quase 10 $ desde o Pro Micro chinês barato) e compartilhá-lo para que alunos e pessoas com orçamento limitado pudessem ter um e fazer seus vida um pouco mais simples.
Não é nem remotamente tão bonito quanto o de 100 $, mas funciona muito bem.
(A foto do meu deck estava faltando o Arduino Pro Micro desde que eu o derrubei e quebrei, o HC-05 e o Arduino Pro Mini eram para outro projeto, então não se importe).
Suprimentos
Arduino Pro Micro x 1
Botões x 12 (Arduino Pro Micro pode suportar no máximo 12 botões)
Tamanho do PCB que caberia no número de botões de sua preferência
Resistores de 10k Ohm
Etapa 1: os botões
Para fazer o Arduino reconhecer quando um botão é pressionado, precisaremos conectar os botões da seguinte forma:
Pino do botão 1 -> resistor de 10k -> GND
Pino do botão 2 -> VCC
Pino do botão 4 -> Um dos Pinos Digitais ou Pinos Analógicos do Arduino
Repita até obter o número desejado de botões
Meu PCB é estupidamente bagunçado, então é realmente difícil rastrear quando ocorre um erro, você gostaria que ele fosse mais organizado para facilitar a solução de problemas.
Etapa 2: Programando o Arduino
Programar com o Pro Micro é um pouco diferente dos outros Arduinos e exigiria algumas etapas adicionais. Eu sugeriria os guias que me ajudaram a programar o Pro Micro:
Guia oficial do Sparkfun:
www.sparkfun.com/products/12640
Um guia instrutível:
www.instructables.com/id/Set-up-and-Instal…
Depois de conectar com sucesso seu Pro MIcro ao PC e agora poder programá-lo, aqui está o código para o meu projeto:
# define KEY_RIGHT_SHIFT 0x85 # define KEY_RIGHT_ALT 0x86 # define KEY_RIGHT_GUI 0x87
#define KEY_UP_ARROW 0xDA
#define KEY_DOWN_ARROW 0xD9 #define KEY_LEFT_ARROW 0xd8 #define KEY_RIGHT_ARROW 0xD7 #define KEY_BACKSPACE 0xB2 #define KEY_TAB 0xB3 #define KEY_RETURN 0xB0 #define KEY_ESC 0xB1 #define KEY_INSERT 0xD1 #define KEY_DELETE 0xD4 #define KEY_PAGE_UP 0xD3 #define KEY_PAGE_DOWN 0xD6 #define KEY_HOME 0xD2 #define KEY_END 0xD5 #define KEY_CAPS_LOCK 0xC1 #define KEY_F1 0xC2 #define KEY_F2 0xC3 #define KEY_F3 0xC4 #define KEY_F4 0xC5 #define KEY_F5 0xC6 #define KEY_F6 0xC7 #define KEY_F7 0xC8 #define KEY_F8 0xC9 #define KEY_F9 0xCA #define KEY_F10 0xCB #define KEY_F11 0xCC #define KEY_F12 0xCD #define KEY_LEFT_CTRL 0x80 int buttonPin = 9; botãoPin1 interno = 10; botãoPin2 = 8; botãoPin3 = 6; botãoPin4 = 5;
#incluir
void setup ()
{pinMode (buttonPin, INPUT); pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buttonPin3, INPUT); pinMode (buttonPin4, INPUT);
}
void loop ()
{if (digitalRead (buttonPin) == 1) // Quando o botão 1 é pressionado {Keyboard.print ("Imprima a frase que você quiser"); //
atraso (1000);
} if (digitalRead (buttonPin1) == 1) {Keyboard.print (""); // Qualquer frase que você quiser} if (digitalRead (buttonPin2) == 1) // Este é um atalho para alterar o idioma do meu teclado {Keyboard.press (KEY_RIGHT_SHIFT); Keyboard.press (KEY_LEFT_CTRL); Keyboard.release (KEY_LEFT_CTRL); Keyboard.release (KEY_RIGHT_SHIFT); atraso (1000); } if (digitalRead (buttonPin3) == 1) // Abra o aplicativo com o atalho Ctrl + Alt + t {Keyboard.press (KEY_LEFT_ALT); Keyboard.press (KEY_LEFT_CTRL); Keyboard.print ('t'); Keyboard.release (KEY_LEFT_ALT); Keyboard.release (KEY_LEFT_CTRL); atraso (1000); } if (digitalRead (buttonPin4) == 1) // Abra o aplicativo com o atalho Ctrl + Alt + p
{Keyboard.press (KEY_LEFT_ALT); Keyboard.press (KEY_LEFT_CTRL); Keyboard.print ('p'); Keyboard.release (KEY_LEFT_ALT); Keyboard.release (KEY_LEFT_CTRL); atraso (1000); }}
Se você quiser que seu teclado pressione a tecla "Enter": Keyboard.write (10); (O código ACSII para a tecla Enter é 10)
O atraso após cada ação é para evitar que a chave seja enviada como spam.
Aqui está o código para download:
Etapa 3: Criação de teclas de atalho para aplicativos
Etapa 1: crie um atalho para os aplicativos que deseja usar
Etapa 2: clique com o botão direito e escolha "Propriedades"
Passo 3: Clique no “Atalho” (mostrado na imagem) e escolha a chave desejada
Por exemplo, se você escolher "p", o atalho para o aplicativo será Ctrl + Alt + p
Agora você deve estar pronto para ir
// Você pode ver no código
if (digitalRead (buttonPin4) == 1) // Abra o aplicativo com o atalho Ctrl + Alt + p
{
Keyboard.press (KEY_LEFT_ALT); Keyboard.press (KEY_LEFT_CTRL); Keyboard.print ('p'); Keyboard.release (KEY_LEFT_ALT); Keyboard.release (KEY_LEFT_CTRL); atraso (1000); }
Etapa 4: sugestões
Eu tenho todas as 12 chaves do Arduino Pro Micro vinculadas a algo, aqui está o que você pode fazer:
- Comandos do jogo ou spam (CS: GO, TF2)
- Teclas de atalho universais para Windows Media Player, pois meu teclado não possui as teclas de função de mídia
Aqui está o guia do plugin:
www.howtogeek.com/howto/19356/add-global-h…
Link para Download:
wmpkeys.sourceforge.net/
- Preencher automaticamente as senhas: se você não quiser se lembrar da senha do seu navegador, vincule-a a um dos botões (há riscos, mas se você não rotular as chaves, não haverá problema, use:
if (digitalRead (buttonPin) == 1) // Quando o botão 1 é pressionado {Keyboard.print ("Senha");
atraso (1000);
Keyboard.write (10); // Para pressionar Enter
}
Etapa 5: Expansões
Você pode tentar adicionar sensores e módulos ao Pro Micro para ter diferentes maneiras de desbloquear seu PC.
Talvez um leitor de RFID, leitor de IR para que quando você digitalizar o cartão ou pressionar o controle remoto, o Pro mini possa imprimir a senha.
Por exemplo, você inicializa seu PC, em vez de digitar sua senha, você escaneia a chave RFID e o PC é desbloqueado.
Tenho pensado nisso há um tempo, mas nunca fiz isso, pois meu PCB está sem espaço para o scanner, mas espero que vocês possam tornar isso realidade.