Përmbajtje:

Tastiera e programueshme: 5 hapa (me fotografi)
Tastiera e programueshme: 5 hapa (me fotografi)

Video: Tastiera e programueshme: 5 hapa (me fotografi)

Video: Tastiera e programueshme: 5 hapa (me fotografi)
Video: VersionTECH Budget Programable Mechanical Gaming Keyboard 2024, Nëntor
Anonim
Tastiera e programueshme
Tastiera e programueshme
Tastiera e programueshme
Tastiera e programueshme

Në këtë projekt do të tregoj se si të krijoj një tastierë relativisht të thjeshtë dhe të lirë të programueshme për të hartuar shkurtoret, aplikacionet dhe më shumë tastierën tuaj të tastierës.

Kjo tastierë zbulohet si tastierë në të gjitha sistemet kryesore operative, nuk nevojiten drejtues shtesë.

Furnizimet

  • Kodifikues rrotullues.
  • Shumë butona (varet nga nevojat tuaja).
  • Arduino Pro Micro, Arduino Leonardo ose ndonjë bord tjetër dev me Atmega32U4 MCU.
  • Tela, saldim, saldim, etj.
  • (Opsionale) Një bazë e rëndë për të mos rrëshqitur tastierën, unë jam duke përdorur HDD të vjetër 3.5"

Hapi 1: Qarku Elektrik

Qarku Elektrik
Qarku Elektrik

Zgjodha të përdor bordin Arduino Pro Micro dev me Atmega32U4 MCU i cili ka 18 kunja dixhitale të përdorshme.

Kunjat për të lidhur butonat e shtypjes dhe kodifikuesin rrotullues u zgjodhën pa pasur një renditje të veçantë në mendje, por disa gjëra duhet të theksohen:

  1. Të gjitha kunjat dixhitale të afta për lexim kanë tërheqje të brendshme të cilat lejojnë zbutjen e rezistencave të jashtme tërheqëse. Sigurisht, kodi duhet të përditësohet në përputhje me rrethanat, sepse pret që gjendja e kunjit të shkojë nga e ulët në të lartë kur shtypen butonat e shtypjes.
  2. Në shembullin e bibliotekës encoder.h vuri në dukje se performanca më e mirë e kodifikuesit arrihet kur të dy kunjat e lidhur me MCU ndërpresin kunjat e aftë. Shumica e kunjave analoge të Atmega32U4 nuk kanë aftësi ndërprerjeje.
  3. Vlerat e sakta të rezistencës tërheqëse nuk kanë shumë rëndësi, çdo gjë nga 1 kΩ në 100 kΩ do të funksionojë mirë. Vlerat më të mëdha të rezistencës lejojnë shpërndarje më të vogël të energjisë, por rezulton në përgjigje më të ngadaltë të pin ndaj ndryshimeve të tensionit. Thjesht zgjidhni cilindo rezistencë të vlerës që keni më shumë.
  4. Kodifikuesit mekanikë nuk janë gjërat më të besueshme për shkak të konsumimit dhe kërcimit të kontaktit. Kjo është arsyeja pse nevojitet një zgjidhje e mirë e debunimit. Vlerat e mia të zgjedhura të kondensatorit dhe koha e vonesës në kod ndoshta nuk do të japin rezultatet më të mira për ju. Pra, nevojiten pak eksperimente. Ose kaloni në diçka si kodifikues optik, por çmimi i tij është dukshëm më i lartë.

Hapi 2: Montimi

Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi

Doja të bëja tastierën sa më të pastër që të ishte e mundur, kështu që bashkova të gjithë përbërësit në pjesën e pasme të bordit prototip. Mendova se tastiera do të ishte më ergonomike nëse do të përdorej e ngritur në kënd të vogël. Kjo është arsyeja pse unë bashkova Arduino Pro Micro në tabelë të veçantë dhe lidha të gjitha kunjat dixhital me tela për të shtypur butonat. Moreshtë më i përshtatshëm për të lidhur kabllon USB në atë mënyrë.

Gjeta HDD të vjetër 3.5 për t'u përdorur si bazë për tastierën, është mjaft e rëndë dhe parandalon që rrëshqitja e tabelës në tryezë gjatë funksionimit (jastëkët kundër rrëshqitjes ndihmojnë gjithashtu). Gjithashtu ka vrima të përshtatshme për vidha 3 mm në të cilat kam vidhosur kapëset prej bronzi dhe fiksuar bordin në kënd të vogël.

Hapi 3: Programimi

Kodi është shkruar me Arduino IDE. Do t'ju duhet të instaloni 2 biblioteka:

  • Kodues nga Paul Stoffregen
  • Tastiera nga Arduino

Për të përpiluar për Atmega32U4 gjithashtu duhet të instaloni skedarin e bordit Arduino Pro Micro, Sparkfun ka një udhëzues të shkëlqyeshëm se si ta bëni këtë.

Një gjë që duhet vënë re paraprakisht është të jeni të kujdesshëm që të mos lini "çelësat e shtypur" në kodin tuaj. Kjo më ndodhi mua dhe MCU po spamonte vazhdimisht disa kombinime kryesore të shtypit. E vetmja mënyrë që unë jam i vetëdijshëm se si ta rregulloj këtë është që të djeg përsëri boot-loader në MCU. Nëse do të përfundoni si unë, mund të ndiqni këtë udhëzues për të djegur boot-loader, do t'ju duhet një bord tjetër arduino për t'u përdorur si programues.

Në lakun kryesor, MCU së pari lexon çdo gjendje të butonit të shtypjes, nëse zbulohet ndryshimi i gjendjes nga LOW në HIGH, funksioni keyboard_shortcut (i) ekzekutohet. Variabla i është një id i butonit të shtypur, numri i butonit të shtypjes totale përcaktohet nga ALL_BUTTONS (në rastin tim 15). Kur ekzekutohet, keyboard_shortcut (i) dërgon CTRL+SHIFT dhe pastaj një shkronjë e cila është e shënuar në butonin id: 1-> A, 2-> B, 3-> C etj. Disa kombinime si CTRL+SHIFT+N hiqen sepse është përdoret tashmë në Windows10 si parazgjedhje (në këtë rast për të krijuar një dosje të re). Këtu është lista e të gjitha shkurtoreve të paracaktuara të Windows. Pas një vonese të shkurtër MCU dërgon sinjal për të lëshuar të gjithë çelësat dhe funksionet dalin përsëri në lakin kryesor.

Pasi të jenë kontrolluar të gjithë butonat, MCU kontrollon nëse pozicioni i koduesit rrotullues ka ndryshuar dhe nëse ndryshon, keyboard_shortcut (i) ekzekutohet me një ID unike.

Shtypja e butonit të koduesit përmbys ndryshuesen boolean të koduesitButtonFlag. Kur kodifikuesi rrotullohet, shkurtore të ndryshme dërgohen në PC, në varësi të drejtimit të rrotullimit dhe vlerës së koduesitButtonFlag.

Nëse debugFlag vendoset në 1 mesazhet e korrigjimit dërgohen përmes UART në monitorin serik.

Hapi 4: Konfigurimi i shkurtoreve

Konfigurimi i shkurtoreve
Konfigurimi i shkurtoreve
Konfigurimi i shkurtoreve
Konfigurimi i shkurtoreve

Ajo që bën çdo shkurtore varet nga ju, të gjithë kemi preferenca të ndryshme. Unë do të jap shkurtesat që kam konfiguruar për veten time si shembull. Unë jam duke përdorur Linux Mint 19.3 me xfce4 menaxher desktop, kështu që shembujt e mi kryesisht përfshijnë skriptet bash, por unë do të tregoj disa shembuj bazë edhe për Windows 10.

Në foton e parë ju mund të shihni se cilat skripta i kam hartuar në cilat shkurtore. Doneshtë bërë nga menyja e cilësimeve xfce, procesi për këtë është drejtpërdrejt përpara. Ju mund t'i gjeni këto skripte në depon time të GitHub

6 butona më të vegjël në fund janë për fillimin e aplikacioneve si shfletuesi i uebit ose menaxheri i skedarëve, disa prej këtyre aplikacioneve quhen nga skripti start_only_one_app.sh, i cili merr të gjithë emrat e aplikacioneve të filluara dhe kërkon aplikacionin që dëshironi të filloni. Nëse dritarja e aplikacionit ekziston tashmë, ajo përqendrohet, përndryshe fillon një shembull i ri i një aplikacioni.

Skriptet e tjera:

  • 2nd_display_control.sh - ndez/çaktivizon monitorin e dytë.
  • moon_lamp.sh - ndez Llambën time të Hënës ON/OFF.
  • pc_load.sh - krijon flluskë njoftimi me përdorimin dhe temperaturat aktuale të CPU dhe GPU.
  • shutdown.sh - inicializon mbylljen e kompjuterit me 1 minutë vonesë dhe krijon flluskë njoftimi në të cilën shfaqet koha e mbetur.
  • spec_vpn.sh - lidhet me serverin specifik OpenVPN ose nëse lidhja tashmë ekziston, shkëputet nga serveri.
  • shortcut_controll.sh - merr komandën (plus, minus, tab, mbyll) si argument, zbulon se cila dritare është fokusuar tani dhe nëse një aplikacion specifik gjendet aktiv ekzekuton veprimin e kontrollit. Për shembull, për të hapur skedën e re në redaktuesin e tekstit sublime shkurtesa e parazgjedhur është "CTRL+N" dhe në terminalin xfce - "CTRL+T", kështu që ky skript ju lejon të hapni skedë të re në sublime dhe terminal me të njëjtin buton shtytës.

Funksioni i parë i koduesit rrotullues është të kontrollojë vëllimin, funksioni i dytë është të kontrollojë zmadhimin aktiv të dritares përmes shortcut_controll.sh.

Për Windows OS mund të hartoni shkurtore të aplikacioneve përmes dritares së vetive të programit siç tregohet në figurën e dytë. Për çdo gjë tjetër do të dëshironi të përdorni AutoHotkey. Languageshtë gjuha e shkrimit të automatizimit për Windows.

Disa shembuj të thjeshtë të sintaksës AHK:

; Kontrolli i volumit

^+t:: Dërgo {Volume_Up}

kthim

^+v:: Dërgo {Volume_Down}

kthim

; Mbyll dritaren aktive

^+h:: WinGetTitle, Titulli, A

PostMessage, 0x112, 0xF060,,, %Titulli %

kthim

; Mbyllja e kompjuterit

^+b:: Drejtoni mbylljen /t

Hapi 5: Përmirësimet

Përmirësimet
Përmirësimet

Disa përmirësime të mundshme:

  • Butona shtytës me cilësi më të mirë.
  • Prototipi PCB përkulet shumë kur shtypen butonat.
  • Ndriçimi RGB për të ndryshuar ngjyrën në varësi të cilës funksion është vendosur koduesi rrotullues.
  • Më shumë butona (përdorni IC zgjerues IO).
  • Kodifikues më i mirë rrotullues (ose zgjidhje më e mirë e zbërthimit).

Recommended: