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
V tej vadnici bomo z Raspberry Pi nadzirali hitrost koračnega motorja. Kot že samo ime pove, da je v koračnem motorju vrtenje gredi v obliki koraka. Obstajajo različne vrste koračnih motorjev; tukaj bomo uporabili najbolj priljubljenega, ki je Unipolarni koračni motor. Za razliko od enosmernega motorja lahko koračni motor zasučemo pod katerim koli kotom, tako da mu damo ustrezna navodila.
Če želite zasukati ta štiristopenjski koračni motor, bomo napajali impulze z uporabo vezja gonilnika koračnega motorja. Vozniško vezje prevzame logične sprožilce iz PI. Če nadzorujemo logične sprožilce, nadzorujemo impulze moči in s tem hitrost koračnega motorja.
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 le še 17 GPIO. Vsak od teh 17 GPIO zatičev lahko odda največ 15 mA toka. In vsota tokov iz vseh GPIO zatičev ne sme presegati 50 mA. Če želite izvedeti več o zatičih GPIO, pojdite skozi: LED utripa z Raspberry Pi
Na plošči so + 5V (Pin 2 & 4) in + 3,3V (Pin 1 & 17) izhodni zatiči za priključitev drugih modulov in senzorjev. Teh tračnic ni mogoče uporabiti za pogon koračnega motorja, ker za njegovo vrtenje potrebujemo več moči. Torej moramo napajati koračni motor iz drugega vira energije. Moj koračni motor ima napetost 9V, zato kot drugi vir energije uporabljam 9v baterijo. V številki modela koračnega motorja poiščite napetost. Glede na oceno ustrezno izberite sekundarni vir.
Kot smo že omenili, za pogon koračnega motorja potrebujemo gonilniško vezje. Tukaj bomo zasnovali tudi enostaven gonilnik tranzistorskih gonilnikov.
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)
- Koračni motor
- Gumbi (2)
- Tranzistor 2N2222 (4)
- 1N4007 dioda (4)
- Kondenzator - 1000uF
- Odbor za kruh
Pojasnilo vezja:
Koračni motor za dokončanje vrtenja za 360 stopinj uporabi 200 korakov, kar pomeni, da se vrti za 1,8 stopinje na korak. Ko se vozimo s štiristopenjskim koračnim motorjem, moramo oddati štiri impulze, da zaključimo en sam logični cikel. Vsak korak tega motorja doseže 1,8 stopinje vrtenja, zato potrebujemo 200 impulzov, da zaključimo cikel. Torej je 200/4 = 50 logičnih ciklov, potrebnih za izvedbo ene same rotacije. Preverite to, če želite izvedeti več o Steppers Motors in njegovih načinih vožnje.
Vsako od teh štirih tuljav bomo poganjali z NPN tranzistorjem (2N2222), ta NPN tranzistor vzame logični impulz iz PI in poganja ustrezno tuljavo. Štirje tranzistorji vzamejo štiri logike iz PI za pogon štirih stopenj koračnega motorja.
Vezje gonilnika tranzistorja je zapleteno; tu moramo biti pozorni, da lahko napačno priključen tranzistor močno obremeni ploščo in jo poškoduje. Preverite to, da pravilno razumete vezje gonilnika koračnega motorja.
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)
Kot izhod za pogon štirih tuljav koračnega motorja nastavimo štiri zatiče GPIO.
IO.setup (5, IO.OUT) IO.setup (17, IO.OUT) IO.setup (27, IO.OUT) IO.setup (22, IO.OUT)
Za vhodna zatiča nastavljamo GPIO26 in GPIO19. Ti zatiči bodo zaznali pritisk gumba.
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
Č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):
Ta ukaz izvede zanko 100-krat, x pa se poveča od 0 do 99.
za x v območju (100):
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 koračnega motorja.
Po pisanju programa in njegovem zagonu ostane le upravljanje s krmilnikom. Na PI imamo dva gumba. Ena za povečanje zakasnitve med štirimi impulzi in druga za zmanjšanje zakasnitve med štirimi impulzi. Že sama zamuda govori o hitrosti; če je zakasnitev večja, motor med vsakim korakom zavira in tako je vrtenje počasno. Če je zakasnitev blizu ničle, se motor vrti z največjo hitrostjo.
Tukaj ne smemo pozabiti, da mora biti med impulzi nekaj zamude. Ko impulz daje koračnemu motorju nekaj milisekund časa, da doseže svojo končno stopnjo. Če med impulzi ni zakasnitve, se koračni motor sploh ne premakne. Običajno je zakasnitev 50 ms med impulzi v redu. Za natančnejše informacije poglejte v podatkovni list.
Tako lahko z dvema gumboma nadzorujemo zakasnitev, ki po vrsti nadzira hitrost koračnega motorja.