OP VK Spolupráce se základními školami - Modul Dílenská praxe
Řádka 106: | Řádka 106: | ||
== Pracovní listy == | == Pracovní listy == | ||
− | Zadání: Naprogramujte robota, aby jel neomezeně dlouho vpřed | + | === Zadání: === |
+ | Naprogramujte robota, aby jel neomezeně dlouho vpřed | ||
#. úkol: nainstalujte si SW: LEGO® MINDSTORMS® NXT | #. úkol: nainstalujte si SW: LEGO® MINDSTORMS® NXT | ||
#. úkol: mezitím si prohlédněte výukové demo: [[Soubor:NXT-G-demo.jpg|200px|link=http://mindstorms.lego.com/en-us/Software/Default.aspx]] | #. úkol: mezitím si prohlédněte výukové demo: [[Soubor:NXT-G-demo.jpg|200px|link=http://mindstorms.lego.com/en-us/Software/Default.aspx]] | ||
+ | === Úkol č.1: Práce s SW === | ||
+ | '''Zadání:''' Seznamte se s programem | ||
− | + | '''Postup:''' | |
+ | 1) Spusťte SW LEGO® MINDSTORMS® NXT | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | 2) Shlédněte výukový program: | |
+ | http://mindstorms.lego.com/en-us/Software/Default.aspx | ||
− | |||
− | |||
− | |||
+ | 3) Vyzkoušejte jednotlivé funkce programu např.: | ||
+ | • Start nového programu | ||
+ | • Výběr bloku pohybu | ||
+ | • Přepnutí na jinou paletu | ||
+ | i. Common | ||
+ | ii. Complete | ||
+ | iii. Custom | ||
+ | • Uložení programu | ||
+ | • Vyvolání nápovědy | ||
+ | • Ukázání My portal | ||
+ | • Vyzkoušení Pointer Tool, Pan Tool | ||
+ | 4) Modifikujte dle vlastní volby blok pohybu | ||
+ | |||
+ | === Úkol č. 2: Jízda === | ||
+ | '''Zadání:''' Vytvořte program pro časově neomezenou jízdu robota NXT vpřed. | ||
+ | '''Postup:''' | ||
+ | 1. Sestavte robota pro jízdu (kolový, pásový) | ||
+ | 2. Spusťte SW LEGO® MINDSTORMS® NXT | ||
+ | 3. Vyberte blok motoru | ||
+ | 4. Nastavte parametry tak, aby se motor pohyboval vpřed | ||
+ | 5. Zapněte robota oranžovým tlačítkem | ||
+ | 6. Nahrajte program do robota a vyzkoušejte | ||
+ | '''Řešení:''' | ||
− | + | Nastaveno: | |
+ | • Port: B,C - zapnuty jsou porty B a C, do kterých jsou připojeny motory | ||
+ | • Direction: dopředu | ||
+ | • Steering: 50:50 – jízda bude pokud možno rovně | ||
+ | • Power: 75%, rychlost bude na 75% celkového výkonu | ||
+ | • Duration: Neomezeně - | ||
− | Zadání: Vytvořte program pro jízdu robota NXT vpřed | + | Vytvořili jste dle nastavených parametrů program pro neomezenou jízdu robota vpřed. Robot by tedy měl jet neomezeně, ale po určité době se zastaví. Nevíte proč? Vyzkoušejte a pokuste se vysvětlit. |
+ | |||
+ | |||
+ | |||
+ | === Úkol č. 3: Otočka === | ||
+ | |||
+ | '''Zadání:''' Vytvořte program pro jízdu robota NXT vpřed, po určité době se zastavil, otočil o 180° a vrátil zpět | ||
− | Postup: | + | '''Postup:''' |
− | 1. Sestavte robota | + | 1. Sestavte kolového robota |
2. Spusťte SW LEGO® MINDSTORMS® NXT | 2. Spusťte SW LEGO® MINDSTORMS® NXT | ||
− | 3. Vyberte blok motoru | + | 3. Vyberte blok motoru a nastavte parametry tak, aby se motor pohyboval vpřed po dobu 3 sekund |
− | + | ||
− | + | ||
− | + | ||
− | |||
− | |||
− | + | 4. Přidejte blok, kterým se robot zastaví | |
+ | |||
+ | 5. Dalšími motorovými bloky se postarejte o to, aby se motory otáčely v protisměru – tím se robot otočí okolo své osy. Pohyb nastavte neomezený. | ||
+ | 6. Nyní bude muset být přidán čekací blok, kterým se experimentálně nastaví doba, kterou se bude robot otáčet okolo vlastní osy | ||
+ | |||
+ | 7. Posledním blokem se robot vrátí zpět na místo, odkud vyjel | ||
+ | 8. Nahrajte program do robota | ||
+ | '''Řešení:''' | ||
+ | === Úkol č. 4: Jízda vpřed s omezením jízdy senzorem dotyku === | ||
+ | '''Zadání:''' Vytvořte program pro jízdu robota NXT vpřed časově omezenou pouze dotykem čidla | ||
+ | '''Postup:''' | ||
+ | 1. Sestavte robota pro jízdu (kolový, pásový) | ||
+ | 2. Spusťte SW LEGO® MINDSTORMS® NXT | ||
+ | 3. Vyberte blok motoru | ||
+ | 4. Nastavte parametry tak, aby se motor pohyboval neomezeně vpřed | ||
+ | 5. Přidejte blok modulu čekající na stisk senzoru dotyku | ||
+ | 6. Nahrajte program do robota | ||
− | + | ==== Řešení: ==== | |
− | + | Nastaveno: | |
+ | * Port: B,C - zapnuty jsou porty B a C, do kterých jsou připojeny motory | ||
+ | * Direction: dopředu | ||
+ | * Steering: 50:50 – jízda bude pokud možno rovně | ||
+ | * Power: 75%, rychlost bude na 75% celkového výkonu | ||
+ | * Duration: Neomezeně - robot by mohl jet neomezeně ale po určité době zastaví | ||
− | + | Lze vyzkoušet i ostatní robotická čidla např. čidlo ultrazvuku, světla apod. | |
+ | === Úkol č. 5: Jízda vpřed či vzad v závislosti na čidle dotyku === | ||
+ | '''Zadání:''' Vytvořte program pro jízdu robota NXT tak, aby jízda byla ovlivňována stiskem tlačítka | ||
+ | '''Postup:''' | ||
+ | 1. Sestavte robota pro jízdu (kolový, pásový) | ||
+ | 2. Spusťte SW LEGO® MINDSTORMS® NXT | ||
+ | 3. Vyberte blok Loop, který nám zabezpečí opakování cyklu | ||
+ | 4. Dále vyberte blok Switch s volbou dle stisku tlačítka | ||
+ | |||
+ | 5. Nastavte parametry tak, aby se motor pohyboval vpřed a po stisknutí tlačítka se začal pohybovat vzad | ||
+ | 6. Nahrajte program do robota | ||
+ | '''Řešení:''' | ||
+ | === Úkol č. 6: Jízda vpřed v uzavřeném prostoru === | ||
+ | '''Zadání:''' Vytvořte program pro jízdu robota NXT vpřed. Pokud se přiblíží k překážce na vzdálenost 20 cm, zacouvá a otočí se úhel 160 cm a bude pokračovat v jízdě | ||
+ | |||
+ | '''Postup:''' | ||
+ | 1. Sestavte robota pro jízdu (kolový, pásový) | ||
+ | 2. Spusťte SW LEGO® MINDSTORMS® NXT | ||
+ | 3. Vyberte blok motoru | ||
+ | 4. Nastavte parametry tak, aby se motor pohyboval neomezeně vpřed | ||
+ | 5. Přidejte blok modulu čekající na stisk senzoru dotyku | ||
+ | 6. Nahrajte program do robota | ||
+ | |||
+ | |||
+ | |||
+ | '''Řešení:''' | ||
+ | Celý program je umístěn v časové smyčce. | ||
+ | |||
+ | Blok motoru je nastaven tak, aby robot jel neustále dopředu omezen jen kontrolou čidla vzdálenosti. Zde je použito ultrazvukové čidlo nastavené tak, aby se robot mohl přiblížit k překážce pouze na vzdálenost 20 cm. | ||
+ | |||
+ | |||
Následně se pohyb zastaví | Následně se pohyb zastaví | ||
Řádka 226: | Řádka 282: | ||
Otočí se o 160° a celý děj se znovu opakuje | Otočí se o 160° a celý děj se znovu opakuje | ||
− | Úkol č. 7: Klikatice | + | === Úkol č. 7: Klikatice === |
− | Zadání: Vytvořte program tak, aby se robot NXT pohyboval po klikaté dráze vpřed. | + | '''Zadání:''' Vytvořte program tak, aby se robot NXT pohyboval po klikaté dráze vpřed. |
− | Postup: | + | '''Postup:''' |
− | 1. Sestavte robota pro jízdu (kolový, pásový) | + | 1. Sestavte robota pro jízdu (kolový, pásový) |
− | 2. Spusťte SW LEGO® MINDSTORMS® NXT | + | 2. Spusťte SW LEGO® MINDSTORMS® NXT |
− | 3. Vyberte časovou smyčku a následně blok motoru | + | 3. Vyberte časovou smyčku a následně blok motoru |
− | 4. Nastavte parametry tak, aby se motor B pohyboval s jinou silou než motor C a oba časově omezeně na 1 sec. | + | 4. Nastavte parametry tak, aby se motor B pohyboval s jinou silou než motor C a oba časově omezeně na 1 sec. |
Řádka 244: | Řádka 300: | ||
− | 5. Pak přidejte opět blok motoru a to tak, aby se prohodila síla pro oba dva motory. | + | 5. Pak přidejte opět blok motoru a to tak, aby se prohodila síla pro oba dva motory. |
− | 6. Přidejte blok se stejným časovým zpožděním jako v první variantě | + | 6. Přidejte blok se stejným časovým zpožděním jako v první variantě |
− | 7. | + | 7. Nahrajte program do robota |
− | + | '''Řešení:''' | |
Řádka 254: | Řádka 310: | ||
− | Doporučená literatura: | + | == Doporučená literatura: == |
+ | |||
http://wiki.sps-pi.com/index.php/NXT | http://wiki.sps-pi.com/index.php/NXT | ||
+ | |||
ORTOP – Oregon Robotics Tournament and Outreach Program [online]. c2010 [cit. 2010-05-15]. Essentials. Dostupné z WWW: http://www.ortop.org/NXT_Tutorial/html/essentials.html | ORTOP – Oregon Robotics Tournament and Outreach Program [online]. c2010 [cit. 2010-05-15]. Essentials. Dostupné z WWW: http://www.ortop.org/NXT_Tutorial/html/essentials.html | ||
− | Odkazy a kontakty: | + | |
+ | '''Odkazy a kontakty:''' | ||
http://legoengineering.com/library/cat_view/28-code/33-lego-mindstorms-nxt-software.html?start=10 | http://legoengineering.com/library/cat_view/28-code/33-lego-mindstorms-nxt-software.html?start=10 | ||
− | Použité zdroje informací: | + | '''Použité zdroje informací:''' |
NXT uvnitř: http://noeticbrainwaves.blogspot.cz/2010/07/mindstorms-nxt-screen-fix.html | NXT uvnitř: http://noeticbrainwaves.blogspot.cz/2010/07/mindstorms-nxt-screen-fix.html | ||
Verze z 1. 1. 2013, 20:30
Obsah |
Představení modulu
Pomůcky | |
NXT kostka Servopohony Čidlo dotyku Čidlo zvuku Čidlo světla Čidlo barvy Čidlo ultrazvuku |
V tomto modulu se seznámíme s robotem NXT, který se naučíme ovládat tak, aby nás poslouchal a byl schopen plnit zadané úkoly pro plnění jednoduchých "robotích" misí.
Představení robota:
Robot obsahuje několik částí.
Inteligentní NXT kostka:
- Toto zařízení je mozkem celého NXT.
- Zařízení disponuje:
- port USB 2.0
- komunikační technologie Bluetooth v2.0+EDR 26MHz
- 4x vstupní port
- 3x výstupní port
- 32-bit mikroprocesor ARM7
- AT91SAM7S256
- 48 MHz, 256 kB FLASH, 64 kB RAM
- 8-bit mikroprocesor ATmega48
- 8 MHz,4 kB FLASH, 512 B RAM
Bluetooth možnosti:
- Nahrávání programů z PC
- Umožňuje přehrávání programů mezi NXT
- Předávání povelů mezi NXT (Master – slave tj. jeden řídí až 3 další)
- Ovládaní pomocí PDA
- Mobilní telefon jako dálkový ovladač
- Video kamera
Čidla:
základní
- Dotyku (touch sensor) - slouží k zišťování překážek před NXT
- Zvuku (sound sensor) - měří sílu zvuku 0-100%, rozpoznává tóny
- Světla (light sensor) - čte světelnou intenzitu okolí
- Ultrazvuku - slouží k měření vzdálenosti
lze dokoupit
- Senzor magnetického pole
- Senzor akcelerace
- Gyroskop Tutorial: NXT Segway with NXT-G Tutorial: NXT Segway with RobotC
SW:
NXT-G
- Základní grafické vývojové prostředí
- Odvozeno od National Instruments’ LabView
- Výborné pro rychlé programování - vynikající nejen pro studenty API SPŠ a VOŠ, ale také pro začátečníky
- Obsahem NXT-G je i výborně zpracovaná nápověda, pomocí které lze se naučit základní pohyby a funkce NXT
Výukové materiály
Pracovní listy
Zadání:
Naprogramujte robota, aby jel neomezeně dlouho vpřed
Úkol č.1: Práce s SW
Zadání: Seznamte se s programem
Postup: 1) Spusťte SW LEGO® MINDSTORMS® NXT
2) Shlédněte výukový program:
http://mindstorms.lego.com/en-us/Software/Default.aspx
3) Vyzkoušejte jednotlivé funkce programu např.:
• Start nového programu
• Výběr bloku pohybu
• Přepnutí na jinou paletu
i. Common
ii. Complete
iii. Custom
• Uložení programu
• Vyvolání nápovědy
• Ukázání My portal
• Vyzkoušení Pointer Tool, Pan Tool
4) Modifikujte dle vlastní volby blok pohybu
Úkol č. 2: Jízda
Zadání: Vytvořte program pro časově neomezenou jízdu robota NXT vpřed.
Postup: 1. Sestavte robota pro jízdu (kolový, pásový) 2. Spusťte SW LEGO® MINDSTORMS® NXT 3. Vyberte blok motoru 4. Nastavte parametry tak, aby se motor pohyboval vpřed 5. Zapněte robota oranžovým tlačítkem 6. Nahrajte program do robota a vyzkoušejte
Řešení:
Nastaveno: • Port: B,C - zapnuty jsou porty B a C, do kterých jsou připojeny motory • Direction: dopředu • Steering: 50:50 – jízda bude pokud možno rovně • Power: 75%, rychlost bude na 75% celkového výkonu • Duration: Neomezeně -
Vytvořili jste dle nastavených parametrů program pro neomezenou jízdu robota vpřed. Robot by tedy měl jet neomezeně, ale po určité době se zastaví. Nevíte proč? Vyzkoušejte a pokuste se vysvětlit.
Úkol č. 3: Otočka
Zadání: Vytvořte program pro jízdu robota NXT vpřed, po určité době se zastavil, otočil o 180° a vrátil zpět
Postup: 1. Sestavte kolového robota 2. Spusťte SW LEGO® MINDSTORMS® NXT 3. Vyberte blok motoru a nastavte parametry tak, aby se motor pohyboval vpřed po dobu 3 sekund
4. Přidejte blok, kterým se robot zastaví
5. Dalšími motorovými bloky se postarejte o to, aby se motory otáčely v protisměru – tím se robot otočí okolo své osy. Pohyb nastavte neomezený.
6. Nyní bude muset být přidán čekací blok, kterým se experimentálně nastaví doba, kterou se bude robot otáčet okolo vlastní osy
7. Posledním blokem se robot vrátí zpět na místo, odkud vyjel
8. Nahrajte program do robota
Řešení:
Úkol č. 4: Jízda vpřed s omezením jízdy senzorem dotyku
Zadání: Vytvořte program pro jízdu robota NXT vpřed časově omezenou pouze dotykem čidla
Postup: 1. Sestavte robota pro jízdu (kolový, pásový) 2. Spusťte SW LEGO® MINDSTORMS® NXT 3. Vyberte blok motoru 4. Nastavte parametry tak, aby se motor pohyboval neomezeně vpřed 5. Přidejte blok modulu čekající na stisk senzoru dotyku 6. Nahrajte program do robota
Řešení:
Nastaveno:
- Port: B,C - zapnuty jsou porty B a C, do kterých jsou připojeny motory
- Direction: dopředu
- Steering: 50:50 – jízda bude pokud možno rovně
- Power: 75%, rychlost bude na 75% celkového výkonu
- Duration: Neomezeně - robot by mohl jet neomezeně ale po určité době zastaví
Lze vyzkoušet i ostatní robotická čidla např. čidlo ultrazvuku, světla apod.
Úkol č. 5: Jízda vpřed či vzad v závislosti na čidle dotyku
Zadání: Vytvořte program pro jízdu robota NXT tak, aby jízda byla ovlivňována stiskem tlačítka
Postup: 1. Sestavte robota pro jízdu (kolový, pásový) 2. Spusťte SW LEGO® MINDSTORMS® NXT 3. Vyberte blok Loop, který nám zabezpečí opakování cyklu 4. Dále vyberte blok Switch s volbou dle stisku tlačítka
5. Nastavte parametry tak, aby se motor pohyboval vpřed a po stisknutí tlačítka se začal pohybovat vzad 6. Nahrajte program do robota
Řešení:
Úkol č. 6: Jízda vpřed v uzavřeném prostoru
Zadání: Vytvořte program pro jízdu robota NXT vpřed. Pokud se přiblíží k překážce na vzdálenost 20 cm, zacouvá a otočí se úhel 160 cm a bude pokračovat v jízdě
Postup: 1. Sestavte robota pro jízdu (kolový, pásový) 2. Spusťte SW LEGO® MINDSTORMS® NXT 3. Vyberte blok motoru 4. Nastavte parametry tak, aby se motor pohyboval neomezeně vpřed 5. Přidejte blok modulu čekající na stisk senzoru dotyku 6. Nahrajte program do robota
Řešení:
Celý program je umístěn v časové smyčce.
Blok motoru je nastaven tak, aby robot jel neustále dopředu omezen jen kontrolou čidla vzdálenosti. Zde je použito ultrazvukové čidlo nastavené tak, aby se robot mohl přiblížit k překážce pouze na vzdálenost 20 cm.
Následně se pohyb zastaví
Robot vycouvá
Otočí se o 160° a celý děj se znovu opakuje
Úkol č. 7: Klikatice
Zadání: Vytvořte program tak, aby se robot NXT pohyboval po klikaté dráze vpřed.
Postup:
1. Sestavte robota pro jízdu (kolový, pásový)
2. Spusťte SW LEGO® MINDSTORMS® NXT
3. Vyberte časovou smyčku a následně blok motoru
4. Nastavte parametry tak, aby se motor B pohyboval s jinou silou než motor C a oba časově omezeně na 1 sec.
5. Pak přidejte opět blok motoru a to tak, aby se prohodila síla pro oba dva motory.
6. Přidejte blok se stejným časovým zpožděním jako v první variantě
7. Nahrajte program do robota
Řešení:
Doporučená literatura:
http://wiki.sps-pi.com/index.php/NXT
ORTOP – Oregon Robotics Tournament and Outreach Program [online]. c2010 [cit. 2010-05-15]. Essentials. Dostupné z WWW: http://www.ortop.org/NXT_Tutorial/html/essentials.html
Odkazy a kontakty: http://legoengineering.com/library/cat_view/28-code/33-lego-mindstorms-nxt-software.html?start=10
Použité zdroje informací: NXT uvnitř: http://noeticbrainwaves.blogspot.cz/2010/07/mindstorms-nxt-screen-fix.html
Stavební návod robota NXT: http://wiki.sps-pi.com/index.php/NXT#Building_Instructions
Metodické listy
Diskusní fórum
Odkazy a kontakty:
Maturitní práce Roberta Zelenky: Zpracování a praktické ověření instruktážních úkolů pro robota NXT