
Konštrukcia a programovanie robotov 1. – ovládanie jednosmerných motorov
Počas prázdnin už tradične pripravujeme seriál pre žiakov a študentov venovaný robotike. Tradične preto lebo vlani sme v trojici článkov prvý, druhý a tretí predstavili možnosti robotickej stavebnice Lego Mindstorms. Čitatelia nás v mailoch upozornili, že stavebnica 320 eur je ako vstupná brána do robotiky trochu riziková investícia, hlavne u detí, kde sa nedá odhadnúť, či ich stavba a programovanie robotov bude, alebo nebude baviť. Tento rok sa preto zameriame na cenovo oveľa dostupnejšie riešenia. Najlacnejší a pritom plnohodnotný podvozok získate v e-shopoch už za 20 eur a to vrátane dosky Arduino, dosky na riadenie motorov, prepojovacej dosky, servomotora a ultrazvukového senzora vzdialenosti.
Všetko podstatné o konštrukcii robotického podvozku a ovládaní jednosmerných motorčekov ukazuje video:
Tento podvozok sa vám bude hodiť aj na stavbu robotického vozidla ovládaného doskou BBC micro:bit, ktorá je populárna aj na našich školách. Alebo samotný kompletný podvozok s motorčekmi za približne 7 eur. K nemu ešte potrebujete dosku micro:bit (14 eur) a dosku pre micro:bit na riadenie motorčekov (10 eur)
![]() |
![]() |
Dosku Micro:bit sme pre naše pokusy s robotickým podvozkom vybrali úmyselne. Oproti Arduinu má veľa výhod, predovšetkým možnosť vytvorenie rádiového prepojenia medzi dvomi, prípadne viacerými doskami, takže jedna doska môže riadiť hardvér robotického podvozku a pomocou druhej dosky môžee robotický podvozok ovládať. Buď pomocou dvojice tlačidiel A a B, prípadne naklápaním, či natáčaním dosky Micro:bit, ktorá má zabudovaný akcelerometer a náklonomer.
Základným komponentom robotického podvozku sú dva motorčeky, ktoré poháňajú kolesá. Môžu byť jednosmerné, krokové, alebo servomotory. Najjednoduchšie sa, aspoň zdanlivo ovládajú jednosmerné motorčeky. Otáčky sa menia zmenou napájacieho napätia a smer otáčania sa zmení tak, že medzi sebou vymeníte kladný a záporný pól napájania. Väčšina hobby konštrukcií malých robotických vozidiel používa elektromotorček s planétovou prevodovkou s prevodovým poemrom 1:48 do pomala. Na rozdiel od krokových motorov a servomotorov u jadnosmerného motora nemáte k dispozícii informáciu o koľko otáčok sa hriadeľ motora otočil, alebo o aký uhol sa pootočil. Aby ste to zistili, potrebovali by ste pomocný snímač, napríklad kotúč s otvormi a optočlen. Pri konštrukcii robotických podvozkou však vystačíte aj s tým, že riadiaci mikrokontrolér bude motor zapínať, vypínať, meniť jeho otáčky a smer otáčania.
Motorček má osky na obidvoch stranách, na jednu z nich môžete dať koleso podvozku a na druhú kotúč s otvormi, pomocou ktorého môžete snímať o koľko sa oska pootočila. Motorček je možné napájať napätím v rozsahu 3 - 6V. Má krútiaci moment 0,078Nm a odber prúdu naprázdno je 75 mA. Ovládanie spočíva v napájaní jednosmerným prúdom primeraného napätia na aké ja motorček konštruovaný. Čím je napätie vyššie, tým sa motorček otáča rýchlajšie. Napríklad, ak je moptorček konštruovaný na 6 V, môžete robiť reguláciu otáčok zmenou napájacieho napätie, v rozsahu približne 2 – 6 V. Pri nižšom napätí by sa motorček nerozbehol, vyššie napätie by ho mohlo poškodiť. Motorček odoberá vyšší prúd, než sú schopné dodať porty riadiacej dosky. Preto je potrebná doska na výkonové prispôsobenie. Dosky ako Micro:bit, či Arduino nemajú skutočné analógové výstupy, ale simulujú ich pomocou PWM, čiže pulzne šírkovej modulácie. Toto pri použití knižníc pre danú dosku nepotrebujete vedieť, pre hĺbavejších čitateľov je princíp PWM vysvetlený v závere článku.
Na ovládanie motorčekov sme použili rozširujúci modul Micro:bit, ktorý dokáže nezávisle riadiť dva jednosmerné motory, alebo jeden krokový motor. Srdcom modulu je integrovaný obvod TB6612 s maximálnym prúdom do motoru 1,2 A. Na module sú vyvedené aj ďalšie porty, 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 SPI a I2C zbernice. Na doske je aj malý reproduktor, takže robotické vozidlo môže vydávať aj zvuky. Napájacie napätie doky je 6 – 12 V.
![]() |
![]() |
Pomocou analógových, alebo v prípade Micro:bitu pomocou PWM portov P1 a P2 sa ovládajú otáčky motorom M1 a M2. Smer otáčania motora M1 sa mení logickou úrovňou na porte P8 a smer otáčania motora M2 portom P12. Zapojenie je triviálne. Stačí pripojiť motorčeky, pričom polaritu je potrebné prispôsobiť tak, aby správne fungovali funkcie z knižnice motorbit. Na napájanie môžete použiť blok štyroch batérií AA. Napájacie napätie v takejto zostave ne 6 V. Z modulu na ovládanie motorov sa bude napájať aj microbit.
Bloková schéma zapojenia
Rozmiestnenie komponentov
Do vývojového prostredia je potrebné pridať rozširujúci modul Motorbit, ktorý pridá funkcie na ovládanie robotického podvozku
V prvom príklade ukážeme ovládanie motorčekov tak aby sa v sekundových intervaloch otáčali raz na jednu a potom na druhú stranu.
JavaScript
Ďalší príklad je zameraný na zmenu otáčok. Paremeter v príkaze forward() udáva výkon v rozmedzí 0 – 100, čiže de facto v percentách.
Malá ukážka možností príkazov a funkcií v rozširujúcom module motorbit. Ako sa bude pohybovať robotický podvozok, uvidíte vo videu
JavaScript
Môžete využiť aj priame generovanie analógového PWM výstupu. V tomto prípade sa pomer striedy a teda aj výstupné napätie nastavuje v rozsahu hodnôt 0 - 1023
JavaScript
Hodnota 255 definuje 25% pracovný cyklus a Má podobný účinok, ako keby bol na tomto pine trvale napätie 0,825V.
- Hodnota 511 definuje 50% pracovný cyklus a Má podobný účinok, ako keby bol na tomto pine trvale napätie 1,65V.
- Hodnota 767 definuje 50% pracovný cyklus a Má podobný účinok, ako keby bol na tomto pine trvale napätie 2.475V.
- Hodnota 1023 privedie na výstup napätie 3.3 V
Priebeh signálu pre 50%, 25 % a 75 %
V budúcom pokračovaní sa budeme venovať servomotorom
Zobrazit Galériu