Satura rādītājs:
- Piegādes
- 1. darbība: elektriskā ķēde
- 2. solis: montāža
- 3. solis: programmēšana
- 4. darbība. Īsceļu konfigurēšana
- 5. solis: uzlabojumi
Video: Programmējama tastatūra: 5 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:53
Šajā projektā es parādīšu, kā izveidot salīdzinoši vienkāršu un lētu programmējamu tastatūru, lai kartētu visbiežāk lietotos īsinājumtaustiņus, lietojumprogrammas un daudz ko citu.
Šī tastatūra tiek atklāta kā tastatūra visās galvenajās OS, nav nepieciešami papildu draiveri.
Piegādes
- Rotējošais kodētājs.
- Daudz (atkarībā no jūsu vajadzībām) spiedpogu.
- Arduino Pro Micro, Arduino Leonardo vai jebkura cita izstrādātāja plate ar Atmega32U4 MCU.
- Vads, lodmetāls, lodāmurs utt.
- (Pēc izvēles) Smaga pamatne, lai tastatūra neslīdētu, es izmantoju veco 3,5 collu cieto disku
1. darbība: elektriskā ķēde
Es izvēlējos izmantot Arduino Pro Micro dev dēli ar Atmega32U4 MCU, kuram ir 18 izmantojamas digitālās tapas.
Tapas spiedpogu un rotējošā kodētāja savienošanai tika izvēlētas, neņemot vērā īpašu secību, taču jāņem vērā dažas lietas:
- Visām tapām, kas spēj nolasīt ciparus, ir iekšēji savilkumi, kas ļauj mazināt ārējos nolaižamos rezistorus. Protams, kods ir attiecīgi jāatjaunina, jo, nospiežot spiedpogas, tas paredz, ka tapas stāvoklis mainīsies no zemas uz augstu.
- Encoder.h bibliotēkas piemērā tika atzīmēts, ka vislabākā kodētāja veiktspēja tiek sasniegta, kad abas tapas, kas savienotas ar MCU, pārtrauc atbilstošās tapas. Lielākajai daļai Atmega32U4 analogo tapu nav pārtraukuma iespēju.
- Precīzām nolaižamā rezistora vērtībām nav lielas nozīmes, viss no 1 kΩ līdz 100 kΩ darbosies labi. Lielākas pretestības vērtības nodrošina mazāku jaudas izkliedi, bet rezultātā lēnāka tapas reakcija uz sprieguma izmaiņām. Vienkārši izvēlieties visaugstākās vērtības rezistorus.
- Mehāniskie kodētāji nav visuzticamākās lietas kontaktu nodiluma un atsitiena dēļ. Tieši tāpēc ir vajadzīgs labs atcelšanas risinājums. Manas izvēlētās kondensatora vērtības un aizkaves laiks kodā, iespējams, nesniegs jums vislabākos rezultātus. Tāpēc ir nepieciešams nedaudz eksperimentēt. Vai arī pārslēdzieties uz kaut ko līdzīgu optiskajam kodētājam, taču tā cena ir ievērojami augstāka.
2. solis: montāža
Es gribēju, lai tastatūra būtu pēc iespējas tīrāka, tāpēc pielodēju visas sastāvdaļas prototipa plāksnes aizmugurē. Es sapratu, ka tastatūra būtu ergonomiskāka, ja tā tiktu izmantota pacelta nelielā leņķī. Tāpēc es lodēju Arduino Pro Micro uz atsevišķas plates un visas digitālās tapas ar vadu pievienoju spiedpogām. Šādā veidā ir ērtāk pieslēgt USB kabeli.
Es atradu veco 3,5 collu cieto disku, ko izmantot kā tastatūras pamatu, tas ir diezgan smags un neļauj dēļa formai slīdēt pāri rakstāmgaldam, kad tas darbojas (palīdz arī pretslīdes spilventiņi). Tam ir arī ērti 3 mm skrūvju caurumi, kuros ieskrūvēju misiņa statīvus un nostiprināja dēli nelielā leņķī.
3. solis: programmēšana
Kods ir rakstīts ar Arduino IDE. Jums būs jāinstalē 2 bibliotēkas:
- Kodētājs Pols Štofregens
- Arduino tastatūra
Lai apkopotu Atmega32U4, jums jāinstalē arī Arduino Pro Micro plates fails, Sparkfun ir lieliska apmācība, kā to izdarīt.
Viena lieta, kas jāievēro iepriekš, ir uzmanīties, lai kodā neatstātu "taustiņus nospiestus". Tas notika ar mani, un MCU nepārtraukti sūtīja surogātpastu ar kādu taustiņu nospiešanas kombināciju. Vienīgais veids, kā es zinu, kā to novērst, ir boot-loader atkārtota ierakstīšana MCU. Ja jūs galu galā kļūsit tāds pats kā es, varat izpildīt šo rokasgrāmatu, lai ierakstītu sāknēšanas ielādētāju, un jums būs nepieciešama cita arduino plāksne, ko izmantot kā programmētāju.
Galvenajā cilpā MCU vispirms nolasa katru spiedpogas stāvokli, ja tiek konstatēta stāvokļa maiņa no LOW uz HIGH, tiek izpildīta funkcija keyboard_shortcut (i). Mainīgais i ir nospiestas pogas ID, kopējo spiedpogu skaitu nosaka ALL_BUTTONS (manā gadījumā 15). Izpildot, tastatūras_saīsinājums (i) nosūta taustiņu kombināciju CTRL+SHIFT un pēc tam burtu, kas tiek kartēts uz pogas ID: 1-> A, 2-> B, 3-> C utt. Dažas kombinācijas, piemēram, CTRL+SHIFT+N, tiek izlaistas, jo pēc noklusējuma jau tiek izmantota operētājsistēmā Windows10 (šajā gadījumā, lai izveidotu jaunu mapi). Šeit ir visu noklusējuma Windows īsinājumtaustiņu saraksts. Pēc īsas kavēšanās MCU nosūta signālu, lai atbrīvotu visus taustiņus, un funkcija iziet atpakaļ uz galveno cilpu.
Kad visas pogas ir pārbaudītas, MCU pārbauda, vai ir mainīta rotējošā kodētāja pozīcija, un, ja mainās, tastatūras_īsinājumtaustiņš (i) tiek izpildīts ar unikālu ID.
Kodētāja pogas nospiešana apvērš encoderButtonFlag Būla mainīgo. Kad kodētājs tiek pagriezts, uz datoru tiek nosūtīti dažādi saīsnes atkarībā no rotācijas virziena un encoderButtonFlag vērtības.
Ja debugFlag ir iestatīts uz 1 atkļūdošanas ziņojumi, izmantojot UART, tiek nosūtīti uz seriālo monitoru.
4. darbība. Īsceļu konfigurēšana
Katra saīsne ir atkarīga arī no jums, mums visiem ir dažādas preferences. Kā piemēru es norādīšu, kādus īsceļus es konfigurēju sev. Es izmantoju Linux Mint 19.3 ar xfce4 darbvirsmas pārvaldnieku, tāpēc mani piemēri galvenokārt attiecas uz bash skriptiem, taču es parādīšu dažus pamata piemērus arī operētājsistēmai Windows10.
Pirmajā attēlā jūs varat redzēt, kurus skriptus es saistīju ar īsinājumtaustiņiem. Tas tiek darīts no xfce iestatījumu izvēlnes, process ir vienkāršs. Šos skriptus varat atrast manā GitHub krātuvē
Mazākas 6 spiedpogas apakšā ir paredzētas lietojumprogrammu, piemēram, tīmekļa pārlūkprogrammas vai failu pārvaldnieka, startēšanai, dažas no šīm lietojumprogrammām tiek izsauktas no skripta start_only_one_app.sh, kurā tiek parādīti visi sākto lietojumprogrammu nosaukumi un tiek meklēta lietojumprogramma, kuru vēlaties sākt. Ja lietojumprogrammas logs jau pastāv, tas tiek fokusēts, pretējā gadījumā tiek sākta jauna lietojumprogrammas instance.
Citi skripti:
- 2nd_display_control.sh - ieslēdz/izslēdz otro monitoru.
- moon_lamp.sh - ieslēdz/izslēdz manu Mēness lampu.
- pc_load.sh - izveido paziņojumu burbuli ar pašreizējo CPU un GPU izmantošanu un temperatūru.
- shutdown.sh - inicializē datora izslēgšanu ar 1 minūtes kavēšanos un izveido paziņojumu burbuli, kurā tiek parādīts atlikušais laiks.
- spec_vpn.sh - savienojas ar konkrētu OpenVPN serveri vai, ja savienojums jau pastāv, atvienojas no servera.
- shortcut_controll.sh - kā argumentu pieņem komandu (plus, mīnus, cilne, aizvērt), nosaka, kurš logs tagad ir fokusēts, un, ja tiek atrasta aktīva lietojumprogramma, izpilda vadības darbību. Piemēram, lai atvērtu jaunu cilni cildenajā teksta redaktorā, noklusējuma saīsne ir "CTRL+N", bet xfce terminālī - "CTRL+T", tāpēc šis skripts ļauj atvērt jaunu cilni cildenā un terminālī ar vienu un to pašu pogu.
Rotējošā kodētāja pirmā funkcija ir kontrolēt skaļumu, otrā funkcija ir kontrolēt aktīvo loga tālummaiņu, izmantojot shortcut_controll.sh.
Operētājsistēmā Windows OS īsinājumtaustiņus uz programmām var kartēt, izmantojot programmas rekvizītu logu, kā parādīts otrajā attēlā. Visam citam vēlaties izmantot AutoHotkey. Tā ir automatizācijas skriptu valoda operētājsistēmai Windows.
Daži vienkārši AHK sintakses piemēri:
; Skaļuma kontrole
^+t:: Sūtīt {Volume_Up}
atgriezties
^+v:: Sūtīt {Volume_Down}
atgriezties
; Aizvērt aktīvo logu
^+h:: WinGetTitle, Title, A
PostMessage, 0x112, 0xF060,,, %Title %
atgriezties
; Izslēdziet datoru
^+b:: Palaist izslēgšanu /s
5. solis: uzlabojumi
Daži iespējamie uzlabojumi:
- Labākas kvalitātes spiedpogas.
- Nospiežot pogas, PCB prototips ir ļoti elastīgs.
- RGB apgaismojums, lai mainītu krāsu atkarībā no tā, kura funkcija ir iestatīta.
- Vairāk pogu (izmantojiet IO paplašinātāja IC).
- Labāks rotējošais kodētājs (vai labāks atspējošanas risinājums).
Ieteicams:
Programmējama ķirbju gaisma: 25 soļi (ar attēliem)
Programmējama ķirbju gaisma: šī pamācība ir paredzēta programmējamas ķirbju gaismas izgatavošanai ar ATTiny mikrokontrolleri. Tas tika izstrādāts kā mācību demonstrācija, lai ikvienu (no 8 gadu vecuma) iepazīstinātu ar elektroniku un mikrokontrolleru programmēšanu, izmantojot Arduino IDE. Noliektais objekts
Pilnībā izgaismota - programmējama RGB LED akrila zīme: 3 soļi (ar attēliem)
Pilnīgi izgaismota - programmējama RGB LED akrila zīme: Spēlēju ar lāzera griezēju/gravieri un patiešām iemīlēju gravēšanu, lai notīrītu akrilu un spīdētu gaismas avotu no malas. Izmantotā akrila biezums ir a.25 " loksne, kas patiešām tīri sagriež
Programmējama kartona tastatūra: 8 soļi (ar attēliem)
Programmējama kartona tastatūra: Attīstoties tehnoloģijai, cilvēki vēlas, lai lietas kļūtu arvien virtuālākas, tomēr dažreiz ir vienkārši daudz praktiskāk un ērtāk iegūt kaut ko fizisku, ko jūs faktiski varat pieskarties un mijiedarboties ar savām rokām. Viens piemērs
Programmējama gaismas diode: 6 soļi (ar attēliem)
Programmējams LED: iedvesmojoties no dažādiem gaismas diodēm, mirgojošām gaismas diodēm un līdzīgām instrukcijām, es vēlējos izveidot savu LED versiju, ko kontrolē mikrokontrolleris. Ideja ir padarīt LED mirgošanas secību pārprogrammējamu. Šo pārprogrammēšanu var veikt ar gaismu un
Pasaulē plānākā programmējamā ādas aproce!: 6 soļi (ar attēliem)
Pasaulē plānākā programmējamā ādas rokassprādze!: Aniomagic pogas-shēmotājs ir tik pārsteidzošs logrīks. Tas ir niķeļa lieluma apkārtējās vides programmu lasītājs, kas ir programmējams ar īpaši noteiktiem gaismas zibspuldzēm. Ar to mēs izgatavosim pasaulē plānāko, programmējamo rokassprādzi. Esmu