A Raspberry Pi egy ARM architektúra processzor alapú tábla, amelyet elektronikus mérnököknek és hobbistáknak terveztek. A PI az egyik legmegbízhatóbb projektfejlesztési platform odakinn. Nagyobb processzorsebességgel és 1 GB RAM-mal a PI számos nagy horderejű projekthez használható, például képfeldolgozáshoz és a tárgyak internetéhez.
Bármely nagy horderejű projekt megvalósításához meg kell érteni a PI alapvető funkcióit. Ezekben az oktatóanyagokban a Raspberry Pi összes alapvető funkciójára kitérünk. Minden oktatóanyagban megvitatjuk a PI egyik funkcióját. Az oktatósorozat végére egyedülálló projekteket készíthet. Ellenőrizze ezeket az első lépésekhez a Raspberry Pi és a Raspberry Pi konfigurációjával kapcsolatban.
Korábbi oktatóanyagokban tárgyaltunk a LED Blinky, Button Interfacing és PWM generálásról. Ebben az oktatóanyagban egy egyenáramú motor sebességét fogjuk szabályozni Raspberry Pi és PWM technikával. A PWM (impulzusszélesség-moduláció) a változó feszültség állandó áramforrásból történő kivezetésére szolgáló módszer. Az előző oktatóanyagban tárgyaltunk a PWM-ről.
A Raspberry Pi 2-ben 40 GPIO kimeneti tű található. De a 40-ből csak 26 GPIO csap (GPIO2-GPIO27) programozható. Ezek közül a csapok közül néhány speciális funkciót lát el. Különleges GPIO-t félretéve 17 GPIO van hátra. Ha többet szeretne tudni a GPIO csapokról, menjen át: A LED villog a Raspberry Pi-vel
E 17 GPIO-tű mindegyike maximum 15mA-t képes leadni. És az összes GPIO érintkező áramának összege nem haladhatja meg az 50mA-t. Tehát átlagosan maximum 3 mA-t tudunk levonni ezekből a GPIO-csapokból. Tehát nem szabad meghamisítani ezeket a dolgokat, hacsak nem tudja, mit csinál.
Vannak + 5V (Pin 2 + 4) és + 3,3V (Pin 1 & 17) kimenő csapok a fedélzeten csatlakoztatására más modulok és érzékelők. Ez a hálózati sín párhuzamosan csatlakozik a processzor teljesítményéhez. Tehát a nagy áram felvétele erről az erőátviteli sínről befolyásolja a processzort. A PI kártyán van egy biztosíték, amely kiold, ha nagy terhelést jelent. Akkor levonhatjuk 100mA biztonságosan a + 3.3V vasút. Azért beszélünk itt, mert; az egyenáramú motort + 3,3 V-ra kötjük. A teljesítménykorlát figyelembevételével ide csak alacsony fogyasztású motort csatlakoztathatunk, ha nagy teljesítményű motort szeretne vezetni, fontolja meg, hogy külön áramforrásról táplálja.
Szükséges alkatrészek:
Itt a Raspberry Pi 2 Model B-t használjuk Raspbian Jessie operációs rendszerrel. Az összes alapvető hardver- és szoftverkövetelményt korábban megbeszéltük, megnézheti a Raspberry Pi bevezetőjében, a szükségesek kivételével:
- Csatlakozó csapok
- 220Ω vagy 1KΩ ellenállás (3)
- Kis egyenáramú motor
- Gombok (2)
- 2N2222 Tranzisztor
- 1N4007 Dióda
- Kondenzátor - 1000uF
- Kenyérlap
Áramkör magyarázat:
Mint korábban említettük, egyetlen GPIO- tűből sem tudunk 15mA-nál többet húzni, és az egyenáramú motor 15mA-nál nagyobbat vesz fel, így a Raspberry Pi által generált PWM nem táplálható közvetlenül az egyenáramú motorba. Tehát, ha a motort közvetlenül a PI-hez csatlakoztatjuk a sebességszabályozáshoz, akkor a kártya tartósan megsérülhet.
Tehát egy NPN tranzisztort (2N2222) fogunk használni kapcsolóként. Ez a tranzisztor itt hajtja a nagy teljesítményű egyenáramú motort azáltal, hogy PWM jelet vesz a PI-től. Itt figyelni kell arra, hogy a tranzisztor helytelen csatlakoztatása erősen megterheli a lapot.
A motor indukció, így a motor kapcsolása közben induktív tüskét tapasztalunk. Ez a tüske erősen felmelegíti a tranzisztort, ezért a diódát (1N4007) fogjuk használni, hogy védelmet nyújtsunk a tranzisztor számára az induktív tüske ellen.
A feszültségingadozások csökkentése érdekében egy 1000uF-os kondenzátort csatlakoztatunk az áramellátáshoz, az áramköri ábra szerint.
Munka magyarázat:
Miután minden a kapcsolási rajz szerint össze van kapcsolva, bekapcsolhatjuk a PI-t, hogy PYHTON-ba írjuk a programot.
Néhány parancsról fogunk beszélni, amelyeket a PYHTON programban fogunk használni.
GPIO fájlt fogunk importálni a könyvtárból, az alábbi funkció segítségével programozhatjuk a PI GPIO csapjait. A „GPIO” -ot „IO” -ra is átnevezzük, így a programban, amikor csak GPIO-csapokra akarunk utalni, az „IO” szót fogjuk használni.
importálja az RPi.GPIO-t IO-ként
Néha, amikor a GPIO csapok, amelyeket megpróbálunk használni, más funkciókat is elláthatnak. Ebben az esetben figyelmeztetéseket kapunk a program futtatása közben. Az alábbi parancs arra utasítja a PI-t, hogy figyelmen kívül hagyja a figyelmeztetéseket, és folytassa a programot.
IO.setwarnings (hamis)
Hivatkozhatunk a PI GPIO csapjaira, akár a fedélzeten található PIN-kód, akár a funkciójuk száma alapján. A táblán lévő PIN 35-hez hasonlóan a GPIO19. Tehát itt azt mondjuk, hogy vagy itt fogjuk ábrázolni a csapot '35'-vel vagy' 19'-vel.
IO.setmode (IO.BCM)
A GPIO19 (vagy PIN35) kódot állítjuk be kimeneti tűként. Ebből a csapból fogjuk kapni a PWM kimenetet.
IO.beállítás (19, IO.IN)
Miután a tűt kimenetként beállítottuk, be kell állítanunk a tűt PWM kimeneti tűként, p = IO.PWM (kimeneti csatorna, a PWM jel frekvenciája)
A fenti parancs a csatorna és a PWM jel frekvenciájának beállítására szolgál. 'p' itt egy változó lehet bármi. A GPIO19-et használjuk PWM kimeneti csatornaként . A „ PWM jel frekvenciáját ” 100-ra választottuk, mivel nem akarjuk, hogy a LED villogjon.
Az alábbi paranccsal indul a PWM jelképzés , a „ DUTYCYCLE ” a bekapcsolási arány beállítására szolgál, 0 azt jelenti, hogy a LED 0 percig világít, 30 azt jelenti, hogy a LED az idő 30% -ában világít, és 100 azt jelenti, hogy teljesen ON.
p.start (DUTYCYCLE)
Abban az esetben, ha a feltétel a zárójelben igaz, a cikluson belüli utasítások egyszer végrehajtásra kerülnek. Tehát, ha a GPIO 26-as tűje alacsony lesz, akkor az IF cikluson belüli utasítások egyszer végrehajtásra kerülnek. Ha a GPIO 26-as tű nem megy alacsonyra, akkor az IF-ciklusban lévő utasítások nem kerülnek végrehajtásra.
ha (IO.input (26) == Hamis):
Míg az 1: a végtelen ciklushoz használatos. Ezzel a paranccsal a cikluson belüli utasítások folyamatosan végrehajtódnak.
Megvan az összes parancs, ami szükséges a sebességszabályozás eléréséhez ezzel.
A program megírása és végrehajtása után már csak a vezérlő működtetése marad. Két gomb van csatlakoztatva a PI-hez; az egyik a PWM jel Duty Cycle növelésére, a másik pedig a PWM jel Duty Cycle ciklusának csökkentésére. Az egyik gomb megnyomásával a DC motor sebessége növekszik, a másik gomb megnyomásával pedig a DC motor fordulatszáma csökken. Ezzel elértük a Raspberry Pi egyenáramú motor fordulatszám-szabályozását.
Ellenőrizze még:
- DC motor fordulatszám-szabályozása
- DC motor vezérlés az Arduino segítségével