Samsung FOLD_07 Advertisement Samsung FOLD_07 Advertisement Samsung FOLD_07 Advertisement

Micro:bit v robotike – ovládanie motorov

Špeciálne projekty
0

Kľúčový atribút pre robotické konštrukcie je pohyb. Robotické podvozky, ruky alebo humanoidné kráčajúce roboty majú niekoľko motorov, prípadne aj ďalších prvkov, napríklad elektromagnety, ktoré požadované koordinované pohyby zaistia. Aby pohyby robotickej konštrukcie boli koordinované, treba motory a ďalšie akčné členy riadiť. Študenti aj hobby nadšenci doma či v robotických krúžkoch na tento účel čoraz častejšie využívajú jednodoskový mikropočítač BBC Micro:bit, používaný v mnohých našich školách pri výučbe programovania a robotiky. Micro:bit umožňuje, či už priamo, alebo cez rozširujúce dosky, riadiť všetky typy. V hobby konštrukciách sa využívajú predovšetkým jednosmerné motory a servomotory. V pokročilejších zariadeniach, kde záleží na presnosti, napríklad v 3D tlačiarňach, sa využívajú krokové motory.

Samsung WATCH 7 Advertisement

V článku sa budeme venovať princípom fungovania a ovládania jednosmerných motorov a servomotorov, predstavíme niekoľko zaujímavých rozširujúcich dosiek na ovládanie motorov a ďalších zariadení a ukážeme najpoužívanejšie konštrukcie pohonu robotických podvozkov.

Ovládanie jednosmerných motorov

Väčšina hobby konštrukcií malých robotických vozidiel používa cenovo dostupné motorčeky s planétovou prevodovkou s prevodovým pomerom 1:48 „do pomala“. Motorček má osky na obidvoch stranách, na jednu z nich môžete dať koleso podvozka a na druhú kotúč s otvormi, pomocou ktorého môžete optočlenom snímať, o aký uhol sa oska motorčeka pootočila. Motorčeky na jednosmerný prúd sa ovládajú jednoducho, aspoň na prvý pohľad sa to zdá. Majú len dva vodiče na pripojenie napájacieho napätia. Čím vyššie je toto napätie, tým sú vyššie aj otáčky, samozrejme, za predpokladu, že napájací zdroj a riadiace obvody zdroja sú schopné dodať požadovaný prúd. Veľa jednosmerných motorov pracuje pri vysokých otáčkach, a preto sú vybavené prevodmi do pomala. Smer otáčania jednosmerných motorov závisí od polarity privedeného napätia, čiže ak medzi sebou vymeníte kladný a záporný pól napájania, motorček sa začne otáčať opačným smerom.

Keďže Micro:bit nemá analógové výstupy, zmena napätia privádzaného na motorčeky sa najjednoduchšie realizuje pomocou impulzovej šírkovej modulácie (PWM). Napájanie privádzané do jednosmerného motora sa striedavo zapína a vypína pri pomerne vysokej frekvencii, takže pohyb motora je plynulý. Rýchlosť motora je daná percentuálnym podielom času v zapnutom stave. Ak je napríklad napájanie cyklované na 50 %, čiže počas polovice každého impulzu je napájanie zapnuté a druhej polovice vypnuté, potom sa motor točí na polovicu maximálnych otáčok. Zmeniť polaritu napájania jednosmerného motora prehodením vodičov vedúcich od batérie k motoru je jednoduché, realizácia pomocou relé alebo tranzistorov si vyžaduje poznať fungovanie takzvaného H mostíka, ktorý umožňuje zmeniť polaritu, a teda aj smer otáčania pomocou štyroch spínačov.

Obr1. Fungovanie H mostíka

Pomocou portov dosky Micro:bit síce môžete priamo spínať pripojené zariadenia, ale ich napájanie je limitované napätím 3,3 V a maximálnym prúdom niekoľko desiatok miliampérov. Pri napájaní cez USB prúdový regulátor zvládne záťaž 120 mA. Ak počítame 30 mA na napájanie obvodov na samotnej doske, na napájanie periférií zostáva celkový maximálny prúd 90 mA. Takže môžete napájať napríklad štyri LED diódy pripojené na portoch, pričom každá odoberá 20 mA. Takýto prúd, samozrejme, na napájanie jednosmerného motorčeka nestačí, preto musíte použiť vhodný spínací prvok, buď relé, alebo polovodičové spínacie prvky. Tie sú na rôznych rozširujúcich doskách, prípadne si elektronické obvody môžete sami „nabastliť“ na prepojovacom poli alebo univerzálnej doske plošných spojov.

Ak sa rozhodnete pre relé, môžete použiť buď originálny modul so štyrmi relé, určený pre Micro:bit, alebo univerzálne moduly s relé, určené pre ľubovoľný mikrokontrolér. Princíp fungovania relé je jednoduchý. Vnútri je cievka, ktorá pomocou malého jednosmerného prúdu spína kontakty. Kontakty sú dimenzované na vyššie napätia a prúdy, takže nimi môžete spínať prúd pre motorčeky, žiarovky a ďalšie prvky, ktoré si vyžadujú vyššie prúdy a napätia. Relé sú však pre niektoré konštrukcie príliš veľké, vtedy je riešením použiť na spínanie tranzistory. Rozširujúce dosky realizujú H mostík pomocou integrovaných obvodov určených na riadenie motorov.

Ovládanie servomotorov

Servomotory sú typicky určené na špecifickejšie úlohy, kde treba definovať polohu, napríklad na pohyb robotického ramena alebo robotickej nohy v určitom rozsahu, natočenie senzora, kamery a podobne. Servomotor je komplexná súčiastka, ktorá obsahuje jednosmerný motor, prevody, riadiacu elektroniku a snímač aktuálnej polohy osky. Podľa spôsobu fungovania rozlišujeme servá, pri ktorých sa ovláda uhol natočenia spravidla v rozsahu 180 stupňov, a kontinuálne servá, pri ktorých ovládame rýchlosť a smer otáčania. Kontinuálne servomotory sa používajú aj v robotických podvozkoch.

 Servomotor sa napája a ovláda pomocou troch vodičov, ktoré sa pripájajú k portom označeným zvyčajne ako GVS (Ground Voltage Signal). Na červenom vodiči (V) je kladné napájacie napätie, na čiernom (niekedy hnedom) vodiči (G) je zem a na oranžový vodič (S) sa privádzajú signály. Oranžový vodič je vnútri serva pripojený na riadiacu elektroniku, nemá veľký prúdový odber, takže ho môžete pripojiť priamo na port. Ovláda sa pomocou signálu PWM. Frekvencia impulzov privádzaných na oranžový vodič je 50 Hz, čo je čas trvania periódy 20 ms. Uhol natočenia sa ovláda šírkou impulzu. Pri klasickom modelárskom serve je šírka impulzu 0,5 až 2,5 ms a tejto hodnote zodpovedá uhol natočenia 0 až 180°, prípadne 0 – 270° podľa konštrukcie serva. Kontinuálne servomotory fungujú tak, že zmenou šírky impulzov sa mení rýchlosť otáčania. Na prvý pohľad to znie zložito, ale vďaka knižnici integrovanej do vývojového prostredia je ovládanie servomotorov veľmi jednoduché. Mimochodom, rovnaký spôsob ovládania využívajú servá v modelov áut, lietadiel či lodí ovládaných rádiom.

Príklad programu v jazyku JavaScript, ktorý cyklicky natáča servo z jednej do druhej krajnej polohy:

basic.forever(function () {
  pins.servoWritePin(AnalogPin.P0, 0)
  basic.pause(2000)
  pins.servoWritePin(AnalogPin.P0, 180)
  basic.pause(2000)
})

Rozširujúce moduly na ovládanie motorov a servomotorov

Modul Velleman VMM40 má na doske štyri relé, každé z nich môže spínať jednosmerný prúd s napätím maximálne 24 V a prúdom 3 A. Relé sú spínané podľa stavu logickej hodnoty na výstupoch P3, P4, P6 a P7. Doska potrebuje samostatné napájanie 5 V a každý výstup mikropočítača Micro:bit je zaťažený prúdom max. 5 mA. Stav zopnutia jednotlivých relé je indikovaný aj opticky pomocou LED diód na doske.

Modul Wukong je konštruovaný tak, aby sa dal zabudovať do konštrukcií zo stavebnice Lego Technic, a jeho súčasťou je 400 mAh akumulátor. Modul dokáže ovládať dva jednosmerné motory a osem servomotorov. V ponuke e-shopov sú obidva spomínané typy motorov aj v konštrukčnom vyhotovení kompatibilnom s Lego Technic. K doske Wukong môžete, samozrejme, pripojiť aj ďalšie moduly, napríklad senzory, ktoré sa pripájajú pomocou rozhrania GVS, či displej OLED pripojený cez rozhranie SPI. Zakomponovanie servomotorov je otázka kreativity a bude pri každom modeli iné. Vyskúšali sme upraviť niekoľko modelov áut tak, že sme napojili jednosmerný motor alebo kontinuálny servomotor na hriadeľ poháňajúci zadné kolesá cez diferenciál a klasický servomotor, ktorý sa otáča o definovaný uhol, na hriadeľ mechanizmu natáčania predných kolies. Keďže servo sa natáča v rozsahu 0 – 180°, bude stredová poloha, keď sa model pohybuje priamo, pri nastavenom uhle 90°. Model môžete doplniť o rôzne senzory a riadiaci program upraviť tak, aby sa autíčko vyhýbalo prekážkam, „autonómne“ zacúvalo na parkovacie miesto a podobne.

Modul Motor:bit dokáže nezávisle riadiť dva jednosmerné motory alebo jeden krokový motor. Srdcom modulu je integrovaný obvod TB6612 s maximálnym prúdom do motora 1,2 A. Pomocou portov P1 a P2 sa ovládajú otáčky motorov M1 a M2. Smer otáčania motora M1 sa mení logickou úrovňou na porte P8 a smer otáčania motora M2 portom P12. Na module sú vyvedené aj ďalšie porty GVS, ktoré môžete používať na ovládanie servomotorov, prípadne na snímanie údajov zo senzorov. Porty P3 – P7 a P9 – P11 sú určené na pripojenie periférií využívajúcich 3,3 V logiku a porty P13 – P16 a P19 – P20 podporujú logiku 3,3 V nebo 5 V. Na výber napäťovej úrovne je na doske prepínač. Na konektory sú vyvedené aj zbernice SPI a I2C, napríklad na pripojenie displeja. Na doske je aj malý reproduktor, takže robotické vozidlo môže vydávať aj zvuky. Napájacie napätie dosky je 6 – 12 V.

Ukážka možností príkazov a funkcií v jazyku JavaScript:

basic.forever(function () {
  motorbit.forward(70)
  basic.pause(500)
  motorbit.back(50)
  basic.pause(500)
  motorbit.turnleft(50)
  basic.pause(500)
  motorbit.turnright(50)
  basic.pause(500)
  motorbit.brake()
  basic.pause(500)
  motorbit.freestyle(-40, 30)
  basic.pause(500)
})

Robotické podvozky

Najjednoduchšie robotické podvozky fungujú na rovnakom princípe ako robotický vysávač. Majú dve kolesá, pričom každé poháňa samostatný motor. Na udržanie stability sú potrebné minimálne tri body, takže robotický podvozok tohto typu má ešte tretie koliesko otočné o 360 stupňov, prípadne guľôčku. Ak sa obidve poháňané kolesá otáčajú rovnakou rýchlosťou jedným alebo druhým smerom, podvozok sa pohybuje priamo dopredu alebo dozadu. Ak sa kolesá otáčajú rôznou rýchlosťou, podvozok zatáča do tej strany, na ktorej sa koliesko pohybuje pomalšie. Ak jedno z kolies úplne zastane a druhé sa otáča, robot sa začne otáčať na mieste, pričom stredom otáčania je koleso, ktoré sa nepohybuje, a polomer otáčania je daný vzdialenosťou medzi kolesami. Ak potrebujete robotický podvozok otočiť na mieste, ale na menšom priemere, kolieska sa musia otáčať opačným smerom. Vtedy bude polomer otáčania rovný polovičke vzdialenosti medzi kolesami a os otáčania bude v strede pomyselnej spojnice kolies.


Modul Wukong pre Micro:bit mechanicky kompatibilný s Lego Technic

Modely áut, napríklad zo stavebnice Lego Technic, využívajú iný princíp a podobne ako reálne autá menia smer natáčaním predných kolies. Väčšina modelov z lega má diferenciál, takže na pohon zadných kolies stačí jediný motor a druhý bude ovládať natočenie predných kolies. Princíp pohybu robotických podvozkov poznáme, takže už len potrebujeme zvládnuť ovládanie jednosmerných motorov a servomotorov.

K dispozícii sú však aj ďalšie možnosti, napríklad malé bagre majú štyri kolesá bez možnosti natáčania a smer menia zmenou smeru a rýchlosti ich otáčania, pričom niektoré z kolies pritom prekĺzavajú. To si však na niektorých povrchoch vyžaduje značný krútiaci moment. Ešte zaujímavejší spôsob manévrovania štvorkolesového podvozka umožňujú takzvané všesmerové kolesá Mecanum, ktoré sú upevnené tak, že nemajú možnosť zatáčania a napriek tomu má podvozok bohaté možnosti manévrovania. Kolesá Mecanum majú po obvode šikmo umiestnené otočné valčeky. Každý z týchto valcov má os rotácie pootočenú o 45°. Striedaním kolies s ľavými a pravými valcami tak, že každé koleso pôsobí silou zhruba kolmo na diagonálu rázvoru kolies, je vozidlo stabilné a môže sa pohybovať v ľubovoľnom smere a otáčať sa zmenou rýchlosti a smeru otáčania každého kolesa. Pohyb všetkých štyroch kolies v tom istom smere spôsobuje pohyb vpred alebo vzad, beh kolies na jednej strane v opačnom smere ako na druhej strane spôsobuje rotáciu vozidla a beh kolies na diagonále v opačnom smere ako na kolesách na druhej uhlopriečke spôsobuje pohyb do strany. Kombinácie týchto pohybov kolies umožňujú pohyb vozidla v ľubovoľnom smere s akoukoľvek rotáciou. Aby podvozok mohol manévrovať, potrebujete mať možnosť otáčať všetkými štyrmi kolesami, a to obidvoma smermi.

 

Zobrazit Galériu

Ľuboslav Lacko

Všetky autorove články

Pridať komentár

Mohlo by vás zaujímať

Mohlo by vás zaujímať