micro:bit szervomotor vezérlés: Részletes útmutató

A micro:bit egy kisméretű, programozható mikrovezérlő (mini számítógép), amellyel interaktív eszközöket, játékokat, robotokat építhetünk. Programozás alapjait nagyon gyorsan meg lehet tanulni, percek alatt működő szerkezeteket készíthetünk. Ahogy a tudásunk, tapasztatunk nő, úgy egyre komplex megoldásokat készíthetünk. A micro:bit nagy előnye, hogy a kis lapkán sok hasznos eszközt, LED-eket, érzékelőket találunk. A panel alján egy fésűszerű érintkezősor van. Ezen keresztül lehet érzékelőket, eszközöket pl. motorokat csatlakoztatni, robotokat vezérelni.

Ha valamilyen munkánkat akarjuk megkönnyíteni, kényelmesebbé tenni, akkor motorokra van szükségünk. A meghajtó áram a micro:bit IO portjain (PIN, ha már vezérelni szeretnénk) túl gyengék ahhoz, hogy közvetlenül csatlakoztassuk a motort. Ha már tudjuk azt, hogy motorra van szükségünk ki kell választanunk a micro:bitre köthető két fajta motor közül a megfelelőt.

Mi a szervomotor?

A szervó egyfajta meghajtó a pozíció (szög) szervóhoz. Általában egy egyenáramú (DC) motor, egy pár fogaskerék és egy abszolút pozíció érzékelő alkotja. Ez egy automatikus vezérlőrendszer, amely DC motorból, reduktor egységből, potenciométerből és vezérlő áramkörből áll. Alkalmas állandó szögváltozással rendelkező rendszerek vezérlésére, és képes megtartani állapotát. A szervomotoroknak megadható, hogy milyen szögben (milyen mértékben) forduljon el. Meghatározhatja a kimeneti tengely elfordulási szögét jelek küldésével. Általában egy szervónak van egy maximális elfordulási szöge (pl. 180 fok).

A hagyományos szervomotor vezérlése lényege, hogy ennek a szervomotornak 0-tól 180 fokos beállításra van lehetőség (egy irányba). Tehát a 0-ás az alaphelyzetbe állítja, a 90-es negyed- a 180-as beállítás félfordulatba állítja a motort. A Robot szervó mindkét irányba teljesen körbe (360 fok) tud fordulni. A folyamatos szervomotor teljesen 360 fokban forog, és átlátszatlan műanyagból készül. A folyamatos szervón két forgó nyíllal ellátott matrica található.

Az átlagos DC motorral összehasonlítva a szervó csak egy bizonyos szögtartományban forog, míg az átlagos DC motor körben forog. Ez a fő különbség az átlagos DC motor és a szervó között. A szervó nem tud körben forogni. (Megjegyzés: a digitális szervóknak nincs ilyen problémája, mert képesek váltani a szervó és a motor üzemmód között.) Az átlagos DC motor nem ad visszajelzést a forgásszögről, de a szervó igen. Használatuk is eltérő. Az átlagos DC motor teljes körforgást használ erőként, míg a szervó egy általa vezérelt tárgy, például egy robotízület bizonyos szögét használja.

A szervórendszer impulzussal vezérelhető, amelynek szélessége változtatható. Vezérlőkábelt használunk az impulzus továbbítására. Az impulzus paraméterei közé tartozik a maximális érték, a minimális érték és a frekvencia. Általánosságban elmondható, hogy a szervó referenciajelének ciklusa 20 ms, a szélessége pedig 1,5 ms. A szervó referenciajel által definiált pozíció a középső pozíció. Mivel a szervónak van maximális elfordulási szöge, a középső pozíció definíciója az a pont, ahonnan a maximális és minimális értékek megegyeznek. Fontos, hogy a különböző szervók eltérő maximális elfordulási szöggel rendelkezhetnek, de a középső pozíció impulzusszélessége azonos, ami 1,5 ms.

Szervomotor felépítése és működési elve

Szervomotorok csatlakoztatása a micro:bithez

A szervóhoz történő csatlakoztatás egyszerű, krokodilcsipeszekkel vagy próbapanelen keresztül is elvégezhető. Az SG90 vagy Tower hobby szervó (akár 180 fokos, akár 360 fokos elfordulású) csatlakoztatható a P0, 3V és GND pinekhez, és a P0-án keresztül küldött jellel vezérelhető.

Szükséges alkatrészek

  • 1 x micro:bit Board
  • 1 x Micro-B USB Cable
  • 1 x micro:bit Breadboard Adapter
  • 1 x Transparent Breadboard - 83 * 55 mm
  • 1 x TowerPro SG-90 Mini Servo (1.6kg)
  • N x Breadboard Jumper Wire 65pcs Pack

Tipp: Ha az összes fenti alkatrészre szüksége van, érdemes lehet az Elecfreaks Micro:bit Starter Kit-et beszereznie.

Bekötés és tápellátás

Minden szervónak három külsőleg csatlakoztatott kábele van. Ezek a kábelek általában három különböző színűek (barna, piros, narancssárga) a megkülönböztetés érdekében. A bekötés talán itt a legegyszerűbb, mert csak 3 vezeték van. Abból kettő a tápellátásnak, egy pedig a vezérlésnek. A barna vezeték a GND, a piros vezeték az 5V és a narancssárga vezeték a vezérlésé. Általában a vezetékek színezése: narancssárga = jel, piros = 3V, barna = föld (GND). A micro:bit a P0 pinről küld utasításokat a szervónak a szervó jelvezetékén keresztül.

Szervomotor bekötési séma micro:bithez

Bár ezek a mikroszervók működhetnek a micro:bittel, a legtöbb szervomotor előírt működési feszültsége körülbelül +5V, és a micro:bit csak kis mennyiségű energiát képes szolgáltatni a csatlakoztatott áramköröknek (3V és 90mA V1, valamint 190mA V2 max). Ha több energiát próbálunk felvenni, mint amennyit a micro:bit biztonságosan képes szolgáltatni, az károsíthatja az eszközt.

A micro:bit V1 esetén a legmegbízhatóbb módszer az ilyen típusú szervó használatára, ha a micro:bitet elemcsomaggal tápláljuk, és friss elemeket használunk, mivel az akkumulátor feszültségének csökkenésével a szervó kevésbé lesz megbízható. Az optimális módszer a szervó csatlakoztatására egy külön elemcsomag használata a szervó táplálására, és a micro:bit használata a vezérléshez. Így csak a P0 és a GND csatlakozik a micro:bitről a szervóhoz (a GND-t továbbra is használnunk kell a közös földelés megosztásához az áramkör többi részével).

A külső elemcsomag magasabb feszültséget szolgáltat, mint a micro:bit. Ne csatlakoztassa a külső elemcsomag pozitív (+/piros) vezetékét a micro:bithez, mert károsítani fogja azt. A kiegészítő elemcsomagok gyakran 4.5V (3 elem) vagy 6V (4 elem) feszültséggel kaphatók. A micro:bit 0V vagy 3V feszültséget szolgáltat a PWM pin0-án, és ennek magasabbnak kell lennie, mint a szervó digitális bemeneti pin küszöbértéke (ezt a szervó adatlapja határozza meg, és gyakran 0.7*VCC). Ha a szervóhoz szolgáltatott feszültség túl magas, annak a feszültségnek a fele lesz a pin küszöbértéke, és a micro:bit 3V-ja nem biztos, hogy elegendő lesz a szervó irányításához.

A Super:bit bővítőkártya 8 szervó interfészt tartalmaz (3 tűs). Ez egy 5V/GND interfész, amely a DuPont vezetéket csatlakoztathatja más érzékelő modulok táplálásához. Ez a Super:bit bővítőkártya főkapcsolója. Ha motort vagy szervót akar használni, akkor kapcsolja be ezt a főkapcsolót az áramellátáshoz. Ez az interfész a 18650 akkumulátor töltéséhez. Az akkumulátort időben kell tölteni 3,7 V körül (ha a feszültség ezen érték alá kerül, az akkumulátor meghibásodásához vezethet). A töltés akkor fejeződik be, ha az akkumulátor feszültsége kb. 4,2 V. A töltőkészülék jelzőfénye pirosan világít, és a jelzőfény zöldre vált, amikor teljesen feltöltötték.

A további csatlakozásokkal könnyebbnek találhatja egy próbapanel és egy micro:bit élcsatlakozó breakout board használatát az áramkör felépítésének megkönnyítésére. A teszteléshez az SG90 szervót használtam. Nyomja be a BBC micro:bitet a Breakout Boardba. Ez a kísérlet Edge Connector Breakout board nélkül is elvégezhető. Ehhez 3 db krokodilcsipeszre lesz szüksége, és le kell vágnia a szervó csatlakozóját, majd le kell csupaszítania a három vezetéket. A motor piros vezetékét a + -hoz kell csatlakoztatni.

Hogyan csatlakoztathatunk egy szervomotort egy Microbithez?

Szervomotorok programozása MakeCode-ban

A szervomotorok a pozíciójukat egy (körülbelül) 20 milliszekundumos (ms) impulzus be- és kikapcsolási idejének arányával határozzák meg. A micro:bit impulzusszélesség-modulációt (PWM) használ a digitális pin analóg kimenet szimulálására. Gyors be-/kikapcsolási impulzussorozatot küld a szervóba, ami beállítja a céltpozícióját. Például 0, -90, 180 fok, vagy egy folyamatos forgású szervó esetében a forgás irányát és sebességét.

Megjegyzés: A micro:bit hivatalosan betöltötte a szervóvezérlő kódot a blokkokba. A Makecode használatakor nem kell figyelembe vennie olyan bonyolult információkat (pl. az impulzus szélességét). A micro:bit programozásához, hogy vezérelje a szervót, jelet kell küldenünk a P0 pinre. A MakeCode-ban van egy hasznos referenciablokk a szervókhoz, amely leírja a „Servo Write Pin” blokk használatát. Emellett létezik egy videó is a szervó MicroPythonban történő vezérléséről, hasznos PWM bemutatóval. Létezik egy harmadik féltől származó micro:bit szervó osztály is, amelyet importálhat a micro:bit fájlrendszerén keresztül MicroPythonban.

A MakeCode-ban minden alkalommal hozzá kell adnia a kiterjesztést a MakeCode projektjéhez. Hozzon létre egy új MakeCode fájlt, és válassza ki a Kiterjesztések fiókot az eszköztárból. Tipp: + Kiterjesztések-nél tudunk hozzáadni a csatlakoztatott eszközökhöz (Expansion Board-hoz) tartozó program blokkokat. Ezek a programozást nagy mértékben megkönnyítik. A hozzáadás egyszerű: kattintsunk a + Kiterjesztések-re, írjuk be a keresett eszközt pl. Wukong (enter), majd klikk a kiterjesztés ikonjára.

Folyamatos szervomotorok vezérlése MakeCode-ban

  • Egy vezérlő blokk, amely a motor sebességét százalékban állítja be -100% (hátra) és 100% (előre) között.
  • Egy jelentő blokk, amely naplózza a motor sebességének százalékos értékét, -100-tól 100-ig.
  • Egy vezérlő blokk, amely két folyamatos szervomotort inicializál a vezetéshez. Válassza ki mindkét legördülő menüben a „balSzervó”-t a „középSzervó” vagy „jobbSzervó” kiválasztásához. Ennek szerepelnie kell minden olyan programban, amely a „vezetés” kategória más blokkjait használja.
  • Egy vezérlő blokk, amely két folyamatos szervomotort egy felhasználó által kiválasztott sebességre állít be -100 és 100% között, egy felhasználó által kiválasztott időtartamra, milliszekundumban. Használnia kell a „Vezetés beállítása” blokkot a „vezetés” kategóriából.

Látható, hogy két kódpéldát készítettünk a szervó vezérlésére. Az 1. kódpéldában a BBC micro:bit mindkét gombját használtuk. Az SG90 micro szervó vezérlése talán a legegyszerűbb kapcsolás. Csatlakoztassa a 270 °szervó motort az S1 csatlakozóra a Super:bit bővítőkártyán. Ezután a forgási szög: 0 ° → 90 ° → 180 ° → 90 ° → 0 °, az időintervallum 1 másodperc.

A forráskódot is az adafruit honlapjáról szedtem le, és itt olvasható egy egész jó leírás angolul a szervók vezérléséről. A fenti programozás egyik hibája (a videóban is látható), hogy a fordulások során “túl érzékeny, túl gyors” volt ezért az irányítás kicsit nehézkes. Arra jutottam, hogy vagy az egyik motort kell leállítanunk vagy a motorok sebességén kellene változtatnom. A sebességváltóztatást “elegánsabbnak” tartom, ezért erre próbáltam megoldást keresni.

MakeCode programozási felület szervóvezérlő blokkokkal

Program feltöltése a micro:bitre

Letöltéshez: Válassza ki a kívánt lehetőséget a fenti beágyazott szerkesztők közül. Nyomja meg a letöltési linket a beágyazott szerkesztő alján. A kód most letöltődik a számítógép alapértelmezett letöltési mappájába. Miután letöltötte a kódot a fenti linkek egyikéről, csatlakoztassa a BBC micro:bitet a számítógépéhez USB-n keresztül. Navigáljon a letöltött fájlhoz a letöltések mappájában, és húzza azt közvetlenül a BBC micro:bitre a Fájlkezelőben (Windows). Amint a .hex fájl a BBC micro:biten van, nyomja meg az A gombot, és a szervónak mozognia kell. Ha az 1. kódpéldát használta, az A gomb megnyomása csak egy irányba mozgatja a szervót. Megjegyzés: Ha saját kódot ír, a „forever” hurok használata a fenti módszerek helyett ahhoz vezethet, hogy a szervó nem kap elegendő energiát a forgáshoz.

Hibaelhárítás és tippek

Ha a szervó remeg, vagy egyáltalán nem mozog, próbálja ki ezeket a hibaelhárítási tippeket:

  • Táplálja a szervót(kat) külsőleg, ne a micro:bitről. A micro:bit csak 3V-ot képes szolgáltatni, és a legtöbb szervó körülbelül 5V-on működik.
  • Micro:bit V2 esetén az akkumulátoros tápellátás beépített feszültségszabályzón keresztül történik. Ez nem így van a micro:bit V1 esetén, ahol a szervó közvetlenül az akkumulátorból veszi fel az áramot.
  • Használjon friss elemeket.
  • Koppintson a szervó karjára, hogy elinduljon. Egy szervónak több energiára van szüksége az indításhoz, mint a mozgás fenntartásához. Az energiafogyasztás attól is függ, hogy mi csatlakozik a szervóhoz. Egy nehezebb tárgy több energiát igényel.
  • Ellenőrizze a szervó típusát. A 180 fokos szervók esetében a célpozíciót, a folyamatos forgású szervók esetében a forgás irányát és sebességét vezérelheti.
  • Ha a projektje több szervót használ, fontolja meg egy dedikált szervomotor bővítőkártya/kiegészítő használatát.

Szervomotorok felhasználási területei

A szervomotorokat leggyakrabban RC (rádió távirányítású) modellekben alkalmazzák, irányítási funkciókra. Nagyon nagy előnyük, hogy egy pillanat alatt reagálnak, és nagyon gyorsak. Arról nem is beszélve, hogy a felépítésüknek köszönhetően viszonylag nagy energiát képesek kifejteni a rájuk szerelt karokra. Ebből kifolyólag sok helyen láttam, hogy hobbi étel és ital automaták vezérléséhez használták ezeket a motorokat. Ezen felül építhetünk velük szélturbina modellt a megújuló energia hasznosításának és tárolásának feltárására, vagy automatizált facsemeteültető gépet az erdősítés elősegítésére.

Példák szervomotor alkalmazásokra robotkarokban és RC modellekben

Más motortípusok: DC és léptetőmotorok

A motor egy olyan eszköz, amely az elektromágneses indukció elvén működve alakítja át a villamos energiát mozgási energiává. Amikor egyenáramot kapcsolunk a motor két csatlakozási pontjára, a motor forogni kezd. Minél nagyobb a feszültség, annál gyorsabban forog.

DC motor

A DC motor (+/- áttétel) áramot kap, forog; ha nem kap áramot, nem forog. Nincs visszajelzés, hogy éppen hol tart, nem tudjuk megállapítani (külső eszköz nélkül), hogy milyen pozícióban állt meg, vagy épp mennyit fordult.

Léptetőmotor

Mi a léptetőmotor? A négy kivezetésnél több kivezetésű (lehet 5, 6 vagy 8) motorok az unipoláris motorok. Ezeknek négy tekercse van. Vezérléséhez összesen négy kapcsolóelem kell. A négy kivezetésű motornak két tekercse van, ezek a bipoláris motorok. A vezérléséhez két teljes H-hídra (H-bridge) van szükség, ami legalább kétszer négy kapcsolóelemből (tranzisztor, FET, IGBT, stb.) plusz az ehhez tartozó vezérlésből áll. Egy léptetőmotor általában 1,8; 3,6 vagy 7,2 fokot mozdul egy lépéssel. Különféle trükkökkel a motor rábírható, hogy fél, negyed, nyolcad, stb. lépést tegyen meg.

Léptetőmotorokat pontos pozícionálás esetén érdemes használni, mint például egy számítógép vezérlésű eszterga vagy maró (CNC), viszont mindenképpen szükség van hozzá (bonyolult) vezérlőelektronikára. A legegyszerűbb megoldás egy H-híd (motorvezérlő), amellyel be-ki tudjuk kapcsolni, illetve meg tudjuk határozni a forgás irányát.

Jellemző Unipoláris léptetőmotor Bipoláris léptetőmotor
Kivezetések száma 5, 6 vagy 8 4
Tekercsek száma 4 2
Vezérlés 4 kapcsolóelem 2 teljes H-híd
Felhasználás Pontos pozícionálás (CNC gépek) Pontos pozícionálás (CNC gépek)

tags: #microbit #szero #motor #vezerles