4.1. Programové prostředí NXT -G Cílem této kapitoly je úvod do problematiky prostředí, ve kterém je možno sestavit program a nastavit parametry senzorů.
Klíčové pojmy: Program, stavebnice, automatizace, vzdělávání
Obsah 4.1. Programové prostředí NXT -G ............................................................................................ 1 4.1.1. Úvod ................................................................................................................................. 2 4.1.2. Popis pracovního prostředí NXT-G. ................................................................................ 2 4.1.3. Návod na vytvoření nového programu: ............................................................................ 4 4.1.4. Uložení programu:............................................................................................................ 5 4.1.5. Programovací bloky ......................................................................................................... 7 4.1.5.1. Jednotlivé programovací bloky - Common ................................................................... 7 4.1.5.2. Jednotlivé programovací bloky - Complete ................................................................ 15 4.1.5.3. Jednotlivé programovací bloky - Custom ................................................................... 17 4.1.6. Obecné zásady programování v NXT – G. .................................................................... 18 4.1.6.1 Vytvoření paralelní větve v programu ......................................................................... 19 4.1.6.2 Smazání bloku z programovací plochy ........................................................................ 20 4.1.6.3 Přesun bloku po programovací ploše ........................................................................... 20 4.1.6.4 Data hubs ...................................................................................................................... 20 4.1.7. Tvorba vlastních bloků ................................................................................................... 22 4.1.7.1 Vytvoření vlastního bloku ............................................................................................ 22 4.1.7.2. Úprava vytvořeného bloku .......................................................................................... 24 4.1.7.3. Správa palety Custom .................................................................................................. 24 4.1.8. Práce s proměnnými ....................................................................................................... 25 4.1.8.1. Vytvoření proměnné .................................................................................................... 25 4.1.8.1. Použití proměnné......................................................................................................... 25 Literatura: ................................................................................................................................. 26
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 1 z 26
4.1.1. Úvod LEGO MINDSTORMS je řada programovatelných robotických stavebnic vyráběných firmou LEGO. Tato stavebnice lze použít jako vzdělávací pomůcku vhodnou pro zvídavé děti, základní školy a střední školy zabývající se programováním a automatizací.
4.1.2. Popis pracovního prostředí NXT-G. Program LEGO Mindstorms NXT je vytvořen podobně jako program LabVIEW od společnosti National Instruments. Programování je založeno na principu drag-and-drop (táhni a pusť). Programovací jazyk je grafický programovací jazyk, je sestavován pomocí programovacích bloků (jejichž ikony jsou vedle pracovního prostředí). Ikony se skládají za sebou.
Obr.1: Programovací prostředí – základní obrazovka
Před použitím jakéhokoliv tlačítka Controlleru, je nutno mít připojenu NXT kostku k PC pomocí USB kabelu.
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 2 z 26
Obr.2: Controler – dolní pravý roh základní obrazovky
• • • • •
NXT Window – otevře NXT okno s obecnými informacemi o NXT kostce, o paměti a komunikaci Download – stáhne program do NXT kostky Download and run – stáhne program do NXT kostky a spustí Download and run selected – stáhne a spustí jen část programového kódu Stop – zastaví běžící program
NXT Window – Memory Na této záložce najdete: • Grafický přehled o využité a volné části paměti • Tlačítko pro vymazání všech nahraných programů od uživatele a vyčištění NXT paměti • Tlačítko pro nahrání programu z NXT kostky do PC • Tlačítko pro nahrání programu z PC do NXT kostky • Tlačítko pro smazání vybraného souboru z NXT kostky • Seznam souborů v aktuálně označené kategorii • Zaškrtávací políčko pro zobrazení systémových souborů NXT kostky
Obr.2a: Memory
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 3 z 26
4.1.3. Návod na vytvoření nového programu: Existují 4 způsoby vytvoření nového programu – viz následující obrázky: 1) Vytvoření z úvodního okna:
Obr.3a: Úvodní okno
2) Vytvoření z roletové nabídky:
Obr.3b: roletové menu
3) Vytvoření tlačítkem z lišty:
Obr.3c: tlačítko lišty
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 4 z 26
4) Vytvoření pomocí klávesové zkratky Ctrl+N : Každému vytvořenému programu přísluší záložka s vlastní programovací plochou. Při vytvoření více programů se mezi nimi lze přepínat pomocí záložek. Program můžeme uzavřít z roletové nabídky „File“ nebo klávesovou zkratkou Ctrl+W.
Obr.4: záložky s programy
4.1.4. Uložení programu: Opět existuje několik způsobů uložení programu: A. Z roletové nabídky: 1. krok
Obr.5: roletové menu
2. krok
Obr.6: uložení souboru
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 5 z 26
3. krok
Obr.7: výběr cílového adresáře
B. tlačítkem z lišty (2,3 krok stejný se způsobem z roletové nabídky).
Obr.8: tlačíko se symbolem diskety
C. Klávesovou zkratkou Ctrl+S (2,3 krok stejný se způsobem z roletové nabídky).
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 6 z 26
4.1.5. Programovací bloky Programovací bloky jsou rozděleny na tři části: • • •
Common - obsahuje nejpoužívanější bloky, je přednastaven jako výchozí Complete - obsahuje všechny programovací bloky Custom - zde jsou osobně vytvořené bloky a bloky stažené z webu
4.1.5.1. Jednotlivé programovací bloky - Common A. Move blok - Uvádí motory do pohybu, zapíná světla.
Obr.9: Ikona a blok se symboly
Konfigurační panel bloku:
Obr.10: Konfigurační panel bloku
1) Výběr portů, do kterých budou připojeny motory. Pokud vyberete dva porty, jako je na obrázku, tak motory zapojené do těchto portů budou synchronizované. Pokud vyberete tři porty, tak budou synchronizované v portech B a C. 2) Výběr směru otáčení motoru – dopředu, dozadu, zastavení s resetováním motoru. 3) Vyberte příslušné porty motorů a posuvníkem nastavíte zakřivení dráhy při otáčení. 4) Nastavení výkonu motoru pomocí posuvníku nebo přímo napsáním hodnoty do textového pole. 5) Nastavení trvání otáčeni motoru – neomezené, čas v sekundách, počet celých otáček nebo úhel natočení. 6) Výběr, zda budou motory zabrzděny, nebo poběží dál po dokončení jejich akce 7) Zde se zobrazuje o kolik stupňů nebo otáček se motor otočil. Stiskem resetovacího tlačítka dojde k vynulování hodnot. 2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 7 z 26
B. Record/Play blok - Umožňuje robota naprogramovat fyzickým pohybem a nahraný pohyb zopakovat.
Obr. 11: Ikona a blok se symboly
Konfigurační panel v režimu nahrávání:
Obr.12: Konfigurační panel bloku
1) Textové pole pro pojmenování nahraného pohybu. 2) Výběr portů s připojenými motory, u kterých má být zaznamenám pohyb. 3) Nastavení doby zaznamenávání pohybu ve vteřinách. Konfigurační panel v režimu přehrávání:
Obr.12: Konfigurační panel bloku v režimu nahrávání
1) sem napsat název nahrané akce a soubory, které byly uloženy v NXT kostce.
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 8 z 26
C. Sound blok - možňuje přehrát zvuky z NXT kostky.
Obr.13: Ikona a blok se symboly
Obr.14: Konfigurační panel bloku v režimu nahrávání
1) Výběr mezi přehráním zvukového souboru nebo tónu. 2) Výběr mezi přehráváním nebo zastavení přehrávání zvukového souboru nebo tónu. 3) Nastavení hlasitosti pomocí posuvníku nebo napsáním přesné hodnoty do textového Pole. 4) Umožní přehrávání zvukového souboru pořád dokola znovu a znovu. Funkce „Wait for completion“ bude zašedlá a nedostupná. 5a) Abecední seznam zvukových souborů, které jsou uloženy na pevném disku ve složce Sound Files programu LEGO MINDSTORMS NXT. 5b) Je zde malá klávesnice představující tři oktávy na hudební stupnici. Textové pole nad klávesnicí zobrazuje notu, kterou jste stiskli na klávesnici pomocí myši nebo napsali z klávesnice. Dále je zde textové pole pro nastavení doby přehrávání tónu. 6) Při zaškrtnutí bude následující blok vykonán až po přehrání celého zvukového souboru. Při nezaškrtnutí bude zvukový soubor hrát, zatímco pokračuje další blok.
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 9 z 26
D. Display blok – Slouží k zobrazení textu, ikon, vytvořených obrázků na displeji NXT kostky.
Obr.15: Ikona a blok se symboly
Konfigurační panel:
Obr.16: Konfigurační panel bloku
1) Rozbalovací menu pro výběr obrázku, textu, vlastní kresby nebo resetování displeje. 2) Při zatržení volby „Clear“ bude smazán obsah displeje NXT kostky. 3a) Seznam obrázků, které mohou být zobrazeny na displeji. Při kliknutí na název obrázku bude v sekci Position ukázán náhled. Obrázky jsou uloženy na pevném disku ve složce Image Files programu LEGO MINDSTORMS. 4a) Náhled na obrázek, jak bude umístěn na displeji NXT kostky. Pomocí myši můžete upravit umístění obrázku. Přesné nastavení pozice umožňují textová pole „X“ a „Y“. Pokud napíšete souřadnice (x,y)=(0,0), tak obrázek bude umístěn na levé a spodní hraně obrazovky. Konfigurační panel – text:
Obr.17: Konfigurační panel bloku
3b) Textové pole pro vložení textu, který bude zobrazen na displeji 4b) Rozbalovací menu umožňuje zvolit číslo řádku, kde bude umístěn text. Přesnou startovní pozici textu lze nastavit textovými poli „X“ a „Y“. Pro souřadnice (x,y)=(0,0) bude text začínat v levém dolním rohu. 2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 10 z 26
Konfigurační panel – drawing:
Obr.18: Konfigurační panel bloku
3c) Rozbalovací menu pro výběr typu tvaru, který budete chtít nakreslit. Na výběr je tečka, čára nebo kružnice. 4c) Pokud si vyberete kreslení tečky, tak vstupní textová pole „X“ a „Y“ určují pozici tečky na obrazovce. Napsáním souřadnic (x,y)=(0,0) bude tečka umístěna v levém dolním rohu. Pokud vyberete kreslení čáry, tak se objeví další dvě vstupní textová pole, kde můžete nastavit umístění koncového bodu čáry. Startovní bod čáry by měl být definován v horních „X“ a „Y“ souřadnicích a koncový bod ve spodních „X“ a „Y“ souřadnicích. Pokud vyberete kreslení kružnice, tak se objeví doplňkové vstupní textové pole pro definování poloměru kružnice. Souřadnice „X“ a „Y“ definují umístěni středu kružnice na obrazovce.
E. Wait blok - Donutí robota čekat, dokud není splněna podmínka, následující blok je vykonán po splnění stanovené podmínky.
Obr.19: Ikona a blok se symboly
Obsahuje 5 bloků – čekání podle toho jaký je: • Výstup časovače - Timer • Výstup dotykového senzoru - Touch • Výstup světelného senzoru - Light • Výstup zvukového senzoru - Sound • Výstup ultrazvukového senzoru – Distance Pokud vyberete Touch sensor, tak program bude čekat, dokud nebude dotykový senzor stlačený, uvolněný nebo rychle stlačený/uvolněný a pak bude vykonán další blok programu.
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 11 z 26
Konfigurační panel – Touch:
Obr.20: Konfigurační panel bloku – Wait-Touch
1. Výběr portu, do kterého je senzor připojen v NXT kostce 2. Výběr podmínky, při jejichž 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ý 3. Textové pole zajišťující zpětnou vazbu při testování dotykového senzoru. Pokud je senzor aktivní, bude zde zobrazeno číslo 1. Zbylé Wait bloky fungují obdobným způsobem a podobné je i nastavení jejich konfiguračních panelů. Pokud jste na programovací plochu umístili špatný Wait blok, můžete to napravit následovně: V sekci Control je roletové menu pro výběr mezi volbou Sensor a Time. Pokud zvolíte možnost Sensor, tak v sekci Sensor si pomocí roletového menu můžete vybrat požadovaný typ senzoru, který bude spouštěcím prvkem. Jak je vidět z obrázku níže, k dispozici je mnohem více senzorů než z bloku Common.
Obr.21: Volba senzoru
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 12 z 26
F. Loop blok - Vytvoří programovou smyčku (cyklus) pro opakování určité sekvence programového kódu. Délka opakování závisí nsa nastavené podmínce.
Obr.22: Ikona a blok se symboly – nekonečné opakování
Nebo, pokud je nastaveno řízení doby trvání smyčky pomocí dotykového senzoru, vypadá blok takto:
Obr.23: cyklus s podmínkou na konci
Ukončení smyčky mohou být následující: • nekonečná smyčka • vstup senzoru • uplynulý čas • počet opakování • logický signál Konfigurační panel je obdobný jako u bloku Wait. Nastavíte podmínku, a když bude splněna, tak bude smyčka ukončena. Na rozdíl od Wait bloku je zde možnost zaškrtnout funkci „Counter“. Která když bude aktivní, tak se objeví zástrčka, z které budete moci přenést číslo představující počet dokončených smyček do jiného programovacího bloku.
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 13 z 26
G. Switch blok - Jedná se o rozhodovací blok (podmínka). Když je splněna první podmínka, provede se něco, když je splněna druhá podmínka, provede se něco jiného. Takto např. vypadá blok na ploše, pokud rozhodování je ovlivněno stavem dotykového senzoru.
Obr.24: Ikona a blok se symboly
Nastavení podmínek je opět podobné jako u Wait nebo Loop bloku. V konfiguračním panelu máte v sekci Control k dispozici rozbalovací menu s výběrem mezi dvěma možnostmi pro rozhodování: • Pomocí hodnoty - Value – Může se jednat o typ číslo, text nebo logická hodnota • Pomocí senzoru - Sensor – Nastavení obdobné jako u bloku Wait a Loop Ovládání konfiguračního panelu je velmi jednoduché a intuitivní a na možnosti nastavení přijdete určitě už sami.
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 14 z 26
4.1.5.2. Jednotlivé programovací bloky - Complete Complete blok obsahuje všechny programovací ikony. Obsahuje šest sekcí: A. Common bloky B. Action bloky C. Sensor bloky D. Flow bloky E. Data bloky F. Advanced bloky
A. Common bloky - jsou shodné se sekcí Common. B. Action bloky - umožňují ovládat chování výstupních zařízení. Obsahuje: • interaktivní servomotory • NXT reproduktor • NXT displej • Bluetooth odeslání • svítidla
Obr.25: Rozvinutý blok
C. Sensor bloky - kombinací těchto ikon se senzory lze ovládat chování robota. Obsahuje: • dotykový senzor • zvukový senzor • světelný senzor • ultrazvukový senzor • NXT tlačítka • otáčení servomotorů • časovače • Bluetooth příjem • volitelný teplotní senzor
Obr.26: Rozvinutý blok
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 15 z 26
D. Flow bloky - Umožňují vytvářet více komplexní chování Obsahuje: • čekání • opakování • rozhodování • zastavení určité činnosti
Obr.27: Rozvinutý blok
E. Data bloky - slouží k nastavení a provádění logických a matematických operací. Obsahuje: • Booleovskou logiku, • matematiku • porovnání rozsahu • generátor náhodných čísel • proměnné • konstanty
Obr.28: Rozvinutý blok
F. Advanced bloky - jsou určeny ke specializovaným funkcím. Obsahuje: • konvertování dat na text • přidání textu • ovládání funkce sleep na NXT kostce • ukládání souborů do NXT kostky • kalibraci senzorů • resetování motorů • zahájení záznamu dat • ukončení záznamu dat • připojení pomocí Bluetooth
Obr.29: Rozvinutý blok
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 16 z 26
4.1.5.3. Jednotlivé programovací bloky - Custom Obsahují dvě sekce: A. My blocks B. Web downloads
A. My blocks – zde se nachází bloky, které jste sami vytvořili.
Obr.30: Ikona - My blocks
B. Web downloads – zde jsou bloky, které jste stáhli z portálu nebo webových stránek.
Obr.31: Ikona - My blocks
Vytvoření Custom bloků bude popsáno v další kapitole.
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 17 z 26
4.1.6. Obecné zásady programování v NXT – G. Bloky z programovací palety lze přemísťovat 2 způsoby: • první způsob: o najeďte kurzorem myši nad blok o stiskněte a držte levé tlačítko myši o najeďte na místo, kam chcete blok umístit o pusťte tlačítko myši • druhý způsob: o klikněte na blok o najeďte na požadované místo o tam klikněte První blok se vždy umísťuje na programovací ploše do místa, kde je napsáno „Start“. Sekvenční paprsek Startovní bod
Obr.32: počátek programu
Toto místo je spojeno pomocí vodorovného bílého „výběžku“ s bodem, kde je zobrazena ikona programu NXT a tento bod se nazývá „startovní bod“. Ze startovního bodu vychází celkem tři bílé „výběžky“, nazývají se Sequence beams – „sekvenční paprsky“. Sequence beam – „sekvenční paprsek“: • řídí tok vašeho programu • určuje pořadí, v jakém budou jednotlivé bloky vykonány • do NXT kostky budou staženy jen ty bloky, které jsou spojeny „sekvenčním paprskem“, který vychází ze startovního bodu • jsou dva druhy „sekvenčních paprsků“: o hlavní o vedlejší
Hlavní paprsek Vedlejší paprsek
Obr.33: sekvenční paprsek
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 18 z 26
4.1.6.1 Vytvoření paralelní větve v programu Postup chcete-li vytvořit paralelní větev: • najeďte kurzorem myši na místo, které je v následujícím obrázku označeno modře. • poté co se šipka myši změní v takový „svazek drátu“ • klikněte levým tlačítkem myši • nyní jste v režimu vytváření nového „sekvenčního paprsku“ a můžete přesunout kurzor myši na místo, které je v obrázku označeno červeně • zde klikněte a máte vytvořenou paralelní větev programu • Pozn.: Paralelní větev umožňuje programu současné vykonávání bloků.
Obr.34: bod připojení bloku
Paralelní větev nemusíte vytvářet jen ze „startovního bodu“ ale z jakéhokoliv místa „sekvenčního paprsku“ Máme například takovéto uspořádání bloků a chceme vytvořit paralelní větev: • Najeďte kurzorem myši na místo označené v obrázku modře a šipka se změní v oboustrannou šipku • stiskněte a držte klávesu Shift • oboustranná šipka se změní ve „svazek drátu“ • klikněte levým tlačítkem myši a dostanete se do režimu vytváření nového „sekvenčního paprsku“ • přesuňte se na místo, které je na obrázku označeno červeně, a tam klikněte, pusťte klávesu Shift a je hotovo.
Obr.35: bod připojení bloku
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 19 z 26
4.1.6.2 Smazání bloku z programovací plochy Pokud chcete blok odstranit z programovací plochy, tak postupujte následovně: • klikněte na příslušný blok nebo na něj jen najeďte kurzorem myši a po asi jedné sekundě bude vybrán – obvod bloku bude zvýrazněn modrou barvou • pak již stačí stisknout klávesu Delete a blok bude smazán z programovací plochy
4.1.6.3 Přesun bloku po programovací ploše Bloky lze jednoduše přesouvat po programovací ploše: • najeďte kurzorem myši na programovací blok • stiskněte a držte levé tlačítko myši • přesuňte se na místo, kam chcete blok umístit a pusťte tlačítko myši
4.1.6.4 Data hubs Data hub je funkcionalita, s kterou přichází většina programovacích bloků. Postup na rozbalení Data hub nabídky: • umístěte blok na programovací plochu • přesuňte kurzor myši na blok do místa, jako je uvedeno na obrázku níže, aby se objevila oboustranná šipka a klikněte • rozbalí se Data hub nabídka se vstupními zástrčkami na levé straně.
Obr.36: Move block před a po rozbalení
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 20 z 26
Pokud najedete kurzorem myši nad zástrčku, tak se šipka změní ve „svazek drátu“. Vytváření datových spojení lze po kliknutí přejdete do režimu vytváření datového spojení a můžete tak vytvořit spojení z výstupní zástrčky jednoho bloku do vstupní zástrčky druhého bloku. Datovým spojením lze přenášet informaci ve formě čísla, textu nebo logické hodnoty. Správně vytvořené spojení je znázorněno plnou čarou. Nesprávně vytvořené spojení je znázorněno tečkovanou šedou čarou. Barvy čar: • Žlutá – data ve formě čísla • Oranžová – data ve formě textu • Zelená – data ve formě logických hodnot
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 21 z 26
4.1.7. Tvorba vlastních bloků My block builder je funkcionalita, která vám dovoluje označit skupinu bloků na programovací ploše a sloučit je do jednoho bloku. Pro nový blok si můžete nastavit vlastní vzhled a po dokončení ho budete moci najít na paletě Custom pod ikonou My blocks. Například můžete vytvořit vlastní blok, který se bude jmenovat „Pohyb robota“. Tento blok vznikne sloučením bloku Move, který bude řídit pohyb robota a bloku Sound, kdy robot bude vydávat nějaký zvuk při svém pohybu. To vám usnadní práci, pokud budete chtít u jiných robotů naprogramovat tu samou činnost. Vše budete mít nastavené a vy jen blok přetáhnete z palety Custom na programovací plochu. V podstatě vytvoříte podprogram (funkci), kterou můžete používat stále dokola.
4.1.7.1 Vytvoření vlastního bloku 1. nejprve na programovací plochu umístěte bloky, které logicky patří k sobě. 2. vyberte bloky tak, že umístíte kurzor myši do jednoho rohu pomyslného obdélníku, který bude obklopovat všechny bloky, které chcete sloučit. Podržte stisknuté tlačítko myši a přejeďte kurzorem myši do protějšího rohu pomyslného obdélníku tak, aby byly ohraničeny všechny požadované bloky. Po uvolnění tlačítka myši by měly být všechny bloky, které budou tvořit nový blok, označeny. Poznáte to tak, že hrany bloků budou zbarveny modře. Pamatujte si, že výběr, který bude zahrnovat bloky jen částečně, způsobí také jejich označení. Výběr bloků do sloučení do jednoho bloku můžete vidět na obrázku.
Obr.37: označené bloky
3. Pokud se vám povedlo bloky označit, tak klikněte na roletovou nabídku Edit a poté klikněte na podnabídku Make a New My Block. Zobrazí se okno průvodce My Block Builder. Toto okno můžete také otevřít klinutím na tlačítko, které je první zleva na liště s tlačítky pro rychle spuštění. 4. V sekci Block Name je textové pole, kam napište název vašeho nového bloku. V další sekci, která je pojmenována Block Description, se nachází textové pole, kde můžete napsat krátký popis, co váš nový blok dělá. Poslední sekce Selected Blocks vám ukazuje bloky, které jste vybrali.
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 22 z 26
Obr.38: My Block Bulder - bloky
5. Klikněte na tlačítko Next a přejdete k návrhu ikony nového bloku. Přetažením můžete dostat jednu nebo dvě ikony ze sekce Icons do editovací oblasti v sekci Icon Builder. Klávesovými šipkami lze doladit umístění ikony (nebo ikon) do finální pozice. Velikost ikony v editovací oblasti změníte tak, že kurzor myši přesunete na jeden z jejích rohů, kde je černý obdélníček. Stiskněte a držte levé tlačítko myši. Pohybem myši upravujete velikost ikony. Napravo od editovací oblasti je ukázán náhled, jaký bude vzhled vašeho nového bloku.
Obr.38: My Block Bulder - ikony
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 23 z 26
6. Kliknutím na tlačítko Finish dokončíte tvorbu vašeho nového bloku a na programovací ploše se již bude nacházet vámi vytvořený blok. Když byste chtěli blok například využít v jiném programu, tak ho najdete na programovací paletě v záložce Custom pod ikonou My Blocks. Je dobré si uvědomit, že každé vstupní a výstupní datové spojení, které překročilo pomyslný obdélník při výběru bloků, bude tvořit vstupní a výstupní zástrčku na v Data hub nabídce nového bloku. Pokud chcete změnit dispozice zástrček u nového bloku, tak ho budete muset vytvořit znovu, ale tentokrát se správnými zástrčkami a tomu odpovídající datová spojení, která vychází z oblasti výběru pomyslným obdélníkem.
4.1.7.2. Úprava vytvořeného bloku Když byste chtěli změnit obsahu vašeho vytvořeného bloku, tak to provedete tak, že na něj na programovací ploše dvakrát kliknete nebo ho označíte kliknutím na něj a z roletové nabídky Edit vyberete podnabídku Edit Selected My Block. Pokud chcete změnit pouze vzhled programovacího bloku, tak na něj na programovací ploše klikněte. Pak z roletové nabídky Edit vyberte podnabídku Edit My Block Icon. Tím se spustí My block Builder, kde můžete provést změny.
4.1.7.3. Správa palety Custom Pro správu Custom palety je potřeba vykonat následující kroky: 1. Klikněte na roletovou nabídku Edit a vyberte podnabídku Manage Custom Palette. 2. Tím otevřete okno s adresářovou strukturou vašeho počítače a budete se nacházet ve složce Blocks, kde jsou dvě podsložky My Blocks a Web Blocks. Do složky My Blocks si můžete přidat bloky, které jste například od někoho obdrželi. Zároveň je zde také můžete smazat. 3. Když byste chtěli změnit obsahu vašeho vytvořeného bloku, tak to provedete tak, že na něj na programovací ploše dvakrát kliknete nebo ho označíte kliknutím na něj a z roletové nabídky Edit vyberete podnabídku Edit Selected My Block. 4. Pokud chcete změnit pouze vzhled programovacího bloku, tak na něj na programovací ploše klikněte. Pak z roletové nabídky Edit vyberte podnabídku Edit My Block Icon. Tím se spustí My block Builder, kde můžete provést změny. V paletě Custom se nachází dvě předdefinované podsekce My Blocks a Web Downloads. Vy máte možnost vytvořit vlastní podsekci a to tak, že ve složce Blocks vytvoříte novou složku. Máte možnost změnit vzhled vlastní podsekce tak, že do nově vytvořené složky, která odpovídá nové podsekci, umístíte dva obrázkové soubory s příponou PNG (Portable Network Graphics) o rozměrech 45x45 pixelů. První soubor musí být pojmenován PaletteIcon.png a druhý PaletteIconHilight.png. Pro specifikování nápovědy, která se zobrazí při najetí kurzoru myši nad novou podsekci, je potřeba do stejné složky umístit textový soubor s názvem PaletteIcon.txt, který bude obsahovat text nápovědy.
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 24 z 26
4.1.8. Práce s proměnnými Proměnou si můžete představit jako místo pro uložení hodnoty ve vestavěné paměti NXT kostky. Programovací bloky mohou přečíst, ale i měnit proměnnou aktuální hodnotu připojením k bloku s datovými spojeními.
4.1.8.1. Vytvoření proměnné Chcete-li vytvořit proměnnou: 1. Musíte kliknout na roletovou nabídku Edit a vybrat podnabídku Define Variable. Otevře se okno, které má název Edit Variables. V sekci List je uvedeno jméno a typ předdefinovaných proměnných. Pro vytvoření nové proměnné klikněte na tlačítko Create a získáte, přistup do sekce Name. Kde do textového pole napište název nové proměnné a v sekci Data Type vyberte z roletového seznamu typ proměnné. Proměnná může být typu text, číslo nebo logická. 2. Přetáhněte Variable blok z programovací palety na programovací plochu. V konfiguračním panelu v sekci List kliknutím vyberte proměnnou, kterou budete chtít použít. 3. V sekci Action můžete vybrat čtení – Read nebo zápis – Write do proměnné. Výběrem možnosti Write lze v průběhu času měnit hodnotu proměnné přepsáním její aktuální hodnoty novou informací. Pokud to chcete udělat, tak musíte vytvořit datové spojení do vstupní zástrčky v data hub nabídce, které přinese nové informace. Pokud chcete pouze číst konstantní hodnotu z bloku Variable, tak v sekci Action vyberte možnost Write, aby se vám zpřístupnila sekce Value, kde pomocí šipek nahoru nebo dolů můžete nastavit požadovanou číselnou hodnotu. Když nechcete klikat na šipky, tak stačí kliknout do textového pole a požadovanou hodnotu napsat přímo z klávesnice. Pokud se jedná o proměnnou typu text, tak do textového pole napíšete požadovaný text a v případě logické proměnné vyberete přepínačem hodnotu True - pravda nebo False – nepravda. Pak již stačí zpátky přepnout na možnost Read. Dejte si pozor, když by bylo do vstupní zástrčky připojeno datové spojení a Variable blok by měl nastavenou akci Read, tak nové informace, které by přicházely datovým spojením, by měly přednost před jakoukoliv konstantní hodnotou.
4.1.8.1. Použití proměnné Hodnota proměnné se může měnit v průběhu času. Například chcete vytvořit proměnnou „Úroveň osvětlení“ a nastavíte jí počáteční hodnotu 50. Potom váš robot, který je vybaven světelným senzorem, přijede na určité místo a zde zaznamená úroveň osvětlení. Nabízí se zde příležitost využití bloku Variable, který musí být nastaven v režimu Write. Aby se do něj nahrála aktuální hodnota osvětlení v tom daném místě, tak musí být vytvořeno datové spojení z výstupní zástrčky bloku Light sensor do vstupní zástrčky bloku Variable. Později ve vašem programu budete moci použít Variable blok, který musí být nastaven v režimu Read a pomocí datového spojení mezi výstupní zástrčkou a vstupní zástrčkou jiného bloku budete moci přistoupit k nahrané hodnotě úrovně osvětlení. Data hub nabídky bloku Variable se rozbalí automaticky, když je umístěn na programovací plochu. Pokud chcete přečíst aktuální hodnotu z bloku, tak musíte vytvořit datové spojení z výstupní zástrčky. Když budete chtít zapsat novou informaci do proměnné, tak musíte vytvořit spojení do vstupní zástrčky bloku Variable.
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 25 z 26
Literatura: Monografie: [1] KELLY, James Floyd. LEGO® MINDSTORMS® NXT – G Programming Guide. [s.l.] : Apress, 2007. 196 s. ISBN 1590598717, ISBN-13: 978-1590598719. [2] ASTOLFO, Dave; FERRARI, Mario; FERRARI, Giulio. Bulding Robots With Lego® Mindstorms® NXT.Burlington (Massachusetts) : Syngress, 2007. 448 s. ISBN 1597491527, ISBN-13: 978-1597491525. [3] GASPERI, Michael; HURBAIN, Philippe E.; HURBAIN, Isabelle L. Extreme NXT: Extending the LEGO® MINDSTORMS® NXT to the Next Level. [s.l.] : Apress, 2007. 312 s. ISBN 1590598180, ISBN-13: 978-1590598184. Bakalářské práce: [4] TROJÁNEK Pavel: Využití robota LEGO MINDSTORMS při výuce. Praha, 2009. 94 s. Bakalářská práce. České vysoké učení technické v Praze, Fakulta elektrotechnická, katedra řídící techniky. [5] MAREK Jaroslav: Návod na programování v NXT-G. Praha 2010, 32 s. Bakalářská práce. České vysoké učení technické v Praze, Fakulta elektrotechnická, katedra řídící techniky. Internetové odkazy: [6] The NXT STEP - LEGO® MINDSTORMS® NXT blog : Home [online]. c2006 [cit. 2010-05-15]. Dostupné z WWW:
[7] MINDSTORMS.LEGO.com : Home [online]. c2010 [cit. 2010-05-15]. Dostupné z http://mindstorms.lego.com/en-us/whatisnxt/default.aspx [8] www.robosoutez.cz\files/Navod_na_NXT-G.pdf Ostatní: [9] LEGO® MINDSTORMS® Education. NXT 2.0 Programming Help, 2008 [10] LEGO® MINDSTORMS® Education. NXT 2.0 UserGuide, 2008 LEGO®
2015 SPŠEIT Brno
41_LEGO_Programové_prostředí // Stránka 26 z 26