
Konštruujeme robot s Micro:bitom
Populárna mikropočítačová doska BBC Micro:bit je svojimi vlastnosťami priam predurčená aj ako riadiaca jednotka rôznych robotických konštrukcií. Má malé rozmery, výkonný mikrokontrolér, dostatok portov aj bohaté komunikačné možnosti vrátane bluetooth komunikácie so smartfónom či rádiovej komunikácie viacerých zariadení Micro:bit navzájom. Začiatočníci môžu Micro:bit programovať pomocou grafických blokov v prostredí MakeCode. Po získaní skúseností odporúčame prejsť na populárny programovací jazyk Python.
Hardvér a zbernica
Nová verzia Micro:bitu V2 má mikrokontrolér s architektúrou ARM Cortex-M0 taktovaný na 64 MHz. Na čipe je 64 kB pamäte RAM a 512 kB úložného priestoru typu flash. Pôvodný Micro:bit V1 má mikrokontrolér taktovaný 16 MHz, 16 kB RAM a 256 kB pamäte flash. Na doske sú dve tlačidlá, označené A a B, a medzi nimi je displej tvorený maticou 5 × 5 červených LED. Konštruktérov robotov poteší aj relatívne bohatá senzorová výbava. Na doske je akcelerometer, snímač naklonenia, kompas čiže magnetometer, senzor teploty a dokonca aj senzor intenzity osvetlenia, ktorý využíva reverznú funkciu LED. Micro:bit V2 má priamo na doske zabudovaný mikrofón a reproduktor.
Konektor na okraji plošného spoja má päť širokých kontaktov s pokovovanými otvormi na banániky a medzi nimi je rozmiestnených 20 ďalších úzkych kontaktov. Nie všetky vstupno-výstupné piny však môžete využiť. Piny 3, 4, 6, 7, 9 a 10 sa využívajú pre LED diódy maticového displeja. Ak ich chcete využiť, musíte oželieť zobrazovanie na displeji. Pin 5 je zdieľaný s tlačidlom A a pin 11 s tlačidlom B. Keďže Micro:bit nemá analógové výstupy, na reguláciu jednosmerných motorov či intenzity jasu LED sa využíva impulzová šírková modulácia (PWM).
Niektoré piny môžete použiť buď ako GPIO (general purpose input/output) čiže univerzálne vstupy a výstupy, alebo ako signály komunikačných rozhraní. Rozhranie I2C využíva pin 19 na hodinový signál (SCL) a pin 20 na dátovú linku (SDA). Na túto zbernicu je pripojený aj interný akcelerometer a magnetometer. Rozhranie SPI (zbernice Serial Peripheral Interface) má signál SCK na pine 13, pin 14 sa využíva ako MISO (Master In Slave Out ) a pin 15 na signál MOSI (Master Out Slaven). Pin 16 sa využíva aj ako SPI Chip Select.
Pri vlastných zapojeniach, prípadne pri rôznych univerzálnych moduloch treba dať pozor na to, že Micro:bit na vstupoch a výstupoch využíva napäťovú úroveň 3,3 V a porty môžete zaťažiť len pomerne malým prúdom. Pri napájaní cez USB zvládne Micro:bit prúdovú 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 4 LED diódy pripojené na portoch, pričom každá odoberá 20 mA. Na ovládanie motorov, prípadne ďalších akčných členov potrebujete prídavné moduly s výkonovými spínacími prvkami. Tie sú na rôznych rozširujúcich doskách, prípadne si elektronické obvody môžete sami „zmajstrovať“ na prepojovacom poli alebo univerzálnej doske plošných spojov.
Modul Robotbit rozmerovo kompatibilný s riadiacou jednotkou robota mBot
Konektory verzus spájkovanie
Vstupno-výstupné porty a signály komunikačných zberníc sú vyvedené na konektor, ktorý tvoria kovové plôšky priamo na plošnom spoji. Takto riešený konektor umožňuje zasunúť Micro:bit do konektora na rozširujúcej doske alebo po odladení hardvéru môžete na kontaktné plôšky opatrne prispájkovať vodiče plochého kábla. Po krátkom zácviku na univerzálnom plošnom spoji to pomocou lacnej spájkovačky s hrotom zvládne aj začiatočník. Dôvody na priame spájkovanie vodičov na konektor sú dva: spoľahlivosť a úspora miesta. Prototyp robotickej konštrukcie budete pravdepodobne vytvárať pomocou vodičov na prepojovacom poli a na pripojenie k Micro:bitu, prípadne tandemu Micro:bitu s rozširovacou doskou použijete vodiče s pinmi a dutinkami. Pri pohľade na takto vytvorené „hniezdo“ si sami odpovedzte na otázku ohľadne spoľahlivosti takéhoto zapojenia pri robotickom podvozku či robotickej ruke, pri ktorých vplyvom pohybu dochádza k vibráciám a dynamickým rázom, často pomerne intenzívnym. Nehovoriac o tom, že by ste takto skonštruovali robot pre duel. Spájkované spoje sú v tomto ohľade oveľa spoľahlivejšie.
Problém môže byť aj s priestorom. Samotný Micro:bit má rozmery 50 × 40 mm a hrúbku asi 7 mm. Rozmery rozširujúcich dosiek sú podobné. Do mnohých rozširujúcich dosiek sa Micro:bit zasúva tak, že s doskou zviera pravý uhol. Dôvodom je, aby bol dobre viditeľný maticový displej. Z priestorového hľadiska sú lepšie rozširujúce dosky, do ktorých sa Micro:bit zasúva tak, že je s doskou rovnobežný. V každom prípade sa dosku snažíme zabudovať tak, aby bol viditeľný displej a prístupné tlačidlá. Niekedy môže byť výhodné umiestniť rozširujúcu dosku s výstupmi na motory a servomotory inde než riadiacu jednotku. Typickým príkladom môže byť humanoidný dizajn robota, kde najvhodnejším logickým umiestnením Micro:bitu s displejom je hlava a rozširujúcu dosku je výhodné umiestniť do blízkosti motorov a servomotorov. Riešením je prepojenie konektorov pomocou plochého kábla, ktorý by mal byť čo najkratší, aby sa zabránilo prípadnému rušeniu. Dĺžka 10 – 20 cm je úplne v pohode. Aj v tomto prípade sú na finálne riešenie najspoľahlivejšie spájkované spoje.
Roborický podvozok s modulom Motorbit a dvoma jednosmernými motormi
Rozširujúce moduly pre robotiku
Vzhľadom na veľkú popularitu Micro:bitov je v ponuke e-shopov veľké množstvo rôznych rozširujúcich modulov určených pre robotické konštrukcie. Majú spravidla dva alebo štyri konektory na pripojenie jednosmerných motorov, pričom výkonové obvody umožňujú nielen reguláciu otáčok pomocou PWM, ale aj zmenu polarity, a teda smeru otáčania. Na zmenu polarity sa využívajú samostatné riadiace piny. Na pripojenie senzorov a servomotorov sú na rozširujúcich doskách trojpólové konektory s rozhraniami GVS. Micro:bit ich môže mať maximálne 16. Akronym GVS znamená Ground, Voltage, Signal. Signály sú na konektoroch rozlíšené farebne. Na červenom konektore (V) je kladné napájacie napätie, na čiernom (niekedy hnedom) konektore (G) je zem a na oranžovom konektore (S) je vstupno-výstupný signál. Výhoda takéhoto usporiadania je v tom, že každý senzor, prípadne servomotor či iné zariadenie sa pripája tromi vodičmi, pričom dva z nich zabezpečujú aj jeho napájanie. Napätie 3 V je pre väčšinu servomotorov prinízke, preto niektoré rozširujúce moduly, ako napríklad Elecfreak Motor:bit, majú dve skupiny portov GVS, jedna skupina využíva 3,3 V a druhá 5 V napäťové úrovne. Prípadne dosky majú prepínač napäťovej úrovne. Mnohé rozširujúce moduly majú piny I2C zbernice vyvedené na konektor, do ktorého môžete priamo zasunúť vhodný displej. Rozširujúce dosky potrebujú samostatné napájanie, niektoré umožňujú pripojenie Li-ion akumulátora a majú aj obvody na jeho nabíjanie. Pre robotické konštrukcie sa nehodia rozširujúce dosky určené pre začiatočníkov na jednoduché experimenty. Napríklad rozširujúca doska súpravy Grove má na pripojenie senzorov a akčných členov len štyri konektory.
Robotický podvozok zo stavebnice Lego s modulom Nezja pre Microbit
Senzory
Robotické podvozky najčastejšie využívajú ultrazvukové senzory vzdialenosti a optické senzory na sledovanie čiary, prípadne na detegovanie okraja stola, aby z neho podvozok nespadol. Tieto senzory majú vlastnú elektroniku a na snímanie údajov sú k dispozícii knižničné funkcie. Prípadne môžete použiť snímač intenzity osvetlenia a naprogramovať robotický podvozok tak, aby sa snažil sledovať svetelný zdroj.
Motory a servomotory
Väčšina hobby konštrukcií malých robotických podvozkov využíva buď jednosmerné motorčeky, alebo kontinuálne servomotory. Cenovo dostupné jednosmerné motorčeky v žltom plastovom puzdre sú sprevodované do pomala. Majú dva kontakty, na ktoré sa privádza jednosmerné napätie. Čí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. Polarita určuje smer otáčania. Pretože Micro:bit nemá analógové výstupy, zmena napätia privádzaného na motorčeky sa realizuje pomocou impulzovej šírkovej modulácie (PWM). Konštantné napätie sa striedavo zapína a vypína pri pomerne vysokej frekvencii. Rýchlosť motora je daná percentuálnym podielom času v zapnutom stave. Motorčeky majú veľký prúdový odber, preto sa na reguláciu prúdu používajú tranzistory alebo integrované obvody, ktoré sú na rozširujúcich doskách, prípadne si elektronické obvody môžete sami „zmajstrovať“ na prepojovacom poli alebo univerzálnej doske plošných spojov.
Nám sa najviac osvedčil rozširujúci modul Motor:bit, ktorý dokáže nezávisle riadiť dva jednosmerné motory. 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, smer otáčania sa mení logickou úrovňou na portoch P8 a 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. Na konektory sú vyvedené aj komunikačné rozhrania SPI a I2C, napríklad na pripojenie displeja. Napájacie napätie dosky je 6 – 12 V.
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. 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 rozhrania GVS. Na signálový vodič sa privádza signál PWM s frekvenciou 50 Hz. Uhol natočenia, prípadne otáčky kontinuálneho servomotora sa ovládajú šírkou impulzu v rozsahu 0,5 až 2,5 ms. Na prvý pohľad to znie zložito, ale vďaka knižničným funkciám je ovládanie servomotorov veľmi jednoduché.
Komunikácia
Vzájomná rádiová komunikácia viacerých Micro:bitov sa dá využiť aj na diaľkové ovládanie zariadení. Najčastejším scenárom bude zostava, keď jeden Micro:bit sa využíva ako riadiaca jednotka. Pomocou druhého Micro:bitu, či už samostatného, alebo vloženého v module joysticku, robot na diaľku ovládame. Prípadne môžete na riadenie robotickej konštrukcie využiť dva, prípadne viac Micro:bitov, ktoré budú navzájom komunikovať, a k tomu jednu dosku na ovládanie. Údaje, ktoré vysiela niektorý z Micro:bitov, zachytia všetky dosky v dosahu 50 – 70 m nastavené na príjem. Micro:bit, ktorý vysiela, sa dá nastaviť na niektorý z kanálov, ktoré sú očíslované 0 – 83. Všetky zainteresované zariadenia sa naladia na ten istý kanál a každý počuje, čo vysielajú ostatní. Ak nenastavíte kanál, môžete na implicitne nastavenom 7. kanáli využiť hromadnú komunikáciu.
Mechanická konštrukcia
Na mechanické konštrukcie sa nám osvedčila konštrukčná stavebnica Totem, ktorú sme v našom časopise už predstavili, prípadne mechanické stavebnice kompatibilné s Lego Technic. V takom prípade odporúčame rozširujúci modul Wukong s plastovým rámom umožňujúcim zabudovanie do konštrukcie Lego. Wukong má vlastný 400 mAh akumulátor. Dokáže ovládať dva jednosmerné motory a má aj konektory GVS na pripojenie servomotorov a senzorov. V ponuke e-shopov sú aj jednosmerné motorčeky a servomotory v konštrukčnom vyhotovení kompatibilnom s Lego Technic.
Zobrazit Galériu