Tässä istunnossa aiomme liittää ohjaussauvan Raspberry Pi: n kanssa. Ohjaussauvaa käytetään ensisijaisesti erilaisten pelien pelaamiseen. Vaikka USB-tyyppisiä ohjaussauvoja on helppo liittää, mutta tänään aiomme liittää joystickin Raspberry Pi GPIO -nastojen kautta, tämä on hyödyllistä monissa tapauksissa.
Vadelma Pi- ja ohjaussauva-moduuli:
Ohjaussauvoja on saatavana eri muotoisina ja kokoisina. Tyypillinen ohjaussauva-moduuli on esitetty alla olevassa kuvassa. Tämä ohjaussauva-moduuli tarjoaa tyypillisesti analogisia lähtöjä, ja tämän moduulin antamat lähtöjännitteet muuttuvat jatkuvasti sen suunnan mukaan, johon liikutamme sitä. Ja voimme saada liikkeen suunnan tulkitsemalla nämä jännitteen muutokset käyttämällä jotakin mikro-ohjainta. Aikaisemmin olemme käyttäneet AVR-mikrokontrolleria Joystickin kanssa.
Tässä joystick-moduulissa on kaksi akselia, kuten näet. Ne ovat X-akseli ja Y-akseli. Jokainen JOY STICK -akseli on asennettu potentiometriin tai pottiin. Näiden ruukkujen keskipisteet ajetaan ulos Rx: ksi ja Ry: ksi. Joten Rx ja Ry ovat vaihtelevia pisteitä näille potille. Kun ohjaussauva on valmiustilassa, Rx ja Ry toimivat jännitteenjakajina.
Kun ohjaussauvaa liikutetaan vaaka-akselia pitkin, jännite Rx-nastassa muuttuu. Samoin, kun sitä liikutetaan pystysuoraa akselia pitkin, Ry-nastan jännite muuttuu. Joten meillä on neljä ohjaussauvan suuntaa kahdessa ADC-lähdössä. Kun keppiä liikutetaan, jokaisen tapin jännite nousee korkealle tai matalalle suunnasta riippuen.
Kuten tiedämme, Raspberry Pi: llä ei ole sisäistä ADC (Analog to Digital Converter) -mekanismia. Joten tätä moduulia ei voida liittää suoraan Pi: hen. Käytämme Op-amp-pohjaisia vertailijoita jännitelähtöjen tarkistamiseen. Nämä OP-vahvistimet tarjoavat signaaleja Raspberry Pi: lle ja Pi vaihtaa LED-valot signaaleista riippuen. Tässä olemme käyttäneet neljää LEDiä osoittamaan ohjaussauvan liikettä neljään suuntaan. Tarkista esittelyvideo lopussa.
Kukin 17 GPIO-nastasta ei voi ottaa yli + 3,3 V: n jännitettä, joten Op-amp-lähdöt eivät voi olla suurempia kuin 3,3 V. Siksi olemme valinneet op-amp LM324: n, tällä IC: llä on nelivaiheinen vahvistin, joka voi toimia 3 V: n jännitteellä. Tämän IC: n avulla meillä on sopivat lähdöt Raspberry pi GPIO -nastojen lähtöjä varten. Lisätietoja Raspberry Pi: n GPIO-nastoista on täällä. Tarkista myös Raspberry Pi Tutorial -sarja ja hyviä IoT-projekteja.
Vaaditut komponentit:
Tässä käytämme Raspberry Pi 2 -mallia B Raspbian Jessie -käyttöjärjestelmän kanssa. Kaikista laitteisto- ja ohjelmistovaatimuksista on keskusteltu aiemmin, voit etsiä niitä Raspberry Pi -esittelystä ja Vadelma PI -merkkivalo vilkkuu aloittaaksesi, paitsi mitä tarvitsemme:
- 1000µF kondensaattori
- Joystick-moduuli
- LM324 Op-amp IC
- 1KΩ vastus (12 kpl)
- LED (4 kpl)
- 2.2KΩ vastus (4 kpl)
Piirikaavio:
LM324 IC: ssä on neljä OP-AMP-vertailua joystickin neljän suunnan havaitsemiseksi. Alla on kaavio LM324 IC: stä sen tietolomakkeesta.
Yhteydet, jotka tehdään Joystick-moduulin liittämiselle Raspberry Pi: lle, on esitetty alla olevassa piirikaaviossa. U1: A, U1: B, U1: C, U1: D ilmaisee neljä vertailua LM324: n sisällä. Olemme esittäneet jokaisen vertailijan piirikaaviossa vastaavalla nastalla nro. LM324 IC: n arvosta.
Työselitys:
Ohjaussauvan liikkeen havaitsemiseksi Y-akselilla meillä on OP-AMP1 tai U1: A ja OP-AMP2 tai U1: B, ja joystickin liikkeen havaitsemiseksi X-akselilla meillä on OP-AMP3 tai U1.: C ja OP-AMP4 tai U1: D.
OP-AMP1 tunnistaa ohjaussauvan liikkeen Y-akselilla:
Vertailijan U1 negatiivinen liitin: A on varustettu 2,3 V: lla (käyttäen jännitteenjakajan piiriä 1 K ja 2,2 K) ja positiivinen liitin on kytketty Ry: hen. Siirtämällä ohjaussauvaa alaspäin Y-akselia pitkin, Ry-jännite kasvaa. Kun tämä jännite nousee yli 2,3 V: n, OP-AMP antaa + 3,3 V: n lähdön lähtönippiinsä. Raspberry Pi havaitsee tämän OP-AMP: n KORKean logiikkalähdön ja Pi reagoi vaihtamalla LEDiä.
OP-AMP2 tunnistaa ohjaussauvan ylösalaisin liikkumisen Y-akselia pitkin:
Vertailijan U1 negatiivinen liitin: B on varustettu 1,0 V: lla (käyttäen jännitteenjakajan piiriä 2,2 K ja 1 K) ja positiivinen liitin on kytketty Ry: hen. Kun ohjaussauvaa siirretään ylöspäin Y-akselia pitkin, Ry-jännite pienenee. Kun tämä jännite laskee alle 1,0 V: n, OP-AMP-lähtö menee matalalle. Raspberry Pi havaitsee tämän OP-AMP: n LOW-logiikkalähdön ja Pi reagoi vaihtamalla LEDiä.
OP-AMP3 tunnistaa ohjaussauvan vasemman sivuliikkeen X-akselia pitkin:
Vertailijan U1 negatiivinen liitin: C on varustettu 2,3 V: lla (jännitteenjakajan piirillä 1 K ja 2,2 K) ja positiivinen liitin on kytketty Rx: ään. Kun ohjaussauvaa siirretään vasemmalle sen x-akselia pitkin, Rx-jännite kasvaa. Kun tämä jännite nousee yli 2,3 V: n, OP-AMP antaa + 3,3 V: n lähdön lähtönippiinsä. Raspberry Pi havaitsee tämän OP-AMP: n KORKean logiikkalähdön ja Pi vastaa vaihtamalla LEDiä.
OP-AMP4 tunnistaa ohjaussauvan oikean sivun liikkeen X-akselia pitkin:
Vertailijan U1: 4 negatiivinen liitin on varustettu 1,0 V: lla (käyttäen jännitteenjakajan piiriä 2,2 K ja 1 K) ja positiivinen liitin on kytketty Rx: ään. Kun ohjaussauvaa siirretään oikealle sen x-akselia pitkin, Rx-jännite pienenee. Kun tämä jännite laskee alle 1,0 V: n, OP-AMP-lähtö menee matalalle. Raspberry Pi havaitsee tämän OP-AMP: n LOW-logiikkalähdön ja Pi reagoi vaihtamalla LEDiä.
Näin kaikki neljä logiikkaa, jotka määrittävät ohjaussauvan neljä suuntaa, kytkeytyvät Vadelma Pi: hen. Vadelma Pi ottaa näiden vertailijoiden lähdöt tuloiksi ja reagoi vastaavasti vaihtamalla ledit. Alla on Raspberry Pi: n päätelaitteessa esitetyt tulokset, koska olemme myös tulostaneet Joystickin suunnan päätelaitteelle käyttämällä Python-koodia.
Python-koodi ja video on annettu alla. Koodi on helppo ja se voidaan ymmärtää koodissa annetuilla kommenteilla.