Aktuální vydání

celé číslo

06

2018

Systémy strojového vidění

Výrobní a montážní linky

celé číslo

Postavte si svůj robot – roboty ve výuce (část 6)

Předchozí článek seznamoval se základy programování výukových robotů a s bloky v grafickém prostředí. Bylo ukázáno použití základního bloku Move z palety Common a byl uveden jednoduchý příklad pohybu robotu vpřed a vzad. V tomto pokračování jsou popsány základní bloky v grafickém prostředí z palety Common a na jednoduchých příkladech jsou ilustrovány možnosti jejich použití v programovacím prostředí NXT-G.

 

Blok Record/Play

Blok Record/Play umožňuje nahrát průběh pohybu robotu. Robot potom nahraný pohyb opakuje. Na obr. 1 je konfigurační panel bloku v režimu nahrávání, který obsahuje: textové pole pro pojmenování nahraného pohybu (1), výběr portů s připojenými motory, u kterých má být zaznamenán jejich pohyb (2), a nastavení doby zaznamenávání pohybu v sekundách (3). Je-li konfigurační panel v režimu přehrávání (obr. 2), obsahuje pouze textové pole pro zadání jména akce (1). Soubory uložené v kostce NXT se objeví v sekci File v abecedním seznamu a lze vybrat ten soubor, v němž je uložen program pro pohyb, který má být zopakován.
 

Blok Sound

Blok Sound umožňuje přehrát zvuky z kostky NXT. Jeho konfigurační panel (obr. 3) obsahuje: výběr mezi přehráním zvukového souboru nebo tónu (1), výběr mezi přehráváním či zastavením přehrávání zvukového souboru nebo tónu (2), nastavení hlasitosti pomocí posuvníku nebo napsáním přesné hodnoty do textového pole (3). Při cyklickém přehrávání zvukového souboru (4) bude nápis Wait for completion zašedlý a funkce nedostupná. Pole (5) dovoluje dvě možnosti zadání – buď obsahuje abecední seznam zvukových souborů, které jsou uloženy na pevném disku ve složce Sound Files programu Lego Mindstorms NXT (5a), nebo klávesnici pro tři oktávy na hudební stupnici (5 b).
 
Textové pole nad klávesnicí zobrazuje znak zvolené noty. Dále je zde textové pole pro zadání doby trvání tónu. V poli (6) lze zvolit, zda následující blok programu má být vykonán až po přehrání celého zvukového souboru (při zaškrtnutí), nebo zda bude zvukový soubor hrát, zatímco pokračuje další blok (bez zaškrtnutí).
 

Blok Display

Blok Display je určen k zobrazení textu, ikon nebo vytvořených obrázků na displeji kostky NXT. Konfigurační panel obsahuje: rozbalovací menu pro výběr obrázku, textu a vlastní kresby (1) a resetování displeje (2). Při volbě Clear (zatržení) bude obsah displeje kostky NXT smazán. Obsah a funkce polí (3) a (4) se liší podle režimu zvoleného v poli (1). V režimu Image (obr. 4) pole (3a) obsahuje seznam obrázků, které mohou být zobrazeny na displeji. Při kliknutí na název obrázku bude v sekci Position (4a) ukázán náhled (obrázky jsou uloženy na pevném disku ve složce Image Files programu Lego Mindstorms). Pole (4a) zobrazuje náhled obrázku, jak bude umístěn na displeji kostky NXT, a myší lze upravit jeho umístění – přesné nastavení pozice umožňují textová pole souřadnic X a Y, kde hodnotě (0, 0) odpovídá levý spodní roh. Na obr. 5 je konfigurační panel pro režim Text. V textovém poli (3 b) lze vložit text, který bude zobrazen na displeji. V rozbalovacím menu (4 b) je možné zvolit číslo řádku, kde bude text umístěn. Pro režim Drawing ( obr. 6) pole (3c) obsahuje rozbalovací menu pro výběr tvaru, který má být nakreslen (tečka, čára nebo kružnice) a v textovém poli (4c) lze zadat pozici na obrazovce jako souřadnice X, Y (pro kreslení kružnice se objeví doplňkové vstupní textové pole pro zadání poloměru).
 

Blok Wait

Blok Wait donutí robot čekat, dokud není splněna zadaná podmínka. Následující blok je vykonán až po splnění podmínky – tou může být čekání na výstup časovače (Timer), dotykového snímače přiblížení (Touch), snímače světla (Light), snímače zvuku (Sound) nebo ultrazvukového snímače vzdálenosti (Distance). Jestliže byl jako podmínka čekání zvolen např. dotykový snímač, bude program čekat, dokud nebude senzor snímače stlačen, uvolněn nebo rychle stlačen a zase uvolněn. Na obr. 7 je zobrazen konfigurační panel, který obsahuje pole pro výběr portu (1), do kterého je dotykový snímač připojen v kostce NXT. Pole (2) je určeno k výběru podmínky, při jejímž splnění bude program pokračovat dále: bumped (rychlé stlačení a uvolnění dotykového senzoru), pressed (dotykový senzor je stlačený), released (dotykový senzor je uvolněný). Textové pole (3) zajišťuje zpětnou vazbu při testování dotykového snímače. Je-li snímač aktivní, bude zde zobrazeno číslo 1.
 
Ostatní režimy bloku Wait fungují obdobně a obdobně se i nastavují z konfiguračních panelů. Kdyby byl na programovací plochu umístěn nevhodný blok Wait, lze to napravit z téhož konfiguračního panelu. V sekci Control je roletové menu pro výběr mezi volbou Sensor a Time. Při volbě režimu Sensor lze v sekci Sensor z roletového menu vybrat požadovaný typ snímače, který bude spouštěcím prvkem. Z obr. 8 je patrné, že k dispozici je mnohem více snímačů, než nabízí paleta Common.
 
Na obr. 9 je uveden příklad, kdy robot vysloví „LEGO Mindstorms Robot“, přičemž mezi jednotlivými slovy je pauza o délce 0,5 s.
 

Blok Loop

Blok Loop vytvoří programovou smyčku pro opakování určité sekvence programu. Nastavení konfiguračního panelu je obdobné jako u bloku Wait. Při splnění podmínky bude smyčka ukončena. Oproti bloku Wait je zde možnost zaškrtnout funkci Counter, při jejíž aktivaci lze zobrazit počet dokončených smyček a přenést jej do jiného programovacího bloku. Podmínky pro ukončení smyčky mohou být: nekonečná smyčka bez možnosti ukončení (Forever), výstup snímače (Sensor), uplynulá doba (Time), počet opakování (Count) a logický signál (Logic). Na obr. 10 je uveden příklad s využitím bloků Sound, Wait a Loop (písnička Silent Night). Nejenom tuto, ale i další známé písničky si mohou zájemci vyžádat na e-mailové adrese autora článku.
 

Blok Switch

Blok Switch je rozhodovací – při splnění první podmínky se vykoná jedna akce, při splnění druhé podmínky se aktivuje jiná akce. Například uvedená ikona odpovídá bloku, kde je rozhodování ovlivněno stavem snímače dotyku. Podmínky se opět nastavují podobné jako u bloků Wait nebo Loop. Konfigurační panel v sekci Control nabízí rozbalovací menu s výběrem mezi dvěma možnostmi pro rozhodování: pomocí hodnoty (Value), kterou může být číslo, text nebo logická hodnota, nebo podle stavu snímače (Sensor), který se volí obdobně jako u bloků Wait a Loop. Ovládání konfiguračního panelu je jednoduché a intuitivní.
 
Úloha: Zkuste naprogramovat sekvenci: robot na displeji zobrazí vaše jméno – vysloví MindStorms – akci čtyřikrát zopakuje – se zpožděním 5 s se pohybuje po dobu 5 s a se silou 75 % vpřed – otočí se o 90° doprava – po stisku senzoru snímače dotyku se otočí o 360° doleva – vysloví Good Job.
 
Ing. Martin Hlinovský, Ph.D.
Ing. Lenka Mudrová
 
Obr. 1. Konfigurační panel bloku Record/Play v režimu nahrávání
Obr. 2. Konfigurační panel bloku Record/Play v režimu přehrávání
Obr. 3. Konfigurační panel bloku Sound
Obr. 4. Konfigurační panel bloku Display pro režim Image
Obr. 5. Konfigurační panel bloku Display pro režim Text
Obr. 6. Konfigurační panel bloku Display pro režim Drawing
Obr. 7. Konfigurační panel bloku Wait v režimu Touch
Obr. 8. Změna snímače v konfiguračním panelu bloku Wait
Obr. 9. Příklad použití bloků Sound a Wait
Obr. 10. Příklad s využitím bloků Sound, Wait a Loop
 

Tab. 1. Ikony bloků