LEGO® Mindstorms® Education NXT Projekt Lego ve výuce informatiky a fyziky
Robotika 2 Mgr. Radoslav Jirásek RNDr. Jitka Jirásková Mgr. Eva Riessová
Obsah 1. Poznáváme senzor.............................................................................................................................................4 2. Senzor kompas I.................................................................................................................................................5 3. Senzor kompas II...............................................................................................................................................7 4. Práce se soubory................................................................................................................................................9 5. Teplotní senzor.................................................................................................................................................11 6. Lineární motor.................................................................................................................................................12 7. Senzor EOPD...................................................................................................................................................14 8. Detektor barev..................................................................................................................................................16 9. Senzor barev V2...............................................................................................................................................18 10. Senzor ultrafialového záření...........................................................................................................................19 11. Senzor zrychlení–vodováha...........................................................................................................................20 12. Robotická paže I...............................................................................................................................................21 Řešení: Senzor kompas I.................................................................................................................................22 Řešení: Senzor kompas II................................................................................................................................23 Řešení: Práce se soubory.................................................................................................................................24 Řešení: Teplotní senzor...................................................................................................................................25 Řešení: Lineární motor...................................................................................................................................26 Řešení: Senzor EOPD......................................................................................................................................27 Řešení: Detektor barev....................................................................................................................................28 Řešení: Senzor barev V2.................................................................................................................................29 Řešení: Senzor ultrafialového záření (1.část)...............................................................................................30 Řešení: Senzor ultrafialového záření (2.část)...............................................................................................31 Řešení: Senzor zrychlení–vodováha..............................................................................................................32 Řešení: Robotická paže I (1.část)..................................................................................................................33 Řešení: Robotická paže I (2.část)..................................................................................................................34 Použitý hardware: Robot 2..............................................................................................................................35
1. Poznáváme senzor Úkol: Sestavte program, který vám umožní zjistit bližší informace o datech, která poskytuje každý senzor NXT mikropočítači. Řešení: Chceme zobrazovat naměřená data v závislosti na čase na monitoru a současně zobrazovat jejich hodnotu na displeji. Nejjednodušší tedy bude věnovat každé z obou činností jednu úlohu, které pak spustíme současně tzv. multitasking. NXT mikropočítač může současně zpracovávat až 3 úlohy.
Zobrazování naměřených dat na displeji NXT.
úloha (task) 1
Počet vzorků za sekundu.
4
úloha (task) 2
Záznam a zobrazování dat na monitoru.
Doba měření.
Konec obou úloh.
2. Senzor kompas I Úkol: Naprogramujte Robota 2 tak, aby se otáčel po směru pohybu hodinových ručiček. Při pohybu se bude hodnota azimutu měřeného senzorem kompas zobrazovat na displeji. Pohyb skončí, jakmile se robot natočí severním směrem. Zastavení bude indikováno pípnutím. Nové programové prvky: Senzor kompas, Opakuj dokud hodnota kompasu není rovna. Ikona příkazu Opakuj dokud hodnota kompasu není rovna (Loop)
může dle nastavení:
Ukončit programovou smyčku, jakmile hodnota senzoru kompas leží vně zadaného intervalu
Mimo zadaný rozsah, tedy v rozsahu 355°–5°.
nebo ji ukončit, jakmile hodnota leží uvnitř intervalu.
V rozsahu 175°–185°.
5
Ikona příkazu Senzor kompas (Compas Sensor)
může dle nastavení:
provádět čtení absolutního azimutu, relativní odchylky od zvoleného směru nebo kalibraci senzoru. Lze rovněž zjišťovat, zda se měřený azimut nachází uvnitř nebo vně zvoleného intervalu.
Měření skutečného azimutu
Měření úhlové odchylky od 150°
Nastavení směru, od kterého se měří odchylka.
Výstup skutečného azimutu
Výstup odchylky od zvoleného směru.
Otázky a úkoly: 1.V jaké vzdálenosti od motoru musí být senzor umístěn, aby nebyla ovlivněna jeho činnost? 2.Zjistěte, jaké další vlivy prostředí ovlivňují činnost senzoru kompas?
6
3. Senzor kompas II Úkol: Sestavte program tak, aby se Robot 2 otáčel na sever po kratším oblouku. Při pohybu se bude hodnota azimutu měřeného senzorem kompas zobrazovat na displeji. Pohyb skončí, jakmile se robot natočí severním směrem. Nové programové prvky: Matematická operace , Porovnání. Ikona příkazu Matematická operace (Math) může dle nastavení sčítat, odčítat, násobit nebo dělit vstupní hodnoty A a B. Výsledek výpočtu se objeví na výstupu. Lze také počítat absolutní hodnotu nebo odmocninu. V příkladu jsou použity číselné proměnné. Znáte je z minulého dílu kapitola Stopky.
Nebo máme možnost vstupní hodnoty zadat přímo.
7
Ikona příkazu Porovnej (Compare) určí, zda je pravda nebo ne A
B. Pravdivost porovnání se objeví na výstupu. V příkladu jsou použity číselné proměnné pro vstup a logická proměnná pro výstup.
8
4. Práce se soubory Úkol: V jednoduchém textovém editoru si připravte pětiřádkové menu. Soubor uložte jako data.txt. Tento soubor nahrajte do NXT kostky. Sestavte program, který z textového souboru v paměti NXT kostky postupně načte pět řádků textu. Na displeji se zobrazí pod sebou. Pozici zobrazení určete za pomocí proměnné. Program skončí po stisku ENTER NXT.
Nové programové prvky: Soubor. Ikona příkazu Soubor(File Access) může dle nastavení: sekvenčně zapisovat do souboru (Write)
textovou nebo číselnou položku,
Prováděná akce
Typ dat text/čísla
Zapisovaný text
Název souboru
sekvenčně číst položky ze souboru (Read),
uzavřít soubor (Close)
a smazat soubor (Delete)
9
V jednoduchém textovém editoru přichystáme text:
V panelu řízení (Contoller) otevřeme NXT okno, nahrajeme soubor data.txt do NXT kostky:
Otevření dialogu nahrátí souboru Otevření NXT okna
Otázky a úkoly: 1.Zkuste použít počítadlo (counter) cyklu k určení pozic zobrazovaných textů?
10
5. Teplotní senzor Úkol: Sestavte program, který udělá z NXT kostky a teplotního senzoru digitální teploměr. Na displej se vypíše nápis teplota a nepřetržitě se bude vypisovat její hodnota z teplotního senzoru. Současně s tím bude probíhat záznam teploty do datalogu a bude se vykreslovat graf závislosti teploty na čase po dobu 10 sekund se vzorkovací frekvencí 5 teplot za 1 sekundu. Nový programový prvek: Teplotní senzor. Ikona příkazu Teplotní senzor (Temperature Sensor)
může být použit k měření teploty,
současně také pracuje jako indikátor dosažení nastaveného teplotního intervalu.
Výstup logické hodnoty PRAVDA, je-li teplota menší než 25°C
Otevření NXT okna
Výstup naměřené teploty
Otázky a úkoly: 1.Jaký je rozsah měřených teplot teplotního senzoru? 2.Jaká je maximální vzorkovací frekvence teplotního senzoru?
11
6. Lineární motor Úkol: Vytvořte program, který bude alternativou ovládání lineárního motoru v manuálním režimu–lineární motor bude ovládaný levým a pravým tlačítkem na NXT kostce. Při stisku levého tlačítka se rameno motoru vysune o 25 mm, při stisku pravého tlačítka se zasune o stejnou délku. Činnost se opakuje.
Nové programové prvky: Lineární motor, Větvení podle NXT tlačítka. Ikona příkazu Lineární motor (Actuator Block)
slouží k řízení činnosti lineárního
motoru. Nastavuje se port připojení, směr pohybu, rychlost pohybu, délka vysunutí (zasunutí v jednom kroku, čekání na dokončení a ruční ovládání. Rychlost pohybu.
Rychlost pohybu.
12
Přímé ovládání tlačítky na NXT kostce.
Ikona příkazu Větvení podle NXT tlačítka (Switch) větví program takto:
Po stisku tlačítka proběhne horní větev.
Zvoleno levé NXT tlačítko.
Program bude reagovat na stisk tlačítka.
13
7. Senzor EOPD Úkol: Sestavte program pro EOPD senzor takový, aby se naměřená vzdálenost v milimetrech zobrazovala na displeji. Nové programové prvky: Senzor EOPD, Matematická operace odmocnina. Ikona příkazu Senzor EOPD (EOPD Sensor block)
umožňuje nastavit rozsahy měření
vzdálenosti na krátký nebo dlouhý, číst neupravenou nebo upravenou hodnotu. Může také hlídat dosažení určité hodnoty:
Nastavení krátkého 3–10 cm dosahu nebo dlouhého do 20 cm rozsahu.
14
Hlídaná vzdálenost (RAW hodnota 0–1024)
Pro přepočet naměřené RAW hodnoty na milimetry použijeme vzorec:
V našem programu použijeme hodnoty kRozsah=1095 a kChyba=12. Jejich výpočet je mimo rámec tohoto manuálu a je k dispozici na internetu. Vyhovujícího přepočtu dosáhneme pro vzdálenost mezi 3 a 10 cm při krátkém rozsahu. Ikona příkazu Matematická operace odmocnina (Math) vypočítá druhou odmocninu:
Základ odmocniny. Odmocnina.
Otázky a úkoly: 1.Zjistěte, jaký je rozsah senzoru na dlouhém rozsahu měření? 2.Zjistěte vliv barvy a materiálu od kterého se odráží měřené světlo?
15
8. Detektor barev Úkol: Sestavte program takový, že do jednorozměrného pole vložíte čtyři frekvence základních tónů C, D, E a F. Robot 2 rotuje s detektorem barev nad různobarevnými víčky od PET lahví. Index barvy je použit jako index pole tónů, které se přehrávají. Nové programové prvky: Detektor barev , Jednorozměrné pole. Ikona příkazu Detektor barev(Color sensor)
může dle nastavení:
určit jednu ze šesti barev–černou, modrou, zelenou, žlutou, červenou a bílou. V porovnání se senzorem barev z 8.kapitoly je rychlejší, ale rozpoznává méně barev.
Výstup indexu barvy 0–5
Může být také použita k detekci nastavené barvy nebo intervalu barev.
Modrá barva detekována PRAVDA/NEPRAVDA
Detekuj modrou barvu
Senzor může také pracovat jako klasický světelný senzor nebo jako červená, zelená a modrá žárovka. Ikona příkazu Jednorozměrné pole (Simple Array)
může dle nastavení:0
0
16
Vkládat (Add) do pole za poslední prvek, tedy pod index 2 hodnotu 14.
14
Číst (Get) hodnotu příslušnou k indexu 1, přečte 13.
Vstup 1
Výstup 13
Zaměnit (Replace) hodnotu příslušnou k indexu 0, tedy místo 4 zapíše 8.
Vstup 0
Vstup 8
Smazat obsah pole (Clear) .
Otázky a úkoly: 1.Upravte program pro celou oktávu. 2.Zkuste vytvořit barevný blikač?
17
9. Senzor barev V2 Úkol: Sestavte program takový, který bude opakovaně vypisovat na displej podíly červené, zelené, modré a bílé složky barvy osvíceného předmětu. Nové programové prvky: Senzor barev V2. Ikona příkazu Senzor barev V2 (Color sensor V2) může dle nastavení: určit jednu ze šesti barev–černou, modrou, zelenou, žlutou, červenou a bílou. V porovnání s detektorem barev ze 7.kapitoly je pomalejší, ale rozpoznává více barev.
Výstup indexu barvy 0–17.
Výstup úrovně zelené 0–255.
Senzor může být také použit k detekci nastavené barvy nebo intervalu barev.
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?
18
10. Senzor ultrafialového záření Úkol: Sestavte program takový, že Robot 2 bude otáčet s UVA senzorem a hledat polohu, ve které naměří nejvyšší hodnotu ultrafialového záření. Do této polohy se nakonec natočí. Konec hledání i finální natočení bude indikováno pípnutím. Nové programové prvky: Senzor Vernier UVA. Ikona příkazu Senzor Vernier UVA (Vernier Sensor) umožňuje číst hodnoty naměřené senzorem nebo můžeme senzorem hlídat dosažení určité hodnoty (trigger point).
Výstup hodnoty UVA záření.
Volba Vernier senzoru.
Čtení, nulování nebo kalibrace senzoru.
Hodnota pro trigger.
Otázky a úkoly: 1.Zjistěte, jaký vliv má na množství propuštěného UVA záření sklo a průhledný plast? 2.Zjistěte, jaké jsou hodnoty UVB záření ze slunce v porovnání s UVA hodnotami?
19
11. Senzor zrychlení–vodováha Úkol: Sestavte program pro senzor akcelerace takový, že bude opakovaně vypisovat na displej hodnoty ze senzoru pro osy x , y a z. Program umožní v klidové poloze určit, zda je senzor vodorovně, nenakloněný a svisle. Připevněný k NXT kostce pracuje jako vodováha. Program končí po stisku ENTER NXT tlačítka.
Nové programové prvky: Senzor zrychlení. Ikona příkazu Senzor zrychlení (Acceleration Sensor) může v základním nastavení číst hodnotu–200 až +200 v ose x, což odpovídá zrychlení -2g až +2g.
Výstup hodnoty zrychlení v ose x.
Po rozbalení data hubu, lze číst hodnoty pro všechny tři osy.
Výstup hodnoty zrychlení ve všech osách.
Otázky a úkoly: 1.Vyzkoušejte, zda je možné použít tento senzor k detekci vodorovné a svislé polohy robotické paže modelu Robot 2? 2.Zkuste sestavit program fungující jako alarm krádeže kostky.
20
12. Robotická paže I Úkol: Sestavte program pro Robota 2 tak, aby se otáčel a hledal prázdnou PET láhev. Tuto láhev uchopí, zvedne a položí zpět. Pak se odvrátí. Činnost zopakuje třikrát. Ve výchozí pozici je rameno s klepety svisle a klepeta jsou sevřená. Použité senzory a periferie: Ultrazvukový senzor–používáme k nalezení PET láhve. Její vzdálenost a posun robota proti středu láhve určíme empiricky. Motor A – otáčí celým Robotem 2. Otáčení doprava.
Otáčení doleva.
Pohyb dolů.
Pohyb nahoru.
Motor B pohybuje robotickou paží.
Motor C svírá a rozevírá klepeta robotické paže.
Rozevřít.
Sevřít.
Při manipulaci s motory B a C mějte na mysli, že rozsah jejich pohybu je silně omezen a v případě jeho překročení hrozí poškození modelu nebo i komponentů. Ladění programu provádíme v malých krocích s nízkým výkonem motorů.
21
Řešení: Senzor kompas I
22
Řešení: Senzor kompas II
23
Řešení: Práce se soubory
24
Řešení: Teplotní senzor
25
Řešení: Lineární motor
26
Řešení: Senzor EOPD
1 2
1 2
27
Řešení: Detektor barev
1
1
28
Řešení: Senzor barev V2
1 2 3 4
1 2 3 4
29
Řešení: Senzor ultrafialového záření (1.část)
1
1 2
30
2
3
Řešení: Senzor ultrafialového záření (2.část)
3
31
Řešení: Senzor zrychlení–vodováha
1
1
32
Řešení: Robotická paže I (1.část)
1
1
2
33
Řešení: Robotická paže I (2.část)
3
2
3
34
Použitý hardware: Robot 2
35
Citace: Robotické vzdělávání: Senzor zrychlení. HODINÁŘ, Jan, Mgr. a Tomáš, Mgr. JAKEŠ. LEGO MINDSTORMS NXT–Robotické vzdělávání: Senzor zrychlení [online]. 2012, 13. 3. 2012 [cit. 2012-04-29]. Dostupné z: https://lego.zcu.cz/web/moduly–systemu–lego–nxt/rozsirujici–moduly–nxt/senzor–zrychleni NXT Color Sensor V2. HiTechnic [online]. 2012 [cit. 2012–04–29]. Dostupné z: http://www.hitechnic. com