Úloha 5 Ultrazvukový senzor, tlačítko a motor řízený mikropočítačem Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013
Zadání úlohy Sestavit zařízení, které otevře dveře (pootočí motorem) po stisknutí tlačítka. V případě průchodu dveřmi, se na výstup mikropočítače NXT vyšle signál pro pootočení motoru zpět. Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Úlohu lze použít např. jako hlídač uzavřených jednosměrných vchodů v oblastech zabezpečení objektů.
Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás Navrhnout algoritmus pro uvedenou úlohu - Sestavit zařízení z komponent podle zadání (mikropočítač NXT, ultrazvukový senzor, tlačítko, motor) - Připojit senzory a motor k mikropočítači - Naprogramovat mikropočítač NXT - Otestovat systém, zapsat hodnoty do tabulky - Provést změny nastavení – konfigurace Postup
Vstupní zařízení: Ultrazvukový senzor Tlačítko Výstupní zařízení Motor Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Použité díly Obrázek 1 - vstupní a výstupní prvky, Autor: Štěpán Janás
Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Algoritmus Ultrazvukový senzor Pootočení motorem (Otevřít dveře) Start Detekce pohybu Pootočení motorem (Zavřít dveře) Tlačítko Detekce stisknutí tlačítka Obrázek 2 Diagram, Autor: Štěpán Janás
Spustíme vývojové prostředí LEGO MINDSTORMS Education NXT Programming V záložce File vybereme možnost New a vytvoříme nový projekt Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Postup realizace - Program
V pravé části programu se nachází nástrojová lišta s programovými komponenty Nástrojová lišta obsahuje tři záložky, zvolíme prostřední – Kompletní zobrazení Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Postup realizace - Program
Flow Loop Smyčka je část kódu, který se opakuje, pokud je splněna podmínka Smyčka se nachází v záložce Flow pod tlačítkem s názvem Loop Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Seznámení s prvkem Smyčka
Pokud klikneme levým tlačítkem myši na programovatelný prvek vyvoláme nabídku vlastností Control – Nastaví podmínku, kdy se má smyčka opakovat Forever – Běží do nekonečna Sensor – Běží pokud je na určitém sensoru daná hodnota Time – Běží po určitý čas Count – Běží po určitý počet opakování Logic – Běží pokud má proměná danou hodnotu Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Seznámení s prvkem Vlastnosti smyčky
Flow Loop Protože chceme abychom četli data z senzoru opakovaně použijeme smyčku Z panelu nástrojů vložíme komponent Smyčka do vlákna programu Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Postup realizace - Program
FlowWait Wait je prvek, který pozastaví provádění kódu dokud nenastane podmínka Prvek se nachází v záložce Flow pod tlačítkem s názvem Wait Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Seznámení s prvkem Wait
Pokud klikneme levým tlačítkem myši na programovatelný prvek vyvoláme nabídku vlastností Control – Nastaví mód prvku, čeká na senzor nebo na čas Sensor – Nastaví senzor, na který chceme čekat Každý senzor má vlastní individuální nastavení Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Seznámení s prvkem Vlastnosti Wait
Protože chceme čekat, dokud se před senzor něco nepřiblíží použijeme prvek Wait Z panelu nástrojů vložíme komponent Wait do vlákna programu, dovnitř smyčky Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Postup realizace - Program FlowWait
Klikneme na něj levým tlačítkem a nastavíme: 1.Nastavíme Control na Sensor 2.Zvolíme druh senzoru Sensor – Touch Sensor 3.Nastavíme port na kterém je připojený senzor 4.Nastavíme Action na Pressed (při stisku) Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Postup realizace - Program
Action Motor Motor je prvek, který umožnuje ovládat motory Použijeme prvek Motor pro otevření dveří Prvek se nachází v záložce Action pod tlačítkem s názvem Motor Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Seznámení s prvkem Motor
Pokud klikneme levým tlačítkem myši na programovatelný prvek vyvoláme nabídku vlastností Port – Nastaví port na kterém se nachází motor Direction – Nastaví směr motoru Action – Nastaví mód motoru (konstantní rychlost, zrychlování, zpomalování) Power – Nastaví rychlost Duration – Nastaví dobu otáčení (lze nastavit v vteřinách, stupních či počtu otáček) Next Action – Nastaví chování při dokončení otáčení (zastavit, setrvačnost) Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Seznámení s prvkem Vlastnosti Motor
Pro otáčení motorem použijeme prvek Motor Z panelu nástrojů vložíme komponent Motor do vlákna programu, dovnitř smyčky, za prvek Wait Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Postup realizace - Program Action Motor
Klikneme na něj levým tlačítkem a nastavíme: 1.Nastavíme port, na kterém se nachází senzor 2.Nastavíme směr motoru (dopředu/šipka nahoru) 3.Nastavíme Action na Constant (znamená že otáčení bude mít konstantní rychlost) 4.Nastavíme rychlost motoru promocí vlastnosti Power (75) 5.Nastavíme dobu trvání pomocí vlastnosti Duration (180 Degrees – otočení o 180°) 6.Zaškrtneme možnost Wait for Completion (Čekat na dokončení) 7.Nastavíme Next Action na Brake (zakáže setrvačnost, zastaví motor) Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Postup realizace - Program
Budeme čekat, dokud osoba neprojde dveřmi. Vložíme prvek Wait Z panelu nástrojů vložíme komponent Wait do vlákna programu, dovnitř smyčky, za prvek Motor Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Postup realizace - Program FlowWait
Klikneme na něj levým tlačítkem a nastavíme: 1.Nastavíme Control na Sensor 2.Zvolíme druh senzoru Sensor – Ultrasonic Sensor 3.Nastavíme port, na kterém se nachází senzor 4.Nastavíme dokud chceme čekat = pokud je Distance menší jak 20 5.Nastavíme Show na Centimeters, hodnotu kontrolujeme v cm Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Postup realizace - Program
Jakmile někdo projde dveřmi (spustí ultrasonický senzor) zavřeme dveře pomocí prvku Motor Z panelu nástrojů vložíme komponent Motor do vlákna programu, dovnitř smyčky, za prvek Wait Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Postup realizace - Program Action Motor
Klikneme na něj levým tlačítkem a nastavíme: 1.Nastavíme prvek stejně jako první Motor 2.Změníme Direction na opačný směr (dozadu/šipka dolů) Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Postup realizace - Program
Program je dokončen, už ho stačí jen nahrát tlačítkem PLAY Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Postup realizace - Program
Při zapnutí programu se motor pootočí ve směru zavřití dveří, senzor tlačítkačeka na zmáčknutí Při zmáčknutí se motor otočí ve směru otevření dveří a aktivuje se ultrazvuk, ten měří průchod za dveřmi a předává data do mikropočítače. Při detekci pohybu Mikropočítač převede hodnoty ze senzoru do potřebného tvaru a program se opakuje. Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Popis výstupu Obrázek 5 postup realizace, Manuál LEGO
Provedeme měření ve svém okolí (vstup do třídy, prostor v průchodu mezi lavicemi atd.) Zjistíme čas otevření a zavření „dveří“ Změříme max. šířku chodby pro zavírání dveří Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Popis výstupu Obrázek 6 Autor: Štěpán Janás
Děkuji za pozornost Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Po provedení úlohy ukliďte pracoviště a zkontrolujte, zda máte všechny zapůjčené součástky.
Použité zdroje a literatura Projekt CZ.1.07/1.1.16/ Bc. Štěpán Janás 2013 Všechna díla jsou z dílny autora.