Napravite vlastite gumbe za prečace pomoću Arduina

Napravite vlastite gumbe za prečace pomoću Arduina

Skromni Arduino može učiniti mnogo toga, ali jeste li znali da može oponašati USB tipkovnicu? Pomoću ovog jednostavnog sklopa možete spojiti te teško pamtljive dugačke prečace na jednoj tipki. Evo krajnjeg rezultata:





Nikada prije niste koristili Arduino? Pogledajte naše vodič za početak rada prvi.





Što trebaš

Evo što vam je potrebno za izradu ovog projekta:





  • 1 x Arduino Pro Micro.
  • Tipke za trenutak ili tipke na tipkovnici.
  • 10K ohmski otpornici.
  • Razne žice za spajanje.
  • 1 x 220 ohmski otpornici.
  • 1 x 5 mm (0,197 inča) LED.
  • 1 x 5 mm LED držač.

Za ovaj projekt trebat će vam vrlo specifičan Arduino. Ja koristim a Pro Micro , budući da su tako mali i jeftini, potreban vam je Arduino koji ima ugrađen USB-Serial u procesor (Atmega32u4). Moguće je izgraditi ovaj projekt s drugim Arduinima, poput UNO-a ili Nano-a, međutim zahtijeva puno napornog rada kako bi se bios ponovno osvijetlio i petljali kako bi stvari uspjele. Klonovi drugih Arduino modela obično uopće ne rade, ali klon Pro Micro je također u redu.

OSOYOO Pro Micro ATmega32U4 ploča s modulom od 5V/16MHz s 2 reda zaglavlja iglica Zamijenite s ATmega328 Pro Mini za Arduino KUPITE ODMAH NA AMAZONU

Trebat će vam jedan trenutni gumb, jedan otpornik od 10K ohma i odgovarajuća žica za spajanje za svaki gumb koji želite koristiti. Ja ipak koristim Cherry MX mehaničke prekidače na tipkovnici za stvarne tipke prečaca bilo koji prekidač će učiniti, pod uvjetom da je trenutačan i da se ne zatvara.



Možda će vam trebati nekoliko drugih stavki, ovisno o tome kako to izgradite. Ako ga želite prototipirati, trebat će vam ploča za lemljenje . Vrijedno je potrošiti novac na dobar - ponekad mogu biti vrlo nepouzdani. Ako želite ovo uokviriti, htjet ćete kupiti traku za šišanje.

Plan izgradnje

Evo kako će ovo funkcionirati. Arduino će biti programiran da djeluje kao USB tipkovnica - što se tiče vašeg računala, jest. Nekoliko gumba povezanih s Arduinom poslat će naredbe s ključem na vaše računalo. Pritisnuti ćete samo jedan gumb, ali vaše će računalo misliti da ste pritisnuli Sve > F4 , na primjer.





Odabir prekidača

Postoji nekoliko varijacija prekidača serije MX. Ova web stranica pruža izvrstan uvod, međutim oni se u osnovi svode na buku i pritisak. Neki modeli zahtijevaju veću silu pri pritisku, a neki proizvode mehanički zvuk 'klika' kada se pritisne. Koristio sam Cherry MX Browns, koji ne stvaraju buku pri pritisku. Sve su iste dimenzije, pa bez brige odaberite bilo koji model koji vam se sviđa (ili pomiješajte i uskladite).

Naravno, morat ćete kupiti i neke kape, a postoji čitav svijet prilagođeni dizajni vani za izabrati - mi smo kupili KeyboardCo u Velikoj Britaniji





Slučaj

Odštampao sam 3D kućište i možete ga preuzeti .STL datoteke iz Thingiverse . Ne brinite ako nemate 3D pisač, i dalje ga možete izgraditi. Mnoge web stranice pružaju usluge 3D ispisa, npr 3D čvorišta ili Shapeways . Alternativno, ovo je vrlo jednostavan slučaj, možete ga sami izraditi od plastike, stakla, drveta ili čak kartona. Ako želite biti doista štedljivi, Cherry MX prodaje tester/uzorkivač sklopki uključen Amazon ( UK ). Trebat će vam 4 vijka M5 x 35 mm i 4 matice M5. Naravno, možete ih zamijeniti odgovarajućom alternativom koju imate.

Max Keypad Keycap Keyboard, Cherry MX Switch, Tester Kit (9 prekidača Pro Sampler Tester Kit) KUPITE ODMAH NA AMAZONU

Ako izrađujete vlastiti kovčeg, postoji jedan važan detalj koji morate znati: Cherry MX sklopke uklapaju se u svoje rupe za pričvršćivanje. Potrebna im je kvadratna montažna rupa 14 x 14 mm (0,551 inča), s tim da ploča nije deblja od 1,5 mm (0,059 inča). Odmaknite se previše od ovih dimenzija i vaši se prekidači možda više neće pravilno montirati.

3D tiskana kutija sastoji se od dva dijela, gornjeg i donjeg. Gurnite prekidače Cherry MX u četvrtaste rupe:

Uključite prekidače na ispravan način. Na vrhu je napisano 'VISNJA', a na dnu ima mali zarez. Umetnite LED diodu od 3 mm u ovaj mali utor:

Možda ćete otkriti da LED diode izgledaju najbolje postavljene 'naopako'. To je bio slučaj s tipkama na tipkama koje sam koristio i uopće ne utječu na prekidače.

Sada biste trebali imati devet prekidača s 9 LED dioda. Nema potrebe za lijepljenjem bilo kojeg od ovih dijelova. Lemljenje će držati LED diode, a trenje će držati prekidače.

Zatim uvrnite LED nosač (ostavite LED za sada uklonjenom). Sklapanje kućišta završit ćete kasnije, nakon što sklop bude izgrađen.

Krug

Ovaj krug izgrađen je na stripboard -u. Ovo je izvrsno za izgradnju polutrajnih sklopova, bez troškova tiskane pločice (PCB). To je jednostavno komad stakloplastike s bakrenim tračnicama koje idu paralelno u jednom smjeru. Ove se gusjenice mogu lemiti, ali i rezati. Rezanje kolosijeka može se izvesti posebnim alatom ili malom bušilicom.

Niste previše sigurni u lemljenje? Prvo pogledajte ove jednostavne projekte.

Evo rasporeda trake (isključuje tragove na kraju):

Obavezno izrežite tragove ispod otpornika i Arduina. Budući da može biti vrlo teško pročitati sklop trake za trake, evo inačice za matičnu ploču:

Čvrsto se uvlači sve komponente u tako mali prostor. Izrežite kutove trake na sljedeći način:

Ovo bi trebalo uredno stati na dno kućišta:

Uvjerite se da tračnice idu okomito.

Spojite anodu ( duga noga, pozitivna ) LED na otpornik od 200 ohma, a zatim na +5 V. Spojite katodu ( kratka noga, negativna ) prizemljiti. Pokrijte noge termoskupljajućom navlakom, a zatim gurnite u LED držač. Nema potrebe za ljepilom, no vaš LED držač možda nije push-fit, pa ćete možda morati prilagoditi ove upute.

Ovdje biste umjesto toga trebali koristiti dvobojne LED diode-to će vam omogućiti postavljanje dvije ili više grupa prekidača, sa LED statusom različite boje za svaku banku.

Sada je vrijeme za lemljenje svih LED dioda za tipkovnice. Oni se koriste samo za osvjetljavanje tipki, pa ih možete preskočiti ako želite, a ne moraju biti spojeni na digitalni pin, već samo na napajanje. Spojite sve anode zajedno i sve katode zajedno. Učite iz moje pogreške - to je mnogo lakše učiniti prije ožičenja prekidača! Spojite anode na +5 V kroz otpornik od 220 ohma, a katode na masu. Ove LED diode spojene su paralelno. Evo kruga samo za ove LED diode:

Upotrijebite mali komad termoskupljajuće cijevi da pokrijete vezu između LED dioda i Arduina:

Uključite Arduino da biste testirali sve LED diode. Ne morate učitavati nikakav kôd. Ako LED diode ne rade, provjerite ožičenje.

Sada spojite prekidače. Oni moraju biti povezani preko 10k otpornika, inače će Arduino umrijeti. To se zove mrtva kratka spojnica - +5 V ide izravno u zemlju, a sve što će ostati od vašeg Arduina bit će samo dim (vjerujte mi, već sam ubio jednog pa ne morate). Evo kruga za jedan prekidač:

Ovaj krug je isti za svih devet prekidača. Spojite prekidače na digitalne pinove od dva do deset, svaki sa svojim 10K otpornikom na masu. Budite oprezni pri lemljenju Cherry MX sklopki, znaju biti malo krhki, na meni je puklo nekoliko pinova. Možda ćete ih htjeti lemiti izravno na još koju tračnicu, no tragovi su i dalje prikladni.

To je to za ožičenje. Možda ćete htjeti ugraditi žensku utičnicu USB tipa B, no male silovite iglice na njima često mogu biti prilično lemljive. Ako ne želite to učiniti, ne brinite. Micro USB konektor na Arduinu uredno se uklapa u rupu na kućištu. Ako ste pomalo zbunjeni oko različitih vrsta USB -a, provjerite jeste li razumjeti razlike .

Na kraju, još jednom provjerite je li vaš krug ispravan. Kratki spoj može lako uništiti Arduino, a to je lako učiniti pomoću stripboard -a.

Kod

Sada provjerite je li krug ispravan. Bilo bi dobro da to učinite prije nego nastavite, tako da možete riješiti sve probleme dok možete. Prenesite ovaj testni kôd (ne zaboravite odabrati ispravnu ploču i priključak iz Alati > Odbor i Alati > Luka jelovnici):

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

Možda ste morati promijeniti pinove ako ste promijenili krug.

Nakon učitavanja otvorite serijski monitor ( Gore desno > Serijski monitor ). Jedan po jedan, pritisnite svaki gumb. Trebali biste vidjeti kako serijski monitor prikazuje broj gumba koji ste pritisnuli. Baš kao i kod LED -a, ako se vaše računalo žali na isuviše veliku struju ili se LED -ice ugase kad pritisnete gumb, odmah ga isključite! Imate negdje kratki spoj u krugu, dvaput provjerite je li krug ispravan i nema kratkih spojeva između priključaka.

Ako sve radi, samo stavite krug u kutiju. Možda ćete htjeti upotrijebiti mrvicu ljepila da biste držali krug na mjestu (iako su žice dobro držale moje). Pričvrstite i poklopac.

Vrlo je jednostavno učiniti Arduino tipkovnicom. Ako koristite Nano ili UNO, ponovno ćete programirati svoj Arduino pomoću Ažuriranje firmvera uređaja (DFU). To se obično koristi za prebacivanje novog firmvera na Arduino. Koristit ćete ga za bljeskanje Arduina s novim firmwareom koji će raditi kao tipkovnica. Ovo ovdje neće biti obrađeno jer je to prilično složen zadatak. The Arduino web mjesto ima dobar tutorial za ovo.

Arduino Pro Micro čini ovaj korak vrlo lakim. Logika potrebna za oponašanje USB tipkovnice već je ugrađena u procesor, pa je jednostavno kao i pisanje nekog koda!

Prvo postavite tipke:

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

Ovo je niz koji sadrži sve pinove na koje su gumbi spojeni. Ako ste koristili više ili manje gumba ili različite pinove, ovdje promijenite vrijednosti.

Niz je skup stvari istomišljenika. Računala mogu optimizirati vaš kôd kako bi im brzo pristupili i ubrzavaju proces pisanja koda.

Sada inicijalizirajte sve pinove kao ulaze:

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

Ovo govori Arduinu da su svi pinovi u nizu ulazi. Za to se koristi petlja, umjesto pisanja pinMode (2, INPUT) devet puta, morate to napisati samo jednom. Ovo također poziva Tipkovnica.početi . Time se postavlja funkcija ugrađena u Arduino knjižnicu, posebno dizajnirana za oponašanje tipkovnice.

Izradite metodu tzv readButton :

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

Ovo uzima pin i provjerava je li pritisnuto ili nije. Jednostavno se vrati PRAVI ili LAŽNO . Sadrži i neke otkazivanje softvera -jednostavno odgađanje, a zatim ponovna provjera prekidača osigurava da je gumb doista pritisnut.

Sada se iznutra poziva još jedna petlja for void loop () :

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

Opet, ovo prelazi preko svakog elementa u nizu i provjerava je li pritisnut. To radi pod nazivom readButton metoda koju ste ranije stvorili. Ako je gumb pritisnut, taj pin se prenosi na drugu metodu koja se zove 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;
}
}

Time se provjerava pin broj pomoću a sklopka izjava. Promijenite izjave (ponekad se nazivaju razvodna kutija ) slični su an ako izjava, međutim one su korisne za provjeru je li jedna stvar (u ovom slučaju pin broj) jednaka jednom od nekoliko različitih ishoda. U biti, mnogo ih je brže izračunati.

Glavne komponente nalaze se unutar ove naredbe switch. Tipkovnica.println zapisuje tekst na računalo kao da ste fizički upisali svaki ključ. Tipkovnica.pritisnite pritisne i drži jednu tipku. Ne zaboravite ih osloboditi pomoću Keyboard.releaseAll nakon kratkog odlaganja!

Lorem ipsum dolor sit amet, consectetur

Evo cijelog koda:

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

Uz sve tipke s brojevima i slovima, Arduino može pritisnuti većinu posebnih tipki koje se pozivaju Modifikatori tipkovnice . To je osobito korisno za pritiskanje tipkovnih prečaca. Arduino web mjesto ima popis od pomoći .

Sada ostaje samo stvoriti neke prečace. To biste mogli preslikati u postojeće prečace, poput Sve + F4 (zatvorite program u sustavu Windows) ili Cmd + P (zatvorite program macOS). Alternativno, svakako pročitajte naše vrhunski vodič za prečice na tipkovnici , kako stvoriti prečace u sustavu Windows i svaki prečac na Chromebooku za početak stvaranja vlastitih prečaca.

Jeste li stvorili vlastiti okvir za prečace? Javite mi u komentarima, volio bih vidjeti neke slike!

Nadamo se da vam se sviđaju stavke koje preporučujemo i raspravljate! MUO ima pridružena i sponzorirana partnerstva, pa od nekih vaših kupnji primamo dio prihoda. To neće utjecati na cijenu koju plaćate i pomaže nam da ponudimo najbolje preporuke proizvoda.

Udio Udio Cvrkut E -pošta Evo zašto je FBI izdao upozorenje za otkupni softver u košnicama

FBI je izdao upozorenje o posebno gadnoj vrsti ransomwarea. Evo zašto morate biti posebno oprezni s Hive ransomwareom.

Pročitajte Dalje
Povezane teme
  • Uradi sam
  • Tipkovnica
  • Tipkovni prečaci
  • Arduino
O autoru Joe Coburn(136 objavljenih članaka)

Joe je diplomirao računalne znanosti na Sveučilištu Lincoln, UK. On je profesionalni programer softvera, a kad ne leti bespilotnim letjelicama ili ne piše glazbu, često ga se može zateći kako fotografira ili proizvodi video zapise.

Više od Joea Coburna

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu