Faceți-vă propriile butoane de comandă rapidă cu un arduino

Faceți-vă propriile butoane de comandă rapidă cu un arduino / DIY

Arduino umil poate face multe lucruri, dar știți că poate emula o tastatură USB? Puteți combina comenzile rapide de tastatură dificil de memorat într-o singură cheie de comandă rapidă personalizată, cu acest circuit simplu. Iată rezultatul final:

Nu ai folosit niciodată un Arduino? Consultați ghidul nostru de început Început cu Arduino: Ghidul începătorului Introducere cu Arduino: Un ghid pentru începători Arduino este o platformă de prototipuri electronice cu sursă deschisă bazată pe hardware și software flexibile și ușor de utilizat. Este destinat artiștilor, designerilor, pasionaților și tuturor celor interesați să creeze obiecte sau medii interactive. Mai întâi citiți mai multe.

De ce ai nevoie


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

  • 1 x Arduino Pro Micro.
  • Butoane momentan sau butoane de tastatură.
  • Rezistoare de 10K ohm.
  • Fire asortate.
  • Rezistențe 1 x 220 ohmi.
  • LED-uri de 1 x 5 mm (0,197 țoli).
  • Suport LED cu 1 x 5 mm.

Veți avea nevoie de un Arduino foarte specific pentru acest proiect. Folosesc un Pro Micro, deoarece acestea sunt atât de mici și ieftine, aveți nevoie de un Arduino care are USB-serial încorporat în procesor (Atmega32u4). Este posibil să construiți acest proiect împreună cu alte arduine, cum ar fi UNO sau Nano, însă este nevoie de mult efort pentru a relua bios-ul și pentru a face lucrurile să funcționeze. Clonele altor modele Arduino nu funcționează deloc, dar o clonă Pro Micro este, de asemenea, bine.

OSOYOO Pro Micro ATmega32U4 Placă de module 5V / 16MHz cu 2 colțuri pentru arduino Leonardo înlocuiește ATmega328 Pro Mini OSOYOO Pro Micro ATmega32U4 Placă modul 5V / 16MHz cu 2 coloane Perete pentru arduino Leonardo Replace ATmega328 Pro Mini Cumpara acum la Amazon $ 8.99

Veți avea nevoie de un buton instantaneu, un rezistor de 10K ohm și de un fir de legătură adecvat pentru fiecare buton pe care doriți să îl utilizați. Folosesc switch-uri de tastatură mecanică Cherry MX pentru butoanele de comenzi rapide, deși orice comutatorul va face, cu condiția să fie momentan și să nu blocheze.

Este posibil să aveți nevoie de alte câteva elemente, în funcție de modul în care construiți acest lucru. Dacă doriți să îl prototipați, veți avea nevoie de un panou de lipit fără sudură. Merită să cheltuiți banii pe unul bun - uneori pot fi foarte nesigure. Dacă doriți să faceți acest lucru, veți dori să cumpărați niște table.

Construiți un plan

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

Selectarea unui comutator

Există mai multe variante ale comutatoarelor din seria MX. Acest site oferă o introducere excelentă, cu toate acestea, în esență, coboară la zgomot și presiune. Unele modele necesită mai multă presiune, iar unele modele fac un mecanism “clic” sunet când este apăsat. Am folosit Cherry MX Browns, care nu fac zgomot când este presat. Ele sunt toate aceleași dimensiuni, deci alegeți orice model doriți (sau amestecați și potriviți) fără griji.

Va trebui, de asemenea, să achiziționați câteva capace cheie, desigur, și există o lume a modelelor personalizate pe care să le alegeți - am achiziționat de la KeyboardCo în U.K.

Cazul

Am imprimat 3D acest caz și 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 acest lucru. Multe site-uri web oferă servicii de imprimare 3D, cum ar fi Hub-uri 3D sau Shapeways. În mod alternativ, acesta este un caz foarte simplu, ai putea să-ți faci din plastic din lemn, din plastic, din lemn, sau chiar din carton. Dacă doriți să fiți într-adevăr sănătos, Cherry MX vinde un tester de comutatoare / sampler set pe Amazon (Marea Britanie). Veți avea nevoie de 4 șuruburi M5 x 35 mm și 4 piulițe M5. Puteți, desigur, să le înlocuiți pentru o alternativă potrivită pe care o aveți.

Max Keyboard Keycap, Switch Cherry MX, Trusa de testare pentru sondă O-Ring Pro Tastatură Max Keyboard, Switch Cherry MX, Set de testare O-Ring Pro Sampler Cumpara acum la Amazon

Dacă faceți propriul dvs. caz, există un detaliu important pe care trebuie să-l cunoașteți: întrerupătoarele Cherry MX sunt o împingere în găurile lor de montare. Acestea necesită un orificiu de montare pătrat de 14 x 14 mm (0,551 inci), placa fiind mai mică decât 1,5 mm (0,059 inch). Păstrați prea mult de la aceste dimensiuni și comutatoarele dvs. nu mai pot monta corect.


Carcasa tipărită 3D are două părți, partea superioară și cea inferioară. Împingeți comutatoarele Cherry MX în găurile pătrate:

Asigurați-vă că montați întrerupătoarele în mod corect. În partea de sus au cuvintele “CIREAȘĂ” pe, și partea de jos are o mică crestătură. Introduceți un LED de 3 mm în acest slot mic:

Este posibil ca LED-urile să fie montate cel mai bine “Cu susul în jos”. Acesta a fost cazul pentru keycaps-urile pe care le-am folosit și nu are niciun impact asupra comutatoarelor.

Ar trebui să aveți acum nouă comutatoare cu 9 LED-uri. Nu este nevoie să lipiți niciuna dintre aceste părți. Soldul va păstra LED-urile, iar frecarea va menține comutatoarele.

Apoi, înșurubați suportul LED (lăsați acum LED-ul eliminat). Veți încheia asamblarea cazului mai târziu, odată ce circuitul este construit.

Circuitul

Acest circuit este construit pe riglă. Acest lucru este excelent pentru construirea circuitelor semi-permanente, fără costul plăcii de circuite imprimate (PCB). Este pur și simplu o bucată de fibră de sticlă cu piese de cupru care rulează paralel într-o direcție. Aceste piese pot fi lipite și tăiate. Tăierea unei piste poate fi făcută cu un instrument special sau cu un burghiu mic.

Nu prea încrezător la lipire? Aruncați o privire la aceste proiecte simple Aflați cum să lipiți, cu aceste sfaturi simple și proiecte Aflați cum să lipiți, cu aceste sfaturi simple și proiecte Sunteți puțin intimidat de gândul unui fier fierbinte și metal topit? Dacă doriți să începeți lucrul cu electronica, va trebui să învățați să lipiți. Să ne ajute. Mai întâi citiți mai multe.

Iată structura de tip stripboard (care exclude conductele posterioare):

Asigurați-vă că tăiați urme sub rezistențe și Arduino. Deoarece poate fi foarte dificil să citești un circuit cu stripboard, iată o versiune de breadboard:

Este potrivit să strângeți toate componentele într-un spațiu atât de mic. Tăiați colțurile stripului dvs. după cum urmează:

Acest lucru ar trebui să se potrivească perfect în partea de jos a cazului:

Asigurați-vă că pista rulează pe 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 nici un lipici, totuși suportul LED-ului dvs. poate să nu fie o împingere, deci este posibil să aveți nevoie să adaptați aceste instrucțiuni.

Poate doriți să folosiți un LED bi-color aici - aceasta vă va permite să configurați două sau mai multe bănci de comutatoare, cu un LED de stare diferit colorat pentru fiecare bancă.

Acum este momentul să lipiți toate LED-urile pentru carcasele de taste. Acestea sunt folosite numai pentru a face cheile stralucite, astfel încât să le puteți sări peste ele dacă doriți și nu trebuie să fie conectate la un pin digital, doar la putere. Conectați toți anodii împreună și toți catodii împreună. Aflați de la greșeala mea - este mult mai ușor să faceți acest lucru înainte de cablarea comutatoarelor! Conectați anodurile la +5 V, deși o rezistență de 220 ohmi și catodii la masă. Aceste LED-uri sunt cablate în paralel. Iată circuitul doar pentru aceste LED-uri:

Utilizați o bucată mică de tuburi termocontractabile pentru a acoperi legătura dintre LED-uri și Arduino:

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

Acum trageți comutatoarele. Acestea trebuie conectate printr-o rezistență de 10k, altfel Arduino va muri. Acest lucru se numește un scurt mort - +5 V merge direct în pământ, și tot ce rămâne din Arduino dvs. va fi un puf de fum (încredere în mine, am omorât-o deja, așa că nu trebuie să). Iată circuitul pentru un singur switch:

Acest circuit este identic pentru toate cele nouă comutatoare. Conectați întrerupătoarele la pinii digitali de la doi până la zece, fiecare având propriul rezistor 10K la masă. Aveți grijă să lipiți întrerupătoarele Cherry MX, ele pot fi puțin fragile, mi-am rupt mai mulți pini. S-ar putea să doriți să le lipiți direct pe un alt stripboard, cu toate că conductele posterioare sunt încă potrivite.

Asta e pentru cablare. Poate doriți să montați o priză de tip USB de tip B, totuși acele mici pe ele pot fi 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 cu gaura din șasiu. Dacă sunteți puțin confuz în privința diferitelor tipuri de USB, asigurați-vă că ați înțeles diferențele Înțelegerea tipurilor de cablu USB și care dintre ele să utilizeze înțelesul tipurilor de cablu USB și care dintre ele să le utilizați De ce există atât de multe cabluri USB diferite? Aflați diferențele dintre tipurile de conectori USB și cum să cumpărați cel mai bun cablu. Citeste mai mult .

În cele din urmă, verificați dublu circuitul corect. Un scurt poate distruge cu ușurință un Arduino, și poate fi ușor de făcut folosind stripboard.

Codul

Acum, verificați dacă circuitul este corect. Este o idee bună să faceți acest lucru înainte de a continua, astfel încât să puteți rezolva orice problemă în timp ce puteți. Încărcați acest cod de test (nu uitați să selectați placa și portul corect din Unelte > Bord și Unelte > Port meniuri):

butoanele const int [] = 2,3,4,5,6,7,8,9,10; // array de toate butoanele void setup void () // pune codul de instalare aici, pentru a rula o singură dată: 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 () // pune codul principal aici, pentru a rula în mod repetat: pentru (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 știfturile dacă ați modificat circuitul.

Odată încărcat, deschideți monitorul serial (sus în dreapta > Monitor serial). Unu câte unul, 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, în cazul în care computerul se plânge că a atras prea mult curent sau LED-urile se sting când apăsați un buton, deconectați imediat! Aveți un scurt undeva în circuit, verificați dacă circuitul este corect și nu există pantaloni scurți între conexiuni.

Dacă totul funcționează, mergeți mai departe și puneți circuitul în cutie. Poate doriți să folosiți un șurub de lipici pentru a ține circuitul în loc (deși firele au ținut bine în mină). Înșurubați și capacul.

A face Arduino-ul să fie o tastatură este foarte simplu. Dacă utilizați un Nano sau UNO, veți re-programa folosind Arduino Actualizați firmware-ul dispozitivului (DFU). Acest lucru este folosit de obicei pentru a bloca noul firmware la Arduino. Veți folosi pentru a bloca Arduino cu un nou firmware care va face să funcționeze ca o tastatură. Acest lucru nu va fi acoperit aici, deoarece este o sarcină destul de complexă. Site-ul Arduino are un tutorial bun pentru acest lucru.

Arduino Pro Micro face acest pas foarte usor. Logica necesară pentru a emula o tastatură USB este deja încorporată în procesor, deci este la fel de simplă precum scrierea unui cod!

Mai întâi, configurați tastele:

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

Aceasta este o matrice care conține toate pinii pe care sunt conectați butoanele. Dacă ați folosit mai mult sau mai puțin butoane sau ați folosit diferite pini, schimbați valorile de aici.

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

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

void setup () // pune codul de instalare aici, pentru a rula o dată: Keyboard.begin (); // tastatura de configurare pentru (int i = 2; i < 11; ++i)  // initilize pins pinMode(i, INPUT);  

Acest lucru îi spune lui Arduino că toți pinii din matrice sunt intrări. O buclă este folosită pentru a face acest lucru, deci nu pentru a scrie pinMode (2, INPUT) de nouă ori, trebuie doar să o scrieți o singură dată. Acest lucru solicită, de asemenea Keyboard.begin. Aceasta stabilește o funcție construită în biblioteca Arduino, concepută special pentru emularea unei tastaturi.

Creați o metodă numită readButton:

boolean readButton (int pin) // verificați și deblocați butoanele dacă (digitalRead (pin) == HIGH) întârziere (10); dacă (digitalRead (pin) == HIGH) return true;  return false; 

Acest lucru ia un pin și verifică dacă a fost apăsat sau nu. Pur și simplu se întoarce ADEVĂRAT sau FALS. De asemenea, conține și unele dezabonarea software-ului - o întârziere simplă și apoi re-verificarea comutatorului asigură faptul că butonul a fost într-adevăr apăsat.

Acum, o altă bucla este numită în interior buclă voidă ():

void loop () // pune codul principal aici, pentru a rula în mod repetat: pentru (int i = 2; i < 11; ++i)  // check buttons if(readButton(i))  doAction(i);   

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

void doAction (int pin) // executa comutator de sarcini (pin) caz 2: Keyboard.println ("drive.google.com"); pauză; cazul 3: Keyboard.println ("makeuseof.com"); pauză; cazul 4: // CMD + T (fila nouă, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ( 't'); întârziere (100); Keyboard.releaseAll (); pauză; cazul 5: // sarcina ta aici se rupe; cazul 6: // sarcina ta aici se rupe; cazul 7: // sarcina ta aici se rupe; cazul 8: // sarcina ta aici se rupe; cazul 9: // sarcina ta aici se rupe; 

Aceasta verifică numărul PIN-ului folosind a intrerupator afirmație. Comutați întreruperi (uneori numite comutator) sunt similare cu un dacă , dar sunt utile pentru a verifica dacă un singur lucru (în acest caz numărul PIN) este egal cu unul din mai multe rezultate diferite. În esență, ele sunt mult mai rapide pentru a calcula.

Componentele principale se află în interiorul acestei instrucțiuni de comutare. Keyboard.println scrie textul pe computer ca și cum ați tastat fizic fiecare cheie. Keyboard.press apasă și ține o cheie. Nu uitați să le eliberați folosind Keyboard.releaseAll după o scurtă întârziere!

Iată codul complet:

tastele int [] = 2, 3, 4, 5, 6, 7, 8, 9, 10; void setup () // pune codul de instalare aici, pentru a rula o dată: Keyboard.begin (); // tastatura de configurare pentru (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;  

În plus față de toate tastele numerice și litere, Arduino poate apăsa majoritatea tastelor speciale numite Modificatoare de tastatură. Acestea sunt utile în special pentru apăsarea comenzilor rapide de la tastatură. Site-ul Arduino are o listă utilă.

Acum tot ce a mai rămas este să creezi niște comenzi rapide. Ați putea să faceți acest lucru la comenzile rapide existente, cum ar fi Alt + F4 (închideți programul în Windows) sau Cmd + Q (ieși din programul macOS). Alternativ, asigurați-vă că ați citit ultimul nostru ghid de comenzi rapide de la tastatură Comenzi rapide de la tastatură Windows 101: Ghidul final Comenzi rapide de la tastatură Windows 101: Ghidul final Comenzile rapide de la tastatură vă pot economisi ore întregi. Controlați comenzile rapide de la tastatură pentru Windows, trucuri de tastatură pentru programe specifice și câteva sfaturi pentru a vă grăbi munca. Citește mai multe despre cum se creează comenzi rapide Windows Cum se creează comenzi rapide de pe desktop-ul Windows Cum se creează comenzi rapide pentru desktop-uri Windows Calea simplă Comenzile rapide de pe desktop vă pot salva trecerea fără minte prin meniuri și foldere. Vă prezentăm modalități rapide și ușoare de a le crea. Citiți mai multe și toate comenzile rapide de la Chromebook Iată fiecare scurtătură de Chromebook pe care o veți avea vreodată nevoie Aici sunt toate comenzile rapide de pe Chromebook Veți avea nevoie vreodată Căutați o listă principală de comenzi rapide de la tastatură pentru Chromebook? Iată fiecare combinație de taste pe care o veți avea vreodată nevoie pentru sistemul de operare Chrome! Citiți mai multe pentru a începe să faceți propriile comenzi rapide.

Ați creat propria casetă de comenzi rapide? Anunță-mă în comentariile, mi-ar plăcea să văd niște poze!

Explorați mai multe despre: Arduino, tastatură, comenzi rapide de la tastatură.