Reklame

Den ydmyge Arduino kan gøre en masse ting, men vidste du, at den kan efterligne et USB-tastatur? Du kan kombinere de vanskelige 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 vejledning til at komme i gang Kom godt i gang med Arduino: En begynderguideArduino er en open source-elektronikprototypeplatform baseret på fleksibel, letanvendelig hardware og software. Det er beregnet til kunstnere, designere, hobbyister og enhver, der er interesseret 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 for at gøre dette projekt:

  • 1 x Arduino Pro Micro.
  • Øjeblikkelige knapper eller tastaturknapper.
  • 10K ohm-modstande.
  • Assorterede tilslutningsledninger.
  • 1 x 220 ohm-modstande.
  • 1 x 5 mm (0,177 tommer) LED.
  • 1 x 5mm LED holder.

Du har brug for 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 bygge dette projekt sammen med andre Arduinoer, f.eks. En UNO eller Nano, men det kræver en masse hårdt arbejde for at blinke bios og fikle om at få tingene til at fungere. Kloner fra andre Arduino-modeller fungerer normalt ikke overhovedet, men en Pro Micro-klon er også fin.

instagram viewer

OSOYOO Pro Micro ATmega32U4 5V / 16MHz modulplade med 2 rækkeboltehoved til arduino Leonardo Udskift ATmega328 Pro MiniOSOYOO Pro Micro ATmega32U4 5V / 16MHz modulplade med 2 rækkeboltehoved til arduino Leonardo Udskift ATmega328 Pro Mini Køb nu på Amazon $10.99

Du har brug for en øjeblikkelig knap, en 10K ohm-modstand og passende tilslutningstråd til hver knap, du vil bruge. Jeg bruger Cherry MX mekaniske tastaturafbrydere til de faktiske genvejsknapper, selvom nogen skift vil gøre, forudsat at det er øjeblikkeligt og ikke låser.

Du har muligvis brug for et par andre elementer, afhængigt af hvordan du bygger dette. Hvis du vil prototype den, har du brug for en loddemæssig brødbræt. Det er værd at bruge pengene på en god en - de kan undertiden være meget upålidelige. Hvis du vil bokse dette op, vil du købe noget stripboard.

Byg plan

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

Valg af en switch

Arduino Cherry MX

Der er flere variationer af switcher i MX-serien. Denne hjemmeside giver en fremragende introduktion, men de kommer i det væsentlige ned på støj og pres. Nogle modeller kræver mere kraft for at trykke, og nogle modeller giver en mekanisk “klik” -lyd, når der trykkes på dem. Jeg har brugt Cherry MX Browns, som ikke laver støj, når der trykkes på dem. De er alle de samme dimensioner, så vælg enhver model, du kan lide (eller bland og match) uden bekymring.

Du bliver selvfølgelig også nødt til at købe nogle nøglekapper, og der er en verden af brugerdefinerede design 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 denne. Mange websteder tilbyder 3D-udskrivningstjenester, f.eks 3D-hubs 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 sparsom, sælger Cherry MX en switch tester / sampler indstillet Amazon (UK). Du har brug for 4 M5 x 35 mm bolte og 4 M5 møtrikker. Du kan naturligvis erstatte disse med et passende alternativ, du har.

Max tastatur Keycap, Cherry MX-switch, Tester Kit (9 switches Pro Sampler Tester Kit)Max tastatur Keycap, Cherry MX-switch, Tester Kit (9 switches Pro Sampler Tester Kit) Køb nu på Amazon $14.99

Hvis du laver din egen sag, er der en vigtig detalje, du har brug for at vide: Cherry MX-afbrydere er en push-fit i deres monteringshuller. De kræver et 14 x 14 mm (0,551 inch) firkantet monteringshul, hvor pladen ikke er tykkere end 1,5 mm (0,059 inch). Skridt for langt fra disse dimensioner, og dine kontakter monteres muligvis ikke længere korrekt.

Genvejssag
Den 3D-trykte sag er i to dele, toppen og bunden. Skub Cherry MX-switchene ind i de firkantede huller:

Genvej Cherry MX Mount

Sørg for at montere afbryderne korrekt. Toppen har ordene "CHERRY" på, og bunden har et lille hak. Indsæt en 3 mm LED i denne lille åbning:

Genvej Cherry MX LED

Du kan muligvis opleve, at LED'erne ser bedst monteret “på hovedet”. Dette var tilfældet for de nøglekapsler, jeg brugte, og det påvirker slet ikke kontakterne.

Du skal nu have ni afbrydere med 9 lysdioder. Der er ingen grund til at lime nogen af ​​disse dele ind. Loddemetalt holder LED'erne, og friktion holder kontakterne.

Genvej Cherry MX All

Skru derefter LED-holderen ind (lad LED'en være fjernet i øjeblikket). Du vil være 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 bygning af semi-permanente kredsløb uden omkostningerne til et printkort (PCB). Det er simpelthen et stykke fiberglas med kobberspor, der løber parallelt i en retning. Disse spor kan loddes til og klippes. Skæring af et spor kan udføres med et specielt værktøj eller en lille borehul.

Ikke for selvsikker på lodning? Se på disse enkle projekter Lær hvordan du lodder med disse enkle tip og projekterEr du lidt skræmt af tanken om et varmt jern og smeltet metal? Hvis du vil begynde at arbejde med elektronik, bliver du nødt til at lære at lodde. Lad os hjælpe. Læs mere først.

Her er stripboardlayoutet (ekskluderer bageste ledninger):

Arduino genvej stripboard

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

Arduino genvejsbrødbræt

Det er en tæt pasform at skubbe alle komponenterne i en sådan lille plads. Klip hjørnerne på din stripboard som følger:

Genvejstribboard

Dette skal passe fint ind i bunden af ​​sagen:

Genvejstribboard i kasse

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

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

Genvejstatus-LED

Du ønsker muligvis at bruge en tofarvet LED her i stedet - dette giver dig mulighed for at opsætte to eller flere banker af afbrydere, med en anden farvet status-LED for hver bank.

Nu er det tid til at lodde alle lysdioder til nøgleknapperne. Disse bruges udelukkende til at få tasterne til at gløde, 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 anoder sammen og alle katoder sammen. Lær af min fejltagelse - det er meget nemmere at gøre dette, før du kobler kontakterne! Forbind anoderne til +5 V ved hjælp af en 220 ohm-modstand, og katoderne til jorden. Disse lysdioder er kabelforbundet parallelt. Her er kredsløbet kun for disse lysdioder:

Genvejsknap LED'er Kredsløb

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

Genvej LED Heatshrink

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

Genvej LED-test

Tag nu op kontakterne. Disse skal forbindes gennem 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 en puff af røg (tro mig, jeg dræbte en allerede, så du ikke behøver at være det). Her er kredsløbet for en switch:

Arduino genvejskredsløb

Dette kredsløb er det samme for alle ni afbrydere. Forbind kontakterne til digitale stifter to til ti, hver med deres egen 10K-modstand til jorden. Vær forsigtig med lodning af Cherry MX-afbrydere, de kan være lidt skrøbelige, jeg fik flere benbrud på mig. Du ønsker måske at lodde disse direkte til noget mere stripboard, men bageste ledninger er stadig egnede.

Det er det for ledningerne. Det kan være en god ide 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 pænt til hullet i chassiset. Hvis du er lidt forvirret over de forskellige USB-typer, skal du sørge for det forstå forskellene Forstå USB-kabeltyper, og hvilken der skal brugesHvorfor er der så mange forskellige USB-kabeltyper? Lær forskellene mellem USB-stiktyper, og hvordan man køber det bedste kabel. Læs mere .

Endelig skal du tjekke, at dit kredsløb er korrekt. En kort 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 ide 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øj > Bestyrelse og Værktøj > Havn menuer):

const int-knapper [] = {2,3,4,5,6,7,8,9,10}; // array af alle knapnåle ugyldig opsætning () {// læg din opsætningskode her for at køre en gang: 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 () {// læg din hovedkode her, for at køre gentagne gange: for (int i = 2; i <11; ++ i) {if (digitalRead (i) == HØJ) {// afbrydelse af software forbedrer nøjagtighedsforsinkelse (10); if (digitalRead (i) == HIGH) {// check switches Serial.print ("input"); Serial.println (i); forsinkelse (250); } } } }

Det kan være nødvendigt at skifte stifter, 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). Tryk på hver knap en efter en. Du skal se den serielle skærm vise nummeret på den knap, du tryk på. Ligesom med lysdioden, hvis din computer klager over at trække for meget strøm, eller lysdioderne slukkes, når du trykker på en knap, skal du straks afbryde forbindelsen! Du har et kort sted i kredsløbet, dobbeltkontrol, at kredsløbet er korrekt, og der er ingen shorts mellem forbindelserne.

Hvis alt fungerer, skal du gå videre og sæt kredsløbet i kassen. Det kan være en god ide at bruge et stykke lim til at holde kredsløbet på plads (selvom ledningerne holdes mine fint). Bolt også låget på.

At få Arduino til at være et tastatur er meget simpelt. Hvis du bruger en Nano eller UNO, planlægger du din Arduino igen Enheds Firmware-opdatering (DFU). Dette bruges normalt til at blinke ny firmware til Arduino. Du vil bruge den til at blinke Arduino med en ny firmware, der får den til at fungere som et tastatur. Dette vil ikke blive dækket her, da det er en ganske kompliceret opgave. Det Arduino websted har en god tutorial 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 så simpelt som at skrive noget kode!

Indstil først tasterne:

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

Dette er en matrix, der indeholder alle nålene, som knapperne er forbundet til. Hvis du har brugt flere eller mindre knapper eller brugt forskellige stifter, 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 stifter som input:

ugyldig opsætning () {// læg din opsætningskode her for at køre en gang: Keyboard.begin (); // opsætningstastatur for (int i = 2; i <11; ++ i) {// initilize pins pinMode (i, INPUT); } }

Dette fortæller Arduino, at alle stifter i matrixen er input. En løkke bruges til at gøre dette, snarere end at skrive pinMode (2, INPUT) ni gange skal du kun skrive det en gang. Dette kalder også Keyboard.begin. Dette sætter en funktion indbygget i Arduino-biblioteket, designet specifikt til at efterligne et tastatur.

Opret en metode kaldet readButton:

boolsk readButton (int pin) {// check og afbryd knapper hvis (digitalRead (pin) == HIGH) {forsinkelse (10); if (digitalRead (pin) == HØJ) {return true; }} returner falsk; }

Dette tager en nål og kontrollerer, om det er blevet trykket på eller ikke. Det vender ganske enkelt tilbage RIGTIGT eller FALSK. Det indeholder også nogle udsendelse af software - en simpel forsinkelse og derefter genkontrol af kontakten sikrer, at knappen virkelig blev trykket på.

Nu kaldes en anden til loop inde void loop ():

void loop () {// læg din hovedkode her, for at køre gentagne gange: for (int i = 2; i <11; ++ i) {// check knapper if (readButton (i)) {doAction (i); } } }

Igen, dette går over hvert element i matrixen og kontrollerer, om det er blevet trykket på. Det gør det ved at kaldes readButton metode, du oprettede tidligere. Hvis der er trykket på en knap, overfører den dette nummer til en anden kaldet metode doAction:

void doAction (int pin) {// udfør switch switch (pin) {sag 2: Keyboard.println ("drive.google.com"); pause; sag 3: Keyboard.println ("makeuseof.com"); pause; sag 4: // CMD + T (ny fane, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ( 't'); forsinkelse (100); Keyboard.releaseAll (); pause; sag 5: // din opgave her pause; sag 6: // din opgave her pause; sag 7: // din opgave her pause; sag 8: // din opgave her pause; sag 9: // din opgave her bryder; } }

Dette kontrollerer pin-nummeret ved hjælp af a kontakt udmelding. Skift udsagn (undertiden kaldet) skifte sag) ligner en hvis udsagn, men de er nyttige til at kontrollere, at en ting (i dette tilfælde pin-nummeret) er lig med et af flere forskellige resultater. I det væsentlige er de meget hurtigere at beregne.

De vigtigste komponenter er inde i denne switch-erklæring. Keyboard.println skriver tekst til computeren, som om du fysisk skrev hver tast. Keyboard.press trykker på og holder en tast nede. Glem ikke at frigive dem ved hjælp af Keyboard.releaseAll efter en kort forsinkelse!

Her er den fulde kode:

int-taster [] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; ugyldig opsætning () {// læg din opsætningskode her for at køre en gang: Keyboard.begin (); // opsætningstastatur for (int i = 2; i <11; ++ i) {// initilize pins pinMode (i, INPUT); } } void loop () {// læg din hovedkode her, for at køre gentagne gange: for (int i = 2; i <11; ++ i) {// check knapper if (readButton (i)) {doAction (i); } } } boolsk readButton (int pin) {// check og afbryd knapper, hvis (digitalRead (pin) == HIGH) {forsinkelse (10); if (digitalRead (pin) == HØJ) {return true; }} returner falsk; } ugyldigt doAction (int pin) {// udfør opgaver switch (pin) {case 2: Keyboard.println ("drive.google.com"); pause; sag 3: Keyboard.println ("makeuseof.com"); pause; sag 4: // CMD + T (ny fane, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ( 't'); forsinkelse (100); Keyboard.releaseAll (); pause; sag 5: // din opgave her pause; sag 6: // din opgave her pause; sag 7: // din opgave her pause; sag 8: // din opgave her pause; sag 9: // din opgave her bryder; } }

Ud over alle talt- og bogstavtaster kan Arduino trykke på de fleste af de specielle taster, der kaldes Tastaturmodifikatorer. Disse er især nyttige til at trykke på tastaturgenveje. Arduino-webstedet har en hjælpsom liste.

Nu er det kun tilbage at oprette nogle genveje. Du kan kortlægge dette til eksisterende genveje, f.eks alt + F4 (luk program i Windows) eller Cmd + Q (afslutte programmOSOS). Alternativt skal du sørge for at læse vores ultimativ guide til tastaturgenvej Windows-tastaturgenveje 101: Den ultimative guideTastaturgenveje kan spare dig for timer. Beher de universelle Windows-tastaturgenveje, tastaturtricks til specifikke programmer og et par andre tip til at fremskynde dit arbejde. Læs mere , hvordan man opretter Windows genveje Sådan opretter du Windows Desktop genveje på den nemme mådeSmarte skrivebordsgenveje kan spare dig for tankeløs sigtning gennem menuer og mapper. Vi viser dig hurtige og lette måder at oprette dem på. Læs mere , og hver Chromebook-genvej Hver Chromebook-tastaturgenvej, du nogensinde har brug forMaster Chrome OS med denne liste over alle vigtige Chromebook-tastaturgenveje, du nogensinde har brug for. Læs mere for at komme i gang med at lave dine egne genveje.

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

Joe er uddannet inden for datalogi fra University of Lincoln, UK. Han er en professionel softwareudvikler, og når han ikke flyver droner eller skriver musik, kan han ofte finde billeder og producerer videoer.