Raspberry Pi je plošča na osnovi procesorja ARM, zasnovana za elektronske inženirje in ljubitelje. PI je zdaj ena najbolj zaupanja vrednih platform za razvoj projektov. Z večjo hitrostjo procesorja in 1 GB RAM-a se PI lahko uporablja za številne odmevne projekte, kot sta obdelava slik in Internet stvari.
Za izvajanje katerega koli od pomembnih projektov je treba razumeti osnovne funkcije PI. V teh vadnicah bomo obravnavali vse osnovne funkcije Raspberry Pi. V vsaki vaji bomo obravnavali eno od funkcij PI. Do konca te vadnice Raspberry Pi boste lahko sami izvajali odmevne projekte. Pojdite skozi spodnje vaje:
- Uvod v Raspberry Pi
- Konfiguracija Raspberry Pi
- LED utripa
- Vmesnik gumba Raspberry Pi
- Generacija Raspberry Pi PWM
- Nadzor enosmernega motorja z uporabo Raspberry Pi
- Nadzor koračnega motorja z Raspberry Pi
- Povezava Shift registra z Raspberry Pi
V tej vadnici bomo čip ADC (analogno v digitalno pretvorbo) povezali z Raspberry Pi. Poznamo vse parametre analognega, kar pomeni, da se sčasoma nenehno spreminjajo. Recimo za primer temperature prostora, sobna temperatura se s časom nenehno spreminja. Ta temperatura je opremljena z decimalnimi števili. Toda v digitalnem svetu ni decimalnih števil, zato moramo analogno vrednost pretvoriti v digitalno vrednost. Ta postopek pretvorbe se izvede s tehniko ADC. Več o ADC preberite tukaj: Uvod v ADC0804
ADC0804 in Raspberry Pi:
Običajni krmilniki imajo kanale ADC, za PI pa kanalov ADC ni na voljo znotraj. Torej, če želimo povezati analogne senzorje, potrebujemo pretvorniško enoto ADC. V ta namen gremo na vmesnik ADC0804 z Raspberry Pi.
ADC0804 je čip, zasnovan za pretvorbo analognega signala v 8-bitne digitalne podatke. Ta čip je ena izmed priljubljenih serij ADC. To je 8-bitna pretvorbena enota, zato imamo vrednosti ali vrednosti od 0 do 255. Z merilno napetostjo največ 5V bomo imeli spremembo za vsakih 19,5mV. Spodaj je Pinout ADC0804:
Zdaj je tu še ena pomembna stvar: ADC0804 deluje pri 5V in tako zagotavlja izhod v 5V logičnem signalu. V 8-polnem izhodu (ki predstavlja 8 bitov) vsak pin nudi + 5V izhod, ki predstavlja logiko '1 '. Težava je torej v tem, da je logika PI + 3,3 v, zato ne morete dati + 5 V logike na + 3,3 V GPIO pin PI. Če kakemu GPIO zatiču PI daste + 5V, se plošča poškoduje.
Za znižanje logične ravni od + 5V bomo uporabili vezje delilnika napetosti. Že prej smo razpravljali o vezju delilnika napetosti, da bi ga dodatno pojasnili. Kar bomo storili, je, da z dvema uporoma razdelimo + 5V logiko na logiko 2 * 2,5V. Po razdelitvi bomo PI dali + 2.5v logiko. Torej, kadar koli ADC0804 predstavi logiko '1', bomo na PI GPIO Pin videli namesto + 5V + 2,5V.
Tukaj preberite več o GPIO zatičih Raspberry Pi in si oglejte naše prejšnje vadnice.
Potrebne komponente:
Tu uporabljamo model Raspberry Pi 2 Model B z OS Raspbian Jessie. Vse osnovne zahteve glede strojne in programske opreme so že obravnavane, poglejte jih v uvodu Raspberry Pi, razen tistega, ki ga potrebujemo:
- Povezovalni zatiči
- Upor 220Ω ali 1KΩ (17 kosov)
- 10K lonec
- 0,1 μF kondenzator (2 kosa)
- ADC0804 IC
- Odbor za kruh
Pojasnilo vezja:
Deluje na napajalno napetost + 5v in lahko meri spremenljivo napetostno območje v območju 0-5V.
Na priključki za povezovanje ADC0804 za maline PI, so prikazane na sliki vezje zgoraj.
V ADC je vedno veliko hrupa, ta hrup lahko močno vpliva na zmogljivost, zato za filtriranje hrupa uporabljamo kondenzator 0,1uF. Brez tega bo veliko nihanj na izhodu.
Čip deluje na takt oscilatorja RC (Resistor-Capacitor). Kot je prikazano v vezju, C2 in R20 tvorita uro. Pomembno si je tukaj zapomniti, da je kondenzator C2 mogoče spremeniti na nižjo vrednost za večjo stopnjo pretvorbe ADC. Toda z večjo hitrostjo se bo natančnost zmanjšala. Torej, če aplikacija zahteva večjo natančnost, izberite kondenzator z višjo vrednostjo, za večjo hitrost pa kondenzator z nižjo vrednostjo.
Pojasnilo programiranja:
Ko je vse povezano po shemi vezja, lahko vklopimo PI in napišemo program v PYHTON.
Govorili bomo o nekaj ukazih, ki jih bomo uporabili v programu PYHTON, Datoteko GPIO bomo uvozili iz knjižnice, spodnja funkcija nam omogoča programiranje GPIO nožic PI. Prav tako preimenujemo »GPIO« v »IO«, zato bomo v programu, kadar se želimo sklicevati na zatiče GPIO, uporabili besedo »IO«.
uvozi RPi.GPIO kot IO
Včasih, ko zatiči GPIO, ki jih poskušamo uporabiti, morda opravljajo nekatere druge funkcije. V tem primeru bomo med izvajanjem programa prejeli opozorila. Spodaj ukaz PI-ju sporoči, naj prezre opozorila in nadaljuje s programom.
IO.setwarnings (False)
Zatiče GPIO PI lahko označimo bodisi s številko zatiča na krovu bodisi s številko njihove funkcije. Tako kot »PIN 29« na plošči je »GPIO5«. Torej tukaj povemo, ali bomo tu zastopali pin z '29' ali '5'.
IO.setmode (IO.BCM)
Kot vhodne zatiče nastavljamo 8 nožic. S temi nožicami bomo zaznali 8-bitne podatke ADC.
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)
Če je pogoj v oklepajih resničen, se stavki znotraj zanke izvedejo enkrat. Torej, če gre GPIO pin 19 visoko, se bodo stavki znotraj zanke IF izvedli enkrat. Če zatič GPIO 19 ne gre visoko, stavki znotraj zanke IF ne bodo izvedeni.
if (IO.input (19) == True):
Spodaj se ukaz uporablja kot zanka za vedno, s tem ukazom se bodo stavki znotraj te zanke izvajali neprekinjeno.
Medtem ko 1:
Dodatna razlaga programa je podana v spodnjem razdelku kode.
Delo:
Po pisanju programa in njegovem izvajanju boste na zaslonu videli '0'. '0' pomeni 0 voltov na vhodu.
Če prilagodimo lonec 10K, priključen na čip, bomo na zaslonu videli spremembo vrednosti. Vrednosti na zaslonu se nenehno premikajo, to so digitalne vrednosti, ki jih bere PI.
Recimo, če dobimo lonec do sredine, imamo na vhodu ADC0804 + 2,5 V. Tako na zaslonu vidimo 128, kot je prikazano spodaj.
Za analogno vrednost + 5V bomo imeli 255.
Tako s spreminjanjem lonca spreminjamo napetost od 0 do + 5V na vhodu ADC0804. S tem PI beremo vrednosti od 0-255. Vrednosti so natisnjene na zaslonu.
Torej smo povezali ADC0804 z Raspberry Pi.