Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Elektrisk kredsløb
- Trin 2: Montering
- Trin 3: Programmering
- Trin 4: Konfiguration af genveje
- Trin 5: Forbedringer
Video: Programmerbart tastatur: 5 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
I dette projekt vil jeg vise, hvordan du laver relativt enkle og billige programmerbare tastaturer til kortlægning af dine mest brugte tastaturgenveje, applikationer og mere.
Dette tastatur registreres som tastatur i alle større operativsystemer, og der kræves ingen yderligere drivere.
Forbrugsvarer
- Roterende encoder.
- Masser af (afhænger af dine behov) trykknapper.
- Arduino Pro Micro, Arduino Leonardo eller ethvert andet dev -bord med Atmega32U4 MCU.
- Tråd, lodde, loddejern mv.
- (Valgfrit) En tung base til at forhindre tastaturet i at glide, jeg bruger gammel 3,5 "HDD
Trin 1: Elektrisk kredsløb
Jeg valgte at bruge Arduino Pro Micro dev board med Atmega32U4 MCU som har 18 brugbare digitale pins.
Stifterne til at forbinde trykknapper og roterende encoder blev valgt uden nogen bestemt rækkefølge i tankerne, men nogle ting skal bemærkes:
- Alle stifter med digital læsning har interne pull-ups, som gør det muligt at afbøde eksterne pull-down modstande. Koden skal selvfølgelig opdateres i overensstemmelse hermed, fordi den forventer, at nålens tilstand går fra lav til høj, når der trykkes på trykknapper.
- I bibliotekseksempel bemærkede biblioteket, at encoderens bedste ydeevne nås, når begge stifter, der er forbundet til MCU, kan afbryde stifter. De fleste af analoge stifter af Atmega32U4 har ikke afbrydelse.
- Nøjagtige pull-down modstandsværdier betyder ikke meget, alt fra 1 kΩ til 100 kΩ vil fungere fint. Større modstandsværdier tillader mindre effekttab, men resulterer i langsommere benreaktion på spændingsændringer. Vælg bare den værdi modstand du har mest.
- Mekaniske encodere er ikke de mest pålidelige ting på grund af kontaktslitage og hoppende. Derfor er der brug for en god debouncing -løsning. Mine valgte kondensatorværdier og forsinkelsestider i kode giver sandsynligvis ikke de bedste resultater for dig. Så der er brug for en lille smule eksperimentering. Eller skift til noget som optisk encoder, men prisen er betydeligt højere.
Trin 2: Montering
Jeg ville gøre tastaturet så rent som muligt, så jeg loddet alle komponenter på bagsiden af prototypekortet. Jeg regnede med, at tastaturet ville være mere ergonomisk, hvis det blev brugt forhøjet i lille vinkel. Derfor lodde jeg Arduino Pro Micro på separat bord og tilsluttede alle digitale ben med ledning til trykknapper. Det er mere bekvemt at tilslutte USB -kabel på den måde.
Jeg fandt en gammel 3,5 HDD til at bruge som en base for tastaturet, den er ret tung og forhindrer, at tavlen glider hen over skrivebordet under betjening (skridsikre puder hjælper også). Den har også praktiske 3 mm skruehuller, hvor jeg skruede messingstandoffs og fikseret brættet i en lille vinkel.
Trin 3: Programmering
Koden er skrevet med Arduino IDE. Du skal installere 2 biblioteker:
- Encoder af Paul Stoffregen
- Tastatur fra Arduino
For at kompilere til Atmega32U4 skal du også installere Arduino Pro Micro -kortfil, Sparkfun har en god vejledning i, hvordan du gør det.
En ting at bemærke på forhånd er at være forsigtig med ikke at lade "taster trykkes" i din kode. Dette skete for mig, og MCU spammede konstant en tastetrykskombination. Den eneste måde, jeg er klar over, hvordan jeg løser dette, er at genbrænde boot-loader til MCU. Hvis du ender som mig, kan du følge denne vejledning for at brænde boot-loader, du skal bruge et andet arduino-kort til at bruge som programmerer.
I hovedsløjfe læser MCU først hver trykknapstilstand, hvis tilstandsændring fra LOW til HIGH registreres, udføres funktion keyboard_shortcut (i). Variabel i er et id for den trykte knap, det samlede trykknapnummer er defineret af ALL_BUTTONS (i mit tilfælde 15). Når den er udført, sender tastatur_shortcut (i) CTRL+SHIFT og derefter et bogstav, der knyttes til knap-id: 1-> A, 2-> B, 3-> C osv. Nogle kombinationer som CTRL+SHIFT+N udelades, fordi det er allerede brugt i Windows10 som standard (i dette tilfælde for at oprette en ny mappe). Her er listen over alle standardgenveje til Windows. Efter kort forsinkelse sender MCU signal om at slippe alle taster og funktionen forlader tilbage til hovedsløjfen.
Efter at alle knapper er markeret, kontrollerer MCU, om roterende encoderposition er ændret, og hvis den gør det, udføres keyboard_shortcut (i) med unikt id.
Encoder -tastetryk inverterer encoderButtonFlag boolsk variabel. Når encoder roteres, sendes en anden genvej til pc'en afhængigt af rotationsretning og encoderButtonFlag -værdi.
Hvis debugFlag indstillet til 1 debugmeddelelser sendes via UART til seriel monitor.
Trin 4: Konfiguration af genveje
Hvad hver genvej gør, er også op til dig, vi har alle forskellige præferencer. Jeg vil give de genveje, jeg konfigurerede til mig selv som et eksempel. Jeg bruger Linux Mint 19.3 med xfce4 desktop manager, så mine eksempler involverer hovedsageligt bash -scripts, men jeg vil også vise nogle grundlæggende eksempler til Windows10.
På det første billede kan du se, hvilke scripts jeg kortlagde til hvilke genveje. Det er gjort fra xfce -indstillingsmenuen, processen til dette er ligetil. Du kan finde disse scripts i mit GitHub -lager
Mindre 6 trykknapper i bunden er til start af applikationer som webbrowser eller filhåndtering, nogle af disse applikationer kaldes fra start_only_one_app.sh script, som får alle startede applikationsnavne og søgning efter applikationer, du vil starte. Hvis programvinduet allerede findes, bliver det fokuseret, ellers starter en ny forekomst af et program.
Andre scripts:
- 2._display_control.sh - tænder/slukker for anden skærm.
- moon_lamp.sh - tænder/slukker min Moon Lamp.
- pc_load.sh - opretter notifikationsboble med nuværende CPU- og GPU -brug og temperaturer.
- shutdown.sh - initialiserer pc -lukning med 1 minuts forsinkelse og opretter meddelelsesboble, hvor resterende tid vises.
- spec_vpn.sh - opretter forbindelse til en specifik OpenVPN -server, eller hvis forbindelsen allerede findes, afbrydes forbindelsen til serveren.
- shortcut_controll.sh - tager kommando (plus, minus, fane, luk) som argument, registrerer hvilket vindue der nu er fokuseret, og hvis et bestemt program findes aktivt, udfører kontrolhandling. For eksempel for at åbne ny fane i sublim tekst editor standardgenvej er "CTRL+N" og i xfce terminal - "CTRL+T", så dette script giver mulighed for at åbne ny fane i sublim og terminal med den samme trykknap.
Den første funktion af den roterende encoder er at styre lydstyrken, den anden funktion er at styre aktiv vindueszoom via shortcut_controll.sh.
For Windows OS kan du kortlægge genveje til applikationer via vinduet med programegenskaber som vist på det andet billede. Til alt andet vil du gerne bruge AutoHotkey. Det er automatiserings scriptsprog til Windows.
Nogle enkle eksempler på AHK -syntaks:
; Lydstyrkekontrol
^+t:: Send {Volume_Up}
Vend tilbage
^+v:: Send {Volume_Down}
Vend tilbage
; Luk aktivt vindue
^+h:: WinGetTitle, titel, A
PostMessage, 0x112, 0xF060,,, %Title %
Vend tilbage
; Luk pc
^+b:: Kør nedlukning /s
Trin 5: Forbedringer
Nogle mulige forbedringer:
- Trykknapper i bedre kvalitet.
- Prototype PCB bøjer ret meget, når der trykkes på knapper.
- RGB -belysning for at ændre farve afhængigt af hvilken funktion roterende encoder er indstillet til.
- Flere knapper (brug IO -ekspander IC).
- Bedre roterende encoder (eller bedre debouncing -løsning).
Anbefalede:
Programmerbart græskarlys: 25 trin (med billeder)
Programmerbart græskarlys: Denne instruerbare er til at lave et programmerbart græskarlys med en ATTiny mikrokontroller. Dette var designet som en læringsdemo for at introducere alle (8 år) til elektronik og programmering af mikrokontrollere ved hjælp af Arduino IDE. Skæve objekt
Helt oplyst - programmerbart RGB LED -akrylskilt: 3 trin (med billeder)
Helt oplyst - Programmerbart RGB LED -akrylskilt: Har leget med laserskæreren/graveren, og blev virkelig forelsket i gravering for at klare akryl og skinne en lyskilde fra kanten. Tykkelsen af den anvendte acryl er a.25 " ark, der skærer virkelig rent af l
OpenEyeTap: 3D -printet og programmerbart smartglas: 12 trin (med billeder)
OpenEyeTap: 3D -printet og programmerbart smartglas: Velkommen til Open EyeTaps Instructables -side! Vi er et par entusiastiske producenter med en stor ambition om at bygge verdens mest aktive Smart Glasses og Wearable Augmented Reality Community. Vi ønsker at gøre en ramme tilgængelig, som udvidede
Hurtigt og snavset tastatur (tomt tastatur): 3 trin
Quick and Dirty Das Keyboard (Blank Keyboard): A Das Keyboard is the name of the most popular keyboard with no inscriptions on the keys (blank keyboard). Das tastatur sælges til $ 89,95. Denne instruktive vil guide dig, selvom du selv laver en med et gammelt tastatur, du har liggende
Programmerbart ur med display med fire tegn: 5 trin (med billeder)
Programmerbart ur med display med fire tegn: Du vil tale om byen, når du bærer dette modbydelige, overdimensionerede, helt upraktiske armbåndsur. Vis dit foretrukne fejlsprog, sangtekster, primtal osv. Inspireret af Microreader -kittet besluttede jeg at lave et kæmpe ur ved hjælp af