7. Automatická závora

V minulé hodině jsme vytvořili závoru, která se po stisku tlačítka umí otevřít a po určité době zase sama zavřít. Co by se ale stalo, kdyby auto muselo pod závorou náhle zastavit? Neměl by na to její tvůrce myslet? 

V dnešní hodině si proto závoru vylepšíme o detekci překážek, aby byla ještě „chytřejší“.

7.1 Ultrazvukový senzor − „oči robota“

K detekci překážky, tedy auta, využijeme ultrazvukový senzor. Ten funguje jako „robotovy oči“ a pomáhá mu detekovat objekty nacházející se před senzorem. 

Senzor, stejně jako netopýr, detekuje objekty pomocí ultrazvuku, tedy zvuku o vysoké frekvenci, který neslyšíme. Zvuková vlna pohybující se rychlostí zvuku, se od překážky odrazí zpět. Senzor ji zachytí a poté vyhodnotí dobu, mezi vysláním a přijetím. Díky tomu zjistí, v jaké vzdálenosti se předmět nachází.

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

Než začneme k řízení závory používat ultrazvukový senzor, musíme se s ním seznámit a naučit pracovat. Jen tak zjistíme, jaké hodnoty nám vrací a jaké má limity.

⚙️ Senzor připojte k jednotce. Pamatujete si ještě, ke kterým portům senzory připojujeme?

❓ Kde se blok ultrazvukového senzoru v programovacím prostředí nachází?

❓ Kde se blok ultrazvukového senzoru v programovacím prostředí nachází?

🕵️ ŘEŠENÍ: Blok pro ovládání ultrazvukového senzoru naleznete ve žluté paletě programových bloků (jsou zde všechna vstupní zařízení). Blok se nazývá Ultrasonic Sensor a umožňuje měřit nebo porovnávat naměřenou vzdálenost.

Otestujte následující program, který by měl měřit vzdálenost senzoru od libovolného předmětu.

Měňte vzdálenost senzoru od překážek od malých po velké a sledujte, jaké hodnoty se zobrazují.


💡 TIP:
Na obrázku vidíte žluté propojení programového bloku ultrazvukového senzoru a bloku displeje. Toho dosáhnete tak, že kliknete na výstupní port ultrazvuku, držíte tlačítko myši a přetažením ho propojíte se vstupním portem displeje. Díky tomuto spojeníje hodnota naměřená ultrazvukovým senzorem odeslána na displej řídicí jednotky.

Hledejte problém
❓ Přijdete na to, proč senzor nastavený dle výše uvedeného obrázku měří poněkud zvláštně? 

🆘 Nápověda


Pozorně se podívejte na naše nastavení ultrazvukového senzoru.
Senzor umí zjištěné hodnoty převádět do různých jednotek.

⚙️ 7.3 Umístění senzoru

Na které místo je nejlepší umístit senzor, aby plnil svou funkci a brána fungovala bezproblémově? 

❗ Ve skupince možné varianty prodiskutujte a senzor umístěte (případně posuňte).

💡 TIP: Jako testovací vozítko můžete využít zbytek našeho robota. Robota zbytečně nerozebírejte, budeme ho ještě potřebovat.

7.4 Doplň program – vylepšete závoru

Bezpečnostní funkce
Závora se již umí otevírat a uzavírat. Rozšiřte program o bezpečnostní funkci, která nedovolí sklopení závory v době, kdy se pod ní nachází automobil.

💡 TIP: Všimněte si, že blok v pravém dolním rohu programu lze přepnout do režimu Port View, režimu tzv. zobrazení portů. V něm se zobrazuje informace o připojených senzorech a motorech včetně aktuálně naměřených hodnot. Ty lze použít pro tvorbu i ladění programu. 

Tuto nápovědu čtěte pouze tehdy, nevíte-li si vůbec rady s předchozím úkolem.

Programování je z určitého pohledu „představování si posloupnosti budoucích kroků“, tedy toho, co se bude dít. Zkuste si navzájem říct, co má závora dělat a na co reaguje?

Možné řešení: Po stisknutí tlačítka se závora otevře, chvíli počká, aby tam mohlo vjet auto. Ultrazvukový senzor opakovaně kontroluje prostor závory a dovolí zavření závory, až když tam není auto (tedy odjelo). Pak se závora se může uzavřít (jít dolů). Reaguje na tlačítko a vzdálenost auta od senzoru.

Hledáme dílčí kroky: Co tedy bude závora postupně vykonávat?

1. Čeká, až stiskneme tlačítko.

    [co dělá: čeká; na co: stisk tlačítka]

2. Otevírá závoru.
    [co dělá: otevírá závoru; čím: motorem]

3. Čeká na vjezd vozidla.

    [co dělá: čeká; na co: vjezd vozidla; jak to zjistí: ultrazvukovým senzorem (nebo to zjišťovat nemusí a počká jen určitou dobu)]

4. Opakovaně kontroluje.

    [co dělá: ...; co: ...; pomocí čeho: ...; kolikrát: ...; do kdy: ...] 

atd.
    

🙋🏻 7.5 Úkol pro rychlé žáky

Máte již vše hotové? Upravte chování závory tak, aby se v případě, že auto po 4 vteřinách neopustí prostor závory, ozval varovný tón a jednotka začala blikat.

Závoru můžete doplnit i o další autentické zvuky (aktivita v předchozí kapitole).

7.6 Mýtná brána

Nyní z naší závory vytvoříme mýtnou bránu. Závora bude pouštět pouze vozidla se správnou barvou karty. Dle typu vozidla jim bude účtován poplatek. K této činnosti budete potřebovat barevný senzor. Nejprve se s ním seznámíme.

7.7 Barevný senzor

Barevný senzor bude sloužit k rozpoznávání barvy karty. Měl by být proto umístěn před závorou na nějakém vhodném místě.

⚙️Připojte senzor pro rozpoznávání barvy na vhodné místo.

7.8 Testujeme barevný senzor

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

Pomocí bloku Port View (viz obrázek) prozkoumejte, jaké návratové hodnoty vrací senzor barvy přepnutý do režimu rozpoznávání barev. 


Následující barvy mají hodnoty:
 Červená:
 Zelená:
 Modrá:
 Černá:
 Bílá:

💡 TIP: Blok pro ovládání barevného senzoru naleznete ve žluté paletě programových bloků. Nazývá se Color Sensor

7.9 Mýtná brána

Nyní si z naší závory vytvoříme mýtnou bránu. Ta bude dle typu vozidla (rozlišeno kartou) měnit účtované částky. 

Závora se bude nově otevírat automaticky, a to po přiložení karty správné barvy. 
 
 Červená karta = osobní automobil
 Modrá karta = nákladní automobil
 Zelená karta = autobus

⚙️ K závoře přidejte barevný senzor. Ten bude sloužit k rozpoznání barev mýtných karet.
⚙️ Karty si vyrobte spojením barvených kostiček délky 3 pomocí dlouhých modrých spojek (čepů).

Rozšiřte program o účtování poplatků za průjezd.

 Červená karta = osobní automobil − na displeji zobrazte nápis AUTO a částku 50 Kč.
 Modrá karta = nákladní automobil − na displeji zobrazte nápis TIR a částku 200 Kč.
 Zelená karta = autobus − na displeji zobrazte nápis BUS a částku 150 Kč.

Částka bude na samostatném řádku pod názvem automobilu. 

Protože jsou nákladní automobily delší, přizpůsobte jim závoru (např. prodlužte dobu možného vjezdu, upravte upozornění na blokování závory apod.).