Annonse

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 hurtigtaster til en enkelt tilpasset snarveistast med denne enkle kretsen. Her er sluttresultatet:

Har du aldri brukt en Arduino før? Sjekk ut vår komme i gang guide Komme i gang med Arduino: En nybegynnerguideArduino er en åpen kildekode-prototypeplattform for elektronikk basert på fleksibel, brukervennlig maskinvare og programvare. Den er beregnet på kunstnere, designere, hobbyister og alle som er interessert i å lage interaktive objekter eller miljøer. Les mer først.

Hva trenger du

Arduino snarveisdeler
Dette er hva du trenger for å lage dette prosjektet:

  • 1 x Arduino Pro Micro.
  • Øyeblikkelige knapper eller tastaturknapper.
  • 10K ohm-motstander.
  • Assorterte tilkoblingsledninger.
  • 1 x 220 ohm motstander.
  • 1 x 5 mm (0,177 tommer) LED.
  • 1 x 5mm LED holder.

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

OSOYOO Pro Micro ATmega32U4 5V / 16MHz modultavle med 2 linjestykker for arduino Leonardo Erstatt ATmega328 Pro MiniOSOYOO Pro Micro ATmega32U4 5V / 16MHz modultavle med 2 linjestykker for arduino Leonardo Erstatt ATmega328 Pro Mini Kjøp nå på Amazon $10.99

Du trenger en øyeblikkelig knapp, en 10K ohm-motstand og passende tilkoblingsledning for hver knapp du vil bruke. Jeg bruker Cherry MX mekaniske tastaturbrytere for de faktiske snarveiknappene, selv om noen bryteren vil gjøre, forutsatt at den er øyeblikkelig og ikke sperrer.

Det kan hende du trenger noen få andre elementer, avhengig av hvordan du bygger dette. Hvis du vil prototype den, trenger du en loddetett brødplate. Det er verdt å bruke pengene på en god en - de kan noen ganger være veldig upålitelige. Hvis du vil bokse dette, vil du kjøpe noe stripboard.

Bygg plan

Slik fungerer dette. Arduino vil bli programmert til å fungere som et USB-tastatur - hva datamaskinen din angår. Flere knapper koblet til Arduino vil sende nøkkelkommandoer til datamaskinen din. Du vil bare trykke på en knapp, men datamaskinen din tror du har trykket på alt > F4, for eksempel.

Velge en bryter

Arduino Cherry MX

Det er flere varianter av brytere i MX-serien. Denne nettsiden gir en utmerket introduksjon, men de kommer i hovedsak ned på støy og trykk. Noen modeller krever mer kraft for å trykke, og noen modeller lager en mekanisk "klikk" -lyd når du trykker på den. Jeg har brukt Cherry MX Browns, som ikke gir noen lyd når de trykkes. De er alle de samme dimensjonene, så velg hvilken modell du vil (eller bland og match) uten bekymring.

Du må selvfølgelig også kjøpe noen nøkkelkapper, og det er en verden av tilpassede design der ute å velge mellom - vi kjøpte fra KeyboardCo in the UK.

Saken

Jeg har 3D skrevet ut denne saken, og du kan laste ned den STL filer fra Thingiverse. Ikke bekymre deg hvis du ikke eier en 3D-skriver, kan du fremdeles bygge denne. Mange nettsteder tilbyr 3D-utskriftstjenester, som 3D-nav eller Shapeways. Alternativt er dette en veldig enkel sak, du kan lage din egen av plast, perspex, tre eller til og med papp. Hvis du vil være veldig sparsommelig, selger Cherry MX en bryter tester / sampler satt på Amazon (Storbritannia). Du trenger 4 M5 x 35mm 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 brytere Pro Sampler Tester Kit)Max Keyboard Keycap, Cherry MX Switch, Tester Kit (9 brytere Pro Sampler Tester Kit) Kjøp nå på Amazon $14.99

Hvis du lager din egen sak, er det en viktig detalj du trenger å vite: Cherry MX-brytere er en push-fit i monteringshullene deres. De krever et 14 x 14 mm (0,551 tomme) kvadratisk monteringshull, med platen ikke tykkere enn 1,5 mm (0,059 tomme). Stre for langt fra disse dimensjonene, og bryterne kan ikke lenger monteres riktig.

Snarveisak
Den 3D-trykte saken er i to deler, toppen og bunnen. Skyv Cherry MX-bryterne inn i de firkantede hullene:

Snarvei Cherry MX Mount

Forsikre deg om at du monterer bryterne på riktig måte. På toppen har ordene “CHERRY” på, og bunnen har et lite hakk. Sett en 3mm LED i dette lille sporet:

Snarvei Cherry MX LED

Du kan synes at LED-lampene ser best montert “opp-ned”. Dette var tilfelle for tastaturene jeg brukte, og det påvirker ikke bryterne i det hele tatt.

Du skal nå ha ni brytere med 9 lysdioder. Det er ikke nødvendig å lim noen av disse delene inn. Loddetinn holder lysdiodene, og friksjonen holder bryterne.

Snarvei Cherry MX All

Neste, skru inn LED-festet (la lysdioden være fjernet for nå). Du vil fullføre montering av saken senere, når kretsen er bygget.

Kretsløpet

Denne kretsen er bygget på stripboard. Dette er utmerket for å bygge semi-permanente kretsløp, uten at det koster et printkort (PCB). Det er ganske enkelt et stykke glassfiber med kobberspor som går parallelt i en retning. Disse sporene kan loddes til og kuttes. Å kutte et spor kan gjøres med et spesialverktøy eller en liten borkrone.

Ikke for selvsikker på lodding? Se på disse enkle prosjektene Lær hvordan du lodder med disse enkle tipsene og prosjekteneBlir du litt skremt av tanken på et varmt jern og smeltet metall? Hvis du vil begynne å jobbe med elektronikk, trenger du å lære å lodde. La oss hjelpe. Les mer først.

Her er stripboardoppsettet (ekskluderer etterfølgende ledninger):

Arduino Shortcut Stripboard

Forsikre deg om at du klipper sporene under motstandene og Arduino. Siden det kan være veldig vanskelig å lese en stripboardkrets, er her en breadboard-versjon:

Arduino Shortcut Breadboard

Det er en tett passform å presse alle komponentene inn i en så liten plass. Klipp hjørnene på stripbordet slik:

Snarvei Stripboard

Dette skal passe pent inn i bunnen av saken:

Snarvei Stripboard in Box

Forsikre deg om at sporene kjører loddrett.

Koble anoden (lang etappe, positiv) av LED til 200 ohm motstand og deretter til +5 V. Koble katoden (kort ben, negativt) til bakken. Dekk bena med varmekrympende ermer og skyv deretter inn i LED-holderen. Det er ikke behov for noe lim, men LED-holderen din kan ikke være en push-fit, så du kan trenge å tilpasse disse instruksjonene.

Snarveistatus-LED

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

Nå er det på tide å lodde alle lysdioder for tastaturene. Disse brukes utelukkende for å få tastene til å gløde, slik at 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 til bryterne! Koble anodene til +5 V ved en 220 ohm motstand, og katodene til bakken. Disse LED-ene kobles parallelt. Her er kretsen bare for disse lysdiodene:

Hurtigknapp-LED-krets

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

Snarvei LED-varmekobling

Slå på Arduino for å teste alle LED-ene fungerer. Du trenger ikke laste opp noen kode. Hvis noen LED ikke fungerer, kan du dobbeltsjekke ledningene.

Snarvei LED-testing

Nå kobler du opp bryterne. Disse må kobles til via en 10k motstand, ellers vil Arduino dø. Dette kalles en død kort - +5 V går direkte i bakken, og alt som gjenstår av Arduinoen din vil være en røykpust (stol på meg, jeg drepte en allerede slik at du ikke trenger å). Her er kretsen for en bryter:

Arduino Shortcut Circuit

Denne kretsen er den samme for alle ni bryterne. Koble bryterne til digitale pinner to til ti, hver med sin egen 10K-motstand til bakken. 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 noe mer stripboard, men etterfølgende ledninger er fremdeles egnet.

Det er det for kablingen. Det kan være lurt å montere en USB-type B-stikkontakt, 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 i hullet i chassiset. Hvis du er litt forvirret over de forskjellige USB-typene, må du sørge for det forstå forskjellene Forstå USB-kabeltyper og hvilken du skal brukeHvorfor er det så mange forskjellige USB-kabeltyper? Lær forskjellene mellom USB-kontakttyper og hvordan du kjøper den beste kabelen. Les mer .

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

Koden

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

const int-knapper [] = {2,3,4,5,6,7,8,9,10}; // array of all button pins void setup () {// legg installasjonskoden din her, for å kjø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 () {// legg hovedkoden din her, for å kjøre gjentatte ganger: for (int i = 2; i <11; ++ i) {if (digitalRead (i) == HIGH) {// avvending av programvare forbedrer nøyaktighetsforsinkelse (10); if (digitalRead (i) == HIGH) {// sjekkbrytere Serial.print ("input"); Serial.println (i); forsinkelse (250); } } } }

Det kan hende du må bytte pinner hvis du har endret kretsen.

Når du er lastet opp, åpner du seriemonitoren (øverst til høyre > Seriell skjerm). Trykk på hver knapp én etter én. Du skal se den serielle monitoren vise nummeret på knappen du trykket på. Hvis datamaskinen klager over å trekke for mye strøm, eller lysdiodene slukkes når du trykker på en knapp, kobler du øyeblikkelig fra! Du har et kort sted i kretsen, dobbeltsjekke at kretsen er korrekt, og at det ikke er noen shorts mellom tilkoblingene.

Hvis alt fungerer, fortsett og legg kretsen i boksen. Det kan være lurt å bruke et stykke lim for å holde kretsen på plass (selv om ledningene holdt meg fin). Bolt lokket på også.

Å få Arduino til å virke som et tastatur er veldig enkelt. Hvis du bruker en Nano eller UNO, kommer du til å programmere Arduino ved å bruke Firmware-oppdatering av enheten (DFU). Dette brukes vanligvis til å blinke ny firmware til Arduino. Du kommer til å bruke den til å blinke Arduino med en ny firmware som gjør at den fungerer som et tastatur. Dette vil ikke bli dekket her, da det er en ganske kompleks oppgave. De Arduino nettsted har en god tutorial 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 en kode!

Sett først opp tastene:

int-taster [] = {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 mindre knapper eller brukt forskjellige pinner, 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 () {// legg installasjonskoden din her, for å kjøre en gang: Keyboard.begin (); // oppsetttastatur 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, så heller enn å skrive pinMode (2, INPUT) ni ganger, trenger du bare å skrive det en gang. Dette kaller også Keyboard.begin. Dette setter opp en funksjon som er innebygd i Arduino-biblioteket, designet spesielt for å etterligne et tastatur.

Lag en metode som heter readButton:

boolsk readButton (int pin) {// kontroller og avkjøringsknapper hvis (digitalRead (pin) == HIGH) {forsinkelse (10); if (digitalRead (pin) == HIGH) {return true; }} returner falske; }

Dette tar en pinne, og sjekker om det er blitt trykket på eller ikke. Den kommer ganske enkelt tilbake EKTE eller FALSK. Den inneholder også noen programvare debouncing - en enkel forsinkelse og deretter kontrollere bryteren på nytt for å sikre at knappen virkelig ble trykket.

Nå kalles en annen for loop inni void loop ():

void loop () {// legg hovedkoden din her, for å kjøre gjentatte ganger: for (int i = 2; i <11; ++ i) {// sjekk knapper hvis (lesButton (i)) {doAction (i); } } }

Igjen, dette går over hvert element i matrisen og sjekker om det er blitt trykket på. Det gjør dette ved å kalle readButton metoden du opprettet tidligere. Hvis du har trykket på en knapp, overfører den pin-nummeret til en annen metode som heter doAction:

void doAction (int pin) {// utfør oppgavebryter (pin) {case 2: Keyboard.println ("drive.google.com"); gå i stykker; sak 3: Keyboard.println ("makeuseof.com"); gå i stykker; sak 4: // CMD + T (ny fane, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ( 't'); forsinkelse (100); Keyboard.releaseAll (); gå i stykker; sak 5: // oppgaven din her bryter; sak 6: // oppgaven din her bryter; sak 7: // oppgaven din her bryter; sak 8: // oppgaven din her bryter; sak 9: // oppgaven din her bryter; } }

Dette sjekker pinnetallet ved å bruke a bytte om uttalelse. Bytt uttalelser (noen ganger kalt byttesak) ligner en hvis uttalelse, men de er nyttige for å sjekke at en ting (i dette tilfellet pinnetallet) er lik et 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 tast. Keyboard.press trykker og holder inne en tast. Ikke glem å slippe dem ved å bruke Keyboard.releaseAll etter en kort forsinkelse!

Her er hele koden:

int-taster [] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; void setup () {// legg installasjonskoden din her, for å kjøre en gang: Keyboard.begin (); // oppsetttastatur for (int i = 2; i <11; ++ i) {// initilize pins pinMode (i, INPUT); } } void loop () {// legg hovedkoden din her, for å kjøre gjentatte ganger: for (int i = 2; i <11; ++ i) {// sjekk knapper hvis (lesButton (i)) {doAction (i); } } } boolsk readButton (int pin) {// kontroller og avkjøringsknapper hvis (digitalRead (pin) == HIGH) {forsinkelse (10); if (digitalRead (pin) == HIGH) {return true; }} returner falske; } ugyldig doAction (int pin) {// utfør bryter for oppgaver (pin) {case 2: Keyboard.println ("drive.google.com"); gå i stykker; sak 3: Keyboard.println ("makeuseof.com"); gå i stykker; sak 4: // CMD + T (ny fane, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ( 't'); forsinkelse (100); Keyboard.releaseAll (); gå i stykker; sak 5: // oppgaven din her bryter; sak 6: // oppgaven din her bryter; sak 7: // oppgaven din her bryter; sak 8: // oppgaven din her bryter; sak 9: // oppgaven din her bryter; } }

I tillegg til alle talltastene og bokstavtastene, kan Arduino trykke på de fleste av spesialtastene som heter Tastaturmodifiseringer. Disse er spesielt nyttige for å trykke på snarveier. Arduino nettstedet har en nyttig liste.

Nå gjenstår bare å lage noen snarveier. Du kan kartlegge dette til eksisterende snarveier, for eksempel alt + F4 (lukk program i Windows) eller cmd + Q (avslutt programmet macOS). Alternativt, sørg for at du leser vår den ultimate tastatursnarveien Windows-tastatursnarveier 101: The Ultimate GuideTastatursnarveier kan spare deg for timer. Mestre de universelle Windows-tastatursnarveiene, tastaturtriks for spesifikke programmer og noen få andre tips for å få fart på arbeidet. Les mer , hvordan lage Windows-snarveier Hvordan lage Windows Desktop snarveier på den enkle måtenSmarte stasjonære snarveier kan spare deg for tankeløs sikting gjennom menyer og mapper. Vi viser deg raske og enkle måter å lage dem på. Les mer , og hver snarvei for Chromebook Hver snarvei til Chromebook som du noen gang trengerMaster Chrome OS med denne listen over alle viktige snarveier for Chromebook som du noen gang trenger. Les mer for å komme i gang med å lage dine egne snarveier.

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

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