Sisukord:
- Tarvikud
- Samm: elektriahel
- 2. samm: kokkupanek
- 3. samm: programmeerimine
- Samm: otseteede seadistamine
- 5. samm: täiustused
Video: Programmeeritav klahvistik: 5 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
Selles projektis näitan, kuidas teha suhteliselt lihtsaid ja odavaid programmeeritavaid klahvistikke enimkasutatud kiirklahvide, rakenduste jm kaardistamiseks.
See klaviatuur tuvastatakse klaviatuurina kõigis suuremates operatsioonisüsteemides, täiendavaid draivereid pole vaja.
Tarvikud
- Pöörlev kodeerija.
- Palju (sõltub teie vajadustest) nuppe.
- Arduino Pro Micro, Arduino Leonardo või mõni muu arendusplaat koos Atmega32U4 MCU -ga.
- Traat, joodis, jootekolb jne.
- (Valikuline) Mõni raske alus klaviatuuri libisemise vältimiseks, kasutan vana 3,5 -tollist kõvaketast
Samm: elektriahel
Ma otsustasin kasutada Arduino Pro Micro dev plaati koos Atmega32U4 MCU -ga, millel on 18 kasutatavat digitaalset tihvti.
Nööpnõelte ja pöörleva kodeerija ühendamiseks mõeldud tihvtid valiti ilma erilist järjekorda silmas pidades, kuid mõned asjad tuleb märkida:
- Kõigil digitaalselt loetavatel tihvtidel on sisemised tõmbetõmbed, mis võimaldavad leevendada väliseid tõmbetakistusi. Loomulikult tuleks koodi vastavalt uuendada, sest see eeldab, et tihvti olek läheb nuppude vajutamisel madalast kõrgeks.
- Teatises encoder.h märgiti, et kodeerija parim jõudlus saavutatakse siis, kui mõlemad MCU -ga ühendatud tihvtid katkestavad võimelised tihvtid. Enamikul Atmega32U4 analoog -tihvtidel pole katkestamisvõimalust.
- Täpsed tõmbetakistite väärtused ei oma suurt tähtsust, kõik vahemikus 1 kΩ kuni 100 kΩ töötab hästi. Suuremad takistuse väärtused võimaldavad väiksemat võimsuse hajumist, kuid pinge muutustele reageerib tihvt aeglasemalt. Valige lihtsalt need väärtustakistid, mida teil kõige rohkem on.
- Mehaanilised kodeerijad ei ole kontaktide kulumise ja põrkumise tõttu kõige usaldusväärsemad asjad. Sellepärast on vaja head väljalülituslahendust. Minu valitud kondensaatori väärtused ja viiteajad koodis ei anna teile tõenäoliselt parimaid tulemusi. Seega on vaja natuke katsetada. Või lülitage midagi optilise kodeerija sarnast, kuid selle hind on oluliselt kõrgem.
2. samm: kokkupanek
Tahtsin muuta klahvistiku võimalikult puhtaks, nii et jootsin kõik prototüüpplaadi tagaküljel olevad komponendid. Arvasin, et klahvistik oleks ergonoomilisem, kui seda kasutada väikese nurga all. Sellepärast jootsin Arduino Pro Micro eraldi plaadile ja ühendasin kõik digitaalsed tihvtid juhtmega nuppudega. USB -kaablit on sel viisil mugavam ühendada.
Leidsin vana 3,5-tollise kõvaketta, mida kasutada klaviatuuri alusena, see on üsna raske ja takistab plaadivormi libisemist töölaual (ka libisemisvastased padjad aitavad). Samuti on sellel mugavad 3 mm kruviavad, millesse keerasin messingist vaheseinad ja plaat kerge nurga all kinnitatud.
3. samm: programmeerimine
Kood on kirjutatud Arduino IDE -ga. Peate installima 2 raamatukogu:
- Kooder Paul Stoffregen
- Arduino klaviatuur
Atmega32U4 jaoks kompileerimiseks peate installima ka Arduino Pro Micro tahvlifaili, Sparkfunil on suurepärane õpetus, kuidas seda teha.
Üks asi, mida tuleb eelnevalt märkida, on olla ettevaatlik, et mitte jätta oma koodis "klahve vajutatud". See juhtus minuga ja MCU saatis pidevalt mõnda klahvivajutuse kombinatsiooni. Ainus viis, kuidas seda parandada, on alglaaduri uuesti MCU-sse põletamine. Kui jõuate lõpuks nagu mina, võite käivituslaaduri põletamiseks järgida seda juhendit. Programmeerijana kasutamiseks on teil vaja teist arduino plaati.
Põhiahelas loeb MCU esmalt iga nupu olekut, kui tuvastatakse oleku muutus LOW -st kõrgeks, käivitatakse funktsioon keyboard_shortcut (i). Muutuja i on vajutatud nupu ID, nuppude koguarv on määratletud ALL_BUTTONS (minu puhul 15). Kui see käivitatakse, saadab klaviatuuri_klahvikombinatsioon (i) CTRL+SHIFT ja seejärel tähe, mis on kaardistatud nupu ID-ga: 1-> A, 2-> B, 3-> C jne. Mõned kombinatsioonid, näiteks CTRL+SHIFT+N, jäetakse välja, kuna Windows 10 -s juba vaikimisi kasutusel (antud juhul uue kausta loomiseks). Siin on kõigi Windowsi vaikimisi otseteede loend. Pärast lühikest viivitust saadab MCU signaali kõigi klahvide vabastamiseks ja funktsioon väljub tagasi põhiahelasse.
Pärast kõigi nuppude kontrollimist kontrollib MCU, kas pöördkodeerija asend on muutunud, ja kui see muutub, käivitatakse klaviatuuri_lülitus (i) unikaalse ID -ga.
Kodeerija nupuvajutus pöörab encoderButtonFlag loogilise muutuja ümber. Koodri pööramisel saadetakse arvutisse erinev otsetee, sõltuvalt pöörlemissuunast ja encoderButtonFlag väärtusest.
Kui debugFlag on seatud 1 silumissõnumile, saadetakse UART kaudu jadamonitorile.
Samm: otseteede seadistamine
See, mida iga otsetee teeb, sõltub ka teist, meil kõigil on erinevad eelistused. Toon näitena, millised otseteed enda jaoks seadistasin. Ma kasutan Linux Mint 19.3 koos xfce4 töölauahalduriga, nii et minu näited hõlmavad peamiselt bash -skripte, kuid näitan ka mõningaid põhinäiteid Windows10 jaoks.
Esimesel pildil näete, millised skriptid millistele otseteedele kaardistasin. Seda tehakse xfce seadete menüüst, selle protsess on lihtne. Need skriptid leiate minu GitHubi hoidlast
Väiksemad 6 vajutusnuppu allosas on mõeldud selliste rakenduste käivitamiseks nagu veebibrauser või failihaldur. Mõnda neist rakendustest kutsutakse skriptiga start_only_one_app.sh, mis saab kõigi käivitatud rakenduste nimed ja otsib rakendust, mida soovite käivitada. Kui rakenduse aken on juba olemas, keskendutakse sellele, muidu käivitatakse uus rakenduse eksemplar.
Muud skriptid:
- 2nd_display_control.sh - lülitab teise monitori sisse/välja.
- moon_lamp.sh - lülitab kuulambi sisse/välja.
- pc_load.sh - loob teavitusmulli praeguse CPU ja GPU kasutamise ning temperatuuridega.
- shutdown.sh - käivitab arvuti väljalülitamise 1 -minutilise viivitusega ja loob teavitusmulli, milles kuvatakse järelejäänud aeg.
- spec_vpn.sh - loob ühenduse konkreetse OpenVPN -serveriga või kui ühendus on juba olemas, katkestab ühenduse serveriga.
- shortcut_controll.sh - võtab argumendina käsu (pluss, miinus, sakk, sulge), tuvastab, milline aken on nüüd fokuseeritud ja kui konkreetne rakendus leitakse aktiivne, täidab juhtimistoimingu. Näiteks uue vahekaardi avamiseks ülevas tekstiredaktoris on vaikimisi otsetee "CTRL+N" ja terminalis xfce - "CTRL+T", seega võimaldab see skript avada uue vahelehe ülevas ja terminalis sama vajutusnupuga.
Pöörleva kodeerija esimene funktsioon on helitugevuse reguleerimine, teine funktsioon on akna aktiivse suumi juhtimine funktsiooni shortcut_controll.sh kaudu.
Windowsi operatsioonisüsteemi puhul saate otseteed rakendustele kaardistada programmi atribuutide akna kaudu, nagu on näidatud teisel pildil. Kõige muu jaoks soovite kasutada AutoHotkey. See on Windowsi automaatse skriptimise keel.
Mõned lihtsad näited AHK süntaksist:
; Helitugevuse reguleerimine
^+t:: Saada {Volume_Up}
tagasi
^+v:: Saada {Volume_Down}
tagasi
; Sulge aktiivne aken
^+h:: WinGetTitle, pealkiri, A
PostMessage, 0x112, 0xF060,,, %Pealkiri %
tagasi
; Arvuti väljalülitamine
^+b:: Käivita sulgemine /s
5. samm: täiustused
Mõned võimalikud parandused:
- Parema kvaliteediga nupud.
- PCB prototüüp paindub nuppude vajutamisel üsna palju.
- RGB -valgustus, et muuta värvi sõltuvalt sellest, millisele funktsioonile pöördkodeerija on seatud.
- Rohkem nuppe (kasutage IO -laiendi IC -d).
- Parem pöörlev kodeerija (või parem tagasivoolulahendus).
Soovitan:
Renegade-i (programmeeritav IC-tester, mis tundub tõeline): 3 sammu (piltidega)
Renegade-i (programmeeritav IC-tester, mis tundub tõeline): MILJON DOLLAR DREAM. Kas olete kunagi unistanud, et teil oleks kodus oma IC-tester? Mitte ainult vidin, millega saab testida IC -d, vaid ka “programmeeritav” masin, mis tundub olevat üks semikoni testitööstuse suurimate tegijate lipulaev
Alarmi klahvistik MQTT ESP8266: 4 sammu (piltidega)
Alarmi klahvistik MQTT ESP8266: Selles juhendis näitan teile, kuidas ma tegin patareitoitega klahvistiku, et oma koduhäire lubada ja keelata. Tulevikus kavatsen teha täiustatud, millel on RFID -lugeja ja mis ei tööta patareidega. Kavatsen ka klaviatuuri lugeda
Papist klahvistik: 5 sammu
Papist klahvistik: mul oli teise projekti jaoks vaja numbriklaviatuuri, kuid koju võtmine ja vastuvõtmine võtaks liiga kaua aega. Niisiis mõtlesin, et teeksin oma selle, mis mul siin oli - piimapakk, alumiiniumfoolium ja kahepoolne kleeplint. See ei saa olema
Klahvistik Klaver: 3 sammu
Klahvpilliklaver: see õpetus näitab, kuidas luua 4 -klahvistiku ja passiivse helisignaali abil põhiline 8 -noodiline klaver. Selles projektis mängivad klahvid 1 kuni 8 klaveril noote ja A-D nupud mängivad etteantud meloodiaid
LCD -klahvistik, kasutades CloudX -i mikrokontrollerit: 4 sammu
Klahvistik LCD -ekraaniga, kasutades CloudX -i mikrokontrollerit: Selle projekti jaoks võtame vastu maatriksklaviatuuri andmed ja kuvame need seejärel LCD -moodulil