Automatická závora

V minulé hodině jsem vytvořili závoru, která se po stisku tlačítka uměla otevřít a po určité době zase sama zavřít. Jenže, co by se stalo, kdyby auto muselo náhle pod závorou 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í zvuku o vysoké frekvenci, ultrazvuku, 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 ultrazvukový senzor používat k řízení závory, musíme se s ním seznámit a naučit pracovat. Jen tak víme, jaké hodnoty nám vrací a jaké má limity.

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

❓ 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 jmenuje „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í?


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

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

⚙️ 7.3 Umístění senzoru

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

❗ Ve skupince varianty prodiskutujte a senzor přidělejte (případně posuňte).

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

7.4 Doplň program - vylepši závoru

Bezpečnostní fukce
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 tzv. režimu zobrazení portů „Port view“. V něm pak zobrazuje informace o připojeným 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 až pouze tehdy, nevíte-li si skutečně s předchozím úkolem rady.

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 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 (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 závora bude 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: ...] 
...

🙋🏻 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í si z naší závory udělá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 tedy být umístěn na vhodném místě před závorou.

⚙️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) prozkoumej, 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ů. Jmenuje se „Color Sensor“. 

7.9 Mýtná brána

Nyní si z naší závory udělá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 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řidej barevný senzor. Ten bude sloužit k rozpoznání barev mýtných karet.
⚙️ Karty si vyrob spojením barvených kostiček délky 3 pomocí modrých dlouhých spojek (čepů).

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

 Červená karta = osobní automobil - na displeji zobraz nápis AUTO a částku 50 Kč.
 Modrá karta = nákladní automobil - na displeji zobraz nápis TIR a částku 200 Kč.
 Zelená karta = autobus - na displeji zobraz 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ůsob jim závoru (např. prodluž dobu možného vjezdu, upozornění na blokování závory, apod.).