Lav dine egne tilpassede genvejsknapper med en Arduino

Lav dine egne tilpassede genvejsknapper med en Arduino

Den ydmyge Arduino kan mange ting, men vidste du, at den kan efterligne et USB -tastatur? Du kan kombinere de svære at huske lange tastaturgenveje til en enkelt brugerdefineret genvejstast med dette enkle kredsløb. Her er slutresultatet:





Har du aldrig brugt en Arduino før? Tjek vores startguide først.





Hvad du har brug for

Her er hvad du har brug for for at lave dette projekt:





  • 1 x Arduino Pro Micro.
  • Midlertidige knapper eller tastaturknapper.
  • 10K ohm modstande.
  • Assorterede tilslutningstråde.
  • 1 x 220 ohm modstande.
  • 1 x 5 mm (0,197 tommer) LED.
  • 1 x 5 mm LED -holder.

Du skal bruge en meget specifik Arduino til dette projekt. Jeg bruger en Pro Micro , da de er så små og billige, har du brug for en Arduino, der har USB-Serial indbygget i processoren (Atmega32u4). Det er muligt at opbygge dette projekt med andre Arduinos, f.eks. En UNO eller Nano, men det kræver meget hårdt arbejde at genblinke bios og rode rundt for at få tingene til at fungere. Kloner fra andre Arduino -modeller fungerer normalt slet ikke, men en Pro Micro -klon er også fin.

OSOYOO Pro Micro ATmega32U4 5V/16MHz modulkort med 2 rækkers benhoved Udskift med ATmega328 Pro Mini til Arduino KØB NU PÅ AMAZON

Du skal bruge en kortvarig knap, en 10K ohm modstand og passende tilslutningstråd til hver knap, du vil bruge. Jeg bruger dog mekaniske tastaturkontakter fra Cherry MX til de egentlige genvejsknapper nogen switch vil gøre, forudsat at det er kortvarigt og ikke låser.



Du kan få brug for et par andre ting afhængigt af hvordan du bygger dette. Hvis du vil prototype det, skal du bruge en loddet brødbræt . Det er værd at bruge pengene på en god - de kan nogle gange være meget upålidelige. Hvis du vil bokse dette op, vil du gerne købe noget stripboard.

Byg plan

Sådan fungerer dette. Arduino vil blive programmeret til at fungere som et USB -tastatur - hvad din computer angår, er det. Flere knapper forbundet til Arduino sender nøglekommandoer til din computer. Du vil kun trykke på en knap, men din computer vil tro, at du har trykket Alt > F4 , for eksempel.





Valg af switch

Der er flere variationer af switches i MX -serien. Denne hjemmeside giver en glimrende introduktion, men de kommer hovedsageligt til støj og tryk. Nogle modeller kræver mere kraft til at trykke på, og nogle modeller giver en mekanisk 'klik' lyd, når de trykkes på. Jeg har brugt Cherry MX Browns, som ikke larmer, når der trykkes på. De er alle de samme dimensioner, så vælg enhver model, du kan lide (eller bland og match) uden bekymring.

Du skal selvfølgelig også købe nogle nøglehætter, og der er en verden af brugerdefinerede designs derude at vælge imellem - vi købte fra KeyboardCo i Storbritannien





Sagen

Jeg har 3D -printet denne sag, og du kan downloade .STL filer fra Thingiverse . Bare rolig, hvis du ikke ejer en 3D -printer, du kan stadig bygge dette. Mange websteder tilbyder 3D -udskrivningstjenester, som f.eks 3D -hubs eller Shapeways . Alternativt er dette en meget enkel sag, du kan lave din egen af ​​plasticard, perspex, træ eller endda pap. Hvis du vil være virkelig sparsommelig, sælger Cherry MX en switch tester/sampler sat til Amazon ( Storbritannien ). Du skal bruge 4 M5 x 35 mm bolte og 4 M5 møtrikker. Du kan naturligvis erstatte disse med et passende alternativ, du har.

Max Keyboard Keycap, Cherry MX Switch, Tester Kit (9 switches Pro Sampler Tester Kit) KØB NU PÅ AMAZON

Hvis du laver din egen sag, er der en vigtig detalje, du skal vide: Cherry MX-switches er en push-fit i deres monteringshuller. De kræver et 14 x 14 mm (0,551 tommer) firkantet monteringshul, idet pladen ikke er tykkere end 1,5 mm (0,059 tommer). Væk for langt væk fra disse dimensioner, og dine kontakter kan ikke længere montere korrekt.

3D -printet etui er i to dele, toppen og bunden. Skub Cherry MX -switchene ind i de firkantede huller:

Sørg for at montere kontakterne den rigtige vej rundt. Toppen har ordene 'CHERRY' på, og bunden har et lille hak. Indsæt en 3 mm LED i denne lille slot:

Du vil måske opleve, at lysdioderne ser bedst monteret ud på hovedet. Dette var tilfældet for de keycaps, jeg brugte, og det påvirker slet ikke switchene.

Du skulle nu have ni kontakter med 9 lysdioder. Det er ikke nødvendigt at lime nogen af ​​disse dele ind. Loddetøjet holder lysdioderne, og friktion holder kontaktene.

Derefter skrues LED -fatningen i (lad lysdioden være fjernet for nu). Du er færdig med at samle sagen senere, når kredsløbet er bygget.

Kredsløbet

Dette kredsløb er bygget på stripboard. Dette er glimrende til opbygning af semi-permanente kredsløb uden omkostninger ved et printkort (PCB). Det er simpelthen et stykke glasfiber med kobberspor, der løber parallelt i en retning. Disse spor kan loddes til, samt skæres. Skæring af et spor kan udføres med et specielt værktøj eller et lille bor.

Ikke for sikker på lodning? Tag et kig på disse enkle projekter først.

Her er opslagstavlens layout (ekskl. Bagudledninger):

Sørg for at skære sporene under modstandene og Arduino. Da det kan være meget svært at aflæse et stripboard -kredsløb, er her en brødbrætversion:

Det er en tæt pasform at klemme alle komponenterne ind i et så lille rum. Skær hjørnerne af dit stripboard på følgende måde:

Dette skal passe pænt ind i bunden af ​​sagen:

Sørg for, at sporene kører lodret.

Tilslut anoden ( langt ben, positivt ) på LED'en til 200 ohm modstanden og derefter til +5 V. Tilslut katoden ( kort ben, negativt ) At give stuearrest. Dæk benene med varmekrympende ærmer, og skub derefter ind i LED -holderen. Der er ikke behov for lim, men din LED-holder er muligvis ikke en push-fit, så du skal muligvis tilpasse disse instruktioner.

Du vil måske bruge en tofarvet LED her i stedet-dette giver dig mulighed for at opsætte to eller flere switch-banker med en forskellig farvet status-LED for hver bank.

Nu er det tid til at lodde alle lysdioderne til tastaturet. Disse bruges udelukkende til at få tasterne til at lyse, så du kan springe dem over, hvis du vil, og de behøver ikke at være tilsluttet en digital pin, kun strøm. Forbind alle anoderne sammen og alle katoderne sammen. Lær af min fejl - det er meget lettere at gøre dette, før kontakterne tilsluttes! Tilslut anoderne til +5 V selvom en 220 ohm modstand, og katoderne til jord. Disse lysdioder er parallelforbundne. Her er kredsløbet kun for disse lysdioder:

Brug et lille stykke varmekrympeslange til at dække forbindelsen mellem lysdioderne og Arduino:

Tænd for Arduino for at teste, at alle lysdioder fungerer. Du behøver ikke uploade nogen kode. Hvis nogen lysdioder ikke virker, skal du gå og tjekke dine ledninger.

Træk nu kontakterne i. Disse skal forbindes via en 10k modstand, ellers dør Arduino. Dette kaldes en død kort - +5 V går direkte i jorden, og alt, hvad der er tilbage af din Arduino, vil være et røgstøv (tro mig, jeg dræbte en allerede, så du ikke behøver). Her er kredsløbet for en switch:

Dette kredsløb er det samme for alle ni kontakter. Tilslut kontakterne til digitale ben to til ti, hver med deres egen 10K modstand til jord. Vær forsigtig med at lodde Cherry MX -switche, de kan være lidt skrøbelige, jeg havde flere stifter brudt på mig. Du vil måske lodde disse direkte til nogle mere stripboard, men efterfølgende ledninger er stadig egnede.

Det er det for ledningerne. Du vil måske montere en USB type B hunstik, men de små stifter på dem kan ofte være ret svære at lodde til. Hvis du ikke ønsker at gøre dette, skal du ikke bekymre dig. Micro USB -stikket på Arduino passer pænt til hullet i kabinettet. Hvis du er lidt forvirret over de forskellige USB -typer, skal du sørge for dig forstå forskellene .

Endelig skal du kontrollere, om dit kredsløb er korrekt. En short kan let ødelægge en Arduino, og det kan være let at gøre ved hjælp af stripboard.

Koden

Test nu kredsløbet er korrekt. Det er en god idé at gøre dette, før du fortsætter, så du kan løse eventuelle problemer nu, mens du kan. Upload denne testkode (glem ikke at vælge det korrekte kort og port fra Værktøjer > Bestyrelse og Værktøjer > Havn menuer):

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 skal muligvis ændre stifterne, hvis du har ændret kredsløbet.

Når den er uploadet, skal du åbne den serielle skærm ( øverst til højre > Seriel skærm ). En efter en skal du trykke på hver knap. Du skal se den serielle skærm vise nummeret på den knap, du trykkede på. Ligesom med LED'en, hvis din computer klager over at trække for meget strøm, eller lysdioderne slukker, når du trykker på en knap, skal du straks afbryde forbindelsen! Du har en kort et sted i kredsløbet, dobbelttjek at kredsløbet er korrekt, og der er ingen shorts mellem forbindelserne.

Hvis alt fungerer, skal du fortsætte og sætte kredsløbet i kassen. Du vil måske bruge en klat lim til at holde kredsløbet på plads (selvom ledningerne holdt mit fint). Bolt også låget på.

Det er meget enkelt at få Arduino til at se ud som et tastatur. Hvis du bruger en Nano eller UNO, vil du omprogrammere din Arduino ved hjælp af Enheds firmwareopdatering (DFU). Dette bruges normalt til at blinke ny firmware til Arduino. Du kommer til at bruge den til at blinke Arduino med en ny firmware, der får det til at fungere som et tastatur. Dette vil ikke blive dækket her, da det er en ganske kompleks opgave. Det Arduino websted har en god vejledning til dette.

Arduino Pro Micro gør dette trin meget let. Den logik, der kræves for at efterligne et USB -tastatur, er allerede indbygget i processoren, så det er lige så enkelt som at skrive noget kode!

Indstil først nøglerne:

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

Dette er en matrix, der indeholder alle de ben, knapperne er forbundet til. Hvis du har brugt mere eller mindre knapper eller brugt forskellige ben, skal du ændre værdierne her.

En matrix er en samling af ligesindede ting. Computere kan optimere din kode for hurtigt at få adgang til dem, og de fremskynder kodeskrivningsprocessen.

Initialiser nu alle stifterne som input:

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 fortæller Arduino, at alle stifter i arrayet er input. En loop bruges til at gøre dette, snarere end at skrive pinMode (2, INPUT) ni gange, skal du kun skrive det én gang. Dette kalder også Tastatur. Begyndt . Dette opretter en funktion, der er indbygget i Arduino -biblioteket, designet specielt til at efterligne et tastatur.

Opret en metode kaldet readButton :

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

Dette tager en nål og kontrollerer, om der er blevet trykket på det eller ej. Det vender simpelthen tilbage SAND eller FALSK . Den indeholder også nogle software debouncing -en simpel forsinkelse og derefter genkontrol af kontakten sikrer, at der virkelig blev trykket på knappen.

Nu kaldes en anden for loop inde hulrum () :

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

Igen går dette over hvert element i arrayet og kontrollerer, om det er blevet trykket på. Det gør dette ved at kaldes readButton metode, du har oprettet tidligere. Hvis der er trykket på en knap, videregiver det nummeret til en anden metode kaldet 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 kontrollerer pinkoden ved hjælp af a kontakt udmelding. Skift udsagn (undertiden kaldet skifte sag ) ligner en hvis erklæring, men de er nyttige til at kontrollere, at en ting (i dette tilfælde pinkoden) er lig med et af flere forskellige resultater. I bund og grund er de meget hurtigere at beregne.

Hovedkomponenterne er inde i denne switch -erklæring. Tastatur. Println skriver tekst til computeren, som om du fysisk skrev hver nøgle. Tastatur. Tryk trykker på og holder en tast nede. Glem ikke at frigive dem ved hjælp af Keyboard.releaseAll efter en kort forsinkelse!

finde ud af, hvad slettet youtube -video var

Her er den fulde kode:

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

Ud over alle tal- og bogstavtasterne kan Arduino trykke på de fleste specialtaster, der kaldes Tastaturmodifikatorer . Disse er især nyttige til tryk på tastaturgenveje. Arduino -webstedet har en nyttig liste .

Nu er det kun tilbage at oprette nogle genveje. Du kan tilknytte dette til eksisterende genveje, f.eks Alt + F4 (luk program i Windows) eller Cmd + Q (afslut programmet macOS). Alternativt skal du læse vores ultimativ tastaturgenvejsguide , hvordan man opretter Windows -genveje og hver Chromebook -genvej at komme i gang med at lave dine egne genveje.

Har du oprettet din egen genvejsboks? Fortæl mig det i kommentarerne, jeg vil meget gerne se nogle billeder!

Vi håber, at du kan lide de ting, vi anbefaler og diskuterer! MUO har tilknyttede og sponsorerede partnerskaber, så vi modtager en andel af omsætningen fra nogle af dine køb. Dette påvirker ikke den pris, du betaler, og hjælper os med at tilbyde de bedste produktanbefalinger.

Del Del Tweet E -mail Her er hvorfor FBI udsendte en advarsel om Hive Ransomware

FBI udsendte en advarsel om en særlig grim stamme af ransomware. Her er hvorfor du skal være særlig forsigtig med Hive ransomware.

Læs Næste
Relaterede emner
  • gør det selv
  • Tastatur
  • Tastaturgenveje
  • Arduino
Om forfatteren Joe Coburn(136 artikler udgivet)

Joe er uddannet i datalogi fra University of Lincoln, UK. Han er en professionel softwareudvikler, og når han ikke flyver med droner eller skriver musik, kan han ofte findes tage fotos eller producere videoer.

Mere fra Joe Coburn

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere