Parkovací asistent

V této hodině navážema na předchozí aktivity s ultrazvukovým senzorem. Využijeme tento senzor k vyhledání dostatečného místa na parkování a následnému zajetí do řady vozidel.

Jak bude parkovací asistent fungovat?

Programování parkovacího asistenta se bude skládat z několika dílčích kroků. Nejprve musí robot dokázat nalézt volné místo na zaparkování. Následně si ověřit, jestli je místo dostatečně velké a nakonec robota naučíme zjistit, zda na místě pro zaparkování není nějaká překážka.

K řešení úlohy využijte ultrazvukový senzor umístěný na levé straně robota.

Nalezení začátku volného místa

Otevřete programovací prostředí EV3 a řešte jednotlivé úkoly uvedené v záložkách níže vedoucích k nalezení začátku volného parkovacího místa.

Vytvořte program, díky kterému robot detekuje začátek volného místa pro zaparkování. Po nalezení místa zastaví a oznámí to dlouhým výrazným tónem.

 Jak robot pozná, že nalezl volní místo na zaparkování? Celou jízdu musí měřit vzdálenost pomocí ultrazvukového senzoru. Jak se jeho měření bude lišit, když pojede podél řady zaparkovaných automobilů a když nalezne volné místo? Už víte jak úlohu vyřešit?

Může být tento program správným řešení aktivity? Pokud ne, proč?

Tvorba vlastního bloku

Program, který vytváříme, bude ve výsledku poměrně rozsáhlý. Pro jeho zpřehlednění si můžeme vytvořit vlastní bloky. Stačí si označit všechny bloky, které do něj chcete zahrnout a v horním menu vybrat položku "Tools" a následně "My Block Builder".

V okně, které se nám otevře si následně zvolíme název bloku, jeho volitelný popis a ikonku, která se na bloku bude zobrazovat. Vytvořený blok se nám následně přiřadí do poslední záložky programových bloků s názvem "My Blocks".

 Vyzkoušejte si: Vytvořte si z programu pro detekci začátku volného parkovacího místa vlastní blok. Poté ho vložte na plochu programovacího prostředí a program spusťte. Našli jste nějaký rozdíl?

Měření potřebné vzdálenosti

Druhým krokem vytvoření programu je nalezení dostatečně velkého místa na zaparkování. Robot už sice umí nalézt začátek volného parkovacího místa, ale neví, jestli je místo dostatečně velké.

Vytvořte program, pomocí kterého robot změří, zda je místo pro zaparkování dostatečně velké a pokud ano, tak do něj zajede, pokud ne, vydá chybové hlášení nebo tón.

 Jak nejjednoduším způsobem zjistit, jestli je prostor pro zaparkování dostatečné velký? Nejdříve musíte vědět, jak dlouhý náš robot je. Jakmile detekuje začátek parkovacího místa, popojede o vzdálenost své délky a znovu ověří, jestli je zde volno.

Mohl by takovýto parkovací asistent fungovat v reálném životě? Jaké by u něj mohly nastat problémy? Prodiskutujte ve skupině a své postřehy si zapište.

Rozšiřující aktivita pro rychlé žáky

Možná jste během diskuse došli k tomu, že předchozí řešení by nebylo příliš správné. Může totiž dojít k tomu, že na místě, které robot vyhodnotil jako volné bude zaparkovaná motorka, umístěná popelnice nebo sloup veřejného osvětlení. V aktivitě níže se tedy naučíme, jak tento problém vyřešit.

Měření s překážkou

Otevřete programovací prostředí EV3 a řešte jednotlivé úkoly uvedené v záložkách níže.

Analyzujte následující program a zjistěte, k čemu slouží. Upozorníme vás, že pro vás bude velmi důležitý k řešení závěrečné funkce robota. Až zjistíte, co tento program dělá, použitejte předchozí získané znalosti a zkuste úlohu vyřešit.

Pokud si nevíte rady, pomůcku najdete v záložce "Nápověda".

Tip: Nový blok, který v programu vidíte, se jmenuje "Motor Rotation" a najdete ho ve žluté záložce. Slouží k měření nebo porovnávání počtu otáček motoru ve stupních nebo otáčkách.

Na závěr si shrneme všechny informace. Ke správnému vyřešení aktivity musíte vyřešit několik dílčích kroků:

1) Nalézt volné místo pro parkování.
2) Změřit, zda je místo pro parkování dostatečně velké.
3) Ověřit, zda na parkovacím místě není nějaká překážka.
4) Úspěšně zaparkovat.