Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Sähköpiiri
- Vaihe 2: Kokoonpano
- Vaihe 3: Ohjelmointi
- Vaihe 4: Pikavalintojen määrittäminen
- Vaihe 5: Parannuksia
Video: Ohjelmoitava näppäimistö: 5 vaihetta (kuvien kanssa)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
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
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:
- 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.
- 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.
- 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.
- 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
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
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
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:
Kirjoituskoneen tietokoneen näppäimistö: 13 vaihetta (kuvien kanssa)
Kirjoituskoneen tietokoneen näppäimistö: Kirjoituskone, joka on tietokoneen näppäimistö? Tai tietokoneen näppäimistö, joka on kirjoituskone? Maailma ei ehkä koskaan tiedä, mutta yhden niistä käyttäminen tuo mukanaan tietyn huimauksen, jota tavallisesti ei löydy oman nimen kirjoittamisesta. Puhumattakaan, se on aina niin
Pahvi ohjelmoitava näppäimistö: 8 vaihetta (kuvien kanssa)
Ohjelmoitava pahvinäppäimistö: Tekniikan kehittyessä ihmiset haluavat asioiden olevan yhä enemmän virtuaalisia, mutta joskus on vain paljon käytännöllisempää ja kätevämpää saada jotain fyysistä, jota voit itse koskettaa ja olla vuorovaikutuksessa omin käsin. Yksi esimerkki
Ohjelmoitava virtalähde 42V 6A: 6 vaihetta (kuvien kanssa)
Ohjelmoitava virtalähde 42V 6A: Uusi projektini sai inspiraationsa ohjelmoitavasta virtalähteestä, Ruideng -moduulista. Se on fantastinen, erittäin tehokas, tarkka ja kohtuulliseen hintaan. Lähtöjännitteeseen ja -virtaan liittyviä malleja on saatavilla vain vähän. Uusimmat on varustettu
Ohjelmoitava RGB -LED -sekvensseri (Arduinon ja Adafruit -ristikkojen avulla): 7 vaihetta (kuvien kanssa)
Ohjelmoitava RGB -LED -sekvensseri (käyttäen Arduinoa ja Adafruit Trellisiä): Poikani halusivat värillisiä LED -nauhoja valaisemaan työpöydänsä, enkä halunnut käyttää purkitettua RGB -nauhaohjainta, koska tiesin, että he kyllästyisivät kiinteisiin kuvioihin näillä ohjaimilla on. Ajattelin myös, että se olisi loistava tilaisuus luoda
Ohjelmoitava LED: 6 vaihetta (kuvien kanssa)
Ohjelmoitava LED: Eri LED -valojen, vilkkuvien LED -valojen ja vastaavien ohjeiden innoittamana halusin tehdä oman versioni mikro -ohjaimella ohjattavasta LED -valosta. Tämä uudelleenohjelmointi voidaan tehdä valolla ja