Lag din egen egendefinerte snarveisknapper med en Arduino

Den ydmyke Arduino kan gjøre mange ting, men visste du at det kan etterligne et USB-tastatur? Du kan kombinere lange tastatursnarveier i en enkelt tilpasset snarvei, med denne enkle kretsen.

Den ydmyke Arduino kan gjøre mange ting, men visste du at det kan etterligne et USB-tastatur?  Du kan kombinere lange tastatursnarveier i en enkelt tilpasset snarvei, med denne enkle kretsen.
Annonse

Den ydmyke Arduino kan gjøre mange ting, men visste du at det kan etterligne et USB-tastatur? Du kan kombinere de vanskelige å huske lange tastatursnarveier i en enkelt egendefinert snarvei, med denne enkle kretsen. Her er sluttresultatet:

Har aldri brukt en Arduino før? Ta en titt på vår startveiledning Komme i gang med Arduino: En nybegynnershåndbok Komme i gang med Arduino: En nybegynnersguide Arduino er en open source elektronikkprototypeplan basert på fleksibel, brukervennlig maskinvare og programvare. Det er ment for kunstnere, designere, hobbyister, og alle som er interessert i å lage interaktive objekter eller miljøer. Les mer først.

Hva trenger du

Arduino Shortcut Parts
Her er hva du trenger for å gjøre dette prosjektet:

  • 1 x Arduino Pro Micro.
  • Moment-knapper eller tastaturknapper.
  • 10K ohm motstander.
  • Assorted hookup ledninger.
  • 1 x 220 ohm motstander.
  • 1 x 5mm (0.197 inches) LED.
  • 1 x 5mm LED-holder.

Du vil trenge en veldig spesiell Arduino for dette prosjektet. Jeg bruker en Pro Micro, da 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 Arduinos, for eksempel en UNO eller Nano, men det krever mye hardt arbeid for å blinke bios og fiddling om å få ting til å fungere. Kloner av andre Arduino-modeller fungerer vanligvis ikke i det hele tatt, men en Pro Micro klon er også fin.

OSOYOO Pro Micro ATmega32U4 5V / 16MHz Modulkort med 2-rads topptekst for arduino Leonardo Bytt ATmega328 Pro Mini OSOYOO Pro Micro ATmega32U4 5V / 16MHz Modulkort med 2 rads topptekst for arduino Leonardo Bytt ATmega328 Pro Mini Kjøp nå På Amazon $ 8.99

Du trenger en øyeblikkelig knapp, en 10K ohm motstand, og passende tilkoblingstråd for hver knapp du vil bruke. Jeg bruker Cherry MX mekaniske tastaturbrytere for de faktiske hurtigtastknappene, selv om en hvilken som helst bryter vil gjøre det, da det er momentant og ikke låser.

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

Bygg Plan

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

Velger en bryter

Arduino Cherry MX

Det finnes flere varianter av MX-seriebrytere. Dette nettstedet gir en utmerket introduksjon, men de kommer i hovedsak ned til støy og press. Noen modeller krever mer kraft til å trykke, og noen modeller gjør en mekanisk "klikk" lyd når de trykkes. Jeg har brukt Cherry MX Browns, som ikke gjør en lyd når de trykkes. De er alle de samme dimensjonene, så velg hvilken modell du liker (eller bland og mat) uten bekymring.

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

Saken

Jeg har 3D skrevet ut denne saken, og du kan laste ned .STL- filene fra Thingiverse. Ikke bekymre deg hvis du ikke eier en 3D-skriver, kan du fortsatt bygge dette. Mange nettsteder tilbyr 3D-utskriftstjenester, for eksempel 3D-hubber eller Shapeways. Alternativt er dette et veldig enkelt tilfelle, du kan lage din egen av plasticard, perspex, tre, eller til og med papp. Hvis du vil være veldig sparsommelig, selger Cherry MX en bryter tester / sampler sett på Amazon (UK). Du trenger 4 M5 x 35mm bolter og 4 M5 muttere. Du kan selvsagt erstatte disse for et passende alternativ du har.

Max Keyboard Keycap, Cherry MX Switch, O-Ring Pro Sampler Tester Kit Max Keyboard Keycap, Kirsebær MX Switch, O-Ring Pro Sampler Tester Kit Kjøp nå På Amazon $ 19.99

Hvis du lager din egen sak, er det en viktig detalj du trenger å vite: Cherry MX-brytere er et trykk i deres monteringshull. De krever et 14 x 14mm (0, 551 tommers) firkantet monteringshull, idet platen ikke er tykkere enn 1, 5 mm (0, 059 tommer). Stray for langt fra disse dimensjonene, og bytteene dine kan ikke lenger monteres riktig.

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

Snarvei Cherry MX Mount

Pass på at du monterer bryterne riktig rundt. Toppen har ordene "CHERRY" på, og bunnen har litt hakk. Sett inn en 3mm LED i denne lille plassen:

Snarvei Cherry MX LED

Du kan oppleve at lysdiodene ser best montert "opp ned". Dette var tilfelle for de keycaps jeg brukte, og det påvirker ikke bryterne i det hele tatt.

Du bør nå ha 9 brytere med 9 lysdioder. Det er ikke nødvendig å lim noen av disse delene inn. Loddet vil holde lysdiodene, og friksjon vil holde bryterne.

Snarvei Cherry MX All

Skru deretter inn LED-monteringen (la LED-lampen fjernes for nå). Du vil fullføre saken senere, når kretsen er bygget.

Kredsløpet

Denne kretsen er bygget på stripboard. Dette er utmerket for å bygge halvfaste kretser, uten at det koster et printkort (PCB). Det er rett og slett et glassfiberfiber med kobberbaner som går parallelt i en retning. Disse sporene kan loddes til, så vel som kuttet. Kutting av et spor kan gjøres med et spesielt verktøy eller en liten borekrone.

Ikke for trygg på lodding? Ta en titt på disse enkle prosjektene Lær hvordan å lodde, med disse enkle tipsene og prosjektene Lær hvordan å lodde, med disse enkle tips og prosjekter Er du litt skremt av tanken på et varmt jern og smeltet metall? Hvis du vil begynne å jobbe med elektronikk, må du lære å lodde. La oss hjelpe. Les mer først.

Her er stripboardoppsettet (ekskluderer bakledninger):

Arduino Shortcut Stripboard

Pass på at du kutter sporene under motstandene og Arduino. Siden det kan være svært vanskelig å lese en stripboard-krets, her er en breadboard-versjon:

Arduino Shortcut Breadboard

Det er en tett passform for å klemme alle komponentene inn i et så lite mellomrom. Klipp hjørnene på stripbordet på følgende måte:

Snarvei Stripboard

Dette skal passe pent inn i bunnen av saken:

Snarvei Stripboard i boks

Pass på at sporene løper vertikalt.

Koble anoden ( langbenet, positivt ) til lysdioden til 200 ohm motstanden og deretter til +5 V. Koble katoden ( kort ben, negativ ) til bakken. Dekk bena med varmekrympe og trykk deretter inn i LED-holderen. Det er ikke behov for lim, men LED-holderen kan ikke være en trykkpasning, så du må kanskje tilpasse disse instruksjonene.

Snarvei Status LED

Du vil kanskje bruke en tofargelampe her i stedet - dette vil tillate deg å konfigurere to eller flere banker med brytere, med en annen farget status LED for hver bank.

Nå er det på tide å lodde alle lysdiodene til keycaps. Disse brukes bare for å få tastene til å lyse, så du kan hoppe over dem hvis du vil, og de trenger ikke å være koblet til en digital pinne, bare strøm. Koble alle anodene sammen, og alle katoder 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 katoder til jord. Disse lysdiodene er koblet parallelt. Her er kretsen bare for disse LEDS:

Snarvei LED-kretser

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

Snarvei LED Heatshrink

Slå på Arduino for å teste alle lysdiodene. Du trenger ikke å laste opp noen kode. Hvis noen lysdioder ikke virker, må du sjekke kablingene dine doble.

Snarvei LED-test

Nå skru 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 Arduino vil være et rykte av røyk (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 brytere. Koble bryterne til digitale stifter to til ti, hver med sin egen 10K motstand til bakken. Pass på å lette Cherry MX-brytere, de kan være litt skjøre, jeg hadde flere pinner på meg. Du vil kanskje lodde disse direkte til noen flere stripboard, men etterfølgende ledninger er fortsatt egnet.

Det er det for ledninger. Du kan ønske å montere en USB-type B-hylse, men de små pinnene på dem kan ofte være ganske vanskelig å lodge til. Hvis du ikke ønsker å gjøre dette, ikke bekymre deg. Micro USB-kontakten på Arduino passer perfekt til hullet i chassiset. Hvis du er litt forvirret om de forskjellige USB-typene, må du sørge for at du forstår forskjellene. Forstå USB-kabeltyper og hvilken som skal brukes. Forstå USB-kabeltyper og hvilken som skal brukes. Verden av USB-kabler kan være litt forvirrende fordi det er så mange forskjellige kontakttyper. Her er alt du trenger å vite for ikke å bli forvirret lenger. Les mer .

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

Koden

Nå test kretsen er riktig. Det er en god ide å 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 > Styret og Verktøy > Portmenyer):

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 bytte tappene hvis du har endret kretsen.

Når du har lastet opp, åpner du seriell skjerm ( øverst til høyre > Seriell skjerm ). En etter en trykker du på hver knapp. Du bør se seriell skjerm vise nummeret på knappen du trykket på. På samme måte som med LED, hvis datamaskinen klager på å tegne for mye strøm eller lysdiodene går ut når du trykker på en knapp, koble øyeblikkelig til! Du har et kort sted i kretsen, dobbeltsjekker kretsen er riktig og det er ingen shorts mellom tilkoblinger.

Hvis alt fungerer, fortsett og sett kretsen inn i esken. Det kan hende du vil bruke en lime med lim for å holde kretsen på plass (selv om ledningene holdt min i orden). Bolt lokket på også.

Å gjøre Arduino til å være et tastatur er veldig enkelt. Hvis du bruker en Nano eller UNO, skal du omprogrammere din Arduino ved hjelp av Device Firmware Update (DFU). Dette brukes vanligvis til å blinke ny firmware til Arduino. Du skal 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 komplisert oppgave. Arduino-nettstedet 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 like enkelt som å skrive noen kode!

Først sett opp tastene:

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

Dette er en matrise som inneholder alle de pinnene knappene er koblet til. Hvis du har brukt mer eller mindre 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.

Nå initialiser 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, så i stedet for å skrive pinMode (2, INPUT) ni ganger, må du bare skrive det en gang. Dette kalles også Keyboard.begin . Dette setter opp en funksjon som er bygget inn i Arduino-biblioteket, designet spesielt for å simulere et tastatur.

Opprett en metode som heter 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 pin, og kontrollerer om den har blitt trykket eller ikke. Den returnerer bare TRUE eller FALSE . Det inneholder også noen programvareavspilling - en enkel forsinkelse, og deretter kontrollerer bryteren at knappen virkelig ble trykket.

Nå kalles en annen for sløyfe inne i tomromsløyfe () :

 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 kontrollerer om det har blitt trykket. Det gjør dette ved å ringe readButton- metoden du opprettet tidligere. Hvis en knapp er trykket, passerer den det pin nummeret til en annen metode kalt 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 hjelp av en bryteretning. Switch-setninger (noen ganger kalt svitsj ) ligner en if- setning, men de er nyttige for å sjekke at en ting (i dette tilfelle pinnummeret) er lik ett av flere forskjellige utfall. I hovedsak er de mye raskere å beregne.

Hovedkomponentene er inne i denne bryteretningen. Keyboard.println skriver tekst til datamaskinen som om du fysisk skrev inn hver nøkkel. Keyboard.press presser og holder en tast. Ikke glem å slippe dem ved hjelp av Keyboard.releaseAll etter kort forsinkelse!

Her er den fulle 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 bokstavstastene, kan Arduino trykke på de fleste av de spesielle tastene, kalt tastaturmodifiseringer . Disse er spesielt nyttige for å trykke hurtigtastene. Arduino-nettstedet har en nyttig liste.

Nå er alt som er igjen å lage noen snarveier. Du kan kartlegge dette til eksisterende snarveier, for eksempel Alt + F4 (Lukk program i Windows) eller Cmd + Q (avslut program macOS). Alternativt, sørg for at du leser vår ultimative hurtigtastveiledning. Windows Tastaturgenveier 101: Den Ultimative Guide Windows Tastaturgenveier 101: Den Ultimate Guide Tastaturgenveier kan spare deg for timer. Master de universelle Windows-hurtigtastene, tastaturtricks for bestemte programmer, og noen andre tips for å få fart på arbeidet ditt. Les mer, hvordan du oppretter Windows-snarveier Hvordan lage Windows-skrivebordssnarveier på den enkle måten Hvordan lage Windows-skrivebordssnarveier Den enkle måten Smarte skrivebordsveier kan spare deg ubevisst ved å sitte gjennom menyer og mapper. Vi viser deg raske og enkle måter å lage dem på. Les mer, og hver eneste Chromebook-snarvei. Her er en hvilken som helst Chromebook-snarvei. Du trenger det her, hver eneste Chromebook-snarvei du trenger. Leter du etter en hovedliste over hurtigtaster for Chromebook? Her er alle viktige kombinasjoner du noensinne trenger for Chrome OS! Les mer for å komme i gang med å lage dine egne snarveier.

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

In this article