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 LED Blinky, vmesnikih gumbov in generiranju PWM. V tej vadnici bomo nadzorovali hitrost enosmernega motorja z uporabo Raspberry Pi in PWM tehnike. PWM (Pulse Width Modulation) je metoda, ki se uporablja za pridobivanje spremenljive napetosti iz stalnega vira energije. O PWM smo razpravljali v prejšnji vadnici.
V Raspberry Pi 2 je 40 izhodnih zatičev GPIO. Toda od 40 je mogoče programirati le 26 zatičev GPIO (GPIO2 do GPIO27). Nekateri od teh zatičev opravljajo nekatere posebne funkcije. Ob posebnem GPIO, ki je na strani, imamo še 17 GPIO. Če želite izvedeti več o zatičih GPIO, pojdite skozi: LED utripa z Raspberry Pi
Vsak od teh 17 GPIO zatičev lahko oddaja največ 15 mA. In vsota tokov iz vseh GPIO zatičev ne sme presegati 50 mA. Tako lahko iz vsakega od teh GPIO zatičev v povprečju narišemo največ 3 mA. Zato se v te stvari ne bi smeli posegati, razen če veste, kaj počnete.
Na plošči so + 5V (Pin 2 & 4) in + 3,3V (Pin 1 & 17) izhodni zatiči za priključitev drugih modulov in senzorjev. Ta napajalna tirnica je povezana vzporedno z močjo procesorja. Torej črpanje visokega toka iz te napajalne tirnice vpliva na procesor. Na plošči PI je varovalka, ki se sproži, ko pride do velike obremenitve. Iz tirnice + 3,3 V lahko varno potegnete 100 mA. Tukaj govorimo o tem, ker; priklopimo enosmerni motor na + 3,3V. Ob upoštevanju omejitve moči lahko tukaj priključimo le motor z nizko močjo, če želite voziti motor z veliko močjo, razmislite o njegovem napajanju iz ločenega vira energije.
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Ω (3)
- Majhen enosmerni motor
- Gumbi (2)
- 2N2222 Tranzistor
- 1N4007 Dioda
- Kondenzator - 1000uF
- Odbor za kruh
Pojasnilo vezja:
Kot smo že omenili, ne moremo črpati več kot 15mA iz nobenega GPIO zatiča, enosmerni motor pa več kot 15mA, zato PWM, ki ga ustvari Raspberry Pi, ni mogoče neposredno dovajati na enosmerni motor. Če torej motor priključimo neposredno na PI za nadzor hitrosti, se lahko plošča trajno poškoduje.
Torej bomo uporabili NPN tranzistor (2N2222) kot preklopno napravo. Ta tranzistor tukaj poganja enosmerni motor visoke moči, tako da vzame PWM signal iz PI. Tu je treba biti pozoren, da lahko napačno priključen tranzistor močno obremeni ploščo.
Motor je indukcijski, zato med preklapljanjem motorja opazimo induktivno zvišanje. Ta konica bo močno segrela tranzistor, zato bomo z diodo (1N4007) zagotovili zaščito tranzistorja pred induktivnim spikingom.
Da bi zmanjšali nihanja napetosti, bomo na napajalnik priključili 1000uF kondenzator, kot je prikazano na vezju.
Delovna razlaga:
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 35« na plošči je »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)
Če je pogoj v oklepajih resničen, se stavki znotraj zanke izvedejo enkrat. Torej, če gre za zatič GPIO 26 nizko, bodo stavki znotraj zanke IF izvedeni enkrat. Če se zatič GPIO 26 ne spusti, stavki znotraj zanke IF ne bodo izvedeni.
if (IO.input (26) == False):
Medtem ko 1: se uporablja za neskončnost zanke. S tem ukazom se bodo stavki znotraj te zanke izvajali neprekinjeno.
Imamo vse ukaze, ki so potrebni, da s tem dosežemo nadzor hitrosti.
Po pisanju programa in njegovem zagonu ostane le upravljanje s krmilnikom. Na PI imamo dva gumba; ena za povečanje delovnega cikla signala PWM in druga za zmanjšanje delovnega cikla signala PWM. S pritiskom na en gumb se hitrost enosmernega motorja poveča, s pritiskom na drugi gumb pa se hitrost enosmernega motorja zmanjša. S tem smo dosegli nadzor hitrosti enosmernega motorja s strani Raspberry Pi.
Preverite tudi:
- Nadzor hitrosti enosmernega motorja
- Upravljanje enosmernega motorja z uporabo Arduina