Crea i tuoi pulsanti di scelta rapida personalizzati con un Arduino

Crea i tuoi pulsanti di scelta rapida personalizzati con un Arduino / Fai da te

L'umile Arduino può fare un sacco di cose, ma lo sapevate che può emulare una tastiera USB? È possibile combinare quelle scorciatoie da tastiera lunghe e difficili da ricordare in un unico tasto di scelta rapida personalizzato, con questo semplice circuito. Ecco il risultato finale:

Non hai mai usato un Arduino prima? Scopri la nostra guida introduttiva Guida introduttiva ad Arduino: Guida per principianti Guida introduttiva ad Arduino: Guida per principianti Arduino è una piattaforma di prototipazione elettronica open source basata su hardware e software flessibili e facili da usare. È pensato per artisti, designer, hobbisti e chiunque sia interessato a creare oggetti o ambienti interattivi. Per saperne di più prima.

Quello di cui hai bisogno


Ecco di cosa hai bisogno per realizzare questo progetto:

  • 1 x Arduino Pro Micro.
  • Pulsanti momentanei o pulsanti della tastiera.
  • Resistori da 10K ohm.
  • Fili di collegamento assortiti.
  • 1 x 220 ohm resistori.
  • 1 LED da 5 mm (0,197 pollici).
  • 1 supporto LED da 5 mm.

Avrai bisogno di un Arduino molto specifico per questo progetto. Sto usando un Pro Micro, dato che sono così piccoli ed economici, serve un Arduino con USB-Serial integrato nel processore (Atmega32u4). È possibile costruire questo progetto con altri Arduino, come UNO o Nano, tuttavia richiede molto lavoro per re-flashare il bios e giocherellare per far funzionare le cose. I cloni di altri modelli Arduino di solito non funzionano affatto, ma va bene anche un clone Pro Micro.

Scheda del modulo OSOYOO Pro Micro ATmega32U4 5V / 16MHz con 2 pin header Testina per arduino Leonardo Sostituisci ATmega328 Pro Mini OSOYOO Pro Scheda di controllo Micro ATmega32U4 5V / 16MHz con 2 row Pin Header per arduino Leonardo Sostituisci ATmega328 Pro Mini Acquista ora su Amazon $ 8,99

Sarà necessario un pulsante momentaneo, un resistore da 10 K ohm e un cavo di collegamento appropriato per ciascun pulsante che si desidera utilizzare. Sto usando gli interruttori della tastiera meccanica Cherry MX per i pulsanti di scelta rapida, anche se qualunque l'interruttore lo farà, a condizione che sia momentaneo e non a scatto.

Potresti aver bisogno di qualche altro elemento a seconda di come lo costruisci. Se vuoi prototiparlo, avrai bisogno di una breadboard senza saldatura. Vale la pena spendere i soldi per uno buono - a volte possono essere molto inaffidabili. Se vuoi inscatolare questo, vorrete acquistare alcuni stripboard.

Piano di costruzione

Ecco come funzionerà. L'Arduino sarà programmato per funzionare come una tastiera USB: per quanto riguarda il tuo computer, lo è. Diversi pulsanti collegati ad Arduino invieranno comandi chiave al tuo computer. Premerai solo un pulsante, ma il tuo computer penserà che tu abbia premuto alt > F4, per esempio.

Selezione di un interruttore

Esistono diverse varianti degli interruttori della serie MX. Questo sito Web offre un'introduzione eccellente, tuttavia in sostanza si riducono al rumore e alla pressione. Alcuni modelli richiedono più forza da premere, e alcuni modelli fanno una meccanica “clic” suono quando premuto. Ho usato Cherry MX Browns, che non fanno rumore se premuto. Sono tutte delle stesse dimensioni, quindi scegli qualsiasi modello che ti piace (o mischia e combina) senza preoccuparti.

Dovrai anche acquistare alcuni tappi dei tasti, ovviamente, e c'è un mondo di design personalizzati là fuori da scegliere: abbiamo acquistato da KeyboardCo nel Regno Unito..

Il caso

Ho stampato questo caso in 3D e tu puoi scaricare il .STL file da Thingiverse. Non preoccuparti se non possiedi una stampante 3D, puoi comunque costruirla. Molti siti Web offrono servizi di stampa 3D, come 3D Hub o Shapeways. In alternativa, questo è un caso molto semplice, si potrebbe fare il proprio da plasticard, perspex, legno o persino cartone. Se vuoi essere davvero parsimonioso, Cherry MX vende un set tester / campionatore di switch su Amazon (Regno Unito). Avrete bisogno di 4 bulloni M5 x 35mm e 4 dadi M5. Ovviamente puoi sostituirli con un'alternativa adatta a te.

Tastiera Max Keycap, Cherry MX Switch, O-Ring Pro Tester Kit Tester Max Tastiera Keycap, Cherry MX Switch, O-Ring Pro Sampler Tester Kit Acquista ora su Amazon

Se stai facendo il tuo caso, c'è un dettaglio importante che devi sapere: gli interruttori Cherry MX sono inseriti a pressione nei loro fori di montaggio. Richiedono un foro di montaggio quadrato da 14 x 14 mm (0,551 pollici), con una piastra non più spessa di 1,5 mm (0,059 pollici). Razza troppo lontana da queste dimensioni e gli interruttori potrebbero non essere montati correttamente.


La custodia stampata in 3D è divisa in due parti, quella superiore e quella inferiore. Spingere gli interruttori Cherry MX nei fori quadrati:

Assicurati di montare gli interruttori nel modo corretto. La parte superiore ha le parole “CILIEGIA” su, e il fondo ha una piccola tacca. Inserisci un LED da 3 mm in questo piccolo slot:

Potresti scoprire che i LED sembrano meglio montati “sottosopra”. Questo è stato il caso per i keycap che ho usato, e non ha alcun impatto sugli switch.

Ora dovresti avere nove interruttori con 9 LED. Non è necessario incollare nessuna di queste parti. La saldatrice manterrà i LED e l'attrito manterrà gli interruttori.

Quindi, avvitare il supporto LED (lasciare il LED rimosso per ora). Finirai di assemblare il caso più tardi, una volta costruito il circuito.

Il circuito

Questo circuito è costruito su stripboard. Questo è eccellente per la costruzione di circuiti semi-permanenti, senza il costo di un circuito stampato (PCB). È semplicemente un pezzo di fibra di vetro con piste di rame che corrono parallele in una direzione. Queste tracce possono essere saldate e tagliate. Tagliare una traccia può essere fatto con uno strumento speciale o una piccola punta da trapano.

Non sei troppo sicuro della saldatura? Dai un'occhiata a questi semplici progetti Scopri come saldare, con questi semplici suggerimenti e progetti Impara come saldare, con questi semplici consigli e progetti Sei un po 'intimidito dal pensiero di un ferro caldo e di metallo fuso? Se vuoi iniziare a lavorare con l'elettronica, avrai bisogno di imparare a saldare. Lasciaci aiutare. Per saperne di più prima.

Ecco il layout di stripboard (esclusi i lead di trascinamento):

Assicurati di tagliare le tracce sotto le resistenze e l'Arduino. Poiché può essere molto difficile leggere un circuito stripboard, ecco una versione breadboard:

È una soluzione perfetta per spremere tutti i componenti in uno spazio così piccolo. Taglia gli angoli della tua stripboard come segue:

Questo dovrebbe adattarsi perfettamente al fondo del caso:

Assicurati che le tracce stiano correndo verticalmente.

Collegare l'anodo (gamba lunga, positiva) del LED alla resistenza da 200 ohm e quindi a +5 V. Collegare il catodo (gamba corta, negativa) a terra. Coprire le gambe con guaina termorestringente e quindi spingere nel supporto LED. Non è necessario alcun tipo di colla, tuttavia il supporto per LED potrebbe non essere inserito a pressione, quindi potrebbe essere necessario adattare queste istruzioni.

Potresti voler utilizzare qui un LED bicolore: ciò ti consentirà di impostare due o più banchi di interruttori, con un LED di stato colorato diverso per ciascuna banca.

Ora è il momento di saldare tutti i LED per i keycaps. Questi sono usati solo per far brillare i tasti, quindi puoi saltarli se vuoi, e non devono essere collegati a un pin digitale, solo energia. Collegare tutti gli anodi insieme e tutti i catodi insieme. Impara dal mio errore: è molto più facile farlo prima di collegare gli interruttori! Collegare gli anodi a +5 V mediante un resistore da 220 ohm e i catodi a terra. Questi LED sono cablati in parallelo. Ecco il circuito solo per questi LED:

Utilizzare un piccolo pezzo di guaina termorestringente per coprire la connessione tra i LED e Arduino:

Accendi l'Arduino per testare tutti i LED funzionanti. Non è necessario caricare alcun codice. Se alcuni LED non funzionano, vai a controllare due volte il tuo cablaggio.

Ora cablare gli interruttori. Questi devono essere collegati tramite un resistore da 10k, altrimenti l'Arduino morirà. Questo è chiamato un corto morto - +5 V va direttamente nel terreno, e tutto ciò che rimane del tuo Arduino sarà una boccata di fumo (credimi, ne ho già ucciso uno in modo da non doverlo fare). Ecco il circuito per un interruttore:

Questo circuito è lo stesso per tutti e nove gli interruttori. Collegare gli interruttori ai pin digitali da due a dieci, ciascuno con la propria resistenza da 10K a terra. Fai attenzione agli interruttori Cherry MX di saldatura, possono essere un po 'fragili, ho avuto diversi spilli su di me. Si consiglia di saldarli direttamente ad altri stripboard, tuttavia i cavi di trascinamento sono ancora adatti.

Questo è tutto per il cablaggio. Si potrebbe desiderare di montare una presa USB tipo B, tuttavia i piccoli pin su di essi possono essere spesso difficili da saldare. Se non desideri farlo, non preoccuparti. Il connettore Micro USB di Arduino si adatta perfettamente al foro nel telaio. Se sei un po 'confuso riguardo ai diversi tipi di USB, assicurati di aver compreso le differenze. Comprensione dei tipi di cavo USB e quale utilizzare. Comprensione dei tipi di cavo USB e quale utilizzare Perché ci sono così tanti diversi cavi USB? Scopri le differenze tra i tipi di connettori USB e come acquistare il miglior cavo. Leggi di più .

Infine, controlla che il tuo circuito sia corretto. Un cortometraggio può facilmente distruggere un Arduino, e può essere facile da fare usando lo stripboard.

Il codice

Ora prova che il circuito sia corretto. È una buona idea farlo prima di procedere, in modo da poter risolvere eventuali problemi ora mentre è possibile. Carica questo codice di prova (non dimenticare di selezionare la scheda e la porta corrette da Utensili > Tavola e Utensili > Porta menu):

pulsanti const int [] = 2,3,4,5,6,7,8,9,10; // array di tutti i pin dei pulsanti void setup () // inserisci qui il tuo codice di configurazione, da eseguire una volta: 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 () // inserisci qui il tuo codice principale, per eseguirlo ripetutamente: for (int i = 2; i < 11; ++i)  if(digitalRead(i) == HIGH)  // software de-bounce improves accuracy delay(10); if(digitalRead(i) == HIGH)  // check switches Serial.print ("input"); Serial.println(i); delay(250);    

Potrebbe essere necessario cambiare i pin se hai modificato il circuito.

Una volta caricato, apri il monitor seriale (in alto a destra > Monitor seriale). Uno alla volta, premere ciascun pulsante. Dovresti vedere il monitor seriale mostrare il numero del pulsante premuto. Proprio come con il LED, se il tuo computer si lamenta di trarre troppa corrente o se i LED si spengono quando premi un pulsante, scollegati immediatamente! Hai un breve da qualche parte nel circuito, controlla due volte il circuito è corretto e non ci sono cortocircuiti tra le connessioni.

Se tutto funziona, vai avanti e metti il ​​circuito nella scatola. Si consiglia di utilizzare una piccola quantità di colla per tenere il circuito in posizione (anche se i fili hanno tenuto il mio bene). Bolt il coperchio pure.

Far sembrare che Arduino sia una tastiera è molto semplice. Se stai usando un Nano o UNO, stai riprogrammando il tuo Arduino usando Aggiornamento del firmware del dispositivo (DFU). Questo è solitamente usato per aggiornare il nuovo firmware su Arduino. Lo userai per far lampeggiare Arduino con un nuovo firmware che lo farà funzionare come una tastiera. Questo non sarà coperto qui, in quanto è un compito abbastanza complesso. Il sito Web di Arduino ha un buon tutorial per questo.

Arduino Pro Micro rende questo passaggio molto semplice. La logica necessaria per emulare una tastiera USB è già integrata nel processore, quindi è semplice come scrivere del codice!

Innanzitutto, imposta le chiavi:

int keys [] = 2, 3, 4, 5, 6, 7, 8, 9, 10;

Questo è un array che contiene tutti i pin ai quali sono collegati i pulsanti. Se hai usato più o meno pulsanti o usato pin diversi, modifica qui i valori.

Un array è un insieme di cose che la pensano allo stesso modo. I computer possono ottimizzare il tuo codice per accedervi rapidamente e accelerare il processo di scrittura del codice.

Ora inizializza tutti i pin come input:

void setup () // inserisci qui il tuo codice di configurazione, da eseguire una volta: Keyboard.begin (); // imposta la tastiera per (int i = 2; i < 11; ++i)  // initilize pins pinMode(i, INPUT);  

Questo dice all'arduino che tutti i pin dell'array sono input. Un ciclo è usato per fare questo, quindi piuttosto che scrivere pinMode (2, INPUT) nove volte, devi solo scriverlo una volta. Questo chiama anche Keyboard.begin. Questo imposta una funzione integrata nella libreria Arduino, progettata appositamente per emulare una tastiera.

Crea un metodo chiamato readButton:

boolean readButton (int pin) // check e debounce buttons if (digitalRead (pin) == HIGH) delay (10); if (digitalRead (pin) == HIGH) return true;  return false; 

Questo prende un pin e controlla se è stato premuto o meno. Ritorna semplicemente VERO o FALSE. Contiene anche alcuni debouncing del software - un semplice ritardo e quindi ricontrollare l'interruttore assicura che il pulsante sia stato effettivamente premuto.

Ora un altro ciclo per viene chiamato all'interno void loop ():

void loop () // inserisci qui il tuo codice principale, per eseguirlo ripetutamente: for (int i = 2; i < 11; ++i)  // check buttons if(readButton(i))  doAction(i);   

Di nuovo, questo controlla ogni elemento dell'array e controlla se è stato premuto. Lo fa chiamato il readButton metodo che hai creato in precedenza. Se un pulsante è stato premuto, passa quel numero pin a un altro metodo chiamato doAction:

void doAction (int pin) // esegui attività switch (pin) case 2: Keyboard.println ("drive.google.com"); rompere; caso 3: Keyboard.println ("makeuseof.com"); rompere; caso 4: // CMD + T (nuova scheda, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ( 't'); ritardo (100); Keyboard.releaseAll (); rompere; caso 5: // il tuo compito qui si interrompe; caso 6: // il tuo compito qui si interrompe; caso 7: // il tuo compito qui si interrompe; caso 8: // il tuo compito qui si interrompe; caso 9: // il tuo compito qui si interrompe; 

Questo controlla il numero del pin usando a interruttore dichiarazione. Cambia istruzioni (a volte chiamate scatola dell'interruttore) sono simili a un Se affermazione, tuttavia sono utili per verificare che una cosa (in questo caso il numero di pin) sia uguale a uno dei diversi risultati. Essenzialmente, sono molto più veloci da calcolare.

I componenti principali sono all'interno di questa istruzione switch. Keyboard.println scrive il testo sul computer come se si digitasse fisicamente ogni tasto. Keyboard.press preme e tiene una chiave. Non dimenticare di rilasciarli usando Keyboard.releaseAll dopo un breve ritardo!

Ecco il codice completo:

int keys [] = 2, 3, 4, 5, 6, 7, 8, 9, 10; void setup () // inserisci qui il tuo codice di configurazione, da eseguire una volta: Keyboard.begin (); // imposta la tastiera per (int i = 2; i < 11; ++i)  // initilize pins pinMode(i, INPUT);   void loop()  // put your main code here, to run repeatedly: for (int i = 2; i < 11; ++i)  // check buttons if(readButton(i))  doAction(i);    boolean readButton(int pin)  // check and debounce buttons if (digitalRead(pin) == HIGH)  delay(10); if (digitalRead(pin) == HIGH)  return true;   return false;  void doAction(int pin)  // perform tasks switch (pin)  case 2: Keyboard.println("drive.google.com"); break; case 3: Keyboard.println("makeuseof.com"); break; case 4: // CMD + T (new tab, Chrome) Keyboard.press(KEY_LEFT_GUI); Keyboard.press('t'); delay(100); Keyboard.releaseAll(); break; case 5: // your task here break; case 6: // your task here break; case 7: // your task here break; case 8: // your task here break; case 9: // your task here break;  

Oltre a tutti i tasti numerici e lettere, Arduino può premere la maggior parte dei tasti speciali chiamati Modificatori di tastiera. Questi sono particolarmente utili per la pressione delle scorciatoie da tastiera. Il sito Web di Arduino ha un elenco utile.

Ora non resta che creare alcune scorciatoie. Puoi mappare questo alle scorciatoie esistenti, come ad esempio alt + F4 (chiudi il programma in Windows) o cmd + Q (esci dal programma macOS). In alternativa, assicurati di leggere la nostra guida definitiva per scorciatoie da tastiera. Scorciatoie da tastiera di Windows 101: The Ultimate Guide Scorciatoie da tastiera di Windows 101: The Ultimate Guide Le scorciatoie da tastiera ti possono far risparmiare ore di tempo. Scopri le scorciatoie da tastiera universali di Windows, i trucchi da tastiera per programmi specifici e alcuni altri suggerimenti per velocizzare il tuo lavoro. Per saperne di più, come creare scorciatoie per Windows Come creare scorciatoie per il desktop di Windows in modo semplice Come creare scorciatoie per il desktop di Windows in modo semplice Le scorciatoie del desktop Smart consentono di risparmiare l'inutile setacciamento di menu e cartelle. Vi mostriamo modi semplici e veloci per crearli. Ulteriori informazioni e tutti i collegamenti ai Chromebook Ecco tutti i collegamenti ai Chromebook di cui avrai mai bisogno Ecco tutti i collegamenti ai Chromebook di cui avrai mai bisogno Stai cercando un elenco principale di scorciatoie da tastiera per il tuo Chromebook? Ecco tutte le combinazioni di tasti di cui avrai bisogno per Chrome OS! Leggi di più per iniziare a creare le tue scorciatoie.

Hai creato la tua casella di scelta rapida? Fatemi sapere nei commenti, mi piacerebbe vedere alcune immagini!

Scopri di più su: Arduino, tastiera, scorciatoie da tastiera.