Sukurkite savo pasirinktinius sparčiuosius klavišus naudodami „Arduino“

Sukurkite savo pasirinktinius sparčiuosius klavišus naudodami „Arduino“

Kuklusis „Arduino“ gali padaryti daug ką, bet ar žinojote, kad jis gali imituoti USB klaviatūrą? Naudodami šią paprastą schemą galite sujungti tuos sunkiai įsimenamus ilgus sparčiuosius klavišus į vieną pasirinktinį spartųjį klavišą. Štai galutinis rezultatas:





Niekada anksčiau nenaudojote „Arduino“? Peržiūrėkite mūsų pradžios vadovas Pirmas.





Ko tau reikia

Štai ko jums reikia norint įgyvendinti šį projektą:





  • 1 x „Arduino Pro Micro“.
  • Momentiniai mygtukai arba klaviatūros mygtukai.
  • 10K omų rezistoriai.
  • Įvairūs sujungimo laidai.
  • 1 x 220 omų rezistoriai.
  • 1 x 5 mm (0,197 colio) šviesos diodas.
  • 1 x 5 mm LED laikiklis.

Šiam projektui jums reikės labai specifinio „Arduino“. Aš naudoju a Pro Micro , nes jie yra tokie maži ir pigūs, jums reikia „Arduino“, turinčio procesoriuje integruotą USB seriją („Atmega32u4“). Šį projektą galima sukurti kartu su kitais „Arduinos“, pvz., UNO ar „Nano“, tačiau norint iš naujo paleisti „BIOS“ ir suktis, kad viskas veiktų, reikia daug sunkaus darbo. Kitų „Arduino“ modelių klonai dažniausiai neveikia, tačiau „Pro Micro“ klonas taip pat tinka.

„OSOYOO Pro Micro ATmega32U4 5V/16MHz“ modulio plokštė su 2 eilučių kaiščių antrašte Pakeiskite „ATmega328 Pro Mini“ „Arduino“ PIRKITE DABAR AMAZON

Jums reikės vieno momentinio mygtuko, vieno 10K omų rezistoriaus ir atitinkamo prijungimo laido kiekvienam mygtukui, kurį norite naudoti. Nors aš naudoju „Cherry MX“ mechaninius klaviatūros jungiklius tikriems spartiesiems klavišams bet koks jungiklis veiks, jei jis yra momentinis ir neužsifiksuoja.



Priklausomai nuo to, kaip tai sukuriate, jums gali prireikti kelių kitų elementų. Jei norite sukurti jo prototipą, jums reikės duonos lenta be litavimo . Verta išleisti pinigus geram - kartais jie gali būti labai nepatikimi. Jei norite tai supakuoti, norėsite įsigyti striptizo plokštę.

Sukurkite planą

Štai kaip tai veiks. „Arduino“ bus užprogramuotas veikti kaip USB klaviatūra - kiek tai susiję su jūsų kompiuteriu, tai yra. Keli mygtukai, prijungti prie „Arduino“, siųs raktų komandas į jūsų kompiuterį. Paspausite tik vieną mygtuką, tačiau kompiuteris manys, kad paspaudėte Viskas > F4 , pavyzdžiui.





Jungiklio pasirinkimas

Yra keletas MX serijos jungiklių variantų. Ši svetainė yra puikus įvadas, tačiau jie iš esmės yra susiję su triukšmu ir slėgiu. Kai kuriems modeliams paspausti reikia daugiau jėgos, o kai kurie modeliai paspaudę skleidžia mechaninį spragtelėjimą. Naudojau „Cherry MX Browns“, kurie spaudžiant nesukelia triukšmo. Visi jie yra vienodo dydžio, todėl nerimaudami pasirinkite bet kokį jums patinkantį modelį (arba derinkite).

Žinoma, taip pat turėsite nusipirkti keletą raktų dangtelių, ir tai yra pasaulis nestandartiniai dizainai iš ko rinktis - pirkome iš „KeyboardCo“ JK





Byla

Aš atspausdinau šį dėklą 3D, ir jūs galite atsisiųsti .STL failus iš Thingiverse . Nesijaudinkite, jei neturite 3D spausdintuvo, vis tiek galite jį sukurti. Daugelis svetainių teikia 3D spausdinimo paslaugas, pvz 3D koncentratoriai arba Formos . Arba tai labai paprastas atvejis, galite pasigaminti patys iš plastiko, perspekso, medžio ar net kartono. Jei norite būti tikrai taupus, „Cherry MX“ parduoda jungiklio testerio/mėginių ėmimo rinkinį „Amazon“ ( JK ). Jums reikės 4 M5 x 35 mm varžtų ir 4 M5 veržlių. Žinoma, galite juos pakeisti tinkama alternatyva.

„Max“ klaviatūros klavišas, „Cherry MX“ jungiklis, testerio rinkinys (9 jungikliai „Pro Sampler Tester Kit“) PIRKITE DABAR AMAZON

Jei gaminate savo dėklą, turite žinoti vieną svarbią detalę: „Cherry MX“ jungikliai yra tvirtinami į jų tvirtinimo angas. Jiems reikia 14 x 14 mm (0,551 colio) kvadratinės tvirtinimo angos, o plokštė neturi būti storesnė nei 1,5 mm (0,059 colio). Nuklyskite per toli nuo šių matmenų ir jūsų jungikliai gali būti netinkamai sumontuoti.

3D spausdintas korpusas yra dviejų dalių - viršuje ir apačioje. Įstumkite „Cherry MX“ jungiklius į kvadratines skyles:

Įsitikinkite, kad jungikliai sumontuoti teisingai. Viršuje yra užrašas „CHERRY“, o apačioje - šiek tiek įpjova. Įdėkite 3 mm šviesos diodą į šį mažą lizdą:

Galite pastebėti, kad šviesos diodai geriausiai atrodo sumontuoti „aukštyn kojom“. Tai buvo mano naudojamų klavišų dangtelių atveju ir tai neturi įtakos jungikliams.

Dabar turėtumėte turėti devynis jungiklius su 9 šviesos diodais. Nereikia klijuoti nė vienos iš šių dalių. Lydmetalis laikys šviesos diodus, o trintis - jungiklius.

Tada įsukite šviesos diodų laikiklį (kol kas palikite šviesos diodą pašalintą). Baigę surinkti korpusą vėliau, sukūrę grandinę.

Circuit

Ši grandinė pastatyta ant juostos. Tai puikiai tinka pusiau nuolatinėms grandinėms statyti be spausdinimo plokštės (PCB) išlaidų. Tai tiesiog stiklo pluošto gabalas su vario takeliais, einančiais lygiagrečiai viena kryptimi. Šie takeliai gali būti lituojami ir pjaustomi. Pjovimo takelį galima atlikti specialiu įrankiu arba mažu grąžtu.

Nelabai pasitikite litavimu? Pirmiausia pažvelkite į šiuos paprastus projektus.

Štai juostos išdėstymas (išskyrus galinius laidus):

Būtinai nupjaukite pėdsakus po rezistoriais ir „Arduino“. Kadangi gali būti labai sunku perskaityti juostos plokštės grandinę, čia yra duonos lentos versija:

Tvirtai tinka suspausti visus komponentus į tokią mažą erdvę. Iškirpkite savo juostos kampus taip:

Tai turėtų gerai tilpti į dėklo apačią:

Įsitikinkite, kad takeliai eina vertikaliai.

Prijunkite anodą ( ilga koja, teigiama ) šviesos diodą prie 200 omų rezistoriaus ir tada prie +5 V. Prijunkite katodą ( trumpa koja, neigiama ) į žemę. Uždenkite kojas termiškai susitraukiančia mova ir įstumkite į LED laikiklį. Nereikia jokių klijų, tačiau jūsų LED laikiklis gali būti ne stumiamas, todėl gali tekti pritaikyti šias instrukcijas.

Galbūt norėsite čia naudoti dviejų spalvų šviesos diodą-tai leis jums nustatyti du ar daugiau jungiklių bankų, kurių kiekvienam bankui bus skirtingos spalvos būsenos šviesos diodas.

Dabar atėjo laikas lituoti visus raktų dangtelių šviesos diodus. Jie naudojami tik tam, kad klavišai švytėtų, todėl, jei norite, galite juos praleisti, ir jie neturi būti prijungti prie skaitmeninio kaiščio, o tik maitinimas. Sujunkite visus anodus ir visus katodus. Pasimokykite iš mano klaidos - tai daug lengviau padaryti prieš jungiant jungiklius! Prijunkite anodus prie +5 V, naudodami 220 omų rezistorių, ir katodus prie žemės. Šie šviesos diodai yra prijungti lygiagrečiai. Štai tik šių šviesos diodų grandinė:

Naudokite nedidelį termiškai susitraukiančio vamzdžio gabalėlį, kad uždengtumėte ryšį tarp šviesos diodų ir „Arduino“:

Įjunkite „Arduino“, kad patikrintumėte, ar veikia visi šviesos diodai. Jums nereikia įkelti jokio kodo. Jei bet kuris šviesos diodas neveikia, eikite ir dar kartą patikrinkite laidus.

Dabar prijunkite jungiklius. Jie turi būti prijungti per 10 k rezistorių, kitaip „Arduino“ mirs. Tai vadinama mirusiu trumpu - +5 V patenka tiesiai į žemę, ir viskas, kas lieka iš jūsų „Arduino“, bus dūmų dvelksmas (patikėk manimi, aš vieną jau nužudžiau, kad nereikėtų). Štai vieno jungiklio grandinė:

Ši grandinė yra vienoda visiems devyniems jungikliams. Prijunkite jungiklius prie skaitmeninių kaiščių nuo dviejų iki dešimties, kiekvienas turi savo 10K rezistorių prie žemės. Būkite atsargūs, lituodami „Cherry MX“ jungiklius, jie gali būti šiek tiek trapūs, man lūžo keli smeigtukai. Galbūt norėsite juos lituoti tiesiai prie kitos juostos, tačiau galiniai laidai vis tiek tinka.

Tiek to laidams. Galbūt norėsite prijungti B tipo USB lizdą, tačiau mažus kaiščius ant jų dažnai gali būti gana sunku lituoti. Jei nenorite to daryti, nesijaudinkite. „Arduino“ mikro USB jungtis puikiai tinka važiuoklės angai. Jei esate šiek tiek sutrikęs dėl skirtingų USB tipų, įsitikinkite suprasti skirtumus .

Galiausiai dar kartą patikrinkite, ar jūsų grandinė yra teisinga. Trumpas gali lengvai sunaikinti „Arduino“, ir tai gali būti lengva padaryti naudojant juostelę.

Kodas

Dabar patikrinkite, ar grandinė yra teisinga. Patartina tai padaryti prieš tęsiant, kad galėtumėte išspręsti visas problemas dabar, kol galite. Įkelkite šį bandymo kodą (nepamirškite pasirinkti tinkamos plokštės ir prievado iš Įrankiai > Lenta ir Įrankiai > Uostas meniu):

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

Jei pakeisite grandinę, gali tekti pakeisti kaiščius.

Įkėlę atidarykite serijinį monitorių ( viršutinis dešinysis > Serijinis monitorius ). Po vieną paspauskite kiekvieną mygtuką. Turėtumėte matyti serijinį monitorių, rodantį paspausto mygtuko numerį. Kaip ir naudojant šviesos diodą, jei jūsų kompiuteris skundžiasi, kad per daug srovės, arba šviesos diodai užgęsta paspaudus mygtuką, nedelsdami atjunkite! Kažkur grandinėje turite trumpą jungtį, dar kartą patikrinkite, ar grandinė yra teisinga ir ar nėra jungčių tarp jungčių.

Jei viskas veikia, eikite į priekį ir įdėkite grandinę į dėžę. Galbūt norėsite naudoti klijų tepalą, kad pritvirtintumėte grandinę (nors laidai puikiai laikėsi mano). Taip pat užsukite dangtelį.

Kad „Arduino“ atrodytų kaip klaviatūra, labai paprasta. Jei naudojate „Nano“ arba „UNO“, perprogramuosite „Arduino“ naudodami Įrenginio programinės įrangos atnaujinimas (DFU). Paprastai tai naudojama naujai programinei įrangai atnaujinti „Arduino“. Jūs ketinate jį naudoti, kad „Arduino“ mirksėtų su nauja programine įranga, kuri privers jį veikti kaip klaviatūra. Tai čia nebus aptarta, nes tai gana sudėtinga užduotis. The „Arduino“ svetainė turi gerą pamoką tam.

„Arduino Pro Micro“ labai palengvina šį žingsnį. Logika, reikalinga imituoti USB klaviatūrą, jau yra integruota į procesorių, todėl viskas taip paprasta, kaip parašyti kodą!

Pirmiausia nustatykite raktus:

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

Tai masyvas, kuriame yra visi kaiščiai, prie kurių yra prijungti mygtukai. Jei naudojote daugiau ar mažiau mygtukų arba naudojote skirtingus kaiščius, pakeiskite vertes čia.

Masyvas-tai bendraminčių dalykų rinkinys. Kompiuteriai gali optimizuoti jūsų kodą, kad juos greitai pasiektų, ir pagreitina kodo rašymo procesą.

Dabar inicijuokite visus kaiščius kaip įvestis:

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

Tai sako „Arduino“, kad visi masyvo kaiščiai yra įėjimai. Tam naudojama kilpa, o ne rašymas pinMode (2, Įvestis) devynis kartus, tereikia parašyti vieną kartą. Tai taip pat ragina Klaviatūra.pradėti . Tai sukuria funkciją, integruotą į „Arduino“ biblioteką, specialiai sukurtą klaviatūros emuliacijai.

Sukurkite metodą, vadinamą readButton :

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

Tai užtraukia smeigtuką ir patikrina, ar jis buvo paspaustas, ar ne. Tai tiesiog grįžta TIESA arba NETIESA . Jame taip pat yra keletas programinės įrangos išjungimas -paprastas atidėjimas ir pakartotinis jungiklio patikrinimas užtikrina, kad mygtukas tikrai buvo paspaustas.

Dabar kitas kilpai vadinamas viduje tuštumos kilpa () :

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

Vėlgi, tai apima kiekvieną masyvo elementą ir patikrina, ar jis buvo paspaustas. Tai daro vadinama readButton metodas, kurį sukūrėte anksčiau. Jei buvo paspaustas mygtukas, jis perduoda tą PIN kodą kitam metodui, vadinamam 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;
}
}

Tai patikrina PIN kodą naudodami a jungiklis pareiškimas. Perjungti teiginius (kartais vadinami jungiklio dėklas ) yra panašūs į an jei teiginį, tačiau jie yra naudingi tikrinant, ar vienas dalykas (šiuo atveju PIN kodas) yra lygus vienam iš kelių skirtingų rezultatų. Iš esmės jie yra daug greičiau apskaičiuojami.

Pagrindiniai komponentai yra šio jungiklio teiginyje. Klaviatūra.println rašo tekstą į kompiuterį taip, tarsi fiziškai įvedėte kiekvieną klavišą. Klaviatūra.spausti paspaudžia ir laiko vieną klavišą. Nepamirškite jų atleisti naudodami Keyboard.releaseAll po trumpo delsimo!

nemokama teksto ir skambučių programa naudojant „Wi -Fi“

Štai visas kodas:

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

Be visų skaičių ir raidžių klavišų, „Arduino“ gali paspausti daugumą specialių klavišų Klaviatūros modifikatoriai . Tai ypač naudinga paspaudus sparčiuosius klavišus. „Arduino“ svetainėje yra naudingas sąrašas .

Dabar belieka sukurti keletą nuorodų. Tai galite susieti su esamais sparčiaisiais klavišais, pvz Viskas + F4 (uždarykite programą „Windows“) arba Cmd + Q (uždarykite programą „macOS“). Arba būtinai perskaitykite mūsų galutinis sparčiųjų klavišų vadovas , kaip sukurti „Windows“ sparčiuosius klavišus ir kiekvieną „Chromebook“ nuorodą Norėdami pradėti kurti savo sparčiuosius klavišus.

Ar sukūrėte savo nuorodų dėžutę? Praneškite man komentaruose, norėčiau pamatyti keletą nuotraukų!

Tikimės, kad jums patiks mūsų rekomenduojami ir aptarti dalykai! MUO turi filialų ir remiamų partnerysčių, todėl mes gauname dalį pajamų iš kai kurių jūsų pirkinių. Tai neturės įtakos jūsų mokamai kainai ir padės mums pasiūlyti geriausias produktų rekomendacijas.

Dalintis Dalintis „Tweet“ Paštu Štai kodėl FTB paskelbė įspėjimą dėl „Hive Ransomware“

FTB paskelbė įspėjimą apie ypač bjaurią išpirkos programinę įrangą. Štai kodėl turite būti ypač atsargūs dėl „Hive“ išpirkos programos.

Skaityti toliau
Susijusios temos
  • Pasidaryk pats
  • Klaviatūra
  • Klaviatūros nuorodos
  • Arduino
Apie autorių Joe Coburn(Paskelbti 136 straipsniai)

Joe yra baigęs informatikos studijas Linkolno universitete, JK. Jis yra profesionalus programinės įrangos kūrėjas, o kai neskraido bepiločiais orlaiviais ir nerašo muzikos, jį dažnai galima rasti fotografuojant ar kuriant vaizdo įrašus.

Daugiau iš Joe Coburn

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia