Oglas

Skromni Arduino može učiniti puno stvari, ali jeste li znali da može oponašati USB tipkovnicu? S ovim jednostavnim krugom možete kombinirati one teško upamćene duge tipkovne prečace u jednu prilagođenu tipku prečaca. Evo krajnjeg rezultata:

Nikada prije niste koristili Arduino? Pogledajte našu vodič za početak rada Početak rada s Arduinom: Vodič za početnikeArduino je platforma za prototiranje elektronike otvorenog koda koja se temelji na fleksibilnom hardveru i softveru koji se lako koristi. Namijenjen je umjetnicima, dizajnerima, hobistima i svima koji su zainteresirani za stvaranje interaktivnih objekata ili okruženja. Čitaj više prvi.

Što trebaš

Dijelovi prečaca Arduino
Evo što vam je potrebno da napravite ovaj projekt:

  • 1 x Arduino Pro Micro.
  • Trenutačni gumbi ili tipke na tipkovnici.
  • Otpornici 10K ohm.
  • Izvrsne žice za spajanje.
  • Otpornici 1 x 220 Ohm.
  • 1 x 5 mm (0,197 inča) LED.
  • 1 x 5mm LED držač.

Za ovaj projekt trebat će vam vrlo specifičan Arduino. Ja koristim Pro Micro, jer su tako mali i jeftini, treba vam Arduino koji je u procesor ugrađen USB-serijski (Atmega32u4). Moguće je izgraditi ovaj projekt s drugim Arduinosima, poput UNO-a ili Nano-a, ali je potrebno puno napornog rada da bi se bioskop ponovno ugasio i da bi se stvari natjerale na posao. Klonovi drugih Arduino modela obično ne rade, ali Pro Micro klon je također u redu.

instagram viewer

OSOYOO Pro Micro ATmega32U4 5V / 16MHz pločica modula s 2 reda zaglavka za arduino Leonardo Zamijenite ATmega328 Pro MiniOSOYOO Pro Micro ATmega32U4 5V / 16MHz pločica modula s 2 reda zaglavka za arduino Leonardo Zamijenite ATmega328 Pro Mini Kupite sada na Amazonu $10.99

Trebat će vam jedan trenutni gumb, jedan otpornik od 10 K ohma i odgovarajuća žica za spajanje za svako dugme koje želite koristiti. Mada koristim Cherry MX mehaničke tipke za tipkovnicu za stvarne tipke prečaca bilo koji prebaciti će se, pod uvjetom da je trenutačan i da ne zasunuje.

Možda će vam trebati nekoliko drugih predmeta ovisno o načinu na koji to stvarate. Ako ga želite prototipirati, trebat će vam a ploča bez lemljenja. Vrijedno je trošiti novac na dobar - ponekad mogu biti vrlo nepouzdani. Ako ovo želite spremiti, morat ćete kupiti poneku ploču.

Izgradite plan

Evo kako će to raditi Arduino će biti programiran da djeluje poput USB tipkovnice - što se tiče vašeg računala. Nekoliko gumba spojenih na Arduino poslati će naredbe s tipkama na vaše računalo. Pritisnite samo jedan gumb, ali vaše će računalo smatrati da ste ga pritisnuli Alt > F4, na primjer.

Odabir prekidača

Arduino Cherry MX

Postoji nekoliko varijacija MX sklopki. Ova web stranica pruža odličan uvod, ali u osnovi se svode na buku i pritisak. Neki modeli zahtijevaju više sile za pritisak, a neki modeli stvaraju mehanički zvuk „klik“ kada ih pritisnete. Koristila sam Cherry MX Browns, koji ne stvaraju buku kada se pritisne. Sve su iste dimenzije, pa bez brige odaberite bilo koji model koji vam se sviđa (ili miješajte i slažite).

Također ćete morati kupiti neke ključne kape, a postoji svijet prilagođeni dizajni vani na izbor - od kojeg smo kupili KeyboardCo u Velikoj Britaniji.

Slučaj

Ja sam ovaj slučaj 3D ispisao, a vi možete preuzeti .STL datoteke sa Thingiverse. Ne brinite ako nemate 3D pisač, to još uvijek možete napraviti. Mnoge web stranice pružaju usluge 3D ispisa, kao što su 3D čvorišta ili Shapeways. Alternativno, ovo je vrlo jednostavan slučaj, možete ga izraditi iz plastike, perspeksa, drveta ili čak kartona. Ako želite biti zaista štedljivi, Cherry MX prodajte sklopni tester / uzorkovač Amazon (Velika Britanija). Trebat će vam 4 vijka M5 x 35 mm i 4 M5 matice. Možete ih naravno zamijeniti odgovarajućom alternativom.

Max tipkovnica za tipkovnicu, Cherry MX Switch, Tester Kit (9 prekidača Pro Sampler Tester Kit)Max tipkovnica za tipkovnicu, Cherry MX Switch, Tester Kit (9 prekidača Pro Sampler Tester Kit) Kupite sada na Amazonu $14.99

Ako izrađujete vlastiti slučaj, morate znati jedan detalj: Cherry MX sklopke su ugurane u njihove rupe za ugradnju. Za njih je potreban kvadratni otvor za ugradnju veličine 14 x 14 mm (0,551 inča), pri čemu ploča nije debljina od 1,5 mm (0,059 inča). Zalutajte predaleko od ovih dimenzija i vaši se prekidači možda više neće pravilno postavljati.

Slučaj prečaca
3D otisnuta futrola je u dva dijela, na vrhu i na dnu. Gurnite sklopke Cherry MX u kvadratne rupe:

Prečac Cherry MX nosač

Obavezno montirajte prekidače pravilno. Na vrhu je stavljeno riječi "CHERRY", a na dnu je mala zareza. Umetnite 3 mm LED u ovaj mali utor:

Prečac Cherry MX LED

Možda ćete vidjeti da LED diode najbolje izgledaju "naopako". To je bio slučaj s tipkovnicama koje sam koristio, a uopće ne utječe na prekidače.

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

Prečac Cherry MX All

Zatim uvijte LED nosač (za sada ostavite LED uklonjen). Kasnije ćete sastaviti slučaj nakon što je sklop izgrađen.

Krug

Ovaj krug izgrađen je na kartonu. Ovo je izvrsno za izgradnju polu-trajnih krugova, bez troškova ploče s tiskanim krugom (PCB). To je jednostavno komad stakloplastike s bakrenim tračnicama koje teku paralelno u jednom smjeru. Ove se staze mogu lemiti, kao i rezati. Rezanje staze može se obaviti posebnim alatom ili malim svrdlom.

Niste previše sigurni u lemljenje? Pogledaj ovi jednostavni projekti Saznajte kako lemiti pomoću ovih jednostavnih savjeta i projekataMalo vas zastrašuje pomisao na vruće željezo i staljeni metal? Ako želite početi raditi s elektronikom, morat ćete naučiti lemiti. Pomozite nam. Čitaj više prvi.

Slijedi izgled trake razglednice (ne uključuje krajnje vodiče):

Arduino traka s prečacima

Obavezno urezajte tragove ispod otpornika i arduina. Kako je vrlo teško čitati krug s trakom, evo verzije ploče:

Arduino ploča s prečacima

Čvrsto je uklopiti sve komponente u tako mali prostor. Izrežite kutove vašeg kartona na sljedeći način:

Traka s prečicama

To bi se trebalo uklopiti u dno kućišta:

Mrežna ploča s prečacima u kutiji

Provjerite radi li se okomito.

Spojite anodu (duga noga, pozitivna) LED diode na otpornik od 200 ohma, a zatim na +5 V. Spojite katodu (kratka noga, negativna) prizemljiti. Pokrijte noge vrućim stezaljkama i gurnite ih u LED nosač. Nema potrebe za ljepilom, međutim vaš LED držač možda nije prikladan za upotrebu, tako da ćete možda trebati prilagoditi ove upute.

LED indikator statusa prečaca

Ovdje biste možda trebali koristiti dvobojnu LED - ovo će vam omogućiti postavljanje dvije ili više grupa sklopki, s obojanom LED indikatorom stanja za svaku banku.

Sada je vrijeme za lemljenje svih LED dioda za tipkovnice. Koriste se isključivo kako bi tipke svijetlile, tako da ih možete preskočiti ako želite, a one ne moraju biti povezane na digitalni pin, samo napajanje. Spojite sve anode zajedno i sve katode zajedno. Učite iz moje pogreške - puno je lakše to učiniti prije ožičenja sklopki! Pričvrstite anode na +5 V preko otpornika od 220 ohma, a katode na zemlju. Ove su LED diode paralelno povezane. Evo kruga samo za ove LED-ove:

Krug kratkih LED dioda

Koristite mali komad cijevi za smanjivanje topline da pokrijete vezu između LED-a i Arduino-a:

Prečac LED Heatshrink

Uključite Arduino za testiranje svih LED dioda. Ne morate učitati nijedan kôd. Ako bilo koji LED ne radi, pokrenite i dva puta provjerite ožičenje.

Prečica LED testiranje

Sada spojite prekidače. Moraju se spojiti preko 10k otpornika, inače će Arduino umrijeti. To se naziva mrtva kratka - +5 V ide izravno u zemlju, a sve što ostane od vašeg Arduina bit će gomila dima (vjerujte mi, ja sam jednog već ubio pa ne morate). Evo sklopa za jedan prekidač:

Arduino kratki krug

Ovaj je krug jednak za svih devet prekidača. Prekidače spojite na digitalne pinove dva do deset, svaki sa svojim 10K otpornikom u zemlju. Budite oprezni lemljenje Cherry MX sklopke, mogu biti malo lomljivi, imao sam nekoliko pinova na sebi. Možda ćete ih htjeti lemiti izravno na više traka, no tračni vodiči su i dalje prikladni.

To je to za ožičenje. Možda želite montirati USB utičnicu tipa B, no maleni nožice na njima često mogu biti prilično lemljenje. Ako to ne želite učiniti, ne brinite. Micro USB priključak na Arduino uredno se uklapa u rupu u šasiji. Ako ste malo zbunjeni u pogledu različitih vrsta USB-a, provjerite razumiju razlike Shvatite vrste USB kabela i koji upotrijebitiZašto postoji toliko različitih tipova USB kabela? Saznajte razlike između vrsta USB konektora i kako kupiti najbolji kabel. Čitaj više .

Na kraju, dvaput provjerite je li vaš krug ispravan. Kratki oluk može lako uništiti Arduino, a to može biti jednostavno učiniti pomoću kartona.

Kod

Sada provjerite je li krug ispravan. Dobro je to učiniti prije nego što nastavite, tako da sada možete popraviti bilo kakve probleme. Prenesite ovaj testni kôd (ne zaboravite odabrati ispravnu ploču i priključak s alat > Odbor i alat > Luka izbornika):

const int gumbi [] = {2,3,4,5,6,7,8,9,10}; // niz svih igle za gumbe void setup () {// stavi ovdje svoj instalacijski kôd, pokreni se jednom: Serial.begin (9600); pinMode (2, ULAZ); pinMode (3, ULAZ); pinMode (4, ULAZ); pinMode (5, ULAZ); pinMode (6, ULAZ); pinMode (7, ULAZ); pinMode (8, ULAZ); pinMode (9, ULAZ); pinMode (10, ULAZ); } void loop () {// ovdje stavite svoj glavni kod, ponavljajte: for (int i = 2; i <11; ++ i) {if (digitalRead (i) == HIGH) {// softver odstupanje poboljšava kašnjenje točnosti (10); if (digitalRead (i) == HIGH) {// check switches Serial.print ("ulaz"); Serijski.println (i); kašnjenje (250); } } } }

Možda ćete trebati promijeniti nožice ako ste izmijenili krug.

Nakon učitavanja otvorite serijski monitor (Gore desno > Serijski monitor). Pritisnite jedan po jedan gumb. Trebali biste vidjeti kako serijski monitor prikazuje broj gumba na koji ste pritisnuli. Baš kao i kod LED-a, ako se vaše računalo žali na previše struje ili se LED-ovi ugase kad pritisnete gumb, odmah isključite mrežu! Imate kratak negdje u krugu, dvostruko provjerite je li krug ispravan i nema kratkih spojeva između veza.

Ako sve radi, nastavite i stavite krug u kutiju. Možda želite koristiti ljepilo da držite krug na mjestu (mada su žice dobro moji). Zavijte poklopac.

Da bi se činilo da je Arduino tipkovnica vrlo je jednostavno. Ako koristite Nano ili UNO, Arduino ćete ponovno programirati koristeći Ažuriranje upravljačkog softvera uređaja (DFU). To se obično koristi za bljeskalicu novog upravljačkog softvera Arduinu. Pomoću njega ćete Arduino fleksirati s novim firmware-om koji će raditi na tipkovnici. Ovo ovdje neće biti pokriveno, jer je to prilično složen zadatak. Web stranica Arduino ima dobar tutorial za ovo.

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

Prvo postavite tipke:

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

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

Niz je skup stvari sličnih istomišljenika. Računala mogu optimizirati vaš kôd za pristup njima brzo i ubrzavaju postupak pisanja koda.

Sada inicijalizirajte sve igle kao ulaze:

void setup () {// stavi ovdje svoj instalacijski kôd, pokreni se jednom: Keyboard.begin (); // tipkovnica za postavljanje za (int i = 2; i <11; ++ i) {// pokreću pinove pinMode (i, INPUT); } }

To Arduinu govori da su svi igle u nizu. Za to se koristi petlja, a ne pisanje pinMode (2, ULAZ) devet puta, morate ga napisati samo jednom. Ovo također poziva Keyboard.begin. Ovo postavlja funkciju ugrađenu u knjižnicu Arduino, dizajniranu posebno za oponašanje tipkovnice.

Izradite metodu zvanu readButton:

boolean readButton (int pin) {// tipke za provjeru i odvajanje ako (digitalRead (pin) == HIGH) {delay (10); if (digitalRead (pin) == HIGH) {return true; }} vratiti lažno; }

Ovaj treba zabiti i provjeriti je li pritisnut ili ne. Jednostavno se vraća PRAVI ili NETOČNO. Sadrži i neke softversko odvajanje - jednostavno odgađanje i ponovna provjera prekidača osiguravaju da je gumb stvarno pritisnut.

Sad se zove unutar petlje void petlja ():

void loop () {// stavi ovdje svoj glavni kôd, radi ponavljanja: for (int i = 2; i <11; ++ i) {// kontrolni gumbi ako (readButton (i)) {doAction (i); } } }

Opet, ovo prelazi svaki element u nizu i provjerava je li pritisnut. To se čini pod nazivom readButton metoda koju ste ranije stvorili. Ako je pritisnuta tipka, taj broj PIN-a prosljeđuje se drugoj metodi koja se zove doAction:

void doAction (int pin) {// izvršava prebacivanje zadataka (pin) {slučaj 2: Keyboard.println ("drive.google.com"); pauza; slučaj 3: Keyboard.println ("makeuseof.com"); pauza; slučaj 4: // CMD + T (nova kartica, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ( 't'); kašnjenje (100); Keyboard.releaseAll (); pauza; slučaj 5: // vaš zadatak ovdje se prekida; slučaj 6: // vaš zadatak ovdje se prekida; slučaj 7: // vaš se zadatak ovdje prekida; slučaj 8: // vaš zadatak ovdje se prekida; slučaj 9: // vaš zadatak ovdje se prekida; } }

Ovo provjerava PIN broj pomoću a sklopka izjava. Prebacite izjave (ponekad se nazivaju kućište prekidača) slični su an ako Izjava, međutim korisna su za provjeru da je jedna stvar (u ovom slučaju broj PIN-a) jednaka jednom od nekoliko različitih ishoda. U osnovi, oni se puno brže izračunavaju.

Glavne komponente su unutar ove izjave o prekidaču. Keyboard.println piše tekst u računalo kao da ste fizički upisali svaku tipku. Keyboard.press pritisne i drži jednu tipku. Ne zaboravite ih pustiti koristeći Keyboard.releaseAll nakon kratkog kašnjenja!

Evo punog koda:

int tipke [] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; void setup () {// stavi ovdje svoj instalacijski kôd, pokreni se jednom: Keyboard.begin (); // tipkovnica za postavljanje za (int i = 2; i <11; ++ i) {// pokreću pinove pinMode (i, INPUT); } } void loop () {// ovdje stavite svoj glavni kod, ponavljajte: for (int i = 2; i <11; ++ i) {// kontrolni gumbi ako (readButton (i)) {doAction (i); } } } boolean readButton (int pin) {// gumbi za provjeru i odvajanje ako (digitalRead (pin) == HIGH) {delay (10); if (digitalRead (pin) == HIGH) {return true; }} vratiti lažno; } void doAction (int pin) {// izvršava prebacivanje zadataka (pin) {slučaj 2: Keyboard.println ("drive.google.com"); pauza; slučaj 3: Keyboard.println ("makeuseof.com"); pauza; slučaj 4: // CMD + T (nova kartica, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ( 't'); kašnjenje (100); Keyboard.releaseAll (); pauza; slučaj 5: // vaš zadatak ovdje se prekida; slučaj 6: // vaš zadatak ovdje se prekida; slučaj 7: // vaš se zadatak ovdje prekida; slučaj 8: // vaš zadatak ovdje se prekida; slučaj 9: // vaš zadatak ovdje se prekida; } }

Pored svih tipki s brojevima i slovima, Arduino može pritisnuti većinu posebnih tipki koje se zovu Modifikatori tipkovnice. Oni su osobito korisni za pritiskanje tipkovnih prečaca. Web stranica Arduino ima korisni popis.

Sada je preostalo samo stvoriti prečace. To možete preslikati na postojeće prečace, kao što su Alt + F4 (zatvoriti program u sustavu Windows) ili cmd + P (napustite program macOS). S druge strane, pročitajte naše krajnji vodič tipkovnih prečaca Prečaci na tipkovnici Windows 101: Vrhunski vodičPrečaci na tipkovnici mogu vam uštedjeti vrijeme. Ovladajte univerzalnim prečacima na tipkovnici Windows, trikovima s tipkovnicom za određene programe i nekoliko drugih savjeta kako ubrzati svoj rad. Čitaj više , kako stvoriti Windows prečace Kako stvoriti Windows prečace za radnu površinu na jednostavan načinPametne kratice za radnu površinu mogu vam uštedjeti neumjereno probijanje kroz izbornike i mape. Pokazujemo vam brze i jednostavne načine stvaranja istih. Čitaj više , i svaki prečac Chromebooka Svaka prečac na tipkovnici Chromebooka koji će vam ikada trebatiOvladajte OS-om Chrome s ovim popisom svih važnih prečaca na tipkovnici Chromebooka koji će vam ikada trebati. Čitaj više za početak izrade vlastitih prečaca.

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

Joe je diplomski studij informatike na Sveučilištu u Lincolnu u Velikoj Britaniji. On je profesionalni programer softvera, a kad ne leti dronovima ili piše glazbu, često ga mogu naći fotografirati ili snimati videozapise.