Reklaam

Alandlik Arduino saab teha palju asju, kuid kas teadsite, et see võib jäljendada USB-klaviatuuri? Selle lihtsa vooluahela abil saate ühendada need keerukalt meeldejäävad pikad kiirklahvid üheks kohandatud kiirklahviks. Siin on lõpptulemus:

Kas te pole kunagi varem Arduinot kasutanud? Tutvu meiega alustusjuhend Arduino kasutamise alustamine: Algajate juhendArduino on avatud lähtekoodiga elektroonika prototüüpide platvorm, mis põhineb paindlikul, hõlpsasti kasutataval riist- ja tarkvaral. See on mõeldud kunstnikele, disaineritele, harrastajatele ja kõigile, kes on huvitatud interaktiivsete objektide või keskkondade loomisest. Loe rohkem esimene.

Mida sa vajad

Arduino otsetee osad
Selle projekti tegemiseks peate tegema järgmist:

  • 1 x Arduino Pro Micro.
  • Hetkelised nupud või klaviatuurinupud.
  • 10K oomi takistid.
  • Assortii hookup juhtmed.
  • 1 x 220 oomi takistid.
  • 1 x 5 mm (0,197 tolli) LED.
  • 1 x 5mm LED-hoidik.

Selle projekti jaoks vajate väga konkreetset Arduinot. Ma kasutan Pro Micro, kuna need on nii väikesed ja odavad, vajate Arduinot, millel on protsessorisse sisseehitatud USB-seeria (Atmega32u4). Seda projekti on võimalik üles ehitada koos teiste Arduinodega, näiteks UNO või Nano-ga, kuid see nõuab palju tööd, et biosaateid uuesti vilkuma panna ja toimima hakkamiseks. Teiste Arduino mudelite kloonid ei tööta tavaliselt üldse, kuid ka Pro Micro kloon sobib.

instagram viewer

OSOYOO Pro Micro ATmega32U4 5V / 16MHz mooduliplaat koos kahe rea tihvti päisega arduino Leonardo jaoks Asenda ATmega328 Pro MiniOSOYOO Pro Micro ATmega32U4 5V / 16MHz mooduliplaat koos kahe rea tihvti päisega arduino Leonardo jaoks Asenda ATmega328 Pro Mini Osta nüüd Amazonist $10.99

Iga nupu jaoks, mida soovite kasutada, vajate ühte hetke nuppu, ühte 10K oomi takistit ja sobivat haakimistraati. Ma kasutan tegelike otseteede nuppude jaoks siiski Cherry MX mehaanilisi klaviatuurilüliteid mis tahes lüliti teeb, kui see on hetkeline ja ei lukustu.

Võimalik, et vajate mõnda muud elementi, sõltuvalt sellest, kuidas seda ehitate. Kui soovite selle prototüüpi luua, on teil vaja joodiseta leivalaud. Tasub raha kulutada heale - need võivad mõnikord olla väga ebausaldusväärsed. Kui soovite selle üles märkida, siis soovite osta mõne ribalaua.

Ehitamise plaan

See toimib järgmiselt. Arduino on programmeeritud käituma nagu USB-klaviatuur - mis puutub teie arvutisse, siis see on nii. Mitmed Arduino-ga ühendatud nupud saadavad võtme käsud teie arvutisse. Vajutate ainult ühte nuppu, kuid teie arvuti arvab, et olete vajutanud Alt > F4, näiteks.

Lüliti valimine

Arduino Cherry MX

MX-seeria lülititel on mitu varianti. See veebisait pakub suurepärast sissejuhatust, kuid need on peamiselt müra ja rõhu all. Mõne mudeli vajutamiseks on vaja suuremat jõudu ja mõne mudeli vajutamisel kostub mehaaniline klõpsatus. Olen kasutanud Cherry MX Browns, mis vajutamisel ei tekita müra. Need on kõik ühesugused mõõtmed, nii et vali muretsemata mis tahes mudel, mis sulle meeldib (või sega ja sobita).

Muidugi peate ostma ka mõned võtmekorgid - seal on maailm kohandatud kujundused seal valida - ostsime KeyboardCo Ühendkuningriigis

Juhul

Olen selle ümbrise 3D-prinditud ja saate selle alla laadida .STL failid Thingiverse. Ärge muretsege, kui teil pole 3D-printerit, saate selle ikkagi üles ehitada. Paljud veebisaidid pakuvad 3D-printimisteenuseid, näiteks 3D jaoturid või Vooderdised. Teise võimalusena on see väga lihtne juhtum, mille saate ise valmistada plastikust, perspexist, puust või isegi papist. Kui soovite olla tõeliselt säästlik, müüge Cherry MX sisse lülitatud tester / proovivõtja Amazon (Suurbritannia). Te vajate 4 M5 x 35mm polti ja 4 M5 mutrit. Muidugi võite need asendada mõne sobiva alternatiiviga.

Max klaviatuuri klaviatuur, Cherry MX lüliti, testija komplekt (9 lüliti Pro Sampleri testija komplekt)Max klaviatuuri klaviatuur, Cherry MX lüliti, testija komplekt (9 lüliti Pro Sampleri testija komplekt) Osta nüüd Amazonist $14.99

Kui teete ise oma juhtumit, peate teadma ühte olulist detaili: Cherry MX-lülitid on paigaldatavad nende kinnitusavadesse. Need vajavad 14 x 14 mm (0,551 tolli) ruudukujulist kinnitusava, kusjuures plaat ei tohi olla paksem kui 1,5 mm (0,059 tolli). Hõljuge neist mõõtmetest liiga kaugel ja teie lülitid ei pruugi enam õigesti paigaldada.

Otsetee juhtum
3D-prinditud ümbris on kahes osas, üla- ja alaosa. Lükake Cherry MX lülitid ruudukujulistesse aukudesse:

Otsetee Cherry MX Mount

Veenduge, et olete lülitid õigesti paigaldanud. Ülaserval on sõnad “KIRI” ja alumises osas on väike sälk. Sisestage sellesse pessa 3mm LED:

Otsetee Cherry MX LED

Võib juhtuda, et LED-id näevad kõige paremini paigaldatud “tagurpidi”. See oli nii minu kasutatud klaviatuuride puhul ja see ei mõjuta lüliteid üldse.

Nüüd peaks teil olema üheksa lülitit 9 LED-iga. Ühtegi neist osadest pole vaja liimida. Jootetuli hoiab LED-sid ja hõõrdumine hoiab lüliteid.

Otsetee Cherry MX All

Seejärel keerake LED-kinnitus kinni (jätke LED nüüd eemaldatuks). Lõpetate ümbrise kokkupaneku hiljem, kui vooluring on ehitatud.

Vooluring

See vooluring on ehitatud ribalauale. See sobib suurepäraselt poolpüsivate vooluringide ehitamiseks ilma trükkplaadi (PCB) kuludeta. See on lihtsalt klaaskiustükk, mille vaskjäljed kulgevad paralleelselt ühes suunas. Neid radasid saab nii jootma kui ka lõigata. Raja lõikamist saab teha spetsiaalse tööriista või väikese puurvarda abil.

Kas pole jootmisel liiga enesekindel? Vaata need lihtsad projektid Õppige nende lihtsate näpunäidete ja projektide abil jootmistKas teid natuke hirmutab mõte kuumast rauast ja sulametallist? Kui soovite hakata tegelema elektroonikaga, peate õppima jootmist. Las me aitame. Loe rohkem esimene.

Siin on ribalaua paigutus (välja arvatud lõppjuhtmed):

Arduino otseteede ribalaud

Lõigake kindlasti takistite ja Arduino all olevad jäljed. Kuna ribalaua vooluringi lugemine võib olla väga keeruline, siis on siin järgmine versioon:

Arduino otsetee leivalaud

Kõigi komponentide nii väikesesse ruumi pigistamine on tihe. Lõika ribalaua nurgad järgmiselt:

Otsetee ribalauale

See peaks kenasti korpuse põhja mahtuma:

Otseteede ribalaud kastis

Veenduge, et rajad kulgeksid vertikaalselt.

Ühendage anood (pikk jalg, positiivne) LED-i kuni 200 oomi takisti ja seejärel temperatuurini +5 V. Ühendage katood (lühike jalg, negatiivne) maandama. Katke jalad termiliselt kahaneva varrukaga ja lükake seejärel LED-hoidikusse. Liimi pole vaja, kuid teie LED-hoidik ei pruugi olla paigaldatav, seetõttu peate võib-olla neid juhiseid kohandama.

Otsetee oleku LED

Võib-olla soovite siin kasutada kahevärvilist LED-i - see võimaldab teil seadistada kahte või enamat lüliti panka, millel on iga panga jaoks erinev värviline olekutulede LED.

Nüüd on aeg klaviatuuride kõik LEDid jootma. Neid kasutatakse ainult selleks, et klahvid särama panna, et saaksite need soovi korral vahele jätta. Need ei pea olema ühendatud digitaalse piniga, vaid toitega. Ühendage kõik anoodid ja kõik katoodid omavahel. Õppige minu eksimusest - enne lülitite juhtmestikku on seda palju lihtsam teha! Ühendage anoodid 220 oomi takistiga +5 V-ga ja katoodid maandatakse. Need LED-id on juhtmega paralleelselt. Nende LEDide vooluring on siin:

Otsetee nuppude LED-vooluahel

LEDide ja Arduino vahelise ühenduse katmiseks kasutage väikest tükki termokahanevaid torusid:

Otsetee LED-kiirkõrgus

Lülitage Arduino sisse, et kontrollida kõigi LED-de tööd. Te ei pea ühtegi koodi üles laadima. Kui mõni LED ei tööta, siis kontrollige oma juhtmestikku uuesti.

Otseteede LED-testimine

Nüüd ühendage lülitid. Need tuleb ühendada 10k takisti kaudu, vastasel juhul sureb Arduino. Seda nimetatakse surnud lühikeseks - +5 V läheb otse maasse ja kõik, mis teie Arduinost alles jääb, on suitsusupp (usaldage mind, ma tapsin selle juba, nii et te ei pea). Siin on ühe lüliti vooluring:

Arduino otsetee vooluring

See vooluring on kõigi üheksa lüliti jaoks sama. Ühendage lülitid kahe kuni kümne digitaalse tihvtiga, igaühel on oma maandus 10K takistiga. Olge Cherry MX-lülitite ettevaatlik jootmine, need võivad olla pisut habras, mul oli mitu tihvti purunenud. Võib-olla soovite need jootma otse mõnele teisele plaadile, kuid sobivad ikkagi lõpujuhtmed.

See on juhtmestiku jaoks. Võite paigaldada B-tüüpi USB-pistikupesa, kuid nende pisikesi tihvte on sageli keeruline jootma panna. Kui te ei soovi seda teha, siis ärge muretsege. Arduino mikro-USB-pistik sobib korralikult šassii auku. Kui olete erinevatest USB-tüüpidest pisut segaduses, veenduge, et te seda teeksite mõista erinevusi Saate aru USB-kaabli tüüpidest ja sellest, millist neist kasutadaMiks on nii palju erinevaid USB-kaablitüüpe? Siit saate teada erinevusi USB-pistikute vahel ja parima kaabli ostmise kohta. Loe rohkem .

Lõpuks kontrollige veel kord, kas vooluring on õige. Lühike võib Arduino hõlpsalt hävitada ja ribalaua abil on seda lihtne teha.

Kood

Nüüd kontrollige, kas vooluring on õige. See on hea mõte teha enne jätkamist, nii et saate kõik probleemid lahendada nii kaua kui võimalik. Laadige see testkood üles (ärge unustage, et valige õige tahvli ja pordi seast Tööriistad > Juhatus ja Tööriistad > Sadam menüüd):

const int nupud [] = {2,3,4,5,6,7,8,9,10}; // kõigi nuppude massiiv void setup () {// pane oma häälestuskood siia ühe korra käivitamiseks: 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 () {// pane oma põhikood siia korduvaks käivitamiseks: for (int i = 2; i <11; ++ i) {if (digitalRead (i) == HIGH) {// tarkvara de-bounce parandab täpsuse viivitust (10); if (digitalRead (i) == HIGH) {// kontroll lülitid Serial.print ("sisend"); Serial.println (i); viivitus (250); } } } }

Kui vooluringi olete muutnud, peate võib-olla tihvte vahetama.

Pärast üleslaadimist avage jadamonitor (üleval paremal > Jadamonitor). Vajutage ükshaaval iga nuppu. Te peaksite nägema jadamonitori nuppu, mille nuppu vajutasite. Nii nagu LED-i puhul, kui teie arvuti kaebab liiga suure vooluhulga üle või kui LED-id kustuvad nupule vajutamisel, ühendage kohe ühendus! Teil on lühis kuskil vooluringis, kontrollige vooluringi õigsust ja ühenduste vahel pole lühiseid.

Kui kõik töötab, minge edasi ja pange vooluring kasti. Vooluringi paigas hoidmiseks võiksite kasutada liimivaba liimi (kuigi juhtmed hoidsid hästi minu oma). Keerake ka kaas kinni.

Arduino klaviatuurina näitamiseks on väga lihtne. Kui kasutate Nano või UNO, kavatsete oma Arduino ümber programmeerida, kasutades selleks Seadme püsivara värskendus (DFU). Seda kasutatakse tavaliselt uue püsivara välklambildamiseks Arduinole. Kavatsete seda kasutada Arduino välklambi jaoks uue püsivara abil, mis muudab selle toimima nagu klaviatuur. Seda siin ei käsitleta, kuna see on üsna keeruline ülesanne. Arduino veebisait on selle jaoks hea juhendaja.

Arduino Pro Micro teeb selle sammu väga lihtsaks. USB-klaviatuuri jäljendamiseks vajalik loogika on juba protsessorisse sisse ehitatud, nii et see on sama lihtne kui mõne koodi kirjutamine!

Esmalt seadke klahvid:

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

See on massiiv, mis sisaldab kõiki tihvte, millega nupud on ühendatud. Kui olete kasutanud rohkem või vähem nuppe või kasutanud erinevaid tihvte, muutke siin väärtusi.

Massiiv on kogum mõttekaaslasi. Arvutid saavad teie koodi optimeerida, et neile kiiresti juurde pääseda, ja need kiirendavad koodi kirjutamise protsessi.

Nüüd lähtestage kõik tihvtid sisenditena:

void setup () {// pane oma häälestuskood siia ühe korra käivitamiseks: Keyboard.begin (); // seadistusklaviatuur (int i = 2; i <11; ++ i) {// algatage tihvtid pinMode (i, INPUT); } }

See ütleb Arduinole, et kõik massiivi tihvtid on sisendid. Selleks kasutatakse silmust, mitte kirjutamist pinMode (2, INPUT) üheksa korda, peate selle kirjutama ainult üks kord. See nõuab ka Klaviatuur.begin. See seadistab Arduino teeki sisseehitatud funktsiooni, mis on loodud spetsiaalselt klaviatuuri jäljendamiseks.

Looge meetod nimega readButton:

tõeväärtus readButton (int pin) {// kontroll- ja silumisklahvid, kui (digitalRead (pin) == HIGH) {viivitus (10); if (digitalRead (pin) == HIGH) {return true; }} tagasta vale; }

See võtab tihvti ja kontrollib, kas seda on vajutatud või mitte. See naaseb lihtsalt tagasi TÕSI või VABA. See sisaldab ka mõnda tarkvara silumine - lihtne viivitus ja seejärel lüliti uuesti kontrollimine tagavad nupu tõelise vajutamise.

Nüüd nimetatakse silmuse jaoks teist tühine silmus ():

void loop () {// pane oma põhikood siia korduvaks käivitamiseks: for (int i = 2; i <11; ++ i) {// kontrollnupud, kui (readButton (i)) {doAction (i); } } }

Jällegi, see läheb üle iga massiivi elemendi ja kontrollib, kas see on vajutatud. Seda tehakse nn readButton varem loodud meetodi. Kui nuppu on vajutatud, edastab see PIN-koodi teisele meetodile, mida nimetatakse doAction:

void doAction (int pin) {// ülesannete täitmine switch (pin) {case 2: Keyboard.println ("drive.google.com"); vaheaeg; 3. juhtum: Keyboard.println ("makeuseof.com"); vaheaeg; 4. juhtum: // CMD + T (uus sakk, Chrome) Keyboard.press (KEY_LEFT_GUI); Klaviatuur.press ('t'); viivitus (100); Keyboard.releaseAll (); vaheaeg; 5. juhtum: // teie ülesande siin murda; 6. juhtum: // teie ülesande siin murda; juhtum 7: // teie ülesande siin murda; juhtum 8: // teie ülesande siin murda; juhtum 9: // teie ülesande siin murda; } }

See kontrollib PIN-koodi, kasutades a lüliti avaldus. Lausete vahetamine (mõnikord nimetatakse lüliti ümbris) on sarnased kui avaldus, kuid need on kasulikud kontrollimaks, kas üks asi (antud juhul PIN-kood) on võrdne ühega mitmest erinevast tulemusest. Põhimõtteliselt on neid palju kiiremini arvutada.

Põhikomponendid asuvad selles lülitusavalduses. Klaviatuur.println kirjutab teksti arvutisse nii, nagu oleksite iga klahvi füüsiliselt kirjutanud. Klaviatuur.press vajutab ja hoiab ühte klahvi. Ärge unustage neid vabastada, kasutades Keyboard.releaseAll pärast lühikest viivitust!

Siin on täielik kood:

int klahvid [] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; void setup () {// pane oma häälestuskood siia ühe korra käivitamiseks: Keyboard.begin (); // seadistusklaviatuur (int i = 2; i <11; ++ i) {// algatage tihvtid pinMode (i, INPUT); } } void loop () {// pane oma põhikood siia korduvaks käivitamiseks: for (int i = 2; i <11; ++ i) {// kontrollnupud, kui (readButton (i)) {doAction (i); } } } tõeväärtus readButton (int pin) {// kontroll- ja silumisklahvid, kui (digitalRead (pin) == HIGH) {viivitus (10); if (digitalRead (pin) == HIGH) {return true; }} tagasta vale; } void doAction (int pin) {// täitke toimingute lüliti (pin) {case 2: Keyboard.println ("drive.google.com"); vaheaeg; 3. juhtum: Keyboard.println ("makeuseof.com"); vaheaeg; 4. juhtum: // CMD + T (uus sakk, Chrome) Keyboard.press (KEY_LEFT_GUI); Klaviatuur.press ('t'); viivitus (100); Keyboard.releaseAll (); vaheaeg; 5. juhtum: // teie ülesande siin murda; 6. juhtum: // teie ülesande siin murda; juhtum 7: // teie ülesande siin murda; juhtum 8: // teie ülesande siin murda; juhtum 9: // teie ülesande siin murda; } }

Lisaks kõigile numbri- ja tähtklahvidele saab Arduino vajutada enamikku eriklahvidest, millele helistatakse Klaviatuuri modifikaatorid. Need on eriti kasulikud klaviatuuri otseteede vajutamiseks. Arduino veebisaidil on kasulik nimekiri.

Nüüd jääb üle vaid mõne otsetee loomine. Saate selle kaardistada olemasolevate otseteedega, näiteks Alt + F4 (sulgege programm Windowsis) või Cmd + Q (väljuge programmist macOS). Teise võimalusena lugege kindlasti meie lehte ülim klaviatuuri otsetee juhend Windowsi kiirklahvid 101: ülim juhendKlaviatuuri otsetee aitab säästa tunde. Oma töö kiirendamiseks õppige ära universaalsed Windowsi kiirklahvid, konkreetsete programmide klaviatuuritrikkid ja veel mõned näpunäited. Loe rohkem , kuidas luua Windowsi otseteid Kuidas luua Windowsi töölaua otseteid lihtsal viisilNutikad töölaua otseteed aitavad säästa mõtlematut menüüde ja kaustade sirvimist. Näitame teile kiireid ja lihtsaid viise nende loomiseks. Loe rohkem ja iga Chromebooki otsetee Iga Chromebooki kiirklahv, mida te kunagi vajateKasutage Chrome OS-i koos selle loendiga kõigist olulistest Chromebooki kiirklahvidest, mida kunagi vaja läheb. Loe rohkem oma otseteede tegemise alustamiseks.

Kas olete loonud oma otsetee kasti? Andke kommentaarides teada, tahaksin näha pilte!

Joe on lõpetanud Ühendkuningriigi Lincolni ülikooli arvutiteaduse. Ta on professionaalne tarkvaraarendaja ja kui ta ei lenda droonidega ega kirjuta muusikat, võib teda sageli leida pildistamas või videot tootmas.