Sisällysluettelo:

Ohjelmoitava näppäimistö: 5 vaihetta (kuvien kanssa)
Ohjelmoitava näppäimistö: 5 vaihetta (kuvien kanssa)

Video: Ohjelmoitava näppäimistö: 5 vaihetta (kuvien kanssa)

Video: Ohjelmoitava näppäimistö: 5 vaihetta (kuvien kanssa)
Video: 5 Joululaulua, 5 Bändiä/Artistia (Maustetytöt, Paperi T, Darude ym...) 2024, Marraskuu
Anonim
Ohjelmoitava näppäimistö
Ohjelmoitava näppäimistö
Ohjelmoitava näppäimistö
Ohjelmoitava näppäimistö

Tässä projektissa näytän kuinka tehdä suhteellisen yksinkertainen ja edullinen ohjelmoitava näppäimistö eniten käytettyjen pikanäppäinten, sovellusten ja paljon muuta kartoittamiseen.

Tämä näppäimistö tunnistetaan näppäimistöksi kaikissa tärkeimmissä käyttöjärjestelmissä, lisäohjaimia ei tarvita.

Tarvikkeet

  • Pyörivä anturi.
  • Paljon (riippuu tarpeistasi) painikkeita.
  • Arduino Pro Micro, Arduino Leonardo tai mikä tahansa muu kehityskortti, jossa on Atmega32U4 MCU.
  • Lanka, juote, juotin jne.
  • (Valinnainen) Paksu pohja, joka estää näppäimistön liukumisen, käytän vanhaa 3,5 tuuman kiintolevyä

Vaihe 1: Sähköpiiri

Virtapiiri
Virtapiiri

Päätin käyttää Arduino Pro Micro dev -levyä Atmega32U4 MCU: n kanssa, jossa on 18 käyttökelpoista digitaalista nastaa.

Painikkeet painikkeiden ja kiertokooderin yhdistämiseen tarkoitetut nastat valittiin ilman erityistä järjestystä, mutta on otettava huomioon seuraavat asiat:

  1. Kaikissa digitaalisesti luettavissa olevissa nastoissa on sisäiset vedot, jotka mahdollistavat ulkoisten vetovastusten vähentämisen. Tietenkin koodi on päivitettävä vastaavasti, koska se odottaa, että nastan tila siirtyy alhaisesta korkeaan, kun painikkeita painetaan.
  2. Encoder.h -kirjaston esimerkissä huomautettiin, että enkooderin paras suorituskyky saavutetaan, kun molemmat MCU: hon liitetyt nastat keskeyttävät kykenevät nastat. Useimmissa Atmega32U4: n analogisissa nastoissa ei ole keskeytysominaisuutta.
  3. Tarkilla vedettävillä vastuksilla ei ole väliä, kaikki 1 kΩ-100 kΩ toimii hyvin. Suuremmat vastusarvot mahdollistavat pienemmän virran katoamisen, mutta johtavat hitaampaan tapin vasteeseen jännitteen muutoksiin. Valitse vain ne arvovastimet, joita sinulla on eniten.
  4. Mekaaniset anturit eivät ole luotettavimpia asioita koskettimien kulumisen ja pomppimisen vuoksi. Siksi tarvitaan hyvä purkamisratkaisu. Valitsemani kondensaattorin arvot ja koodin viiveajat eivät todennäköisesti tarjoa sinulle parhaita tuloksia. Pientä kokeilua siis tarvitaan. Tai vaihda optiseen kooderiin, mutta sen hinta on huomattavasti korkeampi.

Vaihe 2: Kokoonpano

Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano

Halusin tehdä näppäimistöstä mahdollisimman siistin näköisen, joten juotin kaikki prototyyppikortin takana olevat komponentit. Ajattelin, että näppäimistö olisi ergonomisempi, jos sitä käytettäisiin korotettuna pienessä kulmassa. Siksi juotin Arduino Pro Micron erilliselle levylle ja liitin kaikki digitaaliset nastat langalla painikkeisiin. On helpompi liittää USB -kaapeli tällä tavalla.

Löysin vanhan 3,5 tuuman kiintolevyn, jota voidaan käyttää näppäimistön pohjana, se on melko painava ja estää levyn muodon liukumisen pöydän yli käytettäessä (liukastumista estävät tyynyt auttavat myös). Lisäksi siinä on kätevät 3 mm: n ruuvinreiät, joihin ruuvasin messinkitulpat ja kiinnitti levyn pieneen kulmaan.

Vaihe 3: Ohjelmointi

Koodi on kirjoitettu Arduino IDE: llä. Sinun on asennettava 2 kirjastoa:

  • Koodaaja Paul Stoffregen
  • Arduinon näppäimistö

Jotta voit kääntää Atmega32U4: lle, sinun on myös asennettava Arduino Pro Micro -korttitiedosto, Sparkfunilla on loistava opetusohjelma.

Yksi asia, joka on huomioitava etukäteen, on olla varovainen, ettet jätä "näppäimiä painetuksi" koodissasi. Tämä tapahtui minulle, ja MCU lähetti jatkuvasti roskapostia näppäinyhdistelmään. Ainoa tapa, jolla olen tietoinen tämän korjaamisesta, on polttaa käynnistyslatain uudelleen MCU: ksi. Jos päädyt kuten minä, voit seurata tätä opasta polttaaksesi käynnistyslataimen, tarvitset toisen arduino-kortin, jota voit käyttää ohjelmoijana.

Pääsilmukassa MCU lukee ensin jokaisen painikkeen tilan, jos tilan muutos LOW: sta HIGH: ksi, suoritetaan toiminto keyboard_shortcut (i). Muuttuja i on painetun painikkeen tunnus, painikkeen kokonaismäärä määritetään ALL_BUTTONS (minun tapauksessani 15). Kun suoritetaan, keyboard_shortcut (i) lähettää CTRL+SHIFT ja sitten kirjaimen, joka on yhdistetty painikkeen tunnukseen: 1-> A, 2-> B, 3-> C jne. Jotkin yhdistelmät, kuten CTRL+VAIHTO+N, jätetään pois, koska se käytetään jo oletusarvoisesti Windows 10: ssä (tässä tapauksessa uuden kansion luomiseen). Tässä on luettelo kaikista Windowsin oletusarvoisista pikakuvakkeista. Lyhyen viiveen jälkeen MCU lähettää signaalin kaikkien näppäinten vapauttamiseksi ja toiminto poistuu takaisin pääsilmukkaan.

Kun kaikki painikkeet on tarkistettu, MCU tarkistaa, onko kiertokooderin asento muuttunut, ja jos näin on, näppäimistön_sortcut (i) suoritetaan yksilöllisellä tunnuksella.

Encoder -painikkeen painallus kääntää encoderButtonFlag -loogisen muuttujan käänteiseksi. Kun anturia pyöritetään, tietokoneelle lähetetään eri pikakuvake pyörimissuunnan ja encoderButtonFlag -arvon mukaan.

Jos debugFlag -asetukseksi on valittu 1 virheenkorjausviesti, lähetetään UARTin kautta sarjamonitoriin.

Vaihe 4: Pikavalintojen määrittäminen

Pikavalintojen määrittäminen
Pikavalintojen määrittäminen
Pikavalintojen määrittäminen
Pikavalintojen määrittäminen

Jokainen pikakuvake tekee myös sinun, meillä kaikilla on erilaisia mieltymyksiä. Annan esimerkkinä itse määrittämäni pikanäppäimet. Käytän Linux Mint 19.3: aa xfce4 -työpöydänhallinnan kanssa, joten esimerkeissäni on pääasiassa bash -skriptejä, mutta näytän myös joitain perusesimerkkejä Windows10: lle.

Ensimmäisessä kuvassa näet, mitkä komentosarjat olen yhdistänyt mihin pikanäppäimiin. Se tehdään xfce -asetusvalikosta, prosessi on suoraviivainen. Löydät nämä komentosarjat GitHub -arkistostani

Pienemmät 6 painonappia alareunassa on tarkoitettu sovellusten, kuten verkkoselaimen tai tiedostonhallinnan, käynnistämiseen. Jotkut näistä sovelluksista kutsutaan start_only_one_app.sh -komentosarjasta, joka saa kaikkien käynnistyneiden sovellusten nimet ja etsii käynnistettävän sovelluksen. Jos sovellusikkuna on jo olemassa, se keskittyy, muuten uusi sovelluksen esiintymä käynnistetään.

Muut skriptit:

  • 2nd_display_control.sh - kytkee toisen näytön päälle/pois.
  • moon_lamp.sh - kytkee kuun lampun päälle/pois.
  • pc_load.sh - luo ilmoituskuplan, jossa on nykyinen suorittimen ja GPU: n käyttö ja lämpötilat.
  • shutdown.sh - käynnistää tietokoneen sammutuksen 1 minuutin viiveellä ja luo ilmoituskuplan, jossa jäljellä oleva aika näytetään.
  • spec_vpn.sh - muodostaa yhteyden tiettyyn OpenVPN -palvelimeen tai jos yhteys on jo olemassa, katkaisee yhteyden palvelimeen.
  • shortcut_controll.sh - ottaa komennon (plus, miinus, välilehti, sulje) argumentiksi, havaitsee, mikä ikkuna on nyt kohdistettu, ja jos tietty sovellus todetaan aktiiviseksi, suorittaa ohjaustoiminnon. Esimerkiksi uuden välilehden avaaminen ylevässä tekstieditorissa oletusarvoinen pikanäppäin on "CTRL+N" ja xfce -päätelaitteessa - "CTRL+T", joten tämä skripti mahdollistaa uuden välilehden avaamisen ylevässä ja päätelaitteessa samalla painikkeella.

Kiertokooderin ensimmäinen tehtävä on äänenvoimakkuuden säätö, toinen toiminto aktiivisen ikkunan zoomauksen ohjaaminen shortcut_controll.sh -tiedoston kautta.

Windows -käyttöjärjestelmässä voit yhdistää pikakuvakkeet sovelluksiin ohjelman ominaisuusikkunan kautta, kuten toisessa kuvassa näkyy. Kaikissa muissa asioissa haluat käyttää AutoHotkey -toimintoa. Se on Windowsin automaattinen komentosarjakieli.

Muutamia yksinkertaisia esimerkkejä AHK -syntaksista:

;Äänenvoimakkuuden säädin

^+t:: Lähetä {Volume_Up}

palata

^+v:: Lähetä {Volume_Down}

palata

; Sulje aktiivinen ikkuna

^+h:: WinGetTitle, Otsikko, A

PostMessage, 0x112, 0xF060,,, %Otsikko %

palata

; Sammuta PC

^+b:: Suorita sammutus /s

Vaihe 5: Parannuksia

Parannuksia
Parannuksia

Joitakin mahdollisia parannuksia:

  • Paremmat laatupainikkeet.
  • Piirilevyn prototyyppi taipuu melko paljon, kun painikkeita painetaan.
  • RGB -valaistus vaihtaa väriä sen mukaan, mihin toimintoon pyörivä anturi on asetettu.
  • Lisää painikkeita (käytä IO -laajennuskorttia).
  • Parempi pyörivä anturi (tai parempi purkuratkaisu).

Suositeltava: