Adaptivní tempomat

V minulé aktivitě jsme robota naučili jezdit po čáře. Pokud by ale takový robot fungoval například jako dopravník materiálu ve výrobě, jedna podstatná věc by mu chyběla. Nedokázal by zjistit, jestli mu v cestě nestojí překážka. V následujících aktivitách to robota naučíme.

Ultrazvukový senzor
"oči robota"

K detekci překážky využijeme ultrazvukový senzor. Ten funguje jako "oči robota", protože mu pomáhá detekovat objekty v jeho okolí.

TIP: Jedná se o vstupní zařízení, takže se připojuje k portů 1 - 4.

Učíme se používat ultrazvukový senzor

Než začneme utlrazvukový senzor používat k řízení robota, musíme se s ním seznámit a naučit pracovat.

TIP: Blok pro ovládání ultrazvukového senzoru naleznete ve žluté paletě programových bloků. Jmenuje se "Ultrasonic Sensor" a umožňuje měřit nebo porovnávat naměřenou vzdálenost.

  Fungování ultrazvukového senzoru můžeme přirovnat k orientaci netopýra v prostoru. Senzor vyšle ultrazvukový signál a ten se odrazí od překážky umístěné před senzorem. Senzor poté vyhodnotí dobu, která uplynula mezi vysláním signálu a jeho přijetím a díky tomu zjistí, v jaké vzdálenosti předmět je.

Hledejte problém!
Otestujte následující program, který by měl měřit vzdálenost senzoru od libovolného předmětu. Jakou vzdálenost jste naměřili? Přijdete na to, proč senzor měří poněkud zvláštně?

Vytvořte funkční digitální měřič vzdálenosti, pomocí kterého změříte výšku vašeho spolužáka. Ta se následně vypíše na displej ve tvaru XY cm (XY = výška spolužáka).

Zastavení před překážkou

Už víte, jak ultrazvukový senzor funguje? Naučíme se tedy, jak ho použít k ovládání robota. Bude sloužit jako bezpečnostní pojistka, díky které robot zastaví, pokud se před ním objeví překážka a předejde tak srážce.


Bezpečnostní pojistka

Otevřete programovací prostředí EV3 a řešte jednotlivé úkoly uvedené v záložkách níže, které vedou k vytvoření bezpečnostní pojistky k zastavení robota před překážkou.

TIP: K řešení úlohy využijte blok podmíněného vykonávání "Switch", které je možné řídit vzdáleností naměřenou ultrazvukovým senzorem.

 Vytvořte program, díky kterému se bude robot neustále pohybovat vpřed a ve chvíli kdy narazí na překážku, zastaví 15 cm před ní.

Reakce na pohyblivou překážku

 Bezpečnostní pojistku jsme vytvořili. Vezměte si libovolnou pohyblivou překážku (postačí i vaše ruka), spusťte robota a ve chvíli kdy zastaví, se k němu zkuste rukou přiblížit. Stalo se něco?

Stejná situace může nastat v koloně, kdy auto před námi začne nenadále couvat. Musíme být schopni na tuto situaci zareagovat.


Adaptivní tempomat

V této aktivitě naučíme robota reagovat na pohyblivou překážku. Ať se překážku bude pohybovat směrem k němu či od něj, bude si od ní stále udržovat stejnou vzdálenost.

 Vytvořte program, pomocí kterého si bude robot udržovat od překážky odstup 20 cm. Pokud se překážka bude vzdalovat, dojede ji, pokud se bude přibližovat, začne couvat.

Tip: K řešení vám pomůže program, pro zastavení robota před překážkou. Pokud si nyní ihned nevíte s řešením rady, pokračujte na další záložku.

TIP: Rozsáhlejší úlohy si je pro snadnější řešení dobré rozdělit na dílčí, jednodušší kroky.

 Na obrázku níže vidíte torzo výsledného programu. Vaším úkolem je doplnit chybějící části tak, aby program fungoval v souladu se zadáním.

Základem konstrukce programu je podmínka, která je řízena vzdáleností naměřenou senzorem (nezapomeňte zařídit v souladu se zadáním).

Na doplnění chybějících tří částí se zaměřují aktivity v dalších záložkách.

Uložení hodnoty do proměnné
 Uložte vzdálenost naměřenou senzorem do proměnné, kterou nazvěte "vzdalenost" a tyto bloky umístěte na příslušné místo dle obrázku v sekci "Návod".

Pohyb vpřed
 Zařiďte, aby se v případě, že bude naměřená hodnota větší než 20 cm, robot pohyboval neustále vpřed.

Přepočet vzdálenosti na rychlost
 Hodnotu uloženou v proměnné "vzdalenost" použijte k přepočtu na potřebnou rychlost robota a vhodně propojte připravené bloky.

Jakou hodnotu musíte od naměřené vzdálenosti odečíst, aby robot zastavil ve vzdálenosti 20 cm před překážkou?

Dokončení: Nyní byste měli mít celý úkol dokončený. Otestujte ho tedy. Funguje vše správně?

Rozšíření úlohy

 Určitě jste si všimli, že při dobržďování před překážkou a při couvání dělá robot trhavé pohyby. Navíc nedokáže reagovat na rychlejší přibližování překážky a couvá stále stejnou rychlostí. Přidáním jediného bloku můžete jeho pohyb udělat přesnější a plynulejší.

 Zařiďte, aby robot při detekci překážky postupně zpomaloval a ve vzdálenosti 20 cm před ní úplně zastavil. Pokud se k němu začne překážka přibližovat, bude couvání také zrychlovat. Ve chvíli, kdy se překážka přiblíží až těsně k němu, bude couvat rychlostí 100 %.