DUM č. 20 v sadě. 29. Inf-5 RoboLab a Lego Mindstorms

Podobné dokumenty
DUM č. 13 v sadě. 29. Inf-5 RoboLab a Lego Mindstorms

Prezentace a vysvětlení programového prostředí NXC

DUM č. 5 v sadě. 30. Inf-6 Imagine Logo a animace pro nižší gymnázium

DUM č. 11 v sadě. 30. Inf-6 Imagine Logo a animace pro nižší gymnázium

Programování Lego robotů

DUM č. 9 v sadě. 30. Inf-6 Imagine Logo a animace pro nižší gymnázium

Programování LEGO robotů pomocí NXC

Programování v C++ 1, 1. cvičení

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Programování LEGO robotů pomocí NXC

ÚKOLOVÝ LIST. Aktivita projektu Obloha na dlani - Laboratoř vědomostí ROBOT NA PÁSOVÉM PODVOZKU

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

METODICKÝ LIST K TECHNICKÉMU KROUŽKU:

8 Třídy, objekty, metody, předávání argumentů metod

Operační systémy. Cvičení 4: Programování v C pod Unixem

Učivo: Detailnější zopakování používání některých částí uživatelského rozhraní LEGO MINDSTORMS NXT Paleta programování

LEGO Mindstorms Education NXT. Projekt Lego ve výuce informatiky a fyziky. Robotika 1. Mgr. Radoslav Jirásek RNDr. Jitka Jirásková Mgr.

4. Optické senzory polohy

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Název: Dráha a rychlost pohybu robota I. Tematický celek: Pohyb těles

METODICKÝ LIST K TECHNICKÉMU KROUŽKU:

PROGRAMOVÁNÍ V C++ CVIČENÍ

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ MEIV Souborná činnost na složitých elektronických zařízeních zaměřená na servisní a profesní působení studenta

METODICKÝ LIST K TECHNICKÉMU KROUŽKU:

PROGRAMOVÁNÍ LEGO MINDSTORMS EV3

Zápis programu v jazyce C#

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

METODICKÝ LIST 1. Název výukové aktivity (tématu): 2. Jméno autora: Ing. Petr Hořejší, Ph.D., Ing. Jana Hořejší 3. Anotace:

ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA PEDAGOGICKÁ KATEDRA TECHNICKÉ VÝCHOVY

4. Optické senzory polohy A3B38SME. 4. Optické senzory

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

METODICKÝ LIST K TECHNICKÉMU KROUŽKU:

Algoritmizace a programování

Metodické pokyny k materiálu č. 35 Mobilní robot III - Závodní auto (STAVBA)

6. Příkazy a řídící struktury v Javě

METODICKÝ LIST K TECHNICKÉMU KROUŽKU:

METODICKÝ LIST K TECHNICKÉMU KROUŽKU:

Jazyk C++, některá rozšíření oproti C

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ MEIV Souborná činnost na složitých elektronických zařízeních zaměřená na servisní a profesní působení studenta

Řízení robota senzorem teploty II. Tematický celek: Termodynamika. Komplexní úloha - 2. část:

Metodické pokyny k materiálu č. 39 Mobilní robot III - Závodní auto - Dálkové ovládání 1 (PROGRAM 1)

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

DUM 06 téma: Tvorba makra pomocí VBA

Název projektu: Život s počítačem. Číslo projektu: OPVK.CZ.1.07/1.2.32/

METODICKÝ LIST. Výklad: Seznámení se se stavebnicí, ukázky jiných projektů a možností stavebnice

Řešení sady 1. Úvod do programování 1 Tomáš Kühr

Úvod do programovacích jazyků (Java)

2 Datové typy v jazyce C

Robot Lego Mindstorms NXT doplněný o kamerku a software v jazyce C#

Odvozené a strukturované typy dat

Algoritmizace a programování

- jak udělat konstantu long int: L long velka = 78L;

Název: Řízení pohybu robota ultrazvukovým a tlakovým senzorem I.

SEMINÁŘ ROBOTIKA. LEGO Roboti a jejich programování (teoretická a praktická část) Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond

Programovací jazyk C++ Hodina 1

Open Roberta Lab. Jan Preclík 1

IUJCE 07/08 Přednáška č. 1

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Řada programovacích jazyků nabízí prostředky pro řešení meziprocesové komunikace jako je synchronizace a řízení přístupu do kritické sekce.

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

DUM č. 4 v sadě. 11. Fy-2 Učební materiály do fyziky pro 3. ročník gymnázia

Programovací jazyk C(++) C++ area->vm_mm->locked_vm -= len >> PAGE_SHIFT;

NPRG031 Programování II --- 2/2 Z, Zk

Název projektu: Život s počítačem. Číslo projektu: OPVK.CZ.1.07/1.2.32/

Pole a Funkce. Úvod do programování 1 Tomáš Kühr

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Úvod do programování - Java. Cvičení č.4

Cvičení 9 - Monitory. monitor m; var proměnné... procedure p; begin... end; begin inicializace; end;

Sada 1 - Základy programování

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Lekce 6 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) %

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

IAJCE Přednáška č. 6. logický celek, řešící dílčí část problému Příklad velmi špatného zápisu programu na výpočet obsahu obdélníku

ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA PEDAGOGICKÁ KATEDRA TECHNICKÉ VÝCHOVY

P EHLED FUNKCÍ BRICX. Jan Mare²

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

LEGO Mindstorms Education NXT. Projekt Lego ve výuce informatiky a fyziky. Robotika 2. Mgr. Radoslav Jirásek RNDr. Jitka Jirásková Mgr.

Jazyk C# a platforma.net

1. Téma 03 - Rozhodování

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

Programování v jazyce C pro chemiky (C2160) 6. Funkce, struktury

Studentská tvůrčí a odborná činnost STOČ 2015

Využití stavebnice Lego při výuce

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

URČITÝM ZPŮSOBEM PODOBNÉ

Cvičení č. 2. Komunikace mezi procesy Program Hodiny. 4 body

Úvod do programování. Lekce 1

Opakování programování

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

C++ objektově orientovaná nadstavba programovacího jazyka C

Transkript:

projekt GML Brno Docens DUM č. 20 v sadě 29. Inf-5 RoboLab a Lego Mindstorms Autor: Hana Křetínská Datum: 25.06.2014 Ročník: 1AV, 2AV, 3AV, 4AV, 5AV Anotace DUMu: Výuka robotiky a programování pomocí stavebnice Lego a programu Lego Mindstorms a programování v prostředí BricxCC. Sestavení robotků z Lega a jejich programování na počítači pro žáky 2. stupně ZŠ a první a druhý ročník čtyřletého gymnázia. Lego Mindstorms a funkce v NXC. Materiály jsou určeny pro bezplatné používání pro potřeby výuky a vzdělávání na všech typech škol a školských zařízení. Jakékoliv další využití podléhá autorskému zákonu.

20. Lego Mindstorms a funkce v NXC Funkce v NXC Funkce v NXC mají za úkol provést nějakou akci s návratovou hodnotou. Seznam argumentů může být prázdný nebo může obsahovat jeden a více argumentů, které jsou od sebe odděleny čárkou. Argument je představován typem a jménem proměnné. Proměnná může být typu bool, char, byte, int, short, long, unsigned int, float, strings, struct typy nebo array. Deklarace fcí je před task main(). Příklad funkce, která nemá žádný vstup a výstupem je proměnná typu int: int cislo() int x = 1; return x; Pro volání funkce použijeme příkaz: int a = cislo(); Po spuštění programu v NXT kostce se provede volání fce cislo a výsledná hodnota se přiřadí do proměnné a. Hodnota proměnné a =1 se zobrazí na displeji na druhém řádku. Příklad funkce, která má dva vstupní parametry a výstupem je proměnná typu int: int soucin(int x, int y) // funkce typu int se dvěma parametry

return x*y; // návratová hodnota Po zavolání funkce se na displeji objeví součin dvou parametrů 10 a 20 v závorce funkce: NumOut(0, LCD_LINE2, soucin(10,20)); Příklad funkce, která má dva vstupní parametry a nemá žádnou návratovou hodnotu (procedura): void vypissoucin(int x, int y) // funkce se dvěma parametry bez návrat. hodnoty NumOut(0, LCD_LINE2, x*y;); Volání funkce se dvěma parametry: vypissoucin(10,20); //volání fce

Po spuštění programu a zavolání funkce se na displej vypíše hodnota 20. Některé další příkazy Jazyka NXC Příkaz SWITCH: switch (proměnná) case 5: //je-li hodnota proměnné 5, vykoná se následující příkaz a = 5; break; case 1: case 2: //je-li hodnota proměnné 1 nebo 2, vykoná se následující příkaz a = 1; break; deafult: // je-li hodnota proměnné jiná než 5,1,2, vykoná se následující příkaz a = 10; break; Okamžité zastavení motoru příkazem Off(název konektoru): OnFwd(OUT_A,100); Wait(500); Off(OUT_A); //motor okamžitě zastaví (brzda) Pozvolné zastavení motoru se samovolným dotočením příkazem Coast(název konektoru) OnFwd(OUT_A,100); Wait(500); Coast(OUT_A); //motor pozvolna zastaví

Pootočení motoru Přesně specifikovaný pohyb pootočením motoru o určitý úhel příkazem RotateMotor(název konektoru,síla,úhel). Motor připojený na konektor se bude otáčet silou o úhel. RotateMotor(OUT_A,60,90); 1 Využití pootočení motoru s mechanickou rukou Synchronizace motorů Pokud aplikace vyžaduje souběžný chod motorů a každá baterie je jinak nabitá, je nutné motory synchronizovat příkazem OnFwdSync(název konektoru,síla,rozdíl), Vstupní parametr rozdíl definuje rozdíl mezi jednotlivými motory. OnFwdSync(OUT_AB,75,-100); //robot by zatáčel vpravo OnRevSync(OUT_AB,75,-100); // robot by zatáčel vlevo Snímač otáček Motor může fungovat jako snímač otáček příkazem MotorTachoCount(název konektoru) Pro vymazání příkaz ResetTachoCount(název konektoru) int pocidadlo; ResetTachoCount(OUT_A); OnFwd(OUT_A); Wait(1000); pocitadlo = MotorTachoCount(OUT_A); // pootočení Vnořování příkazů Robot objede 10 čtverců (o čtyřech stranách) // 10 čtverců #define MOVE_TIME 500

#define TURN_TIME 360 task main() repeat(10) // 10 čtverců repeat(4) // 4 strany OnFwd(OUT_AC, 75); Wait(MOVE_TIME); OnRev(OUT_C, 75); Wait(TURN_TIME); Off(OUT_AC); // Motory se zastaví Příklady použití zvukového a ultrasonického senzoru: Zvukový senzor #define THRESHOLD 40 #define MIC SENSOR_2 task main() SetSensorSound(IN_2); while(true) until(mic > THRESHOLD); OnFwd(OUT_AC, 75); Wait(300); until(mic > THRESHOLD); Off(OUT_AC); Wait(300); Ultrasonic senzor #define NEAR 15 //cm task main() SetSensorLowspeed(IN_4); while(true) OnFwd(OUT_AC,50); while(sensorus(in_4)>near); Off(OUT_AC); OnRev(OUT_C,100);

Wait(800); Úkol : Naprogramujte funkce na aritmetické operace přirozených čísel a výsledky vytiskněte na display. Zdroj obrázků: Vlastní tvorba na PC s programem Mindstorms, Bricx Command Center a vlastní fotografie.