Propaganda
O humilde Arduino pode fazer muitas coisas, mas você sabia que pode emular um teclado USB? Você pode combinar os atalhos de teclado longos difíceis de lembrar em uma única tecla de atalho personalizada, com este circuito simples. Aqui está o resultado final:
Nunca usou um Arduino antes? Confira nossa Guia de Introdução Introdução ao Arduino: Guia para iniciantesO Arduino é uma plataforma de prototipagem eletrônica de código aberto baseada em hardware e software flexível e fácil de usar. Destina-se a artistas, designers, amadores e qualquer pessoa interessada em criar objetos ou ambientes interativos. consulte Mais informação primeiro.
O que você precisa
Aqui está o que você precisa para fazer este projeto:
- 1 x Arduino Pro Micro.
- Botões momentâneos ou botões do teclado.
- Resistores de 10K ohm.
- Fios de conexão variados.
- Resistores de 1 x 220 ohm.
- 1 x 5 mm (0,197 polegadas) LED.
- 1 x suporte de LED de 5 mm.
Você precisará de um Arduino muito específico para este projeto. Estou usando um Pro Micro
, como são tão pequenos e baratos, você precisa de um Arduino que possua USB-Serial embutido no processador (Atmega32u4). É possível construir este projeto com outros Arduinos, como UNO ou Nano, no entanto, é preciso muito trabalho duro para atualizar novamente a bios e mexer nas coisas para que as coisas funcionem. Os clones de outros modelos do Arduino geralmente não funcionam, mas um clone do Pro Micro também é bom.OSOYOO Pro Micro ATmega32U4 Placa de módulo de 5V / 16MHz com cabeçalho de 2 pinos para arduino Leonardo Substitua ATmega328 Pro MiniOSOYOO Pro Micro ATmega32U4 Placa de módulo de 5V / 16MHz com cabeçalho de 2 pinos para arduino Leonardo Substitua ATmega328 Pro Mini Compre agora na Amazon $10.99
Você precisará de um botão momentâneo, um resistor de 10K ohm e um fio de conexão apropriado para cada botão que deseja usar. Estou usando os interruptores do teclado mecânico Cherry MX para os botões de atalho reais, embora qualquer o switch funcionará, desde que seja momentâneo e sem travamento.
Você pode precisar de alguns outros itens, dependendo de como criar isso. Se você deseja prototipá-lo, precisará de um tábua de pão sem solda. Vale a pena gastar o dinheiro em uma boa - às vezes eles podem não ser confiáveis. Se você quiser colocar isso em uma caixa, compre um painel de strip-tease.
Plano de Construção
Veja como isso funcionará. O Arduino será programado para funcionar como um teclado USB - no que diz respeito ao seu computador, é. Vários botões conectados ao Arduino enviarão comandos de teclas para o seu computador. Você só pressionará um botão, mas seu computador pensará que você pressionou Alt > F4, por exemplo.
Selecionando um Switch

Existem várias variações de switches da série MX. Esse site fornece uma excelente introdução, no entanto, eles basicamente se resumem a ruído e pressão. Alguns modelos exigem mais força para pressionar e alguns emitem um clique mecânico quando pressionados. Eu usei o Cherry MX Browns, que não faz barulho quando pressionado. Todas têm as mesmas dimensões; portanto, escolha qualquer modelo que você goste (ou misture e combine) sem se preocupar.
Você também precisará adquirir alguns limites, é claro, e há um mundo de projetos personalizados lá fora para escolher - nós compramos de KeyboardCo no Reino Unido
O caso
Imprimi este gabinete em 3D e você pode fazer o download do .STL arquivos de Thingiverse. Não se preocupe, se você não possui uma impressora 3D, você ainda pode criar isso. Muitos sites fornecem serviços de impressão 3D, como Hubs 3D ou Shapeways. Como alternativa, este é um caso muito simples, você pode criar plástico, perspex, madeira ou papelão. Se você quer ser realmente econômico, o Cherry MX vende um conjunto de testador / sampler Amazonas (Reino Unido). Você precisará de 4 parafusos M5 x 35mm e 4 porcas M5. É claro que você pode substituí-los por uma alternativa adequada.
Teclado máximo do teclado, Cherry MX Switch, Kit de testador (kit de testador Pro de amostrador de 9 switches)Teclado máximo do teclado, Cherry MX Switch, Kit de testador (kit de testador Pro de amostrador de 9 switches) Compre agora na Amazon $14.99
Se você está fazendo o seu próprio caso, há um detalhe importante que você precisa saber: os interruptores Cherry MX são um encaixe perfeito nos orifícios de montagem. Eles exigem um orifício de montagem quadrado de 14 x 14 mm (0,551 pol.), Com a placa não sendo mais espessa que 1,5 mm (0,059 pol.). Afaste-se muito dessas dimensões e seus comutadores podem não ser mais montados corretamente.
A caixa impressa em 3D está dividida em duas partes, a superior e a inferior. Empurre os interruptores Cherry MX nos orifícios quadrados:

Certifique-se de montar os interruptores da maneira correta. A parte superior tem as palavras "CHERRY" e a parte inferior possui um pequeno entalhe. Insira um LED de 3 mm neste pequeno slot:

Você pode achar que os LEDs parecem melhor montados “de cabeça para baixo”. Esse foi o caso dos keycaps que usei e não afeta os switches.
Agora você deve ter nove comutadores com 9 LEDS. Não é necessário colar nenhuma dessas peças. A solda retém os LEDs e o atrito retém os interruptores.

Em seguida, aperte o suporte de LED (deixe o LED removido por enquanto). Você terminará a montagem do gabinete mais tarde, depois que o circuito for construído.
O circuito
Este circuito é construído em painel de controle. Isso é excelente para a construção de circuitos semi-permanentes, sem o custo de uma placa de circuito impresso (PCB). É simplesmente um pedaço de fibra de vidro com faixas de cobre paralelas em uma direção. Essas faixas podem ser soldadas e cortadas. O corte de uma esteira pode ser feito com uma ferramenta especial ou uma pequena broca.
Não é muito confiante em solda? Dê uma olhada em esses projetos simples Aprenda a soldar, com estas dicas e projetos simplesVocê está um pouco intimidado com o pensamento de um ferro quente e metal fundido? Se você deseja começar a trabalhar com eletrônicos, precisará aprender a soldar. Vamos ajudar. consulte Mais informação primeiro.
Aqui está o layout do painel (excluindo os leads à direita):

Certifique-se de cortar os traços sob os resistores e o Arduino. Como pode ser muito difícil ler um circuito de stripboard, aqui está uma versão em breadboard:

É um ajuste apertado para apertar todos os componentes em um espaço tão pequeno. Corte os cantos do seu painel da seguinte maneira:

Isso deve se encaixar perfeitamente na parte inferior do gabinete:

Verifique se as faixas estão funcionando verticalmente.
Conecte o ânodo (perna longa, positiva) do LED para o resistor de 200 ohm e depois para +5 V. Conecte o cátodo (perna curta, negativa) à terra. Cubra as pernas com uma capa termo retrátil e empurre o suporte para LED. Não há necessidade de cola; no entanto, seu suporte de LED pode não ser um encaixe por pressão, portanto, pode ser necessário adaptar essas instruções.

Você pode usar um LED bicolor aqui em vez disso - isso permitirá que você configure dois ou mais bancos de comutadores, com um LED de status colorido diferente para cada banco.
Agora é hora de soldar todos os LEDs das teclas. Elas são usadas apenas para fazer as teclas brilharem, para que você possa pular elas, se quiser, e elas não precisam estar conectadas a um pino digital, apenas energia. Conecte todos os ânodos juntos e todos os cátodos juntos. Aprenda com o meu erro - é muito mais fácil fazer isso antes de conectar os comutadores! Conecte os ânodos a +5 V através de um resistor de 220 ohm e os catodos ao terra. Esses LEDs são conectados em paralelo. Aqui está o circuito apenas para esses LEDS:

Use um pequeno pedaço de tubo termo-retrátil para cobrir a conexão entre os LEDs e o Arduino:

Ligue o Arduino para testar todos os LEDs. Você não precisa enviar nenhum código. Se algum LED não estiver funcionando, verifique e verifique sua fiação.

Agora ligue os interruptores. Eles devem ser conectados através de um resistor de 10k, caso contrário, o Arduino morrerá. Isso é chamado de curto-circuito - +5 V entra diretamente no solo, e tudo o que resta do seu Arduino será uma nuvem de fumaça (acredite, eu já matei um já, para que você não precise). Aqui está o circuito para um comutador:

Este circuito é o mesmo para todos os nove comutadores. Conecte os comutadores aos pinos digitais de dois a dez, cada um com seu próprio resistor de 10K no terra. Tenha cuidado ao soldar os interruptores Cherry MX, eles podem ser um pouco frágeis, tive vários pinos quebrados em mim. Você pode soldá-las diretamente em mais um painel de tiras, mas os cabos à direita ainda são adequados.
É isso para a fiação. Você pode montar um soquete fêmea USB tipo B, no entanto, os pequenos pinos neles podem ser difíceis de soldar. Se você não deseja fazer isso, não se preocupe. O conector Micro USB no Arduino ajusta-se perfeitamente ao orifício do chassi. Se você estiver um pouco confuso com os diferentes tipos de USB, verifique se entender as diferenças Entenda os tipos de cabos USB e qual usarPor que existem tantos tipos diferentes de cabos USB? Aprenda as diferenças entre os tipos de conectores USB e como comprar o melhor cabo. consulte Mais informação .
Finalmente, verifique se o seu circuito está correto. Um curto pode facilmente destruir um Arduino, e pode ser fácil usando o painel de controle.
O código
Agora teste o circuito está correto. É uma boa ideia fazer isso antes de prosseguir, para que você possa corrigir qualquer problema agora enquanto puder. Faça o upload deste código de teste (não se esqueça de selecionar a placa e a porta corretas no Ferramentas > Borda e Ferramentas > Porta menus):
const int buttons [] = {2,3,4,5,6,7,8,9,10}; // matriz de todos os pinos dos botões void setup () {// coloque seu código de configuração aqui, para executar uma vez: Serial.begin (9600); pinMode (2, INPUT); pinMode (3, INPUT); pinMode (4, INPUT); pinMode (5, INPUT); pinMode (6, INPUT); pinMode (7, INPUT); pinMode (8, INPUT); pinMode (9, INPUT); pinMode (10, INPUT); } void loop () {// coloque seu código principal aqui, para executar repetidamente: for (int i = 2; i <11; ++ i) {if (digitalRead (i) == HIGH) {// desbounce do software melhora o atraso da precisão (10); if (digitalRead (i) == HIGH) {// check alterna Serial.print ("input"); Serial.println (i); atraso (250); } } } }
Pode ser necessário alterar os pinos se você modificou o circuito.
Depois de carregado, abra o monitor serial (canto superior direito > Monitor Serial). Um por um, pressione cada botão. Você deve ver o monitor serial mostrando o número do botão pressionado. Assim como no LED, se o seu computador reclamar de excesso de corrente ou se o LED apagar quando você pressiona um botão, desconecte-o imediatamente! Você tem um curto em algum lugar do circuito, verifique se o circuito está correto e não há curtos entre as conexões.
Se tudo estiver funcionando, vá em frente e coloque o circuito na caixa. Você pode usar um pouco de cola para manter o circuito no lugar (embora os fios segurem os meus). Aperte a tampa também.
Fazer o Arduino parecer um teclado é muito simples. Se você estiver usando um Nano ou UNO, irá reprogramar seu Arduino usando Atualização de firmware do dispositivo (DFU). Isso geralmente é usado para atualizar o novo firmware para o Arduino. Você o usará para atualizar o Arduino com um novo firmware que fará com que funcione como um teclado. Isso não será abordado aqui, pois é uma tarefa bastante complexa. o Site do Arduino tem um bom tutorial para isso.
O Arduino Pro Micro facilita essa etapa. A lógica necessária para emular um teclado USB já está embutida no processador, por isso é tão simples quanto escrever algum código!
Primeiro, configure as chaves:
teclas int [] = {2, 3, 4, 5, 6, 7, 8, 9, 10};
Essa é uma matriz que contém todos os pinos aos quais os botões estão conectados. Se você usou mais ou menos botões ou pinos diferentes, altere os valores aqui.
Uma matriz é um conjunto de coisas afins. Os computadores podem otimizar seu código para acessá-los rapidamente e agilizar o processo de escrita de código.
Agora inicialize todos os pinos como entradas:
void setup () {// coloque seu código de instalação aqui, para executar uma vez: Keyboard.begin (); // teclado de configuração para (int i = 2; i <11; ++ i) {// inicia os pinos pinMode (i, INPUT); } }
Isso informa ao Arduino que todos os pinos da matriz são entradas. Um loop é usado para fazer isso, portanto, em vez de escrever pinMode (2, INPUT) nove vezes, você só precisa escrevê-lo uma vez. Isso também chama Keyboard.begin. Isso configura uma função incorporada à biblioteca do Arduino, projetada especificamente para emular um teclado.
Crie um método chamado readButton:
booleano readButton (int pin) {// verifica e rebaixa os botões if (digitalRead (pin) == HIGH) {delay (10); if (digitalRead (pin) == HIGH) {retorna true; } } retorna falso; }
Isso pega um pino e verifica se foi pressionado ou não. Simplesmente retorna VERDADE ou FALSO. Também contém alguns devolução de software - um simples atraso e, em seguida, verificar novamente o interruptor para garantir que o botão foi realmente pressionado.
Agora, outro loop for é chamado dentro loop vazio ():
void loop () {// coloque seu código principal aqui, para executar repetidamente: for (int i = 2; i <11; ++ i) {// verifica os botões if (readButton (i)) {doAction (i); } } }
Novamente, isso passa por todos os elementos da matriz e verifica se ele foi pressionado. Isso é chamado de readButton método que você criou anteriormente. Se um botão foi pressionado, ele passa o número do pino para outro método chamado doAction:
void doAction (int pin) {// executa a troca de tarefas (pin) {case 2: Keyboard.println ("drive.google.com"); pausa; caso 3: Keyboard.println ("makeuseof.com"); pausa; case 4: // CMD + T (nova guia, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ('t'); atraso (100); Keyboard.releaseAll (); pausa; caso 5: // sua tarefa aqui quebra; caso 6: // sua tarefa aqui quebra; caso 7: // sua tarefa aqui quebra; case 8: // sua tarefa aqui quebra; case 9: // sua tarefa aqui quebra; } }
Isso verifica o número do pino usando um interruptor declaração. Instruções Switch (às vezes chamadas caso de comutação) são semelhantes a um E se, no entanto, são úteis para verificar se uma coisa (neste caso, o número do pino) é igual a um dos vários resultados diferentes. Essencialmente, eles são muito mais rápidos para calcular.
Os principais componentes estão dentro desta declaração de opção. Keyboard.println grava texto no computador como se você digitasse fisicamente todas as teclas. Keyboard.press pressiona e mantém pressionada uma tecla. Não se esqueça de liberá-los usando Keyboard.releaseAll após um pequeno atraso!
Aqui está o código completo:
teclas int [] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; void setup () {// coloque seu código de instalação aqui, para executar uma vez: Keyboard.begin (); // teclado de configuração para (int i = 2; i <11; ++ i) {// inicia os pinos pinMode (i, INPUT); } } void loop () {// coloque seu código principal aqui, para executar repetidamente: for (int i = 2; i <11; ++ i) {// verifica os botões if (readButton (i)) {doAction (i); } } } readButton booleano (int pin) {// verifica e rebaixa os botões if (digitalRead (pin) == HIGH) {delay (10); if (digitalRead (pin) == HIGH) {retorna true; } } retorna falso; } void doAction (int pin) {// executa a troca de tarefas (pin) {case 2: Keyboard.println ("drive.google.com"); pausa; caso 3: Keyboard.println ("makeuseof.com"); pausa; case 4: // CMD + T (nova guia, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ('t'); atraso (100); Keyboard.releaseAll (); pausa; caso 5: // sua tarefa aqui quebra; caso 6: // sua tarefa aqui quebra; caso 7: // sua tarefa aqui quebra; case 8: // sua tarefa aqui quebra; case 9: // sua tarefa aqui quebra; } }
Além de todas as teclas numéricas e de letras, o Arduino pode pressionar a maioria das teclas especiais chamadas Modificadores de teclado. Isso é particularmente útil para pressionar os atalhos do teclado. O site do Arduino possui um lista útil.
Agora tudo o que resta é criar alguns atalhos. Você pode mapear isso para atalhos existentes, como Alt + F4 (fechar programa no Windows) ou Cmd + Q (saia do programa macOS). Como alternativa, leia nosso guia de atalho do teclado final Atalhos de teclado do Windows 101: O melhor guiaOs atalhos do teclado podem economizar horas. Domine os atalhos de teclado universais do Windows, truques de teclado para programas específicos e algumas outras dicas para acelerar seu trabalho. consulte Mais informação , como criar atalhos do Windows Como criar atalhos da área de trabalho do Windows da maneira mais fácilOs atalhos inteligentes da área de trabalho podem poupar a atenção de menus e pastas. Mostramos maneiras rápidas e fáceis de criá-las. consulte Mais informação e todos os atalhos do Chromebook Todos os atalhos de teclado do Chromebook de que você precisaráDomine o Chrome OS com esta lista de todos os atalhos de teclado importantes do Chromebook que você precisará. consulte Mais informação para começar a criar seus próprios atalhos.
Você criou sua própria caixa de atalho? Deixe-me saber nos comentários, adoraria ver algumas fotos!
Joe é graduado em Ciência da Computação pela Universidade de Lincoln, Reino Unido. Ele é um desenvolvedor de software profissional e, quando não está pilotando drones ou escrevendo músicas, pode ser encontrado tirando fotos ou produzindo vídeos.