Raspberry Pi on ARM-arkkitehtuuriprosessoripohjainen kortti, joka on suunniteltu elektroniikkasuunnittelijoille ja harrastajille. PI on yksi luotetuimmista projektien kehittämisalustoista. Suuremmalla prosessorinopeudella ja 1 Gt: n RAM-muistilla PI: tä voidaan käyttää moniin korkean profiilin projekteihin, kuten kuvankäsittelyyn ja esineiden internetiin.
Minkä tahansa korkean profiilin projektin suorittamiseksi on ymmärrettävä PI: n perustoiminnot. Käsittelemme kaikki Raspberry Pi: n perustoiminnot näissä opetusohjelmissa. Jokaisessa opetusohjelmassa keskustelemme yhdestä PI: n toiminnoista. Tämän Raspberry Pi Tutorial -sarjan loppuun mennessä voit tehdä itse korkean profiilin projekteja. Käy läpi alla olevat opetusohjelmat:
- Raspberry Pi: n käytön aloittaminen
- Vadelma Pi -määritys
- LED vilkkuu
- Vadelma Pi-painikkeen liitäntä
- Vadelma Pi PWM-sukupolvi
- DC-moottorin ohjaus Raspberry Pi: llä
- Askelmoottorin ohjaus Raspberry Pi: llä
- Raspberry Pi: n vuorovaikutteinen vaihtorekisteri
Tässä opetusohjelmassa liitämme ADC (Analog to Digital Conversion) -sirun Raspberry Pi: hen. Tiedämme kaikki analogisen parametrit, eli ne vaihtelevat jatkuvasti ajan myötä. Sano esimerkiksi huoneen lämpötilaa, huoneen lämpötila vaihtelee ajan myötä jatkuvasti. Tämä lämpötila annetaan desimaalilukuina. Mutta digitaalisessa maailmassa ei ole desimaalilukuja, joten meidän on muunnettava analoginen arvo digitaaliseksi. Tämä muunnosprosessi tehdään ADC-tekniikalla. Lisätietoja ADC: stä on täällä: ADC0804: n esittely
ADC0804 ja Vadelma Pi:
Normaaleilla ohjaimilla on ADC-kanavat, mutta PI: lle ei ole ADC-kanavia, jotka on toimitettu sisäisesti. Joten jos haluamme liittää analogiset anturit, tarvitsemme ADC-muunnosyksikön. Joten tätä tarkoitusta varten aiomme liittää ADC0804: n Raspberry Pi: n kanssa.
ADC0804 on siru, joka on suunniteltu muuntamaan analoginen signaali 8-bittiseksi digitaaliseksi dataksi. Tämä siru on yksi suosituimmista ADC-sarjoista. Se on 8-bittinen muunnosyksikkö, joten meillä on arvoja tai 0-255 arvoa. Jos mittausjännite on enintään 5 V, meillä on muutos jokaista 19,5 mV kohden. Alla on ADC0804: n Pinout:
Toinen tärkeä asia tässä on, että ADC0804 toimii 5 V: n jännitteellä, joten se tuottaa lähtöä 5 V: n loogisessa signaalissa. 8-napaisessa lähdössä (joka edustaa 8 bittiä) jokainen nasta tarjoaa + 5 V: n lähdön edustamaan logiikkaa'1 '. Joten ongelma on, että PI-logiikka on + 3.3v, joten et voi antaa + 5V-logiikkaa PI: n + 3.3V GPIO-nastalle. Jos annat + 5 V mille tahansa PI-GPIO-nastalle, levy vahingoittuu.
Joten logiikkatason alentamiseksi + 5 V: sta käytämme jännitteenjakajan piiriä. Olemme keskustelleet jännitteenjakajapiiristä, etsimme sitä aikaisemmin lisäselvityksiä varten. Mitä teemme, on, että käytämme kahta vastusta jakamaan + 5 V logiikka 2 * 2,5 V logiikaksi. Joten jaon jälkeen annamme PI: lle + 2,5 V logiikan. Joten aina kun ADC0804 esittää logiikan '1', PI GPIO -nastassa näkyy + 2,5 V + 5 V: n sijasta.
Lisätietoja Raspberry Pi: n GPIO-nastoista on täällä ja käy läpi edelliset oppaamme.
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 -johdannosta, paitsi mitä tarvitsemme:
- Liitintapit
- 220Ω tai 1KΩresistori (17 kpl)
- 10K potti
- 0,1µF kondensaattori (2 kpl)
- ADC0804 IC
- Leipälauta
Piirin selitys:
Se toimii syöttöjännitteellä + 5v ja voi mitata vaihtelevan jännitealueen 0-5V alueella.
Liitännät rajapinnat ADC0804 ja vadelma PI, on esitetty piirikaavio edellä.
ADC: llä on aina paljon melua, tämä melu voi vaikuttaa suuresti suorituskykyyn, joten käytämme 0,1uF-kondensaattoria kohinasuodatukseen. Ilman tätä tuotoksessa on paljon vaihteluita.
Piiri toimii RC (vastus-kondensaattori) oskillaattorikellolla. Kuten piirikaaviossa on esitetty, C2 ja R20 muodostavat kellon. Tärkeä asia, joka tässä on muistettava, on kondensaattori C2, joka voidaan muuttaa pienemmäksi arvoksi ADC-muunnoksen korkeammalle nopeudelle. Suuremmalla nopeudella tarkkuus kuitenkin pienenee. Joten jos sovellus vaatii suurempaa tarkkuutta, valitse kondensaattori, jolla on suurempi arvo, ja suuremmalla nopeudella valitse kondensaattori, jolla on pienempi arvo.
Ohjelmoinnin selitys:
Kun kaikki on kytketty piirikaavion mukaisesti, voimme kytkeä PI: n päälle kirjoittamaan ohjelman PYHTON-muodossa.
Puhumme muutamasta komennosta, joita aiomme käyttää PYHTON-ohjelmassa, Aiomme tuoda GPIO-tiedoston kirjastosta, alla oleva toiminto antaa meille mahdollisuuden ohjelmoida PI: n GPIO-nastat. Nimeämme myös "GPIO": n "IO: ksi", joten aina kun haluamme viitata GPIO-nastoihin, käytämme sanaa "IO".
tuo RPi.GPIO IO: ksi
Joskus, kun GPIO-nastat, joita yritämme käyttää, saattavat tehdä joitain muita toimintoja. Siinä tapauksessa saamme varoituksia ohjelman suorituksen aikana. Alla oleva komento kehottaa PI: tä ohittamaan varoitukset ja jatkamaan ohjelmaa.
IO.setwarnings (väärä)
Voimme viitata PI: n GPIO-nastoihin joko aluksella olevalla pin-numerolla tai niiden toimintonumerolla. Kuten taululla oleva PIN-koodi 29, on GPIO5. Joten sanomme täällä joko aion edustaa tappi tässä '29' tai '5'.
IO.setmode (IO.BCM)
Asetamme 8 nastaa syöttönapeiksi. Havaitsemme 8-bittiset ADC-tiedot näistä nastoista.
IO.setup (4, IO.IN) IO.setup (17, IO.IN) IO.setup (27, IO.IN) IO.setup (22, IO.IN) IO.setup (5, IO.IN) IO.setup (6, IO.IN) IO.setup (13, IO.IN) IO.setup (19, IO.IN)
Jos aaltosulkeiden ehto on totta, silmukan sisällä olevat lauseet suoritetaan kerran. Joten jos GPIO-nasta 19 nousee korkealle, IF-silmukan sisällä olevat lauseet suoritetaan kerran. Jos GPIO-nasta 19 ei mene korkealle, IF-silmukan sisällä olevia lauseita ei suoriteta.
jos (IO.tulo (19) == Tosi):
Alla olevaa komentoa käytetään ikuisesti silmukana, tällä komennolla tämän silmukan sisällä olevat lauseet suoritetaan jatkuvasti.
Vaikka 1:
Lisätietoja ohjelmasta on alla olevassa koodiosassa.
Työskentely:
Kun olet kirjoittanut ohjelman ja suorittanut sen, näet ruudulla '0'. '0' tarkoittaa 0 volttia syötöllä.
Jos säädämme siruun liitettyä 10K-pottia, näemme muutoksen arvoissa näytöllä. Näytön arvot vierivät jatkuvasti, nämä ovat PI: n lukemia digitaalisia arvoja.
Sano, että saamme potin keskipisteeseen, ADC0804-tulossa on + 2,5 V. Joten näemme näytöllä 128 alla olevan kuvan mukaisesti.
+ 5 V: n analogiarvolle meillä on 255.
Joten vaihtelemalla pottia vaihtelemme jännitettä 0 - + 5 V ADC0804-tulossa. Tällä PI: llä voit lukea arvot 0-255. Arvot tulostetaan ruudulle.
Joten olemme liittäneet ADC0804: n Raspberry Pi: hen.