- PWM (impulzusszélesség-moduláció):
- Szervomotor és PWM:
- Szükséges alkatrészek:
- Kördiagramm:
- Munka és programozás Magyarázat:
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. A Raspberry Pi oktatósorozat végére egyedülálló projekteket készíthet. Nézze át az alábbi oktatóanyagokat:
- Az első lépések a Raspberry Pi-vel
- Raspberry Pi konfiguráció
- LED villog
- Málna Pi gomb összekapcsolása
- Raspberry Pi PWM generáció
- Az egyenáramú motor vezérlése a Raspberry Pi segítségével
- Léptetőmotor-vezérlés Raspberry Pi-vel
- Interfacing Shift Register a Raspberry Pi-vel
- Raspberry Pi ADC bemutató
Ebben az oktatóanyagban a szervomotort a Raspberry Pi-vel fogjuk vezérelni. Mielőtt szervóra lépnénk, beszéljünk a PWM-ről, mert a Servo Motor vezérlésének koncepciója onnan ered.
PWM (impulzusszélesség-moduláció):
Korábban már sokszor beszéltünk a PWM-ről: Pulzusszélesség moduláció ATmega32-vel, PWM Arduino Uno-val, PWM 555 időzítő IC-vel és PWM Arduino Due-vel. A PWM jelentése „Pulse Width Modulation”. A PWM egy változó feszültség megszerzésére szolgáló módszer stabil tápegységről. A PWM jobb megértése érdekében vegye figyelembe az alábbi áramkört,
A fenti ábrán, ha a kapcsoló egy bizonyos ideig folyamatosan zárva van, akkor a LED ebben az időben folyamatosan „BE” világít. Ha a kapcsoló fél másodpercig zárva van, és a következő fél másodpercig nyitva van, akkor a LED csak az első fél másodpercben világít. Most azt az arányt hívjuk Duty Cycle-nak, amelyre a LED világít a teljes idő alatt, és a következőképpen számítható:
Üzemeltetési ciklus = bekapcsolási idő / (bekapcsolási idő + kikapcsolási idő)
Üzemi ciklus = (0,5 / (0,5 + 0,5)) = 50%
Tehát az átlagos kimeneti feszültség az akkumulátor feszültségének 50% -a lesz.
Amint növeljük az ON és OFF sebességet egy szintre, látni fogjuk, hogy a LED sötétedik, ahelyett, hogy BE és KI lenne kapcsolva. A szemünk ugyanis nem képes egyértelműen megfogni a 25Hz-nél magasabb frekvenciákat. Vegyük fontolóra a 100 ms-os ciklust, a LED kikapcsolt állapotban van 30 ms és 70 másodpercig. A kimeneten a stabil feszültség 70% -a lesz, így a LED folyamatosan világít az intenzitás 70% -ával.
Az adóarány 0-ról 100-ra változik. A „0” azt jelenti, hogy teljesen KI és a „100” teljesen BE van kapcsolva. Ez a terhelési arány nagyon fontos a szervomotor számára. A szervomotor helyzetét ez az igénybevételi arány határozza meg. Ellenőrizze ezt a PWM bemutatásához a LED-del és a Raspberry Pi-vel.
Szervomotor és PWM:
A szervomotor az egyenáramú motor, a helyzetszabályozó rendszer és a fogaskerekek kombinációja. A szervóknak sok alkalmazása van a modern világban, és ezzel együtt különböző formában és méretben kaphatók. Ebben az oktatóanyagban az SG90 szervomotort fogjuk használni, ez az egyik legnépszerűbb és legolcsóbb. Az SG90 180 fokos szervo. Tehát ezzel a szervóval 0-180 fokos helyzetbe tudjuk hozni a tengelyt.
A szervomotor főleg három vezetékkel rendelkezik, az egyik a pozitív feszültségre, a másik a földre, az utolsó pedig a helyzet beállítására szolgál. A piros vezeték a tápellátáshoz, a barna vezeték a földhöz és a sárga vezeték (vagy a FEHÉR) csatlakozik a jelhez.
A szervo-ban van egy vezérlőrendszerünk, amely a PWM jelet a Signal csapról veszi. Dekódolja a jelet, és megkapja belőle az arányt. Ezt követően összehasonlítja az arányt az előre definiált pozícióértékekkel. Ha különbség van az értékekben, ennek megfelelően állítja be a szervo helyzetét. Tehát a szervomotor tengelypozíciója a jelcsapon lévő PWM jel terhelési arányán alapul.
A PWM (Pulse Width Modulated) jel frekvenciája a szervomotor típusától függően változhat. SG90 esetén a PWM jel frekvenciája 50Hz. A szervo működési gyakoriságának megismeréséhez ellenőrizze az adott modell adatlapját. Tehát a frekvencia kiválasztása után a másik fontos dolog itt a PWM jel DUTY RATIO.
Az alábbi táblázat a szervo helyzetet mutatja az adott munkarátához. Bármelyik szöget elérheti a megfelelő érték kiválasztásával. Tehát a 45º szervo esetében az Üzemeltetési aránynak „5” -nek vagy 5% -nak kell lennie.
POZÍCIÓ |
KÖTELEZETTSÉG RÁTUM |
0º |
2.5 |
90º |
7.5 |
180º |
12.5 |
Mielőtt összekapcsolná a szervomotort a Raspberry Pi-vel, tesztelheti szervóját ennek a szervomotor-tesztelő áramkörnek a segítségével. Ellenőrizze az alábbi szervo projektjeinket is:
- Szervomotor vezérlés az Arduino segítségével
- Szervomotor vezérlés Arduino Due-vel
- Szervomotor összekapcsolása a 8051 mikrokontrollerrel
- Szervomotor vezérlés a MATLAB segítségével
- Szervomotor vezérlés Flex Sensor segítségével
- Szervo helyzetszabályozás súlyával (erőérzékelő)
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
- 1000uF kondenzátor
- SG90 szervomotor
- Kenyérlemez
Kördiagramm:
A1000µF-et kell csatlakoztatni a + 5V-os tápvezetéken, különben a PI véletlenszerűen kikapcsolhat, miközben a szervót vezérli.
Munka és programozás 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 29” -hez hasonlóan a „GPIO5”. Tehát itt elmondjuk, hogy vagy itt fogjuk ábrázolni a „29” vagy „5” betűket.
IO.setmode (IO.BCM)
A PIN39 vagy GPIO19 kimeneti tűként állítjuk be. Ebből a csapból fogjuk kapni a PWM kimenetet.
IO.beállítás (19, IO.OUT)
A kimeneti tű beállítása után a tűt PWM kimeneti tűként kell beállítanunk, p = IO.PWM (kimeneti csatorna, a PWM jel frekvenciája)
A fenti parancs a csatorna és a csatorna 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ája” mellett 50-et választunk, mivel az SG90 működési frekvenciája 50Hz.
Az alábbiakban parancsot használjuk a PWM jelképzés elindításához. A „ DUTYCYCLE ” a „Bekapcsolás” arány beállítására szolgál, az előzőekben leírtak szerint, p.start (DUTYCYCLE)
Az alábbi parancsot örök ciklusként használják, ezzel a paranccsal a ciklus belsejében lévő utasítások folyamatosan végrehajtódnak.
Míg 1:
Itt a szervo vezérlésének programja a Raspberry Pi segítségével PWM jelet ad a GPIO19-nél. A PWM jel terhelési aránya három érték között változik három másodpercig. Tehát másodpercenként a szervo a Duty Ratio által meghatározott helyzetbe forog. A szervo három másodperc alatt folyamatosan 0 ° -ra, 90 ° -ra és 180 ° -ra forog.