Creați-vă propriile butoane de comandă rapidă personalizate cu un Arduino

Creați-vă propriile butoane de comandă rapidă personalizate cu un Arduino

Umilul Arduino poate face multe lucruri, dar știați că poate emula o tastatură USB? Puteți combina acele comenzi rapide de la tastatură dificil de reținut într-o singură tastă de comandă rapidă personalizată, cu acest circuit simplu. Iată rezultatul final:





Nu ați mai folosit un Arduino? Verificați-ne Ghidul începătorului primul.





De ce ai nevoie

Iată de ce aveți nevoie pentru a face acest proiect:





  • 1 x Arduino Pro Micro.
  • Butoane momentane sau butoane de tastatură.
  • Rezistențe de 10K ohm.
  • Firuri de conectare asortate.
  • Rezistențe 1 x 220 ohm.
  • 1 x 5 mm (0,197 țoli) LED.
  • 1 x suport LED de 5 mm.

Veți avea nevoie de un Arduino foarte specific pentru acest proiect. Folosesc un Pro Micro , deoarece sunt atât de mici și ieftine, aveți nevoie de un Arduino care să aibă USB-Serial încorporat în procesor (Atmega32u4). Este posibil să construiți acest proiect cu alte Arduino, cum ar fi UNO sau Nano, cu toate acestea este nevoie de multă muncă grea pentru a relansa bios-ul și a lăsa să lucreze. Clonele altor modele Arduino nu funcționează deloc, dar o clonă Pro Micro este de asemenea bună.

Placă modul OSOYOO Pro Micro ATmega32U4 5V / 16MHz cu antet cu 2 rânduri Înlocuiește cu ATmega328 Pro Mini pentru Arduino CUMPĂRĂ ACUM PE AMAZON

Veți avea nevoie de un buton momentan, un rezistor de 10K ohm și un fir de conectare adecvat pentru fiecare buton pe care doriți să îl utilizați. Cu toate acestea, folosesc comutatoare mecanice Cherry MX de la tastatură pentru butoanele de comandă rapidă orice comutatorul va funcționa, cu condiția să fie momentan și să nu se blocheze.



Este posibil să aveți nevoie de alte câteva elemente, în funcție de modul în care creați acest lucru. Dacă doriți să îl prototipați, veți avea nevoie de un panou fără sudură . Merită să cheltuiți banii pe unul bun - uneori pot fi foarte fiabili. Dacă doriți să boxați acest lucru, veți dori să achiziționați niște panouri.

Construiți planul

Iată cum va funcționa acest lucru. Arduino va fi programat să acționeze ca o tastatură USB - în ceea ce privește computerul, este. Mai multe butoane conectate la Arduino vor trimite comenzi cheie către computer. Veți apăsa un singur buton, dar computerul dvs. va crede că ați apăsat Tot > F4 , de exemplu.





Selectarea unui comutator

Există mai multe variante ale comutatoarelor din seria MX. Acest site web oferă o introducere excelentă, cu toate acestea, în esență, acestea se reduc la zgomot și presiune. Unele modele necesită mai multă forță pentru apăsare, iar unele modele emit un „clic” mecanic atunci când sunt apăsate. Am folosit Cherry MX Browns, care nu fac zgomot la apăsare. Toate au aceleași dimensiuni, așa că alegeți orice model doriți (sau combinați și combinați) fără griji.

De asemenea, va trebui să achiziționați câteva capace cheie, desigur, și există o lume a modele personalizate acolo de unde alege - am cumpărat de la KeyboardCo din Marea Britanie





Cazul

Am imprimat 3D acest caz și îl puteți descărca .STL fișiere din Thingiverse . Nu vă faceți griji dacă nu dețineți o imprimantă 3D, puteți construi în continuare aceasta. Multe site-uri web oferă servicii de imprimare 3D, cum ar fi Huburi 3D sau Shapeways . Alternativ, acesta este un caz foarte simplu, ți-ai putea crea propriul din plastic, perspex, lemn sau chiar din carton. Dacă doriți să fiți foarte economisiți, Cherry MX vinde un tester de comutare / set de probe activat Amazon ( Regatul Unit ). Veți avea nevoie de 4 șuruburi M5 x 35mm și 4 piulițe M5. Desigur, le puteți înlocui cu o alternativă adecvată pe care o aveți.

Tastatură maximă pentru tastatură, comutator Cherry MX, kit de testare (kit de testare cu 9 comutatoare Pro Sampler) CUMPĂRĂ ACUM PE AMAZON

Dacă vă confecționați propriul caz, trebuie să știți un detaliu important: comutatoarele Cherry MX sunt fixabile în orificiile lor de montare. Acestea necesită un orificiu de montare pătrat de 14 x 14 mm (0,551 inch), placa nefiind mai groasă de 1,5 mm (0,059 inch). Rămâneți prea departe de aceste dimensiuni și este posibil ca întrerupătoarele dvs. să nu se mai monteze corect.

Carcasa imprimată 3D este formată din două părți, de sus și de jos. Împingeți comutatoarele Cherry MX în găurile pătrate:

Asigurați-vă că montați întrerupătoarele corect. În partea de sus are cuvintele „CHERRY”, iar partea de jos are un pic de crestătură. Introduceți un LED de 3 mm în acest mic slot:

S-ar putea să descoperiți că LED-urile arată cel mai bine montate „cu susul în jos”. Acesta a fost cazul tastelor pe care le-am folosit și nu afectează deloc comutatoarele.

Acum ar trebui să aveți nouă comutatoare cu 9 LED-uri. Nu este nevoie să lipiți niciuna dintre aceste piese. Lipirea va ține LED-urile, iar fricția va ține comutatoarele.

Apoi, înșurubați suportul pentru LED (lăsați LED-ul îndepărtat pentru moment). Veți termina asamblarea carcasei mai târziu, odată ce circuitul este construit.

Circuitul

Acest circuit este construit pe panouri. Acest lucru este excelent pentru construirea circuitelor semipermanente, fără costul unei plăci de circuite de imprimare (PCB). Este pur și simplu o bucată de fibră de sticlă cu șenile de cupru paralel într-o singură direcție. Aceste piese pot fi lipite și tăiate. Tăierea unei piste se poate face cu un instrument special sau un burghiu mic.

Nu sunteți prea încrezători în lipire? Aruncați o privire mai întâi la aceste proiecte simple.

Iată aspectul panoului (exclude cablurile finale):

Asigurați-vă că ați tăiat urmele sub rezistențe și Arduino. Deoarece poate fi foarte dificil să citiți un circuit de panouri, iată o versiune de panou de testare:

Este o potrivire strânsă pentru a strânge toate componentele într-un spațiu atât de mic. Tăiați colțurile plăcii dvs. după cum urmează:

Aceasta ar trebui să se potrivească perfect în partea inferioară a carcasei:

Asigurați-vă că pistele rulează vertical.

Conectați anodul ( picior lung, pozitiv ) a LED-ului la rezistorul de 200 ohmi și apoi la +5 V. Conectați catodul ( picior scurt, negativ ) la pamant. Acoperiți picioarele cu mâneci termocontractabile și apoi împingeți în suportul LED. Nu este nevoie de niciun adeziv, totuși suportul pentru LED-uri poate să nu fie push-fit, deci este posibil să trebuiască să adaptați aceste instrucțiuni.

Este posibil să doriți să utilizați un LED bi-color aici - acest lucru vă va permite să configurați două sau mai multe bancuri de comutatoare, cu un LED de stare diferit colorat pentru fiecare bancă.

Acum este timpul să lipiți toate LED-urile pentru tastele. Acestea sunt folosite exclusiv pentru ca tastele să lumineze, astfel încât să le puteți sări dacă doriți și nu trebuie să fie conectate la un pin digital, ci doar la alimentare. Conectați toți anodii împreună și toți catodii împreună. Aflați din greșeala mea - este mult mai ușor să faceți acest lucru înainte de a conecta întrerupătoarele! Conectați anodii la +5 V printr-un rezistor de 220 ohmi, iar catodii la masă. Aceste LED-uri sunt cablate în paralel. Iată circuitul doar pentru aceste LED-uri:

Utilizați o bucată mică de tub termocontractabil pentru a acoperi conexiunea dintre LED-uri și Arduino:

Porniți Arduino pentru a testa toate LED-urile. Nu este nevoie să încărcați niciun cod. Dacă LED-urile nu funcționează, mergeți și verificați-vă cablarea.

Acum conectați întrerupătoarele. Acestea trebuie conectate printr-un rezistor de 10k, altfel Arduino va muri. Acest lucru se numește scurt-mort - +5 V merge direct în sol și tot ceea ce rămâne din Arduino va fi o pufă de fum (credeți-mă, am ucis deja unul, astfel încât să nu trebuie). Iată circuitul pentru un singur comutator:

Acest circuit este același pentru toate cele nouă comutatoare. Conectați comutatoarele la pinii digitali de la doi la zece, fiecare cu propriul rezistor de 10K la masă. Aveți grijă să comutați comutatoarele Cherry MX, acestea pot fi puțin fragile, am avut mai mulți ace de rupere pe mine. Poate doriți să le lipiți direct pe niște plăci de bandă, cu toate acestea, cablurile de urmărire sunt încă potrivite.

Asta este pentru cablare. Poate doriți să montați o priză USB de tip femelă B, cu toate acestea pinii mici de pe aceștia pot fi adesea destul de greu de lipit. Dacă nu doriți să faceți acest lucru, nu vă faceți griji. Conectorul Micro USB de pe Arduino se potrivește perfect orificiului șasiului. Dacă sunteți un pic confuz cu privire la diferitele tipuri de USB, asigurați-vă că intelege diferentele .

În cele din urmă, verificați dacă circuitul dvs. este corect. Un scurtcircuit poate distruge cu ușurință un Arduino și poate fi ușor de realizat folosind panouri.

Codul

Acum testați circuitul corect. Este o idee bună să faceți acest lucru înainte de a continua, astfel încât să puteți rezolva orice probleme acum cât puteți. Încărcați acest cod de test (nu uitați să selectați placa și portul corecte din Instrumente > Bord și Instrumente > Port meniuri):

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

Poate fi necesar să schimbați pinii dacă ați modificat circuitul.

Odată încărcat, deschideți monitorul serial ( sus în dreapta > Monitor serial ). Rând pe rând, apăsați fiecare buton. Ar trebui să vedeți monitorul serial afișând numărul butonului pe care l-ați apăsat. La fel ca în cazul LED-urilor, dacă computerul dvs. se plânge că trage prea mult curent sau LED-urile se sting când apăsați un buton, deconectați-vă imediat! Aveți un scurtcircuit undeva în circuit, verificați dublu dacă circuitul este corect și nu există scurtcircuituri între conexiuni.

Dacă totul funcționează, mergeți mai departe și puneți circuitul în cutie. Poate doriți să utilizați un pic de adeziv pentru a menține circuitul la locul său (deși firele au ținut-o bine pe a mea). Înșurubați și capacul.

Este foarte simplu să faci Arduino să pară o tastatură. Dacă utilizați un Nano sau UNO, veți reprograma Arduino folosind Actualizare firmware dispozitiv (DFU). Acesta este de obicei folosit pentru a conecta un firmware nou la Arduino. O veți folosi pentru a bloca Arduino cu un nou firmware care îl va face să funcționeze ca o tastatură. Acest lucru nu va fi acoperit aici, deoarece este o sarcină destul de complexă. The Site-ul Arduino are un tutorial bun pentru asta.

Arduino Pro Micro face acest pas foarte ușor. Logica necesară pentru a emula o tastatură USB este deja integrată în procesor, deci este la fel de simplă ca și scrierea unui cod!

Mai întâi, configurați tastele:

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

Aceasta este o matrice care conține toți pinii la care sunt conectate butoanele. Dacă ați folosit mai multe sau mai puține butoane sau ați folosit pini diferiți, modificați valorile aici.

O matrice este o colecție de lucruri asemănătoare. Calculatoarele vă pot optimiza codul pentru a le accesa rapid și accelerează procesul de scriere a codului.

Acum inițializați toți pinii ca intrări:

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

Acest lucru spune Arduino că toți pinii din matrice sunt intrări. O buclă este utilizată pentru a face acest lucru, deci mai degrabă decât să scrieți pinMode (2, INPUT) de nouă ori, trebuie să o scrieți o singură dată. Aceasta apelează, de asemenea Keyboard.begin . Aceasta configurează o funcție încorporată în biblioteca Arduino, concepută special pentru emularea unei tastaturi.

Creați o metodă numită readButton :

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

Aceasta necesită un știft și verifică dacă a fost apăsat sau nu. Pur și simplu revine ADEVĂRAT sau FALS . De asemenea, conține unele debouncing software - o simplă întârziere și apoi verificarea din nou a comutatorului asigură faptul că butonul a fost într-adevăr apăsat.

Acum se numește altă buclă pentru interior bucla nulă () :

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

Din nou, acest lucru trece peste fiecare element din matrice și verifică dacă a fost apăsat. Face acest lucru numit readButton metoda pe care ați creat-o mai devreme. Dacă a fost apăsat un buton, acesta trece numărul PIN-ului către o altă metodă numită doAction :

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

Aceasta verifică numărul pinului folosind un intrerupator afirmație. Instrucțiuni de comutare (uneori numite comutator caz ) sunt similare cu un dacă afirmație, totuși, acestea sunt utile pentru a verifica dacă un lucru (în acest caz, numărul PIN) este egal cu unul dintre rezultatele diferite. În esență, acestea sunt mult mai rapide de calculat.

Componentele principale se află în această instrucțiune de comutare. Keyboard.println scrie text pe computer ca și când ai fi tastat fizic fiecare tastă. Keyboard.press apasă și ține apăsată o tastă. Nu uitați să le eliberați folosind Keyboard.releaseAll după o scurtă întârziere!

care este parola mea wifi Android

Iată codul complet:

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

Pe lângă toate tastele numerice și litere, Arduino poate apăsa majoritatea tastelor speciale numite Modificatori de tastatură . Acestea sunt utile în special pentru apăsarea comenzilor rapide de la tastatură. Site-ul Arduino are un lista de ajutor .

Acum nu mai rămâne decât să creezi câteva comenzi rapide. Puteți asocia acest lucru cu comenzile rapide existente, cum ar fi Tot + F4 (închideți programul în Windows) sau Cmd + Î (renunțați la programul macOS). Ca alternativă, asigurați-vă că ne-ați citit ghid de comenzi rapide de la tastatură , cum se creează comenzile rapide Windows și fiecare comandă rapidă Chromebook pentru a începe să creați propriile comenzi rapide.

Ați creat propria casetă de comenzi rapide? Anunță-mă în comentarii, mi-ar plăcea să văd câteva poze!

Sperăm să vă placă articolele pe care le recomandăm și le discutăm! MUO are parteneriate afiliate și sponsorizate, așa că primim o parte din venituri din unele dintre achizițiile dvs. Acest lucru nu va afecta prețul pe care îl plătiți și ne ajută să oferim cele mai bune recomandări de produse.

Acțiune Acțiune Tweet E-mail Iată de ce FBI a emis un avertisment pentru Hive Ransomware

FBI a emis un avertisment cu privire la o tulpină deosebit de urâtă de ransomware. Iată de ce trebuie să fiți deosebit de atenți la ransomware-ul Hive.

Citiți în continuare
Subiecte asemănătoare
  • DIY
  • Tastatură
  • Comenzi rapide de la tastatură
  • Arduino
Despre autor Joe Coburn(136 articole publicate)

Joe este absolvent de Informatică de la Universitatea Lincoln, Marea Britanie. Este un dezvoltator de software profesionist și, atunci când nu zboară cu drone sau nu scrie muzică, poate fi găsit adesea făcând fotografii sau producând videoclipuri.

Mai multe de la Joe Coburn

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona
Categorie Diy