SAMSUNG_10_FLIP Advertisement SAMSUNG_10_FLIP Advertisement SAMSUNG_10_FLIP Advertisement

Postavte si vlastného robotického psa a dron

Špeciálne projekty
0

Jednodoskový mikropočítač Micro:bit sa vynikajúco hodí na výučbu základov programovania hardvéru a robotiky. Použitie tejto čoraz populárnejšej dosky na ovládanie zložitejších zariadení má však určité limity. Nie čo sa týka hardvérovej výbavy, ale skôr možností a schopností začínajúcich či mierne pokročilých programátorov. Tí bez problémov zvládnu programovanie ovládania robotických podvozkov či iných jednoduchých robotických konštrukcií. No naprogramovať ovládanie robotického psa, ktorého pohyb zabezpečuje 12 servomotorov, po štyri v každej nohe, alebo ovládanie dronu, kde sa vyžaduje dodržiavanie rovnováhy a sledovanie výšky na základnej úrovni, je mimo ich možností. Vyžaduje si to naprogramovať niekoľko asynchrónnych úloh, stavových automatov a obsluhu prerušení od hardvérových komponentov a komunikačných rozhraní.  

Výrobcovia elektronických stavebníc a rozširujúcich modulov preto ponúkajú rôzne pokročilé zariadenia, ktoré využívajú Micro:bit na programovanie a ovládanie na vyššej úrovni. V online grafickom vývojovom prostredí makecode.microbit.org alebo vo vývojovom prostredí pre programovací jazyk Micro Python naprogramujete postupnosť povelov. V prípade robotického psa to budú povely na pohyb v požadovanom smere požadovanou rýchlosťou, otočenie, zníženie či zvýšenie polohy tela, prípadne komplexné povely typu sadni, podaj labku a podobne. Micro:bit potom tieto naprogramované povely cez vhodné komunikačné rozhranie priebežne v určenom časovom slede odovzdáva mikrokontroléru v robotickom psovi, ktorý ich vykoná. V prípade dronu sú to povely na let v požadovanom smere, prípadne komplexné akcie ako vznášanie sa, vzlet či pristátie.


Drone:bit sa dodáva rozložený v praktickej škatuli

Najskôr stručne opíšeme hardvérové možnosti Micro:bitu a potom predstavíme za­ujímavého robotického psa a dron, ktoré túto mikropočítačovú dosku využívajú. Micro:bit má relatívne výkonný 32-bitový mikrokontrolér Nordic Semiconductor nRF51822 s architektúrou ARM Cortex-M0, taktovaný na 16 MHz a so 16 kB pamäte RAM a 256 kB pamäte flash. Novšia výkonnejšia verzia, označovaná Micro:bit V2, má ešte výkonnejší mikrokontrolér nRF52833, taktovaný na 64 MHz, 128 kB pamäte RAM a 512 kB pamäte flash. Priamo na doske je senzor pohybu čiže akcelerometer, snímač naklonenia, kompas čiže magnetometer a senzor teploty. Micro:bit podporuje dva druhy bezdrôtovej komunikácie - Bluetooth Low Energy (BLE) na komunikáciu s mobilnými zariadeniami a proprietárny rádiový prenos na komunikáciu s ďalšími Micro:bitmi.

Robotický pes XGO

Robotický pes Micro:bit XGO

XGO je štvornohý robot, ktorý má 12 stupňov voľnosti, pričom pohyb každej končatiny zabezpečujú tri servomotory. Vďaka tomu sa dokáže pohybovať všetkými smermi. Tento projekt je k dispozícii vo viacerých verziách, XGO Mini využíva modul s čipom Kendryte K210, kamerou a displejom, podporuje rozpoznávanie obrazu aj strojové učenie. Variant Micro:bit XGO využíva populárnu mikropočítačovú dosku Micro:bit. Obidva varianty sa dajú ovládať aj pomocou mobilnej aplikácie. Štvornohý robot dokáže napodobňovať pohyb pri chôdzi psa, takže na rozdiel od kolesových robotických podvozkov zvládne aj náročnejší terén. Vďaka snímačom polohy a náklonu je XGO stabilný a vie sa prispôsobiť napríklad zmene náklonu podložky.

Telo robota je z pevnej zliatiny hliníka s eloxovaným povrchom. Robotický pes si dokáže sadnúť, ľahnúť, dať labku, „vykonať potrebu“ so zdvihnutou zadnou labkou, hľadať jedlo, ňuchať, chodiť všetkými smermi a veľa ďalších pohybových kreácií.


Zostavený dron s Micro:bitom

Pohyb na štyroch nohách si vyžaduje veľmi zložitú vzájomnú koordináciu pohybov 12 servomotorov a snímanie zrýchlenia orientácie a náklonu. Preto je v tele robotického psa riadiaca elektronika s výkonným mikrokontrolérom STM32F4, 9-osovým senzorom IMU (Inertial Measurement Unit), obvodom ESP32 na komunikáciu cez bluetooth a ďalšími elektronickými obvodmi. Koordináciu pohybov nôh teda zabezpečuje firmvér v internom mikrokontroléri. Mobilná aplikácia, prípadne Micro:bit slúži len na zadávanie povelov. Z technického hľadiska to funguje tak, že Micro:bit je s elektronikou robotického psa spojený cez sériové rozhranie. Na prepojenie sa vy­užívajú tri vodiče – signály Rx, Tx a GND, teda elektrická zem, pričom signály Rx a Tx generujú porty P1 a P2. Robotický pes má vlastnú nabíjateľnú batériu, ktorá však Micro:bit nenapája. Výdrž batérie je približne 90 minút. V balení je rozširujúci modul ring:bit, v ktorom sú tri batérie veľkosti AA. Na tento modul sa upevní Micro:bit, ktorý však v balení nie je. Mechanické a elektronické prepojenie zabezpečuje päť skrutiek. Takáto zostava sa upevní na prednú časť robotického psa pomocou dvoch skrutiek a plastov mechanických dielov kompatibilných so stavebnicou Lego Technic. Dizajnovo potom Micro:bit akoby tvoril hlavu robotického psa, pričom na maticovom displeji 5 × 5 LED môžete zobrazovať rôzne symboly alebo rolujúci text. 

Program na let dronu do „štvorca“

Po zapnutí tlačidlom na chrbte sa robotický pes postaví a čaká na povely, či už z Micro:bitu, alebo z mobilnej aplikácie. Pri ovládaní pomocou mobilnej aplikácie sa Micro:bit nevyužíva, aplikácia komunikuje cez bluetooth priamo s mikrokontrolérom vnútri. Ak využívate na zadávanie povelov Micro:bit, potrebujete do vývojového prostredia Makecode nainštalovať knižnicu XGO, ktorej úlohou je transformovať príkazy na ovládanie pohybu na kódy, ktoré sa prenášajú do interného mikrokontroléra cez sériové rozhranie. Inak povedané, XGO môžete ovládať nielen pomocou Micro:bitu, ale akéhokoľvek mikrokontroléra, napríklad pomocou Arduina, Raspberry Pi, dosiek s ESP32 a podobne.


Senzory na spodnej strane dronu

Drone:bit for Micro:bit

Programovateľný dron s Micro:bitom umožňuje aj začínajúcim programátorom a nadšencom robotiky oboznámiť sa s princípom fungovania dronov a naprogramovať postupnosť povelov, ktoré dron vykoná. Dron je ľahký a má chrániče vrtúľ, takže môže lietať aj v miestnosti. Dodáva sa ako stavebnica predmontovaných komponentov, a tak stačí zasunúť štvorhranné tyčky s vrtuľami do otvorov v tele dronu, pripojiť konektory motorov vrtuliek a nabíjateľnú batériu. Aj začiatočník to zvládne za 15 minút.  Pripomíname, že treba dodržať polohu jednotlivých vrtúľ podľa návodu. Micro:bit nie je súčasťou balenia, musíte ho kúpiť zvlášť. K doske riadiacej elektroniky dronu sa upevní pomocou piatich skrutiek, ktoré zabezpečia aj prenos napájacieho napätia, GND čiže elektrickej zeme a troch signálov: P0, P1 a P2.

Dron využíva mikrokontrolér STM32F4 s architektúrou ARM Cortex M4. Na spodnej strane dronu je optický senzor pohybu PMW3901 a laserový TOF (Time-of-Flight) senzor výšky VL53L1X, ktorý umožňuje presné meranie vzdialenosti bez ohľadu na farbu a odrazivosť cieľa. Na dodržiavanie nastavenej výšky sa využíva aj barometer.

Do vývojového prostredia Makecode je potrebné nainštalovať knižnicu Drone:bit, ktorá obsahuje príkazy na programovanie dronu. Na stránke výrobcu sú vzorové programy, ako prvý odporúčame vyskúšať  Fly Foursquare, ktorý obsahuje povely na vzlietnutie, postupný let dopredu, doprava, dozadu, doľava, zakaždým o 100 cm, a napokon pristátie. Programový kód v JavaScripte:

input.onButtonPressed(Button.A, function () {

    basic.pause(2000)

    Drones.Basic_action(Drones.Basicoptions.Takeoff)

    Drones.Move_action(Drones.Directionoptions.Forward, 100)

    Drones.Move_action(Drones.Directionoptions.Right, 100)

    Drones.Move_action(Drones.Directionoptions.Backward, 100)

    Drones.Move_action(Drones.Directionoptions.Left, 100)

    Drones.Basic_action(Drones.Basicoptions.Landing)

})

basic.showIcon(IconNames.Heart)

Drones.initModule(Drones.Runmodes.Master)

 

Na wiki stránke výrobcu dronu Elecfreak je aj knižnica Dronebit.py, pomocou ktorej môžete programovať dron v populárnom programovacom jazyku Python. Príklad jednoduchého programu:

from microbit import *

from Dronebit import *

 

Drone = DRONE()

Drone.initModule(Drone.master)

Drone.Basic_action(Drone.take_off)

Drone.Move_action(DRONE.Up,300)

Drone.Drone_sleep(1000)

Drone.Move_action(DRONE.Down,300)

Drone.Drone_sleep(1000)

Drone.Basic_action(Drone.landing)

 

while True:

    Drone.heartbeat()

    if button_a.was_pressed():

        Drone.Basic_action(Drone.take_off)

        Drone.Move_action(Drone.Forward,300)

        Drone.Drone_sleep(1000)

        Drone.Move_action(Drone.Left,300)

        Drone.Drone_sleep(1000)

        Drone.Move_action(Drone.Backward,300)

        Drone.Drone_sleep(1000)

        Drone.Move_action(Drone.Right,300)

        Drone.Drone_sleep(1000)

        Drone.Hovering(10)

        Drone.Basic_action(Drone.landing)

Môžete takisto využiť rádiovú komunikáciu medzi dvoma mikropočítačmi Micro:bit. Jeden bude riadiť dron a druhý v rozširujúcom module Joystick:bit poslúži na ovládanie. Na wiki stránke výrobcu je príklad programového kódu pre obidva Micro:bity.

Pokročilejší používatelia môžu doinštalovať knižnicu na bluetoothovú komunikáciu a ovládať dron pomocou mobilnej aplikácie Micro:bit Blue. Základná knižnica Drone:bit, žiaľ, nie je kompatibilná s knižnicou Bluetooth, preto musíte použiť kompatibilnú knižnicu, napríklad pxt-Dronebit_v0.3.7_bluetoothallowed z GitHubu. Na rozdiel od robotického psa XGO riadiaca elektronika Drone:bit komunikáciu cez bluetooth nepodporuje.

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ť