„Raspberry Pi“ yra ARM architektūros procesoriaus plokštė, skirta elektronikos inžinieriams ir mėgėjams. PI yra viena iš labiausiai patikimų projektų kūrimo platformų. Turėdamas didesnį procesoriaus greitį ir 1 GB RAM, PI gali būti naudojamas daugeliui aukšto lygio projektų, tokių kaip vaizdo apdorojimas ir daiktų internetas.
Norint atlikti bet kurį iš aukšto rango projektų, reikia suprasti pagrindines PI funkcijas. Šiose pamokose aptarsime visas pagrindines „Raspberry Pi“ funkcijas. Kiekvienoje pamokoje aptarsime vieną iš PI funkcijų. Pamokų ciklo pabaigoje galėsite patys atlikti aukšto lygio projektus. Patikrinkite, ar pradedate naudoti „Raspberry Pi“ ir „Raspberry Pi“ konfigūraciją.
Ankstesnėse pamokose aptarėme „LED Blinky“, „Button Interfacing“ ir PWM generavimą. Šioje pamokoje mes valdysime nuolatinės srovės variklio greitį naudodami „Raspberry Pi“ ir PWM techniką. PWM (impulso pločio moduliacija) yra metodas, naudojamas kintamai įtampai gauti iš pastovaus energijos šaltinio. Ankstesnėje pamokoje aptarėme apie PWM.
„Raspberry Pi 2“ yra 40 GPIO išvesties kaiščių. Bet iš 40 galima užprogramuoti tik 26 GPIO kaiščius (nuo GPIO2 iki GPIO27). Kai kurie iš šių kaiščių atlieka tam tikras specialias funkcijas. Atidėjus specialų GPIO, liko 17 GPIO. Norėdami sužinoti daugiau apie GPIO kaiščius, pereikite: LED mirksi su „Raspberry Pi“
Kiekvienos iš šių 17 GPIO kaiščio gali pateikti ne daugiau kaip 15mA. Visų GPIO kaiščių srovių suma negali viršyti 50mA. Taigi iš kiekvieno iš šių GPIO kaiščių galime vidutiniškai paimti ne daugiau kaip 3 mA. Taigi nereikėtų klastoti šių dalykų, nebent žinote, ką darote.
Lentoje yra + 5 V (2 ir 4 kaiščiai) ir + 3,3 V (1 ir 17 kontaktai) maitinimo išvesties kaiščiai, skirti prijungti kitus modulius ir jutiklius. Šis maitinimo bėgis yra sujungtas lygiagrečiai procesoriaus galiai. Taigi didelės srovės traukimas iš šio maitinimo bėgio turi įtakos procesoriui. PI plokštėje yra saugiklis, kuris suveiks, kai pritaikysite didelę apkrovą. Galite saugiai ištraukti 100mA iš + 3,3 V bėgio. Mes kalbame apie tai čia, nes; mes prijungiame nuolatinės srovės variklį prie + 3,3 V. Turėdami omenyje galios ribą, čia galime prijungti tik mažos galios variklį. Jei norite vairuoti didelės galios variklį, apsvarstykite galimybę jį maitinti iš atskiro maitinimo šaltinio.
Būtini komponentai:
Čia mes naudojame „ Raspberry Pi 2 Model B“ su „Raspbian Jessie OS“. Visi pagrindiniai aparatūros ir programinės įrangos reikalavimai buvo aptarti anksčiau, jų galite rasti „Raspberry Pi“ įvade, išskyrus mums reikalingą:
- Jungiamieji kaiščiai
- 220Ω arba 1KΩ rezistorius (3)
- Mažas nuolatinės srovės variklis
- Mygtukai (2)
- 2N2222 Tranzistorius
- 1N4007 Diodas
- Kondensatorius - 1000uF
- Bandomoji Lenta
Grandinės paaiškinimas:
Kaip minėta anksčiau, iš bet kurio GPIO kaiščio mes negalime ištraukti daugiau nei 15 mA, o nuolatinės srovės variklis - daugiau nei 15 mA, todėl „Raspberry Pi“ sukurtas PWM negali būti tiesiogiai tiekiamas į nuolatinės srovės variklį. Taigi, jei variklį prijungsime tiesiai prie PI greičio kontrolei, plokštė gali būti visam laikui sugadinta.
Taigi kaip perjungimo įrenginį naudosime NPN tranzistorių (2N2222). Šis tranzistorius čia varo didelės galios nuolatinės srovės variklį, paimdamas PWM signalą iš PI. Čia reikėtų atkreipti dėmesį į tai, kad neteisingai prijungus tranzistorių plokštė gali būti labai apkrauta.
Variklis yra indukcinis, todėl, perjungdami variklį, mes patiriame indukcinį smaigalį. Šis smaigalys stipriai įkaitins tranzistorių, todėl naudosime diodą (1N4007), kad tranzistorius būtų apsaugotas nuo indukcinio smaigalio.
Norėdami sumažinti įtampos svyravimus, mes sujungsime 1000uF kondensatorių per maitinimo šaltinį, kaip parodyta grandinės diagramoje.
Darbinis paaiškinimas:
Kai viskas bus prijungta pagal grandinės schemą, mes galime įjungti PI, kad programa būtų parašyta PYHTON.
Kalbėsime apie kelias komandas, kurias ketiname naudoti PYHTON programoje.
Mes ketiname importuoti GPIO failą iš bibliotekos, žemiau pateikta funkcija leidžia mums užprogramuoti PI GPIO kaiščius. Mes taip pat pervadiname „GPIO“ į „IO“, todėl programoje, kai norime nurodyti GPIO kaiščius, naudosime žodį „IO“.
importuoti RPi.GPIO kaip IO
Kartais, kai GPIO kaiščiai, kuriuos bandome naudoti, gali atlikti kitas funkcijas. Tokiu atveju vykdydami programą gausime įspėjimus. Žemiau komanda liepia PI nepaisyti įspėjimų ir tęsti programą.
IO.setwarnings (False)
Mes galime nurodyti PI GPIO kaiščius pagal PIN kodą laive arba pagal jų funkcijos numerį. Kaip lentoje esantis „PIN 35“ yra „GPIO19“. Taigi mes sakome, kad čia mes smeigtuką atvaizduosime „35“ arba „19“.
IO.setmode (IO.BCM)
Mes nustatome GPIO19 (arba PIN35) kaip išvesties kaištį. Iš šio kaiščio gausime PWM išvestį.
IO.setup (19, IO.IN)
Nustatę kaištį kaip išvestį, turime nustatyti kaištį kaip PWM išvesties kaištį, p = IO.PWM (išvesties kanalas, PWM signalo dažnis)
Pirmiau nurodyta komanda yra skirta nustatyti kanalą ir nustatyti PWM signalo dažnį. 'p' čia yra kintamasis, jis gali būti bet koks. Mes naudojame GPIO19 kaip PWM išvesties kanalą . „ PWM signalo dažnis “ pasirinktas 100, nes nenorime matyti, kad mirksi šviesos diodas.
Žemiau komanda naudojama PWM signalo generavimui pradėti, „ DUTYCYCLE “ yra įjungimo santykio nustatymui, 0 reiškia, kad šviesos diodas bus įjungtas 0% laiko, 30 reiškia, kad šviesos diodas bus įjungtas 30% laiko, o 100 reiškia, kad visiškai įjungta.
p. pradžia (DUTYCYCLE)
Jei sąlyga breketuose yra teisinga, sakiniai ciklo viduje bus vykdomi vieną kartą. Taigi, jei GPIO kaištis 26 bus žemas, tada IF kilpos sakiniai bus vykdomi vieną kartą. Jei GPIO kaištis 26 nenusileis žemai, teiginiai, esantys IF kilpos viduje, nebus vykdomi.
jei (IO.input (26) == False):
Nors 1: naudojama begalybės kilpai. Naudojant šią komandą, šios kilpos teiginiai bus vykdomi nuolat.
Mes turime visas komandas, reikalingas norint pasiekti greičio kontrolę.
Parašius programą ir ją įvykdžius, belieka valdyti valdiklį. Mes turime du mygtukus, sujungtus su PI; vienas skirtas PWM signalo darbo ciklui didinti, kitas - PWM signalo darbo ciklui mažinti. Paspaudus vieną mygtuką, nuolatinės srovės variklio greitis padidėja, o paspaudus kitą mygtuką, nuolatinės srovės variklio greitis sumažėja. Tai pasiekėme „Raspberry Pi“ nuolatinės srovės variklio greičio valdymą.
Taip pat patikrinkite:
- Nuolatinės srovės variklio greičio valdymas
- Nuolatinės srovės variklio valdymas naudojant „Arduino“