Satura rādītājs:

Programmējama tastatūra: 5 soļi (ar attēliem)
Programmējama tastatūra: 5 soļi (ar attēliem)

Video: Programmējama tastatūra: 5 soļi (ar attēliem)

Video: Programmējama tastatūra: 5 soļi (ar attēliem)
Video: OUKITEL C21 PRO - DETALIZĒTS SKAISTU VIRTUVĀLA PĀRSKATS 2024, Novembris
Anonim
Programmējama tastatūra
Programmējama tastatūra
Programmējama tastatūra
Programmējama tastatūra

Š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

Elektriskā ķēde
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:

  1. 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.
  2. 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.
  3. 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.
  4. 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

Montāža
Montāža
Montāža
Montāža
Montāža
Montāža
Montāža
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

Īsceļu konfigurēšana
Īsceļu konfigurēšana
Īsceļu konfigurēšana
Ī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

Uzlabojumi
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: