Crea i tuoi pulsanti di scelta rapida personalizzati con un Arduino

Crea i tuoi pulsanti di scelta rapida personalizzati con un Arduino

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





Mai usato un Arduino prima? Dai un'occhiata al nostro guida introduttiva primo.





Quello di cui hai bisogno

Ecco cosa ti serve per realizzare questo progetto:





  • 1 x Arduino Pro Micro.
  • Pulsanti momentanei o pulsanti della tastiera.
  • Resistori da 10Kohm.
  • Cavi di collegamento assortiti.
  • 1 x 220 ohm resistenze.
  • 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 , poiché sono così piccoli ed economici, è necessario un Arduino con USB-Serial integrato nel processore (Atmega32u4). È possibile costruire questo progetto con altri Arduino, come UNO o Nano, tuttavia richiede un sacco di duro lavoro per rifare il flash del 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 di Pro Micro.

Scheda modulo OSOYOO Pro Micro ATmega32U4 5V/16MHz con intestazione pin a 2 righe Sostituire con ATmega328 Pro Mini per Arduino ACQUISTA ORA SU AMAZON

Avrai bisogno di un pulsante momentaneo, un resistore da 10K ohm e un cavo di collegamento appropriato per ogni pulsante che desideri utilizzare. Sto usando gli interruttori della tastiera meccanica Cherry MX per i pulsanti di scelta rapida effettivi, anche se qualunque l'interruttore funzionerà, a condizione che 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 breadboard senza saldatura . Vale la pena spendere i soldi per uno buono: a volte possono essere molto inaffidabili. Se vuoi inscatolarlo, vorrai acquistare degli stripboard.

Piano di costruzione

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





Selezione di un interruttore

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

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





Il caso

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

Max Keyboard Keycap, Cherry MX Switch, Tester Kit (9 switch Pro Sampler Tester Kit) ACQUISTA ORA SU AMAZON

Se stai realizzando la tua custodia, c'è un dettaglio importante che devi sapere: gli interruttori Cherry MX si incastrano a pressione nei loro fori di montaggio. Richiedono un foro di montaggio quadrato da 14 x 14 mm (0,551 pollici), con la piastra non più spessa di 1,5 mm (0,059 pollici). Allontanati troppo da queste dimensioni e i tuoi interruttori potrebbero non essere più montati correttamente.

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

Assicurati di montare gli interruttori nel modo corretto. La parte superiore ha le parole 'CHERRY' e la parte inferiore ha una piccola tacca. Inserisci un LED da 3 mm in questo piccolo slot:

Potresti scoprire che i LED hanno un aspetto migliore se montati 'capovolti'. Questo è stato il caso dei keycap che ho usato e non ha alcun impatto sugli interruttori.

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.

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

Il circuito

Questo circuito è costruito su stripboard. Questo è eccellente per la costruzione di circuiti semipermanenti, senza il costo di un circuito di stampa (PCB). È semplicemente un pezzo di fibra di vetro con binari di 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 da trapano.

Non sei troppo sicuro di saldare? Dai prima un'occhiata a questi semplici progetti.

Ecco il layout della stripboard (esclude i lead finali):

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

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

Questo dovrebbe adattarsi perfettamente alla parte inferiore del case:

Assicurati che i binari siano in verticale.

Collegare l'anodo ( gamba lunga, positivo ) del LED alla resistenza da 200 ohm e poi a +5 V. Collegare il Catodo ( gamba corta, negativo ) a terra. Coprire le gambe con una guaina termoretraibile e poi spingere nel supporto LED. Non è necessaria alcuna colla, tuttavia il supporto LED potrebbe non essere a pressione, quindi potrebbe essere necessario adattare queste istruzioni.

Potresti invece voler utilizzare un LED bicolore qui: questo ti consentirà di impostare due o più banchi di interruttori, con un LED di stato di colore diverso per ogni banco.

Ora è il momento di saldare tutti i LED per i copritasti. Questi sono usati esclusivamente per far brillare i tasti, quindi puoi saltarli se lo desideri, e non devono essere collegati a un pin digitale, solo all'alimentazione. Collega tutti gli anodi insieme e tutti i catodi insieme. Impara dal mio errore: è molto più facile farlo prima di cablare gli interruttori! Collegare gli anodi a +5 V tramite un resistore da 220 ohm e i catodi a massa. Questi LED sono collegati in parallelo. Ecco il circuito solo per questi LED:

Usa un piccolo pezzo di tubo termoretraibile per coprire la connessione tra i LED e l'Arduino:

Accendi Arduino per testare il funzionamento di tutti i LED. Non è necessario caricare alcun codice. Se qualche LED non funziona, vai a ricontrollare il cablaggio.

Ora cablate gli interruttori. Questi devono essere collegati tramite un resistore da 10k, altrimenti l'Arduino morirà. Questo si chiama dead 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 quindi non devi farlo tu). 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 a saldare gli interruttori Cherry MX, possono essere un po 'fragili, ho avuto diversi pin rotti su di me. Potresti voler saldarli direttamente a qualche altro stripboard, tuttavia i cavi finali sono ancora adatti.

Questo è tutto per il cablaggio. Potresti voler montare una presa femmina USB di tipo B, tuttavia i piccoli pin su di essi possono spesso essere piuttosto 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 sui diversi tipi di USB, assicurati di capire le differenze .

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

Il codice

Ora prova che il circuito è corretto. È una buona idea farlo prima di procedere, così puoi risolvere eventuali problemi ora finché puoi. Carica questo codice di prova (non dimenticare di selezionare la scheda e la porta corrette da Utensili > Tavola e Utensili > Porta menù):

const int buttons[] = {2,3,4,5,6,7,8,9,10}; // array of all button pins
void setup() {
// put your setup code here, to run once:
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() {
// put your main code here, to run repeatedly:
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 per uno, premi ciascun pulsante. Dovresti vedere il monitor seriale mostrare il numero del pulsante che hai premuto. Proprio come con il LED, se il tuo computer si lamenta di assorbire troppa corrente, o i LED si spengono quando premi un pulsante, disconnettiti immediatamente! Hai un cortocircuito da qualche parte nel circuito, ricontrolla che il circuito sia corretto e che non ci siano cortocircuiti tra le connessioni.

Se tutto funziona, vai avanti e metti il ​​circuito nella scatola. Potresti voler usare una piccola quantità di colla per tenere il circuito in posizione (anche se i fili hanno tenuto bene il mio). Avvita anche il coperchio.

Far sembrare Arduino una tastiera è molto semplice. Se stai usando un Nano o UNO, riprogrammarai il tuo Arduino usando Aggiornamento del firmware del dispositivo (DFU). Questo viene solitamente utilizzato per eseguire il flashing del nuovo firmware su Arduino. Lo userai per eseguire il flashing di Arduino con un nuovo firmware che lo farà funzionare come una tastiera. Questo non sarà trattato qui, in quanto è un compito piuttosto complesso. Il Sito web 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!

Per prima cosa, imposta le chiavi:

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

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

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

Ora inizializza tutti i pin come input:

void setup() {
// put your setup code here, to run once:
Keyboard.begin(); // setup keyboard
for (int i = 2; i <11; ++i) {
// initilize pins
pinMode(i, INPUT);
}
}

Questo dice ad Arduino che tutti i pin nell'array sono input. Per fare ciò viene utilizzato un ciclo, quindi piuttosto che scrivere pinMode(2, INGRESSO) nove volte, devi scriverlo solo una volta. Anche questo chiama Tastiera.inizio . Questo imposta una funzione integrata nella libreria Arduino, progettata specificamente per emulare una tastiera.

Crea un metodo chiamato readButton :

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

Questo richiede uno spillo e controlla se è stato premuto o meno. Semplicemente ritorna VERO o FALSO . Contiene anche alcuni software antirimbalzo -- un semplice ritardo e poi ricontrollare l'interruttore assicura che il pulsante sia stato davvero premuto.

Ora viene chiamato un altro ciclo for inside ciclo vuoto() :

void loop() {
// put your main code here, to run repeatedly:
for (int i = 2; i <11; ++i) {
// check buttons
if(readButton(i)) {
doAction(i);
}
}
}

Di nuovo, questo va su ogni elemento dell'array e controlla se è stato premuto. Lo fa da chiamato the readButton metodo creato in precedenza. Se è stato premuto un pulsante, passa quel numero di pin a un altro metodo chiamato fai azione :

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;
}
}

Questo controlla il numero di pin usando a interruttore dichiarazione. Dichiarazioni Switch (a volte chiamate scatola dell'interruttore ) sono simili a an Se istruzione, tuttavia sono utili per verificare che una cosa (in questo caso il numero di pin) sia uguale a uno dei diversi risultati. In sostanza, sono molto più veloci da calcolare.

I componenti principali si trovano all'interno di questa istruzione switch. Keyboard.println scrive il testo sul computer come se avessi digitato fisicamente ogni tasto. Tastiera.premere preme e tiene premuto un tasto. Non dimenticare di rilasciarli usando Keyboard.releaseAll dopo un breve ritardo!

dispositivo USB sconosciuto (richiesta del descrittore del dispositivo non riuscita) Windows 10

Ecco il codice completo:

int keys[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};
void setup() {
// put your setup code here, to run once:
Keyboard.begin(); // setup keyboard
for (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 alfabetici, Arduino può premere la maggior parte dei tasti speciali chiamati Modificatori della tastiera . Questi sono particolarmente utili per premere le scorciatoie da tastiera. Il sito web di Arduino ha un elenco utile .

Ora non resta che creare alcune scorciatoie. Puoi mapparlo a scorciatoie esistenti, come Tutto quanto + F4 (chiudi il programma in Windows) o cmd + Q (chiudi il programma macOS). In alternativa, assicurati di leggere il nostro guida definitiva alle scorciatoie da tastiera , come creare collegamenti di Windows e tutte le scorciatoie Chromebook per iniziare a creare le tue scorciatoie.

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

Ci auguriamo che gli articoli che consigliamo e discutiamo vi piacciano! MUO ha partnership affiliate e sponsorizzate, quindi riceviamo una quota delle entrate da alcuni dei tuoi acquisti. Ciò non influirà sul prezzo da pagare e ci aiuta a offrire i migliori consigli sui prodotti.

Condividere Condividere Tweet E-mail Ecco perché l'FBI ha emesso un avviso per il ransomware Hive

L'FBI ha emesso un avvertimento su un ceppo di ransomware particolarmente dannoso. Ecco perché devi prestare particolare attenzione al ransomware Hive.

Leggi Avanti
Argomenti correlati
  • Fai da te
  • Tastiera del computer
  • Tasti rapidi
  • Arduino
Circa l'autore Joe Coburn(136 articoli pubblicati)

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

Altro da Joe Coburn

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti