Lag dine egne tilpassede snarveiknapper med en Arduino

Lag dine egne tilpassede snarveiknapper med en Arduino

Den ydmyke Arduino kan gjøre mange ting, men visste du at den kan etterligne et USB -tastatur? Du kan kombinere de vanskelige å huske lange hurtigtastene til en enkelt tilpasset hurtigtast, med denne enkle kretsen. Her er sluttresultatet:





Har du aldri brukt en Arduino før? Sjekk ut vår komme i gang guide først.





Hva trenger du

Her er hva du trenger for å lage dette prosjektet:





  • 1 x Arduino Pro Micro.
  • Midlertidige knapper eller tastaturknapper.
  • 10K ohm motstander.
  • Assorterte tilkoblingskabler.
  • 1 x 220 ohm motstander.
  • 1 x 5 mm (0,197 tommer) LED.
  • 1 x 5 mm LED -holder.

Du trenger en veldig spesifikk Arduino for dette prosjektet. Jeg bruker en Pro Micro Siden de er så små og billige, trenger du en Arduino som har USB-seriell innebygd i prosessoren (Atmega32u4). Det er mulig å bygge dette prosjektet med andre Arduinos, for eksempel en UNO eller Nano, men det krever mye hardt arbeid å blinke bios på nytt og fikle for å få ting til å fungere. Kloner fra andre Arduino -modeller fungerer vanligvis ikke i det hele tatt, men en Pro Micro -klon er også bra.

OSOYOO Pro Micro ATmega32U4 5V/16MHz modulkort med 2 raders topptekst Bytt ut med ATmega328 Pro Mini for Arduino KJØP NÅ PÅ AMAZON

Du trenger en øyeblikkelig knapp, en 10K ohm motstand og passende tilkoblingstråd for hver knapp du vil bruke. Jeg bruker imidlertid mekaniske tastaturbrytere fra Cherry MX for de egentlige snarveiknappene noen bryteren vil gjøre, forutsatt at den er øyeblikkelig og ikke låser seg.



Du kan trenge noen andre ting, avhengig av hvordan du bygger dette. Hvis du vil prototype det, trenger du en loddefritt brødbrett . Det er verdt å bruke pengene på en god en - de kan noen ganger være veldig upålitelige. Hvis du vil bokse dette opp, vil du kjøpe noen stripboard.

Bygg plan

Slik fungerer dette. Arduino vil bli programmert til å fungere som et USB -tastatur - så langt det gjelder datamaskinen din. Flere knapper koblet til Arduino sender viktige kommandoer til datamaskinen din. Du vil bare trykke på en knapp, men datamaskinen din tror du har trykket Alt > F4 , for eksempel.





Velge en bryter

Det er flere varianter av brytere i MX -serien. Dette nettstedet gir en utmerket introduksjon, men de kommer i hovedsak til støy og trykk. Noen modeller krever mer kraft for å trykke, og noen modeller gir en mekanisk 'klikk' -lyd når den trykkes. Jeg har brukt Cherry MX Browns, som ikke lar fra seg når den trykkes. De har alle de samme dimensjonene, så velg hvilken som helst modell du liker (eller bland og match) uten bekymringer.

Du må selvfølgelig også kjøpe noen nøkkelhett, og det er en verden av tilpassede design der ute å velge mellom - vi kjøpte fra KeyboardCo i Storbritannia





Saken

Jeg har 3D -utskrevet denne saken, og du kan laste den ned .STL filer fra Thingiverse . Ikke bekymre deg hvis du ikke eier en 3D -skriver, du kan fortsatt bygge denne. Mange nettsteder tilbyr 3D -utskriftstjenester, for eksempel 3D -hubber eller Shapeways . Alternativt er dette et veldig enkelt etui, du kan lage din egen av plast, perspex, tre eller til og med papp. Hvis du vil være veldig sparsom, selger Cherry MX en switch tester/sampler satt på Amazon ( Storbritannia ). Du trenger 4 M5 x 35 mm bolter og 4 M5 muttere. Du kan selvfølgelig erstatte disse med et passende alternativ du har.

Max Keyboard Keycap, Cherry MX Switch, Tester Kit (9 switcher Pro Sampler Tester Kit) KJØP NÅ PÅ AMAZON

Hvis du lager din egen sak, er det en viktig detalj du trenger å vite: Cherry MX-brytere er en push-fit i monteringshullene. De krever et 14 x 14 mm (0,551 tommer) firkantet monteringshull, der platen ikke er tykkere enn 1,5 mm (0,059 tommer). Hvis du er for langt unna disse dimensjonene, kan det hende at bryterne ikke lenger er riktig montert.

3D -trykt etui er i to deler, toppen og bunnen. Skyv Cherry MX -bryterne inn i de firkantede hullene:

Sørg for å montere bryterne riktig vei. Toppen har ordene 'CHERRY' på, og bunnen har et lite hakk. Sett inn en 3 mm LED i dette lille sporet:

Du vil kanskje oppleve at lysdiodene ser best ut montert 'opp ned'. Dette var tilfellet for nøkkelhettene jeg brukte, og det påvirker ikke bryterne i det hele tatt.

Du bør nå ha ni brytere med 9 lysdioder. Det er ikke nødvendig å lime noen av disse delene inn. Loddetinn holder lysdiodene, og friksjon holder bryterne.

Deretter skruer du inn LED -feste (la LED -en være fjernet for nå). Du vil fullføre monteringen av saken senere, når kretsen er bygget.

Kretsen

Denne kretsen er bygget på stripboard. Dette er utmerket for å bygge semi-permanente kretser, uten kostnadene for et kretskort (PCB). Det er ganske enkelt et glassfiberstykke med kobberspor som går parallelt i en retning. Disse sporene kan loddes til, samt kuttes. Skjæring av et spor kan gjøres med et spesialverktøy eller en liten borekrone.

Ikke for trygg på lodding? Ta en titt på disse enkle prosjektene først.

Her er stripboardoppsettet (ekskluderer etterfølgende leads):

Sørg for å kutte sporene under motstandene og Arduino. Siden det kan være veldig vanskelig å lese en tavle -krets, her er en breadboard -versjon:

Det er en tett passform å klemme alle komponentene inn i et så lite mellomrom. Klipp av hjørnene på tavlen slik:

Dette skal passe pent inn i bunnen av saken:

Sørg for at sporene går vertikalt.

Koble anoden ( langt bein, positivt ) på LED -en til 200 ohm motstanden og deretter til +5 V. Koble til katoden ( kort ben, negativt ) til bakken. Dekk bena med varmekrympende ermer og skyv deretter inn i LED -holderen. Det er ikke behov for lim, men LED-holderen din er kanskje ikke en push-fit, så du må kanskje tilpasse disse instruksjonene.

Det kan være lurt å bruke en tofarget LED her i stedet-dette lar deg sette opp to eller flere brytere, med en ulik farget status-LED for hver bank.

Nå er det på tide å lodde alle lysdiodene til nøkkelhettene. Disse brukes utelukkende for å få tastene til å lyse, så du kan hoppe over dem hvis du vil, og de trenger ikke å være koblet til en digital pin, bare strøm. Koble alle anodene sammen, og alle katodene sammen. Lær av min feil - det er mye lettere å gjøre dette før du kobler bryterne! Koble anodene til +5 V om en 220 ohm motstand, og katodene til jord. Disse lysdiodene er koblet parallelt. Her er kretsen bare for disse lysdiodene:

Bruk et lite stykke krympeslange for å dekke forbindelsen mellom lysdiodene og Arduino:

Slå på Arduino for å teste at alle lysdiodene fungerer. Du trenger ikke laste opp noen kode. Hvis noen lysdioder ikke fungerer, kan du gå og sjekke ledningene dine.

Slå nå på bryterne. Disse må kobles gjennom en 10k motstand, ellers dør Arduino. Dette kalles en død kort - +5 V går direkte i bakken, og alt som gjenstår av din Arduino vil være et røykpust (tro meg, jeg drepte en allerede, så du trenger ikke). Her er kretsen for en bryter:

Denne kretsen er den samme for alle ni brytere. Koble bryterne til digitale pinner to til ti, hver med sin egen 10K motstand til jord. Vær forsiktig med å lodde Cherry MX -brytere, de kan være litt skjøre, jeg hadde flere pinner på meg. Det kan være lurt å lodde disse direkte til noen flere stripboard, men bakledninger er fortsatt egnet.

Det er det for ledningene. Du vil kanskje montere en USB type B hunkontakt, men de små pinnene på dem kan ofte være ganske vanskelige å lodde til. Hvis du ikke ønsker å gjøre dette, ikke bekymre deg. Micro USB -kontakten på Arduino passer pent til hullet i kabinettet. Hvis du er litt forvirret om de forskjellige USB -typene, må du sørge for det forstå forskjellene .

Til slutt, dobbeltsjekk kretsen din er riktig. En kort kan lett ødelegge en Arduino, og det kan være enkelt å gjøre med stripboard.

Koden

Test nå at kretsen er riktig. Det er en god idé å gjøre dette før du fortsetter, slik at du kan fikse eventuelle problemer nå mens du kan. Last opp denne testkoden (ikke glem å velge riktig kort og port fra Verktøy > Borde og Verktøy > Havn menyer):

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

Du må kanskje endre pinnene hvis du har endret kretsen.

Når den er lastet opp, åpner du den serielle skjermen ( øverst til høyre > Seriell skjerm ). Trykk på hver knapp en etter en. Du bør se den serielle skjermen vise nummeret på knappen du trykket på. Akkurat som med LED -en, hvis datamaskinen din klager over å trekke for mye strøm, eller lysdiodene slukker når du trykker på en knapp, må du koble fra umiddelbart! Du har en kort et sted i kretsen, dobbeltsjekk at kretsen er riktig og at det ikke er noen shorts mellom tilkoblingene.

Hvis alt fungerer, fortsett og sett kretsen i esken. Det kan være lurt å bruke en klatt lim for å holde kretsen på plass (selv om ledningene holdt min fine). Bolt på lokket også.

Det er veldig enkelt å få Arduino til å se ut som et tastatur. Hvis du bruker en Nano eller UNO, kommer du til å omprogrammere Arduino ved hjelp av Enhetens fastvareoppdatering (DFU). Dette brukes vanligvis til å blinke ny fastvare til Arduino. Du kommer til å bruke den til å blinke Arduino med en ny fastvare som får den til å fungere som et tastatur. Dette vil ikke bli dekket her, da det er en ganske kompleks oppgave. De Arduino nettsted har en god opplæring for dette.

Arduino Pro Micro gjør dette trinnet veldig enkelt. Logikken som kreves for å etterligne et USB -tastatur er allerede innebygd i prosessoren, så det er så enkelt som å skrive litt kode!

Sett først opp tastene:

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

Dette er en matrise som inneholder alle pinnene knappene er koblet til. Hvis du har brukt flere eller færre knapper eller brukt forskjellige pins, endrer du verdiene her.

En matrise er en samling av likesinnede ting. Datamaskiner kan optimalisere koden din for å få tilgang til dem raskt, og de fremskynder kodeskrivingsprosessen.

Initialiser nå alle pinnene som innganger:

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

Dette forteller Arduino at alle pinnene i matrisen er innganger. En sløyfe brukes til å gjøre dette, snarere enn å skrive pinMode (2, INNGANG) ni ganger, trenger du bare å skrive det en gang. Dette kaller også Tastatur. Begynte . Dette setter opp en funksjon innebygd i Arduino -biblioteket, designet spesielt for å etterligne et tastatur.

Lag en metode kalt readButton :

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

Dette tar en nål, og sjekker om den har blitt trykket eller ikke. Det kommer rett og slett tilbake EKTE eller FALSK . Den inneholder også noen programvare debouncing -en enkel forsinkelse og deretter å kontrollere bryteren på nytt sikrer at knappen virkelig ble trykket.

Nå kalles en annen for loop inne hulrom () :

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

Igjen går dette over hvert element i matrisen og sjekker om det har blitt trykket. Det gjør dette ved å kalle readButton metoden du opprettet tidligere. Hvis du har trykket på en knapp, overfører den PIN -koden til en annen metode som kalles 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;
}
}

Dette sjekker pin -nummeret ved hjelp av a bytte om uttalelse. Bytt uttalelser (noen ganger kalt bryteretui ) ligner på en hvis uttalelse, men de er nyttige for å sjekke at én ting (i dette tilfellet pinnummeret) er lik ett av flere forskjellige utfall. I hovedsak er de mye raskere å beregne.

Hovedkomponentene er inne i denne brytererklæringen. Keyboard.println skriver tekst til datamaskinen som om du fysisk skrev hver nøkkel. Tastatur. Trykk trykker og holder inne én tast. Ikke glem å slippe dem med Keyboard.releaseAll etter en kort forsinkelse!

andre videosøkemotorer enn youtube

Her er hele koden:

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

I tillegg til alle tall- og bokstavtastene, kan Arduino trykke på de fleste spesialtastene som kalles Tastaturmodifikatorer . Disse er spesielt nyttige for å trykke på hurtigtaster. Arduino -nettstedet har en nyttig liste .

Nå gjenstår bare å lage noen snarveier. Du kan tilordne dette til eksisterende snarveier, for eksempel Alt + F4 (lukk program i Windows) eller Cmd + Sp (avslutt programmet macOS). Alternativt må du lese vår ultimate hurtigtastveiledning , hvordan du oppretter Windows -snarveier og hver Chromebook -snarvei for å komme i gang med å lage dine egne snarveier.

Har du laget din egen snarvei? Gi meg beskjed i kommentarene, jeg vil gjerne se noen bilder!

Vi håper du liker elementene vi anbefaler og diskuterer! MUO har tilknyttede og sponsede partnerskap, så vi mottar en andel av inntektene fra noen av kjøpene dine. Dette påvirker ikke prisen du betaler, og hjelper oss med å tilby de beste produktanbefalingene.

Dele Dele kvitring E -post Her er hvorfor FBI utstedte en advarsel for Hive Ransomware

FBI utstedte en advarsel om en spesielt ekkel stamme av ransomware. Her er hvorfor du må være spesielt forsiktig med Hive ransomware.

Les neste
Relaterte temaer
  • DIY
  • Tastatur
  • Tastatursnarveier
  • Arduino
Om forfatteren Joe Coburn(136 artikler publisert)

Joe er utdannet i informatikk fra University of Lincoln, Storbritannia. Han er en profesjonell programvareutvikler, og når han ikke flyr droner eller skriver musikk, kan han ofte bli funnet å ta bilder eller produsere videoer.

Mer fra Joe Coburn

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere