Robotický tank – Ultrazvuk

Rozšiř svůj Robotický tank o modul Ultrazvuk! Připoj ho ke své stávající stavebnici a nauč se, jak pomocí ultrazvukového senzoru rozpoznávat překážky a automaticky se jim vyhýbat – ideální doplněk pro rozvoj dovedností v robotice, programování a algoritmickém myšlení.

Popis

Modul Ultrazvuk je praktické rozšíření pro robotický tank, které umožňuje tanku vnímat překážky a reagovat na své okolí. Pomocí ultrazvukového senzoru dokáže vozítko měřit vzdálenost před sebou a zastavit, zpomalit nebo se překážce vyhnout podle naprogramovaného chování. Senzor se připojuje přímo k rozšiřující desce a snadno se začlení do stávající konstrukce tanku.

Toto rozšíření výrazně rozšiřuje možnosti tanku a otevírá dveře k pokročilejším projektům, jako jsou autonomní jízdy, bezpečnostní systémy nebo interaktivní výukové scénáře. Modul je plně kompatibilní s prostředím MakeCode a lze jej ovládat i v jazycích Python nebo JavaScript. Je ideální pro žáky, kteří už mají základy programování, a chtějí se posunout k reálným algoritmům řízení robotů a práci se senzory.

Zapojení US-016

Ultrazvukový senzor je napájen z rozšiřující desky pomocí pinů 3V3 a GND. Dále je třeba připojit výstup z ultrazvukového senzoru, tedy pin Out na vstupní analogový pin micro:bitu. V tomto případě jsme zvolili pin P2.

ultrazvuk2_mb1
ultrazvuk2_mb3

Zapojení (TRIG a ECHO)

Ultrazvukový senzor je napájen z rozšiřující desky pomocí pinů 3V3 a GND. Dále je třeba připojit pin pro vysílač (Trig) a přijímač (Echo). V následujících programech využíváme piny P14 – Echo a P15 – Trig.

ultrazvuk_mb1
ultrazvuk_mb2
ultrazvuk_mb3

Programy

Programy se opět liší podle typu ultrazvukového senzoru. Dále se dělí podle použité rozšiřující desky. Deska MB1 je vybavena vestavěným LED páskem, který skvěle slouží k indikaci vzdálenosti, kterou snímač měří.

V principu jsou však programy stejné, liší se pouze v použití knihovny Neopixel pro LED pásek.

Senzor US-016

Rozšiřující deska MB1

Základní program

Tento program využívá LED pásek, kterým disponuje naše rozšiřující deska MB1. Pokud tento program použijete na jinou desku, fungovat vám bude taky, ale bude zbytečně posílat signály na prázdný pin P16. Proto doporučujeme nahrát kód níže.

Nejprve inicializujeme LED pásek pomocí knihovny Neopixel. Vestavěný pásek má 8 LED a je připojen na pin P16 (proto tento pin není na desce MB1 vyveden).

Ve smyčce pak dochází ke čtení vzdálenosti. Pokud je vzdálenost menší než námi zvolený limit 10 cm, tank se zastaví. Barvu LED pásku nastavíme na červenou. Pokud je tato podmínka nepravdivá, tank se rozjede zvolenou rychlostí a LED pásek nastavíme na zelenou barvu. Nakonec pásek rozsvítíme.

Pokročilý program

Tento program již pracuje s proměnnou rychlostí. Na základě naměřené vzdálenosti nastaví do proměnné “speed” rychlost tanku. Stejně tak nastavuje počet rozsvícených LED.

Rozšiřující deska MB2 a MB3

Pokud máte tank s rozšiřující deskou MB2 nebo MB3, předchozí programy budou fungovat úplně stejně. Rozdílem je to, že bude posílat signál na prázdný pin P16, na který je u desky MB1 zapojen LED pásek. Následující kódy jsou tedy zcela stejné, liší se pouze tím, že neobsahují ovládání LED pásku pomocí knihovny Neopixel.

Základní program

Program ve smyčce měří vzdálenost objektu od ultrazvukového senzoru. Pokud je tato vzdálenost větší než 10 cm, tank jede kupředu. V opačném případě zastaví.

Pokročilý program

Tento program již pracuje s proměnnou rychlostí. Na základě naměřené vzdálenosti nastaví do proměnné “speed” rychlost tanku. Změnou hodnoty konstanty DIST_MIN nebo DIST_MAX si můžete upravovat rozsah měřených vzdáleností.

Běžné senzory (TRIG a ECHO)

Rozšiřující deska MB1

Základní program

Tento program využívá LED pásek, kterým disponuje naše rozšiřující deska MB1. Pokud tento program použijete na jinou desku, fungovat vám bude taky, ale bude zbytečně posílat signály na prázdný pin P16. Proto doporučujeme nahrát kód níže.

Nejprve inicializujeme LED pásek pomocí knihovny Neopixel. Vestavěný pásek má 8 LED a je připojen na pin P16 (proto tento pin není na desce MB1 vyveden).

Ve smyčce pak dochází ke čtení vzdálenosti. Pokud je vzdálenost menší než námi zvolený limit 10 cm, tank se zastaví. Barvu LED pásku nastavíme na červenou. Pokud je tato podmínka nepravdivá, tank se rozjede zvolenou rychlostí a LED pásek nastavíme na zelenou barvu. Nakonec pásek rozsvítíme.

Pokročilý program

Tento program již pracuje s proměnnou rychlostí. Na základě naměřené vzdálenosti nastaví do proměnné “speed” rychlost tanku. Stejně tak nastavuje počet rozsvícených LED.

Rozšiřující deska MB2 a MB3

Pokud máte tank s rozšiřující deskou MB2 nebo MB3, předchozí programy budou fungovat úplně stejně. Rozdílem je to, že bude posílat signál na prázdný pin P16, na který je u desky MB1 zapojen LED pásek. Následující kódy jsou tedy zcela stejné, liší se pouze tím, že neobsahují ovládání LED pásku pomocí knihovny Neopixel.

Základní program

Stejná funkce jako u programu k desce MB1, pouze bez LED.

Pokročilý program

Stejná funkce jako u programu k desce MB1, pouze bez LED.

Úkoly

Úloha 1: Poslušný tank

Udělejte z robotického tanku hravé vozítko. Obraťte logiku zastavení a rozpohybování tak, že pokud před sebou detekuje překážku, rozjede se přímo za ní. Toho pak můžete využít pro ovládání tanku rukou. Jakmile před sebou zaznamená vaši ruku, pojede za ní na váš povel. Jakmile ruku zvednete, tank poslušně zastaví.

Úloha 2: Bezpečný tank

Vytvořte program, který pomůže tanku vyhnout se překážce. Jakmile se k nějaké přiblíží, otočí se do strany a znovu se rozjede. Nechejte tank otáčet se dostatečně dlouho, aby se překážce skutečně vyhnul.

Úloha 3: Robotický vysavač

Jistě jste již viděli, jak funguje robotický vysavač. Jakmile narazí na překážku, zastaví se, o kousek se vrátí a vybere nový směr, kterým se vydá až dokud opět nenarazí na překážku. Přesně takovou funkci si vyzkoušejte s vaším tankem.

Zkuste využít knihovnu Matematika, konkrétně bloček náhodného čísla, který bude rozhodovat o kolik se tank otočí při volbě nového směru. Váš robotický tank tím získá svůj vlastní rozum!

Galerie