Lav dine egne brugerdefinerede genvejsknapper med en Arduino

Den ydmyge Arduino kan gøre mange ting, men vidste du det kan efterligne et USB-tastatur? Du kan kombinere lange tastaturgenveje til en enkelt brugerdefineret genvejstast, med dette simple kredsløb.

Den ydmyge Arduino kan gøre mange ting, men vidste du det kan efterligne et USB-tastatur?  Du kan kombinere lange tastaturgenveje til en enkelt brugerdefineret genvejstast, med dette simple kredsløb.
Reklame

Den ydmyge Arduino kan gøre mange ting, men vidste du det kan efterligne et USB-tastatur? Du kan kombinere dem, der er vanskelige at huske lange tastaturgenveje i en enkelt brugerdefineret genvejstast, med dette simple kredsløb. Her er slutresultatet:

Har du aldrig brugt en Arduino før? Se vores startvejledning Vejledning Kom i gang med Arduino: En nybegyndervejledning Kom godt i gang med Arduino: En nybegyndervejledning Arduino er en open source elektronik prototypeplanlægning baseret på fleksibel, brugervenlig hardware og software. Det er beregnet til kunstnere, designere, hobbyister og alle interesserede i at skabe interaktive objekter eller miljøer. Læs mere først.

Hvad du har brug for

Arduino Genvejsdele
Her er hvad du har brug for til at gøre dette projekt:

  • 1 x Arduino Pro Micro.
  • Moment knapper eller tastatur knapper.
  • 10K ohm modstande.
  • Assorted hookup ledninger.
  • 1 x 220 ohm modstande.
  • 1 x 5 mm (0, 197 inch) LED.
  • 1 x 5mm 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, som f.eks. En UNO eller Nano, men det kræver meget hårdt arbejde at genopblussen bios og fiddling om at få ting til at fungere. Kloner fra andre Arduino modeller arbejder normalt ikke, men en Pro Micro klon er også fint.

OSOYOO Pro Micro ATmega32U4 5V / 16MHz modulkort med 2-rækkers hovedhoved til arduino Leonardo Udskift ATmega328 Pro Mini OSOYOO Pro Micro ATmega32U4 5V / 16MHz modulkort med 2-rækkers hovedhoved til arduino Leonardo Udskift ATmega328 Pro Mini Køb nu hos Amazon $ 8.99

Du skal bruge en øjeblikkelig knap, en 10K ohm modstand og en passende tilslutningskabel for hver knap, du vil bruge. Jeg bruger Cherry MX mekaniske tastaturkontakter til de faktiske genvejsknapper, selv om en hvilken som helst switch vil gøre det, så det er momentant og ikke låsende.

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

Build Plan

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

Valg af en switch

Arduino Cherry MX

Der er flere variationer af MX serie switche. Denne hjemmeside giver en fremragende introduktion, men de kommer i det væsentlige ned til støj og pres. Nogle modeller kræver mere kraft til at trykke, og nogle modeller gør en mekanisk "klik" lyd, når den trykkes. Jeg har brugt Cherry MX Browns, som ikke gør en lyd, når de trykkes. De er alle de samme dimensioner, så vælg en model, du kan lide (eller mix og matche) uden bekymring.

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

Sagen

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

Max Keyboard Keycap, Cherry MX Switch, O-Ring Pro Sampler Tester Kit Max Keyboard Keycap, Cherry MX Switch, O-Ring Pro Sampler Tester Kit Køb Nu På Amazon $ 19.99

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

Genvejstaske
Den 3D trykte taske er i to dele, toppen og bunden. Skub Cherry MX-omskifterne i de firkantede huller:

Genvej Cherry MX Mount

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

Genvej Cherry MX LED

Du kan opleve, at LED'erne ser bedst monteret "på hovedet". Dette var tilfældet for de keycaps, jeg brugte, og det påvirker slet ikke switcherne.

Du skal nu have 9 kontakter med 9 LED'er. Der er ingen grund til at lime nogen af ​​disse dele i. Loddet vil holde LED'erne, og friktion vil holde kontakten.

Genvej Cherry MX All

Derefter skrues i LED-monteringen (lad LED'en fjernes for nu). Du bliver færdig med at samle sagen senere, når kredsløbet er bygget.

Kredsløbet

Dette kredsløb er bygget på stripboard. Dette er fremragende til opbygning af halvfaste kredsløb, uden omkostninger til printkort (PCB). Det er simpelthen et glasfiberglas med kobberspor, der løber parallelt i en retning. Disse spor kan loddes til såvel som skåret. At skære et spor kan gøres med et specielt værktøj eller en lille borekrone.

Ikke for selvtillid til lodning? Kig på disse enkle projekter Lær at lodde med disse enkle tips og projekter Lær at lodde med disse enkle tips og projekter Er du lidt skræmt af tanken om et varmt jern og smeltet metal? Hvis du vil begynde at arbejde med elektronik, skal du lære at lodde. Lad os hjælpe. Læs mere først.

Her er stripboard layoutet (ekskluderer efterfølgende ledninger):

Arduino Genvejstastatur

Sørg for at skære sporene under modstandene og Arduino. Da det kan være meget svært at læse et stripboard kredsløb, her er en breadboard version:

Arduino Genvej Brødbræt

Det er en stram pasform til at klemme alle komponenterne ind i et så lille rum. Skær hjørnerne på dit stripboard som følger:

Genvej Stripboard

Dette skal passe ind i bunden af ​​sagen:

Genvej Stripboard i boks

Sørg for, at sporene løber lodret.

Tilslut lysdiodens anode ( langt ben, positivt ) til 200 ohm modstanden og derefter til +5 V. Tilslut katoden ( kort ben, negativ ) til jord. Dæk benene med varme krympe ærmer og derefter skubbe ind i LED holder. Der er ikke behov for nogen lim, men din LED-holder er muligvis ikke push-fit, så du bliver måske nødt til at tilpasse disse instruktioner.

Genvejslampe for genvej

Du kan i stedet bruge en bi-farve LED her i stedet - dette vil give dig mulighed for at konfigurere to eller flere banker af kontakter, med en anden farvet status LED for hver bank.

Nu er det tid til at lodde alle LED'erne til keycaps. Disse bruges udelukkende til at gøre tasterne lyse, så du kan springe over dem, hvis du vil, og de behøver ikke at være forbundet til en digital pin, kun strøm. Slut alle anoder sammen, og alle katodene sammen. Lær af min fejl - det er meget nemmere at gøre dette, før ledningerne kobles! Tilslut anodene til +5 V, selvom en 220 ohm modstand, og katoderne til jorden. Disse LED'er er koblet parallelt. Her er kredsløbet kun for disse LEDS:

Genvejsknapper LED-kredsløb

Brug et lille stykke varmekrympeslange til at dække forbindelsen mellem LED'erne og Arduino:

Genvej LED Heatshrink

Tænd for Arduino for at teste alle LED'ernes arbejde. Du behøver ikke at uploade nogen kode. Hvis nogen lysdioder ikke virker, skal du kontrollere og kontrollere dine ledninger.

Genvej LED-test

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

Arduino Genvejskreds

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

Det er det for ledningerne. Du kan ønske at montere en USB-type B-stik, men de små stifter på dem kan ofte være ret vanskelige at lodde til. Hvis du ikke ønsker at gøre dette, skal du ikke bekymre dig. Micro USB-stikket på Arduino passer perfekt til hullet i chassiset. Hvis du er lidt forvirret over de forskellige USB-typer, skal du sørge for at forstå forskellene. Forstå USB-kabeltyper og hvilken som skal bruges. Forstå USB-kabeltyper og hvilken som skal bruges. USB-kabels verden kan være lidt forvirrende, fordi der er så mange forskellige stiktyper. Her er alt hvad du behøver at vide for ikke at blive forvirret længere. Læs mere .

Endelig dobbeltkryd din kredsløb er korrekt. En kort kan nemt ødelægge en Arduino, og det kan være nemt at gøre ved hjælp af stripboard.

Koden

Test nu, at 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 rigtige kort og port fra Værktøjerne > Bestyr og Værktøjer > Portmenuer):

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

Det kan være nødvendigt at ændre stifterne, hvis du har ændret kredsløbet.

Når du er uploadet, skal du åbne seriel skærmen ( øverst til højre > Serial Monitor ). Én ad gangen trykker du på hver knap. Du skal se, at den serielle skærm viser nummeret på den knap, du trykker på. Ligesom med LED'en, hvis din computer klager over at trække for meget strøm, eller LED'erne slukker, når du trykker på en knap, skal du straks afbryde forbindelsen! Du har et kort sted i kredsløbet, dobbeltkryds kredsløbet er korrekt, og der er ingen shorts mellem forbindelser.

Hvis alting virker, skal du gå videre og sætte kredsløbet i boksen. Du vil muligvis bruge en klap lim til at holde kredsløbet på plads (selvom ledningerne holdt min i orden). Bolt låget på så godt.

At gøre Arduino til at være et tastatur er meget simpelt. Hvis du bruger en Nano eller UNO, skal du omprogrammere din Arduino ved hjælp af Device Firmware Update (DFU). Dette bruges normalt til at blinke ny firmware til Arduino. Du skal 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. Arduino hjemmeside har en god tutorial til dette.

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

Først skal du oprette nøglerne:

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

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

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

Start nu alle tappene 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 stifterne i arrayet er input. En sløjfe bruges til at gøre dette, så i stedet for at skrive pinMode (2, INPUT) ni gange, skal du kun skrive det en gang. Dette kalder også Keyboard.begin . Dette opretter en funktion indbygget i Arduino biblioteket, designet specielt til at emulere 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 den er blevet trykket eller ej. Det returnerer simpelthen TRUE eller FALSE . Det indeholder også noget softwareafspilning - en simpel forsinkelse, og derefter genkontrol af kontakten sikrer, at knappen virkelig blev trykket.

Nu kaldes en anden til sløjfe inde i void loop () :

 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 det over hvert element i arrayet og kontrollerer, om det er blevet presset. Det gør det ved at kalde ReadButton- metoden, du oprettede tidligere. Hvis der trykkes på en knap, passerer den det pågældende nummer 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 pinnummeret ved hjælp af en switch- sætning. Switch-sætninger (nogle gange kaldet switch case ) ligner en if- sætning, men de er nyttige til at kontrollere, at en ting (i dette tilfælde pin-nummeret) er lig med en af ​​flere forskellige resultater. I det væsentlige er de meget hurtigere at beregne.

Hovedkomponenterne er inde i denne switch statement. Keyboard.println skriver tekst til computeren som om du fysisk skrev hver nøgle. Keyboard.press presser og holder en nøgle. Glem ikke at frigive dem ved at bruge Keyboard.releaseAll efter en kort forsinkelse!

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 nummer- og bogstavnøglerne kan Arduino trykke på de fleste af de specielle taster, der hedder Keyboard Modifiers . Disse er særligt nyttige til at trykke på tastaturgenveje. Arduino hjemmeside har en nyttig liste.

Nu er alt, der er tilbage, at skabe nogle genveje. Du kan kortlægge dette til eksisterende genveje, f.eks. Alt + F4 (tæt program i Windows) eller Cmd + Q (afslut program macOS). Alternativt skal du sørge for at læse vores ultimative tastaturgenvejsvejledning Windows Tastaturgenveje 101: Den ultimative vejledning Windows Tastaturgenveje 101: Den ultimative guide Tastaturgenveje kan spare dig tid. Master de universelle Windows-tastaturgenveje, tastaturtricks til bestemte programmer og et par andre tips til at fremskynde dit arbejde. Læs mere, hvordan man opretter Windows genvejstaster Sådan oprettes Windows-genveje på skrivebordet på den nemme måde Sådan oprettes Windows-genveje på skrivebordet Easy Easy Smart genvejstaster kan spare dig ubevægelig sigtning gennem menuer og mapper. Vi viser dig hurtige og nemme måder at oprette dem på. Læs mere og alle Chromebook-genveje. Her er hver Chromebook-genvej. Du skal nogensinde have brug for enhver Chromebook-genvej, du nogensinde har brug for. Leder du efter en hovedliste over tastaturgenveje til din Chromebook? Her er hver nøglekombination, du nogensinde har brug for til Chrome OS! Læs mere for at komme i gang med at lave dine egne genveje.

Har du oprettet din egen genvejskasse? Lad mig vide i kommentarerne, jeg vil gerne se nogle billeder!

In this article