Obsah:
- Zásoby
- Krok 1: Elektrický obvod
- Krok 2: Zostavenie
- Krok 3: Programovanie
- Krok 4: Konfigurácia skratiek
- Krok 5: Vylepšenia
Video: Programovateľná klávesnica: 5 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:56
V tomto projekte ukážem, ako vytvoriť relatívne jednoduchú a lacnú programovateľnú klávesnicu na mapovanie vašich najpoužívanejších klávesových skratiek, aplikácií a ďalších.
Táto klávesnica je rozpoznaná ako klávesnica vo všetkých hlavných OS, nie sú potrebné žiadne ďalšie ovládače.
Zásoby
- Rotačný kodér.
- Veľa (podľa vašich potrieb) tlačidiel.
- Doska Arduino Pro Micro, Arduino Leonardo alebo akákoľvek iná vývojová doska s MCU Atmega32U4.
- Drôt, spájka, spájkovačka atď.
- (Voliteľné) Používam starý 3,5 -palcový pevný disk, aby sa zabránilo kĺzaniu klávesnice
Krok 1: Elektrický obvod
Rozhodol som sa použiť dosku Arduino Pro Micro dev s Atmega32U4 MCU, ktorá má 18 použiteľných digitálnych pinov.
Piny na pripojenie tlačidiel a rotačného snímača boli zvolené bez ohľadu na konkrétne poradie, treba však poznamenať niektoré veci:
- Všetky kolíky s podporou digitálneho čítania majú interné výsuvy, ktoré umožňujú zmierniť vonkajšie sťahovacie odpory. Kód by sa mal samozrejme aktualizovať, pretože očakáva, že stav kolíka sa pri stlačení tlačidiel zmení z nízkych na vysoké.
- V príklade knižnice encoder.h je uvedené, že najlepšieho výkonu kodéra sa dosiahne, keď oba piny pripojené k MCU prerušia piny. Väčšina analógových pinov Atmega32U4 nemá schopnosť prerušenia.
- Na presných hodnotách sťahovacieho odporu veľmi nezáleží, čokoľvek od 1 kΩ do 100 kΩ bude fungovať dobre. Väčšie hodnoty odporu umožňujú menší rozptyl energie, ale majú za následok pomalšiu odozvu kolíka na zmeny napätia. Vyberte si akékoľvek hodnotné odpory, ktoré máte najviac.
- Mechanické snímače nie sú najspoľahlivejšie z dôvodu opotrebovania kontaktov a odskakovania. Preto je potrebné dobré riešenie na odstránenie debouningu. Moje zvolené hodnoty kondenzátora a časy oneskorenia v kóde vám pravdepodobne neposkytnú najlepšie výsledky. Je teda potrebné trocha experimentovania. Alebo prepnite na niečo ako optický kodér, ale jeho cena je výrazne vyššia.
Krok 2: Zostavenie
Chcel som, aby klávesnica vyzerala čo najčistejšie, a tak som spájkoval všetky komponenty na zadnú stranu prototypovej dosky. Myslel som, že klávesnica by bola ergonomickejšia, keby sa používala pod malým uhlom. Preto som spájkoval Arduino Pro Micro na samostatnú dosku a všetky digitálne piny som prepojil tlačidlami na drôt. Je pohodlnejšie pripojiť kábel USB týmto spôsobom.
Našiel som starý 3,5 pevný disk, ktorý je možné použiť ako základňu pre klávesnicu, pretože je dosť ťažký a bráni kĺzaniu dosky po stole pri prevádzke (pomáhajú aj protišmykové podložky). Má tiež praktické otvory pre skrutky s priemerom 3 mm, do ktorých som zaskrutkoval mosadzné podpery a upevnila dosku pod miernym uhlom.
Krok 3: Programovanie
Kód je napísaný pomocou Arduino IDE. Budete musieť nainštalovať 2 knižnice:
- Kodér Paul Stoffregen
- Klávesnica od Arduina
Na kompiláciu pre Atmega32U4 musíte tiež nainštalovať súbor dosky Arduino Pro Micro, Sparkfun má skvelý návod, ako to urobiť.
Vopred si treba uvedomiť jednu vec - dávať pozor, aby ste vo svojom kóde nenechali „stlačené klávesy“. To sa mi stalo a MCU neustále spamovalo niektoré kombinácie klávesov. Jediný spôsob, ako to môžem vyriešiť, je znova napáliť zavádzač na MCU. Ak skončíte ako ja, pri napaľovaní boot-loaderu môžete postupovať podľa tohto sprievodcu, na použitie ako programátora budete potrebovať ďalšiu dosku arduino.
V hlavnej slučke MCU najskôr prečíta každý stav tlačidla, ak je detekovaná zmena stavu z LOW na HIGH, vykoná sa funkcia keyboard_shortcut (i). Premenná i je ID stlačeného tlačidla, celkový počet tlačidiel je definovaný ALL_BUTTONS (v mojom prípade 15). Po spustení klávesová skratka (i) odošle CTRL+SHIFT a potom písmeno, ktoré je priradené k tlačidlu id: 1-> A, 2-> B, 3-> C atď. Niektoré kombinácie ako CTRL+SHIFT+N sú vynechané, pretože už sa predvolene používa v systéme Windows 10 (v tomto prípade na vytvorenie nového priečinka). Tu je zoznam všetkých predvolených skratiek systému Windows. Po krátkom oneskorení MCU pošle signál, aby uvoľnil všetky klávesy a funkcia sa vráti späť do hlavnej slučky.
Potom, čo sú začiarknuté všetky tlačidlá, MCU skontroluje, či sa zmenila poloha rotačného snímača, a ak áno, vykoná sa klávesová skratka (i) s jedinečným ID.
Stlačenie tlačidla kodéra invertuje boolovskú premennú encoderButtonFlag. Pri otáčaní kodéra sa do počítača odošle iná skratka v závislosti od smeru otáčania a hodnoty encoderButtonFlag.
Ak je debugFlag nastavený na 1, správy o ladení sa budú odosielať prostredníctvom UART na sériový monitor.
Krok 4: Konfigurácia skratiek
Čo robí každá skratka, záleží aj na vás, všetci máme iné preferencie. Ako príklad uvediem, aké skratky som pre seba nakonfiguroval. Používam Linux Mint 19.3 s desktopovým správcom xfce4, takže moje príklady zahŕňajú predovšetkým bash skripty, ale ukážem aj niekoľko základných príkladov pre Windows10.
Na prvom obrázku vidíte, ktoré skripty som mapoval do ktorých skratiek. Vykonáva sa to v ponuke nastavení xfce. Proces je jednoduchý. Tieto skripty nájdete v mojom úložisku GitHub
Menšie 6 tlačidiel v spodnej časti je na spustenie aplikácií, ako je webový prehliadač alebo správca súborov, niektoré z týchto aplikácií sa volajú zo skriptu start_only_one_app.sh, ktorý zobrazí názvy všetkých spustených aplikácií a vyhľadá aplikáciu, ktorú chcete spustiť. Ak okno aplikácie už existuje, zaostrí sa, inak sa spustí nová inštancia aplikácie.
Ďalšie skripty:
- 2nd_display_control.sh - zapína/vypína druhý monitor.
- moon_lamp.sh - zapína/vypína moju lampu Moon.
- pc_load.sh - vytvára oznamovaciu bublinu s aktuálnym využitím a teplotami CPU a GPU.
- shutdown.sh - inicializuje vypnutie počítača s oneskorením 1 minúty a vytvorí oznamovaciu bublinu, v ktorej sa zobrazuje zostávajúci čas.
- spec_vpn.sh - pripojí sa ku konkrétnemu serveru OpenVPN alebo ak pripojenie už existuje, odpojí sa od servera.
- shortcut_controll.sh - vezme príkaz (plus, mínus, karta, zatvorenie) ako argument, zistí, na ktoré okno je teraz zaostrené a ak je konkrétna aplikácia nájdená aktívna, vykoná kontrolnú akciu. Napríklad na otvorenie novej karty vo vznešenom textovom editore je predvolená skratka „CTRL+N“a v termináli xfce - „CTRL+T“, takže tento skript umožňuje otvoriť novú kartu vo vznešenom a koncovom zariadení rovnakým tlačidlom.
Prvá funkcia rotačného enkodéra je ovládanie hlasitosti, druhá funkcia je ovládanie aktívneho priblíženia okna pomocou shortcut_controll.sh.
V prípade operačného systému Windows môžete skratky k aplikáciám mapovať pomocou okna vlastností programu, ako je to znázornené na druhom obrázku. Na čokoľvek iné budete chcieť použiť AutoHotkey. Je to skriptovací jazyk automatizácie pre Windows.
Niekoľko jednoduchých príkladov syntaxe AHK:
;Nastavenie hlasitosti
^+t:: Odoslať {Volume_Up}
vrátiť sa
^+v:: Odoslať {Volume_Down}
vrátiť sa
; Zatvorte aktívne okno
^+h:: WinGetTitle, názov, A
PostMessage, 0x112, 0xF060,,, %Názov %
vrátiť sa
; Vypnite počítač
^+b:: Spustiť vypnutie /s
Krok 5: Vylepšenia
Niektoré možné vylepšenia:
- Kvalitnejšie tlačidlá.
- Prototyp DPS sa pri stlačení tlačidiel dosť ohýba.
- RGB osvetlenie na zmenu farby v závislosti od toho, na akú funkciu je nastavený rotačný snímač.
- Viac tlačidiel (použite IO expandér IC).
- Lepší rotačný kodér (alebo lepšie riešenie na odstraňovanie odrazov).
Odporúča:
Programovateľná mikina Stranger Things: 9 krokov (s obrázkami)
Programovateľná mikina Stranger Things: Možno nikdy nebudete musieť tráviť čas v strašidelnom svete príšer, ale niekedy si len chcete obliecť košeľu, ktorá hovorí, že by ste tam úplne MOHLI žiť, ak by ste chceli. Pretože také tričko na voľnom trhu neexistuje, rozhodli sme sa urobiť náš
Programovateľná stanica Looper s gitarovým efektom a skutočným obtokom pomocou prepínačov Dip: 11 krokov
Programovateľná stanica Looper s efektom gitarového efektu s efektom bypassu pomocou prepínačov Dip: Som gitarový nadšenec a amatérsky hráč. Väčšina mojich projektov sa týka gitarového príslušenstva. Budujem vlastné zosilňovače a niekoľko efektových pedálov. V minulosti som hral v malej kapele a presvedčil som sa, že potrebujem iba zosilňovač s re
Kartónová programovateľná klávesnica: 8 krokov (s obrázkami)
Kartónová programovateľná klávesnica: Ako sa technológia vyvíja, ľudia chcú, aby boli veci stále virtuálnejšie, niekedy je však oveľa praktickejšie a pohodlnejšie mať niečo fyzické, čoho sa môžete skutočne dotýkať a s čím môžete pracovať vlastnými rukami. Jeden príklad
Klávesnica Quick and Dirty Das (prázdna klávesnica): 3 kroky
Rýchla a špinavá klávesnica Das (prázdna klávesnica): Das Keyboard je názov najobľúbenejšej klávesnice bez nápisov na klávesoch (prázdna klávesnica). Klávesnica Das sa predáva za 89,95 dolárov. Tento návod vás prevedie tým, že si ho vyrobíte sami pomocou akejkoľvek starej klávesnice, okolo ktorej ležíte
Programovateľná LED: 6 krokov (s obrázkami)
Programovateľná LED dióda: Inšpirovaný rôznymi LED diódami, blikajúcimi diódami LED a podobnými inštrukciami, chcel som vytvoriť svoju verziu LED ovládanej mikrokontrolérom. Cieľom je preprogramovať sekvenciu blikania LED diód. Toto preprogramovanie je možné vykonať pomocou svetla a