Tehke oma kohandatud otsetee nupud Arduino abil

Tehke oma kohandatud otsetee nupud Arduino abil

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





Kas pole kunagi Arduinot kasutanud? Vaadake meie alustamise juhend esimene.





Mida sa vajad

Selle projekti tegemiseks vajate järgmist.





  • 1 x Arduino Pro Micro.
  • Hetkelised nupud või klaviatuuri nupud.
  • 10K oomi takistid.
  • Ühendusjuhtmete assortii.
  • 1 x 220 oomi takistid.
  • 1 x 5 mm (0,197 tolli) LED.
  • 1 x 5 mm LED -hoidik.

Selle projekti jaoks vajate väga spetsiifilist Arduinot. Ma kasutan a Pro Micro , kuna need on nii väikesed ja odavad, vajate Arduinot, millel on protsessorisse sisseehitatud USB-jada (Atmega32u4). Seda projekti on võimalik ehitada koos teiste Arduinodega, näiteks UNO või Nano, kuid see nõuab palju tööd, et bios uuesti välgutada ja asjade toimimiseks näpistada. Teiste Arduino mudelite kloonid ei tööta tavaliselt üldse, kuid ka Pro Micro kloon sobib hästi.

OSOYOO Pro Micro ATmega32U4 5V/16MHz mooduliplaat 2 rea nööpnõelaga OSTA KOHE AMAZONILT

Iga nupu jaoks, mida soovite kasutada, vajate ühte hetkelist nuppu, ühte 10K oomi takistit ja sobivat ühendustraati. Kuigi ma kasutan Cherry MX mehaanilisi klaviatuurilüliteid otseteeklahvide jaoks mis tahes lüliti teeb seda tingimusel, et see on hetkeline ja ei lukustu.



Sõltuvalt selle koostamise viisist võib vaja minna mõnda muud üksust. Kui soovite selle prototüüpi teha, vajate jooteta leivalaud . Raha tasub kulutada heale - need võivad mõnikord olla väga ebausaldusväärsed. Kui soovite selle kasti panna, soovite osta ribalaua.

Ehita plaan

See toimib järgmiselt. Arduino on programmeeritud toimima nagu USB -klaviatuur - teie arvuti puhul on see nii. Mitmed Arduinoga ühendatud nupud saadavad teie arvutisse võtmekäsklused. Vajutate ainult ühte nuppu, kuid arvuti arvab, et olete seda vajutanud Kõik > F4 , näiteks.





Lüliti valimine

MX -seeria lülititel on mitu varianti. See veebisait pakub suurepärast sissejuhatust, kuid need on peamiselt müra ja rõhu all. Mõned mudelid vajavad vajutamiseks rohkem jõudu ja mõned mudelid tekitavad vajutamisel mehaanilise klõpsatuse. Olen kasutanud Cherry MX Brownsi, mis vajutades ei tee häält. Need on kõik ühesuguste mõõtmetega, seega valige muretult mis tahes mudel (mis teile meeldib (või segage)).

Loomulikult peate ostma ka mõned võtmekorgid ja seda on palju kohandatud kujundused seal valida - ostsime KeyboardCo Ühendkuningriigis





Juhul

Olen selle ümbrise 3D -printinud ja saate selle alla laadida .STL failid aadressilt Thingiverse . Ärge muretsege, kui teil pole 3D -printerit, saate selle siiski luua. Paljud veebisaidid pakuvad 3D -printimisteenuseid, näiteks 3D -jaoturid või Kujundid . Teise võimalusena on see väga lihtne juhtum, võite ise valmistada plastikust, perspexist, puidust või isegi papist. Kui soovite olla tõesti kokkuhoidlik, müüge Cherry MX sisse lülitite tester/proovivõttur Amazon ( Ühendkuningriik ). Teil on vaja 4 M5 x 35 mm poldi ja 4 M5 mutrit. Loomulikult võite need asendada sobiva alternatiiviga.

Max klaviatuuri klahvikarp, Cherry MX lüliti, testerkomplekt (9 lülitit Pro Sampler Tester Kit) OSTA KOHE AMAZONILT

Kui valmistate oma korpust, peate teadma ühte olulist detaili: Cherry MX-lülitid on kinnitusavadesse tõmmatavad. Nende jaoks on vaja 14 x 14 mm (0,551 tolli) ruudukujulist kinnitusava, mille plaat ei tohi olla paksem kui 1,5 mm (0,059 tolli). Kalduge nendest mõõtmetest liiga kaugele ja teie lülitid ei pruugi enam õigesti paigaldada.

3D -prinditud ümbris on kahes osas - ülemine ja alumine. Lükake Cherry MX lülitid ruudukujulistesse aukudesse:

Veenduge, et paigaldate lülitid õigesti. Ülaosas on kiri 'KIRS' ja all on väike sälk. Sisestage sellesse väiksesse pesasse 3 mm LED:

Võib juhtuda, et valgusdioodid näevad kõige paremini välja tagurpidi. See juhtus minu kasutatavate klahvikorkide puhul ja see ei mõjuta lüliteid üldse.

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

Järgmisena keerake LED -kinnitus sisse (jätke LED -seade praegu eemaldatuks). Lõpetate korpuse kokkupanemise hiljem, kui vooluring on üles ehitatud.

Ringkond

See vooluring on ehitatud ribalauale. See sobib suurepäraselt poolpüsivate ahelate ehitamiseks ilma trükkplaadi (PCB) kuludeta. See on lihtsalt klaaskiust tükk, mille vasksed rajad kulgevad paralleelselt ühes suunas. Neid radu saab jootma ja lõigata. Raja lõikamist saab teha spetsiaalse tööriista või väikese puurvardaga.

Kas pole jootmises liiga kindel? Vaadake kõigepealt neid lihtsaid projekte.

Siin on ribalaua paigutus (välja arvatud tagaotsad):

Lõika kindlasti jäljed takistite ja Arduino alla. Kuna ribalaua vooluringi lugemine võib olla väga keeruline, on siin leivaplaadi versioon:

See on tihedalt sobiv, et pigistada kõik komponendid nii väikesesse ruumi. Lõika ribalaua nurgad järgmiselt.

See peaks sobima korralikult korpuse põhja:

Veenduge, et rajad kulgeksid vertikaalselt.

Ühendage anood ( pikk jalg, positiivne ) LED -i 200 oomi takistile ja seejärel +5 V. Ühendage katood ( lühike jalg, negatiivne ) maapinnale. Katke jalad termokahaneva ümbrisega ja lükake seejärel LED -hoidikusse. Liimi pole vaja, kuid teie LED-hoidik ei pruugi olla push-fit, seega peate võib-olla neid juhiseid kohandama.

Võib-olla soovite siin kasutada kahevärvilist LED-i-see võimaldab teil seadistada kaks või enam lülitite panka, millel on iga panga jaoks eri värvi oleku LED.

Nüüd on aeg joota kõik klahvikorkide LED -id. Neid kasutatakse ainult klahvide helendamiseks, nii et saate need soovi korral vahele jätta ja need ei pea olema ühendatud digitaalse tihvtiga, vaid ainult toiteallikaga. Ühendage kõik anoodid ja kõik katoodid kokku. Õppige minu veast - enne lülitite ühendamist on seda palju lihtsam teha! Ühendage anoodid 220 oomi takistiga +5 V ja katoodid maandusega. Need LED -id on ühendatud paralleelselt. Siin on skeem just nende LED -ide jaoks:

Valgusdioodide ja Arduino vahelise ühenduse katmiseks kasutage väikest termokahanevat toru:

Lülitage Arduino sisse, et testida kõigi LED -ide tööd. Te ei pea koodi üles laadima. Kui mõni LED ei tööta, minge ja kontrollige oma juhtmestikku.

Nüüd ühendage lülitid juhtmetega. Need peavad olema ühendatud 10k takisti kaudu, vastasel juhul sureb Arduino. Seda nimetatakse surnud lühiseks - +5 V läheb otse maasse ja kõik, mis teie Arduino'st alles jääb, on suitsu (uskuge mind, ma tapsin ühe juba ära, et te ei peaks). Siin on ühe lüliti ahel:

See vooluahel on kõigi üheksa lüliti jaoks sama. Ühendage lülitid digitaalsete tihvtidega kaks kuni kümme, mõlemal on oma 10K takisti maandusega. Olge ettevaatlik Cherry MX lülitite jootmisel, need võivad olla veidi habras, mul purunes mitu tihvti. Võib -olla soovite need otse mõnele teisele ribalauale jootma panna, kuid tagaotsad on siiski sobivad.

See on juhtmestiku jaoks. Võib -olla soovite paigaldada B -tüüpi USB -pistikupesa, kuid nende pisikesi tihvte võib sageli olla üsna raske joodistada. Kui te ei soovi seda teha, ärge muretsege. Arduino mikro -USB -pistik sobib korralikult šassii aukuga. Kui olete erinevate USB -tüüpide osas pisut segaduses, veenduge selles mõista erinevusi .

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

Kood

Nüüd kontrollige, kas vooluring on õige. See on hea mõte teha enne jätkamist, et saaksite kõik probleemid kohe lahendada. Laadige see testkood üles (ärge unustage valida õige plaat ja port Tööriistad > Juhatus ja Tööriistad > Sadam menüüd):

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

Kui vooluringi on muudetud, peate võib -olla tihvte vahetama.

Pärast üleslaadimist avage jadamonitor ( üleval paremal > Seeriamonitor ). Vajutage ükshaaval iga nuppu. Te peaksite nägema, et jadamonitor näitab vajutatud nupu numbrit. Nii nagu LED -i puhul, kui teie arvuti kurdab liiga suure voolu tõmbamise üle või kui LED -id kustuvad nupule vajutades, katkestage kohe ühendus! Sul on kuskil vooluahelas lühis, kontrolli üle, kas ahel on õige ja ühenduste vahel pole lühiseid.

Kui kõik töötab, jätkake ja pange vooluring kasti. Võib -olla soovite vooluahela paigal hoidmiseks kasutada liimitükki (kuigi juhtmed hoidsid minu omad korras). Keerake ka kaas peale.

Arduino klaviatuurina tundmine on väga lihtne. Kui kasutate nanot või UNO-d, kavatsete oma Arduino uuesti programmeerida Seadme püsivara värskendus (DFU). Seda kasutatakse tavaliselt uue püsivara välkimiseks Arduinole. Kasutate seda Arduino välgutamiseks uue püsivara abil, mis paneb selle töötama nagu klaviatuur. Seda siin ei käsitleta, kuna see on üsna keeruline ülesanne. The Arduino veebisait selleks on hea õpetus.

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

Esiteks seadistage võtmed:

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

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

Massiiv on sarnaselt mõtlevate asjade kogum. Arvutid saavad teie koodi kiireks juurdepääsuks optimeerida ja kiirendavad koodi kirjutamise protsessi.

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

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

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

Looge meetod nimega readButton :

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

See võtab nõela ja kontrollib, kas seda on vajutatud või mitte. See lihtsalt naaseb TÕSI või VALE . See sisaldab ka mõnda tarkvara väljalülitamine -lihtne viivitus ja seejärel lüliti uuesti kontrollimine tagab, et nuppu tõesti vajutati.

Nüüd kutsutakse sisse teine ​​silmus tühine tsükkel () :

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

Jällegi läheb see üle massiivi iga elemendi ja kontrollib, kas seda on vajutatud. Ta teeb seda nimega readButton meetod, mille olete varem loonud. Kui nuppu on vajutatud, edastab see selle numbri teisele meetodile, mida nimetatakse 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;
}
}

See kontrollib PIN -koodi, kasutades a lüliti avaldus. Vaheta avaldusi (mõnikord nimetatakse lüliti ümbris ) on sarnased an kui avaldusest, kuid need on kasulikud, et kontrollida, kas üks asi (antud juhul pin -number) on võrdne ühega mitmest erinevast tulemusest. Põhimõtteliselt on nende arvutamine palju kiirem.

Peamised komponendid on selle lüliti avalduses. Klaviatuur.println kirjutab teksti arvutisse nii, nagu oleksite iga klahvi füüsiliselt sisestanud. Klaviatuur.press vajutab ja hoiab all ühte klahvi. Ärge unustage neid vabastada, kasutades Klaviatuur.releaseAll pärast väikest viivitust!

kuidas veebisaitidelt videoid alla laadida

Siin on täielik kood:

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

Lisaks kõigile numbri- ja täheklahvidele saab Arduino vajutada enamikule kutsutud eriklahvidele Klaviatuuri modifikaatorid . Need on eriti kasulikud kiirklahvide vajutamisel. Arduino veebisaidil on a kasulik nimekiri .

Nüüd jääb üle vaid mõned otseteed luua. Saate selle kaardistada olemasolevatele otseteedele, näiteks Kõik + F4 (sulgege programm Windowsis) või Cmd + Q (sulgege programm macOS). Teise võimalusena lugege kindlasti meie artiklit ülim klaviatuuri otseteede juhend , kuidas luua Windowsi otseteid ja iga Chromebooki otsetee otseteede tegemise alustamiseks.

Kas olete loonud oma otseteekasti? Andke kommentaarides teada, tahaks mõnda pilti näha!

Loodame, et teile meeldivad esemed, mida soovitame ja arutame! MUO -l on sidus- ja sponsoreeritud partnerlused, nii et saame osa teie ostude tulust. See ei mõjuta teie makstavat hinda ja aitab meil pakkuda parimaid tootesoovitusi.

Jaga Jaga Piiksuma E -post Siin on põhjus, miks FBI andis hoiatuse taru lunavara eest

FBI andis hoiatuse eriti vastiku lunavara tüve eest. Siin on põhjus, miks peate Hive lunavara suhtes eriti ettevaatlik olema.

Loe edasi
Seotud teemad
  • DIY
  • Klaviatuur
  • Klaviatuuri otseteed
  • Arduino
Autori kohta Joe Coburn(136 artiklit avaldatud)

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

Rohkem Joe Coburnilt

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin
Kategooria Diy