LEGO Mindstorms Education NXT Projekt Lego ve výuce informatiky a fyziky Robotika 1 Mgr. Radoslav Jirásek RNDr. Jitka Jirásková Mgr. Eva Riessová
Obsah O publikaci...4 1. Animace na displeji...5 2. Jízda tam a zpět v přímém směru...8 3. Jízda po trojúhelníkové dráze...10 4. Ultrazvukový senzor 1...11 5. Ultrazvukový senzor 2...12 6. Zvukový senzor...13 7. Zobrazení hodnoty světelného senzoru...15 8. Světelný senzor 2...17 9. Průzkumník...18 10. Jízda po čáře...19 11. Tlakový senzor...20 12. Rotační senzor...21 13. Stopky...22 14. Blikač...24 15. Golfista...25 Řešení: Animace na displeji...26 Řešení: Jízda tam a zpět v přímém směru...27 Řešení: Jízda po trojúhelníkové dráze...28 Řešení: Ultrazvukový senzor 1...29 Řešení: Ultrazvukový senzor 2...30 Řešení: Zvukový senzor...31 Řešení: Zobrazení hodnoty světelného senzoru...32 Řešení: Světelný senzor 2...33 Řešení: Průzkumník...34 Řešení: Jízda po čáře...35 Řešení: Tlakový senzor...36 Řešení: Rotační senzor 1 (1.část)...37 Řešení: Rotační senzor 1 (2.část)...38 Řešení: Stopky...39 Řešení: Blikač...40 Řešení: Golfista...41 Použitý hardware: Robot 1...42
O publikaci Tato sbírka řešených úloh z robotiky předpokládá základní znalosti práce v prostředí programu LEGO MINSTORMS Education NXT Programming a používá ve svých úlohách NXT pojízdný model Robot 1. Začátečníkům doporučujeme se seznámit se základní příručkou Metodika NXT. V první části obsahuje zadání úloh a popis programových prvků vhodných k jejich řešení. Ve druhé části jsou pak uvedena řešení. Detailní nastavení všech parametrů programů jsou pak k dispozici na přiloženém CD s programy. 4
1.Animace na displeji Úkol: Sestavte program animace na displeji Robota 1. Animace se bude skládat ze 4 5 snímků, trvajících vždy 1 sekundu. Zobrazení každého snímku bude doprovázeno nějakým zvukem. Nové programové prvky: Displej, Zvuk, Čekej. Ikona příkazu Displej(Display) může dle nastavení: Zobrazit obrázek ze souboru Smile 01 Zobrazit text Ahoj Zobrazit bod, přímku nebo kružnici. 5
Vymazání displeje. Ikona příkazu Zvuk (Sound) může dle nastavení: Přehrávat tón nebo zvuk ze souboru. tón z klávesnice zvukový soubor název souboru opakované hraní program čeká na přehrátí zvuku 6
Ikona příkazu Čekej (Wait) může dle nastavení: Čekat až uplyne nastavený čas nebo čeká až se změní stav nějakého senzoru. 7
2. Jízda tam a zpět v přímém směru Úkol: Sestavte program, podle kterého Robot 1 pojede 50 cm přímo vpřed, pak bude couvat zpět a ještě jednou pojede vpřed. Na prvním úseku budou motory řízeny zadáním počtem otáček. Na druhém zadáním úhlu otočení motorů. Na třetím dobou jízdy. a) Počet otočení kola je dán vzorcem: kde n je počet otáček, s je dráha pohybu, o je obvod kola, r je poloměr kola. b) Úhel otočení kola je dán vzorcem: kde φ je úhel otočení, n je počet otáček kola. c) Dobu jízdy při určitém výkonu motoru určete empiricky. Nový programový prvek: Pohybuj. Ikona příkazu Pohybuj (Move) může dle nastavení: motory se 1 x otočí Ovládat 1 3 motory současně. pro dva motory lze zadat směr zatáčení budou-li motory zastavovat budou-li motory pokračovat v pohybu, (zrychlení, zpomalení) 8
motory se otočí o zadaný úhel ve stupních motory budou v chodu 1 sekundu Otázky a úkoly: 1.Jakou vzdálenost ujede kolo na jedno otočení? 2.Který způsob zadání ujeté vzdálenosti je závislý na dalších podmínkách? 9
3. Jízda po trojúhelníkové dráze Úkol: Sestavte program, podle kterého Robot 1 objede jedenkrát okolo vyznačeného pravoúhlého trojúhelníku s odvěsnami 60 cm a 120 cm. Otázky a úkoly: 1.Jakou vzdálenost ujede na: a.1 otočení b.otočení o 1? 2.Vyjmenuj a popiš, jak mohou být poháněna kola modelu Robot 1 při zatáčení o 90. 10
4. Ultrazvukový senzor 1 Úkol: Sestavte program, podle kterého Robot 1 pojede proti stěně a 30 cm před ní zastaví. Přehraje zvuk, otočí se o 180 a jede 100 cm zpátky. Nový programový prvek: Čekej na ultrazvuk (Wait for ultrasonic). Ikona příkazu Čekej na ultrazvuk znamená: Čekej, až bude splněna podmínka, že vzdálenost ultrazvukového senzoru od překážky je < > = zadaný počet cm nebo palců. nastavení jednotek měření Otázky a úkoly: 1.Jakou nejkratší a nejdelší vzdálenost změří ultrazvukový senzor? 2.Vyzkoušejte, jaký nejužší objekt ve vzdálenosti 20 cm senzor ještě detekuje. 11
5. Ultrazvukový senzor 2 Úkol: Vytvořte program pro ultrazvukový senzor, který bude řídit Robota 1 takto: Pokud se k němu přiblížíte, bude couvat od vás, pokud se od něj budete vzdalovat, pojede kupředu k vám. Nové programové prvky: Smyčka a Větvení. Ikona příkazu Smyčka (Loop) může dle nastavení: Opakovat uvnitř vloženou část programu s nekonečným počtem opakování nebo s konečným počtem opakování. Ukončení smyčky je možné podmínit změnou stavu nějakého senzoru, uplynutím zadané doby, zadáním počtu opakování nebo dosažením logické hodnoty. Ikona příkazu Větvení (Switch) větví program například takto: Je-li vzdálenost větší než 50 cm, svítí žárovka A. Je-li vzdálenost větší nebo rovna 50 cm, svítí žárovka B. větve se zobrazí jako záložky 12
6. Zvukový senzor Úkol: Sestavte program, podle kterého pojede Robot 1 vpřed. Na tlesknutí robot náhodně změní směr jízdy. Tato činnost se opakuje čtyřikrát, potom robot zastaví. Nové programové prvky: Čekej na senzor zvuku, Generuj náhodné číslo. Ikona příkazu Čekej na senzor zvuku (Wait) znamená: Čekej, až bude zaznamenaná intenzita zvuku větší než 50% Ikona příkazu Generuj náhodné číslo (Random) znamená: Vygeneruj náhodné číslo mezi hodnotou A a hodnotou B. Přednastavený rozsah je 0 až 100, ale můžeme jej manuálně změnit na 0 až 32767. 13
Generátor náhodných čísel se používá následovně: výstup náhodného čísla vstupy A a B výstup náhodného čísla Otázky a úkoly: 1.Zjistěte, při jakém nastavení senzoru zvuku se již rušivě projevuje okolní ruch? 2.Zjistěte názvy dalších vstupů ikony Pohybuj (Move)? 14
7. Zobrazení hodnoty světelného senzoru Úkol: Sestavte program pro Robota 1, tak aby při přejezdu černých čar na bílém podkladu zobrazoval hodnoty světelného senzoru na displeji. Dráha pohybu bude asi 60 cm. K odměření dráhy použijte rotační senzor z motoru A. Nové programové prvky: Rotační senzor, Smyčka řízená rotačním senzorem, Světelný senzor, Převod čísla na text, Zobrazení textu na displeji. Ikona příkazu Rotační senzor (Rotation Sensor) může dle nastavení: Vyvolat nulování (reset) rotačního senzoru nebo čtení jeho hodnoty vynulování hodnoty senzoru čtení hodnoty senzoru nastavení jednotek Ikona příkazu Smyčka řízená rotačním senzorem (Loop) může být nastavena: směr rotace Na ukončení smyčky po dosažení zadaného počtu otáček v jednom či druhém směru. 15
Ikona příkazu Světelný senzor (Light Sensor) umožňuje: výstup číselné hodnoty Přečíst číselnou hodnotu světelného senzoru pro další zpracování. Ikona příkazu Převod čísla na text (Number to Text) umožňuje: vstup číselné hodnoty Převod číselné hodnoty na text pro další zpracování. výstup textové hodnoty Ikona příkazu Zobrazení textu na displeji (Displej) umožňuje: vstup textové hodnoty Zobrazení textu na displeji. Otázky a úkoly: 1.Vyzkoušejte změnit umístění vypisovaných hodnot na displeji? 2.Vyzkoušejte doplnit výpis znakem %?. 16
8. Světelný senzor 2 Úkol: Sestavte program takový, že Robot 1 přejíždí postupně přes 4 rovnoběžné černé nalepené proužky široké cca 1,5 cm a vzdálené od sebe 10 15 cm. Jakmile najede na proužek, zastaví a zahraje tón. Program končí po čtvrtém proužku.nejprve si zjistěte, jaké hodnoty měří světelný senzor na pásce a na podkladu. Nové programové prvky: Smyčka řízená světelným senzorem (Loop). Ikona příkazu Smyčka(Loop) může dle nastavení: Opakovat se tak dlouho, dokud hodnota světelného senzoru nebude menší než 50% nebo může být zadán počet opakování smyčky senzor si osvětluje prostor vstup textové hodnoty Počítadlo opakování (counter). Otázky a úkoly: 1.Zjistěte, jaký vliv má na funkčnost programu venkovní světlo? 2.Zjistěte, jaký vliv má na funkčnost programu nastavení rychlosti pohybu robota? 17
9. Průzkumník Úkol: Sestavte program takový, že Robot 1 se pohybuje uvnitř oblasti ohraničené černou páskou, jakmile robot najede na okraj pásky, zacouvá asi 10 cm a náhodně se otočí. Tato činnost se neustále opakuje. Otázky a úkoly: 1.Zjistěte, jaký vliv má na funkčnost programu nastavení rychlosti pohybu robota? 2.Vyzkoušejte otáčení jen o malý úhel 10 30 a s kratším couváním. Jak se změní pohyb robota? 18
10. Jízda po čáře Úkol: Sestavte program takový, že Robot 1 se pohybuje po čáře vyznačené černou páskou. Nejprve si zjistěte, jaké hodnoty měří světelný senzor na pásce a na podkladu. Nové programové prvky: Větvení podle světelného senzoru. Ikona příkazu Větvení podle světelného senzoru (Switch) větví program takto: zde vložený příkaz se vykoná, je-li světelnost větší než 50% zde vložený příkaz se vykoná, je-li světelnost menší než 50% Otázky a úkoly: 1.Zjistěte, jaký vliv má na funkčnost programu venkovní světlo? 2.Zjistěte, jaký vliv má na funkčnost programu nastavení rychlosti pohybu robota? 3.Vyzkoušejte k řešení úlohy prvek Jízda po čáře (Line Following Block). 19
11. Tlakový senzor Úkol: Sestavte program pro Robot 1 takový, že pojede vpřed k překážce až do vzdálenosti 30 cm, pak začne couvat tak dlouho, dokud se nesepne tlakový senzor na zádi robota. Tato činnost se opakuje. Nové programové prvky: Čekej na tlakový senzor (Wait). Ikona příkazu Čekej na tlakový senzor může dle nastavení: čeká na stisk tlačítka čeká na uvolnění tlačítka čeká na stisk a uvolnění tlačítka Otázky a úkoly: 1.Zjistěte, jestli by program fungoval i při nastavení tlakového senzoru na uvolnění? 2.Kde se v praxi využívají tlakové senzory? 20
12. Rotační senzor Úkol: Robot 1 jede přes příčné černé pásky (asi 1 cm široké). Poslední páska má trojnásobnou šířku. Šířka čáry určuje úhel otočení rotačního senzoru. Tato hodnota se zobrazuje na displeji. Za poslední, tedy širokou, páskou robot zastaví. Diagram programu: 21
13. Stopky Úkol: Sestavte program, který z Robota 1 udělá stopky k měření času. Bude mít funkci nulování, start a stop. Jako tlačítko použijte dotykový senzor. První zmáčknutí nulování, druhé start, třetí stop. Činnost se opakuje. Čas se bude ukazovat v setinách sekund. Nové programové prvky: Časovač, Proměnná. Ikona příkazu Časovač (Timer) může dle nastavení: Ikona příkazu Proměnná (Variable) může dle nastavení: Obsahovat logickou, číselnou nebo textovou hodnotu. Nejprve se v Menu proměnná definuje a potom se její jméno přiřadí ikoně. 22
Diagram programu: Otázky a úkoly: 1.Zkuste doplnit program o výpis ve tvaru 14,65 s? 23
14. Blikač Úkol: Sestavte program takový, že Robot 1 bude blikat se třemi žárovkami na portech ABC podle intenzity okolního světla. Za tmy budou blikat tři, v přítmí dvě, při rozjasnění jedna a za světla žádná. K připojení žárovek použijte kabelové adaptéry. K řešení použijte vnořená větvení programu. Nové programové prvky: Žárovka. Ikona příkazu Žárovka (Lamp) může dle nastavení: Rozsvítit nebo zhasnout žárovku. Nastavit lze intenzita svícení. Otázky a úkoly: 1.Vyzkoušejte měnit rychlost blikání? 2.Vyzkoušejte řešení bez větvení programu? 24
15. Golfista Úkol: Sestavte program takový, že Robot 1 vybavený ramenem a světelným senzorem s upraveným uchycením pro golf jede k podložce s červeným nebo modrým míčkem. Před podložkou zastaví a červený míček odpálí. Pokud je míček modrý, neodpálí jej, ale zazní zvuk chyby a robot zacouvá. Diagram programu: Otázky a úkoly: 1.Zkuste upravit program tak, aby byl méně ovlivněn okolním osvětlením? 25
Řešení: Animace na displeji 26
Řešení: Jízda tam a zpět v přímém směru 27
Řešení: Jízda po trojúhelníkové dráze 28
Řešení: Ultrazvukový senzor 1 29
Řešení: Ultrazvukový senzor 2 30
Řešení: Zvukový senzor 31
Řešení: Zobrazení hodnoty světelného senzoru 32
Řešení: Světelný senzor 2 33
Řešení: Průzkumník 34
Řešení: Jízda po čáře 35
Řešení: Tlakový senzor 36
Řešení: Rotační senzor 1 (1.část) 37
Řešení: Rotační senzor 1 (2.část) 38
Řešení: Stopky 39
Řešení: Blikač 40
Řešení: Golfista 41
Použitý hardware: Robot 1 42