Annuncio pubblicitario

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

Non hai mai usato un Arduino prima? Dai un'occhiata al nostro guida per iniziare Introduzione ad Arduino: una guida per principiantiArduino è una piattaforma di prototipazione elettronica open source basata su hardware e software flessibili e di facile utilizzo. È destinato ad artisti, designer, hobbisti e chiunque sia interessato a creare oggetti o ambienti interattivi. Leggi di più primo.

Quello che ti serve

Parti di scelta rapida Arduino
Ecco cosa ti serve per realizzare questo progetto:

  • 1 x Arduino Pro Micro.
  • Pulsanti momentanei o pulsanti della tastiera.
  • Resistori da 10K ohm.
  • Fili di collegamento assortiti.
  • 1 resistenza da 220 ohm.
  • 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

instagram viewer
Pro Micro, poiché sono così piccoli ed economici, è necessario un Arduino con USB-Serial integrato nel processore (Atmega32u4). È possibile costruire questo progetto con altri Arduinos, come UNO o Nano, tuttavia richiede molto duro lavoro per riprogrammare 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 modulo OSOYOO Pro Micro ATmega32U4 5V / 16MHz con 2 pin header per arduino Leonardo Sostituire ATmega328 Pro MiniScheda modulo OSOYOO Pro Micro ATmega32U4 5V / 16MHz con 2 pin header per arduino Leonardo Sostituire ATmega328 Pro Mini Acquista ora su Amazon $10.99

Avrai bisogno di un pulsante momentaneo, una resistenza da 10K ohm e un cavo di collegamento appropriato per ciascun pulsante che desideri utilizzare. Sto usando gli interruttori della tastiera meccanica Cherry MX per i pulsanti di scelta rapida effettivi, sebbene qualunque lo farà, purché sia ​​momentaneo e non si blocchi.

Potresti aver bisogno di alcuni altri elementi a seconda di come lo costruisci. Se vuoi prototiparlo, avrai bisogno di un tagliere senza saldatura. Vale la pena spendere i soldi per una buona - a volte possono essere molto inaffidabili. Se vuoi confezionarlo, dovrai acquistare un po 'di stripboard.

Costruisci piano

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 i comandi da tastiera al tuo computer. Premi un solo pulsante, ma il tuo computer penserà di aver premuto alt > F4, per esempio.

Selezione di un interruttore

Arduino Cherry MX

Esistono diverse varianti degli switch della serie MX. Questo sito web fornisce un'eccellente introduzione, tuttavia essenzialmente si riducono al rumore e alla pressione. Alcuni modelli richiedono più forza per essere premuti e alcuni modelli emettono un suono meccanico a "clic" quando vengono premuti. Ho usato Cherry MX Browns, che non fa rumore quando viene premuto. Hanno tutte le stesse dimensioni, quindi scegli qualsiasi modello che ti piace (o mescola e abbina) senza preoccupazioni.

Dovrai anche acquistare alcuni limiti chiave, ovviamente, e c'è un mondo di disegni personalizzati là fuori da scegliere - abbiamo acquistato da KeyboardCo nel Regno Unito

Il caso

Ho stampato in 3D questa custodia e puoi scaricare STL file da Thingiverse. Non preoccuparti se non possiedi una stampante 3D, puoi comunque costruirla. Molti siti Web offrono servizi di stampa 3D, come ad esempio Hub 3D o Shapeways. In alternativa, questo è un caso molto semplice, potresti crearne uno in plastica, perspex, legno o persino cartone. Se vuoi essere davvero parsimonioso, Cherry MX vende un tester / campionatore switch attivato Amazon (UK). Avrai bisogno di 4 bulloni M5 x 35mm e 4 dadi M5. Puoi ovviamente sostituirli con un'alternativa adatta che hai.

Keycap tastiera max, interruttore Cherry MX, kit tester (kit tester campionatore Pro 9 interruttori)Keycap tastiera max, interruttore Cherry MX, kit tester (kit tester campionatore Pro 9 interruttori) Acquista ora su Amazon $14.99

Se stai realizzando la tua custodia, 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 di 14 x 14 mm (0,551 pollici), con la piastra non più spessa di 1,5 mm (0,059 pollici). Distanziarsi troppo da queste dimensioni e gli interruttori potrebbero non essere montati correttamente.

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

Collegamento MX Cherry Mount

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

Collegamento Cherry MX LED

È possibile che i LED appaiano meglio montati "sottosopra". Questo è stato il caso dei 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 saldatura terrà i LED e l'attrito terrà gli interruttori.

Scorciatoia Cherry MX All

Successivamente, avvitare il supporto LED (lasciare il LED rimosso per ora). Finirai di assemblare il caso in seguito, una volta che il circuito è stato costruito.

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 binari in rame che corrono paralleli in una direzione. Queste tracce possono essere saldate e tagliate. Il taglio di una traccia può essere eseguito con uno strumento speciale o una piccola punta.

Non sei troppo sicuro della saldatura? Dai un'occhiata a questi semplici progetti Scopri come saldare, con questi semplici suggerimenti e progettiSei un po 'intimidito dal pensiero di un ferro caldo e di un metallo fuso? Se vuoi iniziare a lavorare con l'elettronica, dovrai imparare a saldare. Aiutiamoci. Leggi di più primo.

Ecco il layout del tabellone (esclude i lead finali):

Striscia scorciatoia Arduino

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

Tagliere per scorciatoie Arduino

Si adatta perfettamente per spremere tutti i componenti in uno spazio così piccolo. Taglia gli angoli del tuo listone come segue:

Scorciatoia a strisce

Questo dovrebbe adattarsi perfettamente alla parte inferiore del case:

Scorciatoia nella scatola

Assicurati che le tracce stiano funzionando 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 è necessaria alcuna colla, tuttavia il supporto per LED potrebbe non essere a incastro, quindi potrebbe essere necessario adattare queste istruzioni.

LED di stato del collegamento

Qui potresti voler usare un LED bicolore - questo ti permetterà di impostare due o più banchi di interruttori, con un LED di stato di colore diverso per ciascun banco.

Ora è il momento di saldare tutti i LED per i keycap. Questi sono usati esclusivamente per far brillare i tasti, quindi puoi saltarli se vuoi, e non devono essere collegati a un pin digitale, solo alimentazione. 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 tramite una resistenza da 220 ohm e i catodi a terra. Questi LED sono collegati in parallelo. Ecco il circuito solo per questi LED:

LED dei pulsanti di scelta rapida Circuito

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

Scorciatoia LED a scelta rapida

Accendi Arduino per testare il funzionamento di tutti i LED. Non è necessario caricare alcun codice. Se alcuni LED non funzionano, vai e ricontrolla il tuo cablaggio.

Test LED di collegamento

Ora collegare gli interruttori. Questi devono essere collegati tramite un resistore da 10k, altrimenti Arduino morirà. Questo si chiama short short - +5 V va direttamente nel terreno, e tutto ciò che rimane del tuo Arduino sarà uno sbuffo di fumo (fidati di me, ne ho già ucciso uno così non devi farlo). Ecco il circuito per un interruttore:

Circuito di scelta rapida di Arduino

Questo circuito è lo stesso per tutti e nove gli interruttori. Collegare gli interruttori ai pin digitali da due a dieci, ciascuno con il proprio resistore da 10K a terra. Fai attenzione a saldare gli interruttori Cherry MX, possono essere un po 'fragili, ho avuto diversi pin su di me. Potresti voler saldare questi direttamente su un po 'più di stripboard, tuttavia i cavi finali sono ancora adatti.

Questo è tutto per il cablaggio. Potresti voler montare una presa USB di tipo B femmina, tuttavia i piccoli pin su di essi possono essere spesso difficili da saldare. Se non desideri farlo, non preoccuparti. Il connettore Micro USB su Arduino si adatta perfettamente al foro nel telaio. Se sei un po 'confuso riguardo ai diversi tipi di USB, assicurati capire le differenze Comprendi i tipi di cavo USB e quale utilizzarePerché ci sono così tanti diversi tipi di cavo USB? Scopri le differenze tra i tipi di connettore USB e come acquistare il cavo migliore. Leggi di più .

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

Il codice

Ora prova il circuito è corretto. È una buona idea farlo prima di procedere, quindi puoi risolvere qualsiasi problema ora mentre puoi. Carica questo codice di prova (non dimenticare di selezionare la scheda e la porta corrette dal 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 installazione, per 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, da eseguire ripetutamente: for (int i = 2; i <11; ++ i) {if (digitalRead (i) == HIGH) {// il de-rimbalzo del software migliora il ritardo dell'accuratezza (10); if (digitalRead (i) == HIGH) {// check switch Serial.print ("input"); Serial.println (i); ritardo (250); } } } }

Potrebbe essere necessario cambiare i pin se è stato modificato il circuito.

Una volta caricato, apri il monitor seriale (in alto a destra > Monitor seriale). Uno per uno, premi ciascun pulsante. Dovresti vedere il monitor seriale che mostra il numero del pulsante che hai premuto. Proprio come con il LED, se il computer si lamenta di assorbire troppa corrente o i LED si spengono quando si preme un pulsante, disconnettersi immediatamente! Hai un corto circuito da qualche parte nel circuito, ricontrolla che il circuito sia corretto e non ci siano cortocircuiti tra le connessioni.

Se tutto funziona, vai avanti e metti il ​​circuito nella scatola. Potresti voler usare una goccia di colla per mantenere il circuito in posizione (anche se i fili tenevano il mio in modo fine). Chiudete anche il coperchio.

Far sembrare Arduino una tastiera è molto semplice. Se stai usando un Nano o UNO, riprogrammerai il tuo Arduino usando Aggiornamento del firmware del dispositivo (DFU). Di solito viene utilizzato per eseguire il flashing del nuovo firmware su Arduino. Lo userai per far lampeggiare Arduino con un nuovo firmware che lo farà funzionare come una tastiera. Questo non sarà trattato qui, poiché è un compito abbastanza complesso. Il Sito web Arduino ha un buon tutorial per questo.

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

Innanzitutto, imposta i tasti:

chiavi int [] = {2, 3, 4, 5, 6, 7, 8, 9, 10};

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

Un array è una raccolta di cose che la pensano allo stesso modo. I computer possono ottimizzare il codice per accedervi rapidamente e accelerano il processo di scrittura del codice.

Ora inizializza tutti i pin come input:

void setup () {// inserisci qui il tuo codice di installazione, per eseguirlo una volta: Keyboard.begin (); // imposta tastiera per (int i = 2; i <11; ++ i) {// initilize pin pinMode (i, INPUT); } }

Questo dice ad Arduino che tutti i pin dell'array sono input. A tale scopo viene utilizzato un loop, 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 specificamente per emulare una tastiera.

Crea un metodo chiamato readButton:

boolean readButton (int pin) {// controlla e rimuove i pulsanti if (digitalRead (pin) == HIGH) {delay (10); if (digitalRead (pin) == HIGH) {return true; }} return false; }

Questo richiede un perno e controlla se è stato premuto o meno. Ritorna semplicemente VERO o FALSE. Ne contiene anche alcuni debouncing del software - un semplice ritardo e poi ricontrollare l'interruttore assicura che il pulsante sia stato realmente premuto.

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

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

Ancora una volta, questo va oltre ogni elemento dell'array e controlla se è stato premuto. Lo fa chiamato il readButton metodo creato in precedenza. Se è stato premuto un pulsante, passa quel numero di pin a un altro metodo chiamato doAction:

void doAction (int pin) {// esegui switch attività (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. Istruzioni switch (a volte chiamate scatola dell'interruttore) sono simili a un Se dichiarazione, tuttavia sono utili per verificare che una cosa (in questo caso il numero di pin) sia uguale a uno dei numerosi risultati diversi. In sostanza, 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 premuto un tasto. Non dimenticare di rilasciarli utilizzando Keyboard.releaseAll dopo un breve ritardo!

Ecco il codice completo:

chiavi int [] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; void setup () {// inserisci qui il tuo codice di installazione, per eseguirlo una volta: Keyboard.begin (); // imposta tastiera per (int i = 2; i <11; ++ i) {// initilize pin pinMode (i, INPUT); } } void loop () {// inserisci qui il tuo codice principale, da eseguire ripetutamente: for (int i = 2; i <11; ++ i) {// controlla i pulsanti if (readButton (i)) {doAction (i); } } } booleano readButton (int pin) {// controlla e rimuove i pulsanti if (digitalRead (pin) == HIGH) {delay (10); if (digitalRead (pin) == HIGH) {return true; }} return false; } void doAction (int pin) {// esegue switch attività (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; } }

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

Ora non resta che creare alcune scorciatoie. Puoi associarlo a scorciatoie esistenti, come alt + F4 (chiudi programma in Windows) o cmd + Q (esci dal programma macOS). In alternativa, assicurati di leggere il nostro ultima guida alle scorciatoie da tastiera Scorciatoie da tastiera di Windows 101: The Ultimate GuideLe scorciatoie da tastiera possono farti risparmiare ore di tempo. Padroneggia le scorciatoie da tastiera universali di Windows, i trucchi della tastiera per programmi specifici e alcuni altri suggerimenti per accelerare il tuo lavoro. Leggi di più , come creare collegamenti di Windows Come creare collegamenti sul desktop di Windows in modo sempliceLe scorciatoie desktop intelligenti possono farti risparmiare il setaccio senza ragione tra menu e cartelle. Ti mostriamo modi semplici e veloci per crearli. Leggi di più , e ogni scorciatoia per Chromebook Ogni scorciatoia da tastiera per Chromebook di cui avrai mai bisognoPadroneggia Chrome OS con questo elenco di tutte le scorciatoie da tastiera importanti per Chromebook di cui avrai mai bisogno. Leggi di più per iniziare a creare le tue scorciatoie.

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

Joe è laureato in Informatica presso l'Università di Lincoln, nel Regno Unito. È uno sviluppatore di software professionale e quando non pilota droni o scrive musica, spesso si trova a scattare foto o a produrre video.