Sadržaj:
- Pribor
- Korak 1: Električni krug
- Korak 2: Montaža
- Korak 3: Programiranje
- Korak 4: Konfiguriranje prečaca
- Korak 5: Poboljšanja
Video: Programabilna tipkovnica: 5 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
U ovom projektu pokazat ću kako napraviti relativno jednostavnu i jeftinu programabilnu tipkovnicu za mapiranje vaših najčešće korištenih prečaca na tipkovnici, aplikacija i još mnogo toga.
Ova tipkovnica je otkrivena kao tipkovnica u svim glavnim operativnim sustavima, nisu potrebni dodatni upravljački programi.
Pribor
- Rotacijski davač.
- Mnogo (ovisno o vašim potrebama) tipki.
- Arduino Pro Micro, Arduino Leonardo ili bilo koja druga razvojna ploča s Atmega32U4 MCU.
- Žica, lemljenje, lemilica itd.
- (Izborno) Neka jaka baza za sprečavanje klizanja tipkovnice, koristim stari 3,5 "HDD
Korak 1: Električni krug
Odlučio sam se za Arduino Pro Micro dev ploču s Atmega32U4 MCU -om koja ima 18 upotrebljivih digitalnih pinova.
Igle za povezivanje gumba i rotacijskog davača odabrane su bez posebnog na umu, ali valja napomenuti neke stvari:
- Svi pinovi koji podržavaju digitalno čitanje imaju unutarnja povlačenja koja omogućuju umanjivanje vanjskih pull-down otpornika. Naravno, kôd bi trebao biti ažuriran u skladu s tim, jer očekuje da stanje pina pređe s niskog na visoko kad se pritisnu gumbi.
- U primjeru biblioteke encoder.h primijećeno je da se najbolje performanse kodera postižu kada oba pina spojena na MCU prekinu sposobne pinove. Većina analognih pinova Atmega32U4 nema mogućnost prekida.
- Točne vrijednosti otpornika za povlačenje nisu bitne, sve od 1 kΩ do 100 kΩ će dobro funkcionirati. Veće vrijednosti otpora omogućuju manje rasipanje snage, ali rezultiraju sporijom reakcijom pina na promjene napona. Samo odaberite otpornike koje vrijednosti imate najviše.
- Mehanički enkoderi nisu najpouzdanije stvari zbog trošenja kontakata i poskakivanja. Zato je potrebno dobro rješenje za odbacivanje. Moje odabrane vrijednosti kondenzatora i vrijeme kašnjenja u kodu vjerojatno vam neće dati najbolje rezultate. Stoga je potrebno malo eksperimentiranja. Ili prijeđite na nešto poput optičkog kodera, ali njegova je cijena znatno veća.
Korak 2: Montaža
Htio sam učiniti tipkovnicu što čistijom, pa sam lemio sve komponente na stražnjoj strani prototipne ploče. Pretpostavio sam da bi tipkovnica bila ergonomskija ako bi se koristila podignuta pod malim kutom. Zato sam lemio Arduino Pro Micro na zasebnu ploču i sve digitalne pinove spojio žicom na gumbe. Na taj način je prikladnije spojiti USB kabel.
Našao sam stari 3.5 HDD koji se koristi kao osnova za tipkovnicu, prilično je težak i sprječava klizanje oblika ploče po stolu tijekom rada (pomažu i protuklizni jastučići). Također ima prikladne rupe za vijke od 3 mm u koje sam ušrafio mesingane nosače i učvrstili ploču pod malim kutom.
Korak 3: Programiranje
Kôd je napisan s Arduino IDE -om. Morat ćete instalirati 2 knjižnice:
- Kodirač Paul Stoffregen
- Arduino tipkovnica
Za kompajliranje za Atmega32U4 također morate instalirati datoteku ploče Arduino Pro Micro, Sparkfun ima odličan vodič kako to učiniti.
Jedna stvar koju morate unaprijed napomenuti je da pazite da u svom kodu ne ostavite "pritisnute tipke". To se dogodilo meni i MCU je stalno slao neželjenu poštu u neku kombinaciju tipki. Jedini način na koji sam svjestan kako to popraviti je ponovno snimiti boot-loader na MCU. Ako ćete završiti poput mene, možete slijediti ovaj vodič za snimanje pokretačkog programa, trebat će vam druga arduino ploča koju ćete koristiti kao programer.
U glavnoj petlji MCU prvo čita svako stanje gumba, ako se otkrije promjena stanja s LOW na HIGH, izvršava se funkcija keyboard_shortcut (i). Varijabla i je ID pritisnutog gumba, ukupni broj tipki definiran je ALL_BUTTONS (u mom slučaju 15). Kada se izvrši, keyboard_shortcut (i) šalje CTRL+SHIFT, a zatim slovo koje je preslikano na ID gumba: 1-> A, 2-> B, 3-> C itd. Neke kombinacije poput CTRL+SHIFT+N izostavljene su jer je već se zadano koristi u sustavu Windows10 (u ovom slučaju za stvaranje nove mape). Ovdje je popis svih zadanih prečaca za Windows. Nakon kratkog odgode MCU šalje signal za otpuštanje svih tipki i funkcija izlazi natrag u glavnu petlju.
Nakon što se provjere svi gumbi, MCU provjerava je li se položaj rotacijskog davača promijenio i ako se to mijenja, keyboard_shortcut (i) se izvodi s jedinstvenim ID -om.
Pritiskom gumba kodera obrnuta je logička varijabla encoderButtonFlag. Kada se koder rotira, na PC se šalju različiti prečaci, ovisno o smjeru rotacije i vrijednosti encoderButtonFlag.
Ako je debugFlag postavljen na 1, poruke za otklanjanje pogrešaka se šalju putem UART -a na serijski monitor.
Korak 4: Konfiguriranje prečaca
Ono što svaki prečac radi ovisi i o vama, svi imamo različite preferencije. Kao primjer ću navesti prečace koje sam sebi konfigurirao. Koristim Linux Mint 19.3 s upraviteljem radne površine xfce4, pa moji primjeri uglavnom uključuju bash skripte, ali pokazat ću i neke osnovne primjere za Windows10.
Na prvoj slici možete vidjeti koje sam skripte preslikao na koje prečace. To je učinjeno iz izbornika postavki xfce, postupak za to je naprijed. Ove skripte možete pronaći u mojem spremištu GitHub
Manji 6 gumbi na dnu služe za pokretanje aplikacija kao što su web preglednik ili upravitelj datoteka, neke od tih aplikacija pozivaju se iz skripte start_only_one_app.sh, koja dobiva imena svih pokrenutih aplikacija i traži aplikaciju koju želite pokrenuti. Ako prozor aplikacije već postoji, fokusira se, inače se pokreće nova instanca aplikacije.
Ostale skripte:
- 2nd_display_control.sh - uključuje/isključuje drugi monitor.
- moon_lamp.sh - uključuje/isključuje moju mjesečevu svjetiljku.
- pc_load.sh - stvara oblačić obavijesti s trenutnom upotrebom CPU -a i GPU -a te temperaturama.
- shutdown.sh - pokreće isključivanje računala s kašnjenjem od 1 minute i stvara oblačić s obavijestima u kojem se prikazuje preostalo vrijeme.
- spec_vpn.sh - povezuje se s određenim OpenVPN poslužiteljem ili, ako veza već postoji, prekida vezu s poslužiteljem.
- shortcut_controll.sh - uzima naredbu (plus, minus, tab, close) kao argument, detektira koji je prozor sada fokusiran i ako je određena aplikacija aktivna, izvršava kontrolnu radnju. Na primjer, za otvaranje nove kartice u uzvišenom uređivaču teksta zadana prečica je "CTRL+N", a u terminalu xfce - "CTRL+T", pa ova skripta omogućuje otvaranje nove kartice u uzvišenom i terminalu istim pritiskom na gumb.
Prva funkcija rotacijskog davača je kontrola glasnoće, druga funkcija je upravljanje aktivnim zumiranjem prozora putem shortcut_controll.sh.
Za Windows OS možete preslikati prečace do aplikacija putem prozora svojstava programa kao što je prikazano na drugoj slici. Za sve ostalo poželjet ćete koristiti AutoHotkey. To je skriptni jezik za automatizaciju za Windows.
Nekoliko jednostavnih primjera AHK sintakse:
;Kontrola zvuka
^+t:: Pošalji {Volume_Up}
povratak
^+v:: Pošalji {Volume_Down}
povratak
; Zatvorite aktivni prozor
^+h:: WinGetTitle, Naslov, A
PostMessage, 0x112, 0xF060,,, %Naslov %
povratak
; PC za isključivanje
^+b:: Pokreni shutdown /s
Korak 5: Poboljšanja
Neka moguća poboljšanja:
- Gumbi bolje kvalitete.
- Prototip PCB -a prilično se savija pri pritisku gumba.
- RGB osvjetljenje za promjenu boje ovisno o tome koja je funkcija rotacijskog kodera postavljena.
- Više gumba (koristite IC proširivač IO).
- Bolji rotacijski koder (ili bolje rješenje za otklanjanje poteškoća).
Preporučeni:
Rotiranje božićnog drvca i programabilna svjetla s Arduinom: 11 koraka
Rotirajuće božićno drvce i programabilna svjetla s Arduinom: Rotirajuće božićno drvce i programabilna svjetla s Arduinom Projekt će vidjeti kako napraviti rotirajuće božićno drvce s arduinom, hladnjakom, perforiranom eksperimentalnom pločom, LED svjetlima i nekim drugim elektroničkim elementima
Kartonska programabilna tipkovnica: 8 koraka (sa slikama)
Kartonska programabilna tipkovnica: Kako se tehnologija razvija, ljudi žele da stvari postanu sve virtualnije, no ponekad je jednostavno praktičnije i praktičnije imati nešto fizičko što zapravo možete dotaknuti i s čime komunicirati vlastitim rukama. Jedan primjer
Programabilna hranilica za akvarijske ribe - dizajnirana granulirana hrana: 7 koraka (sa slikama)
Programabilna hranilica za akvarijske ribe - dizajnirana granulirana hrana: hranilica za ribe - dizajnirana granulirana hrana za akvarijske ribe. Vrlo jednostavan dizajn potpuno automatske hranilice za ribe. Upravljao je malim SG90 mikro servo od 9g i Arduino Nano. Napajate cijeli ulagač USB kabelom (s USB punjača ili USB priključka vašeg
Brza i prljava tipkovnica Das (prazna tipkovnica): 3 koraka
Brza i prljava Das tipkovnica (prazna tipkovnica): Dasova tipkovnica naziv je najpopularnije tipkovnice bez natpisa na tipkama (prazna tipkovnica). Das Keyboard se prodaje po cijeni od 89,95 USD. Ovo uputstvo će vas voditi iako ćete sami napraviti bilo koju staru tipkovnicu koja vam leži
Programabilna LED: 6 koraka (sa slikama)
Programabilna LED: Inspirirana raznim LED izbacivanjima, trepćućim LED diodama i sličnim uputama htjela sam napraviti svoju verziju LED diode kojom upravlja mikrokontroler. Ideja je da se LED trepereći redoslijed učini programiranim. Ovo reprogramiranje može se izvesti svjetlom i