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 vadnic boste lahko sami izvajali odmevne projekte. Preverite te, kako začeti s konfiguracijo Raspberry Pi in Raspberry Pi.
V prejšnjih vajah smo razpravljali o vmesniku LED utripanja in gumbov z Raspberry Pi. V tej vadnici Raspberry Pi PWM bomo govorili o pridobivanju PWM izhoda z Raspberry Pi. PWM pomeni „ modulacija širine impulza “. PWM je metoda, ki se uporablja za pridobivanje spremenljive napetosti iz stalnega napajanja. Iz Raspberry PI bomo ustvarili signal PWM in prikazali PWM s spreminjanjem svetlosti LED, priključene na Pi.
Modulacija širine impulza:
O PWM smo že večkrat govorili v: Modulacija širine impulza z ATmega32, PWM z Arduino Uno, PWM s 555 IC časovnikom in PWM z Arduino Due.
Na zgornji sliki, če je stikalo v določenem časovnem obdobju neprekinjeno zaprto, bo LED v tem času neprekinjeno svetila. Če je stikalo za polovico sekunde zaprto in odprto za naslednjo pol sekunde, bo lučka svetila le v prvi polovici sekunde. Zdaj se razmerje, za katerega LED sveti v celotnem času, imenuje delovni cikel in se lahko izračuna na naslednji način:
Delovni cikel = čas vklopa / (čas vklopa + čas izklopa)
Delovni cikel = (0,5 / (0,5 + 0,5)) = 50%
Torej bo povprečna izhodna napetost 50% napetosti akumulatorja.
To velja eno sekundo in vidimo, da je LED pol sekunde ugasnil, druga polovica sekunde pa sveti. Če se je pogostost vklopov in izklopov povečala z "1 na sekundo" na "50 na sekundo". Človeško oko te frekvence ne more zajeti. Za normalno oko bo videti LED, ki sveti s polovico svetlosti. Tako se z nadaljnjim skrajšanjem časa vklopa LED zdi veliko svetlejši.
Programirali bomo PI za pridobivanje PWM in priključili LED, ki prikazuje njegovo delovanje.
V Raspberry Pi je 40 izhodnih zatičev GPIO. Toda od 40 je mogoče programirati le 26 zatičev GPIO (GPIO2 do GPIO27). Če želite izvedeti več o zatičih GPIO, pojdite skozi: LED utripa z Raspberry Pi
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
- 220Ω ali 1KΩ upor
- LED
- Odbor za kruh
Pojasnilo vezja:
Kot je prikazano na vezju, bomo povezali LED med PIN35 (GPIO19) in PIN39 (ozemljitev). Kot že rečeno, iz nobenega od teh nožic ne moremo izvleči več kot 15 mA, zato za omejitev toka zaporedno z LED povezujemo upor 220Ω ali 1KΩ.
Delovna razlaga:
Ko je vse povezano, lahko vključimo Raspberry Pi, da napišemo program v jeziku PYHTON in ga zaženemo.
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. Na diagramu pin lahko vidite, da je na plošči »PIN 35« napis »GPIO19«. Torej tukaj povemo, ali bomo tukaj predstavljali žebljiček z '35' ali '19'.
IO.setmode (IO.BCM)
Za izhodni zatič nastavljamo GPIO19 (ali PIN35). Iz tega zatiča bomo dobili izhod PWM.
IO.setup (19, IO.IN)
Po nastavitvi zatiča kot izhoda ga moramo nastaviti kot izhodni zatič PWM, p = IO.PWM (izhodni kanal, frekvenca PWM signala)
Zgornji ukaz je namenjen nastavitvi kanala in tudi nastavitvi frekvence signala PWM. 'p' tukaj je spremenljivka, lahko je karkoli. Kot izhodni kanal PWM uporabljamo GPIO19. ' frekvenca PWM signala ' je bila izbrana 100, saj ne želimo, da LED utripa.
Spodnji ukaz se uporablja za zagon generacije PWM signala, ' DUTYCYCLE ' je za nastavitev razmerja vklopa, 0 pomeni, da bo LED 0% časa svetil, 30 pomeni, da bo LED svetil 30% časa, 100 pa popolnoma vklopljen.
p.start (DUTYCYCLE)
Ta ukaz izvede zanko 50-krat, x pa se poveča od 0 do 49.
za x v območju (50):
Medtem ko 1: se uporablja za neskončnost zanke. S tem ukazom se bodo stavki znotraj te zanke izvajali neprekinjeno.
Z izvajanjem programa se delovni cikel signala PWM poveča. In potem se po doseganju 100% zmanjša. Z LED, pritrjenim na to kodo PIN, se svetlost LED najprej poveča, nato pa zmanjša.