LEGO Roboti a jejich programování (teoretická a praktická část)
Transkript
Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY SEMINÁŘ ROBOTIKA LEGO Roboti a jejich programování (teoretická a praktická část) Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Organizace robotického semináře Na začátku semestru se studenti rozdělili do malých týmů (letos po 4-5). Každému týmu byl zapůjčen set obsahující základní soupravu LEGO MINDSTORMS Education 9797, soupravu technických dílů 9648 (doplňkové pasivní díly) a síťový adaptér 9833 (viz obr. 1). Pro představu o finanční náročnosti – základní cena jednoho setu je 11.020,- Kč (viz ceník na stránkách výhradního distributora v České republice firmy EDUXE – www.eduxe.cz). Studenti v týmech (celkem bylo 8 týmů) zkonstruují ze zapůjčených souprav mobilního robota, navrhnou pro něj řízení a naprogramují ho tak, aby splnil zadanou a dobře kontrolovatelnou úlohu. Ta musí být atraktivní pro širší publikum, přiměřeně náročná a přitom musí umožnit jednoznačně určit vítěze v závěrečné soutěži. Obr. 1 Základní souprava LEGO MINDSTORMS Education 9797, souprava technických dílů 9648 a síťový adaptér 9833 Základním prvkem soupravy LEGO MINDSTORMS Education 9797 a současně „mozkem“ celého robota je centrální řídicí jednotka označovaná jako inteligentní LEGO® NXT kostka (viz obr. 2) s maticovým displejem 100 x 64 bodů, 4 vstupními porty pro připojení senzorů a 3 výstupními porty pro připojení servomotorů, reproduktorem s 8kHz vzorkovací frekvencí, možností bluetooth bezdrátové komunikace nebo s možností připojení ke 2.0 USB portu. Pomocí 4 tlačítek lze inteligentní kostku a připojená zařízení testovat a omezeně řídit. K inteligentní LEGO® NXT kostce lze tedy připojit 3 servomotory, které lze využít zároveň jako senzory pro měření otáček a dále pak dotykový senzor (poskytuje robotu schopnost hmatu), světelný senzor (dává robotu schopnost vidět – dokáže pasivně měřit intenzitu světla okolí nebo rozpoznávat různé barvy), zvukový senzor (pomocí tohoto senzoru robot slyší) nebo ultrazvukový senzor (umožňuje robotu orientaci v prostoru, nalézat překážky a určit vzdálenost od nich). Obr. 2 Inteligentní LEGO® NXT kostka a připojení senzorů Inteligentní NXT kostka • maticový displej 100 x 64 bodů • USB 2.0 port • Bluetooth komunikace • 4 vstupní porty (1, 2, 3, 4) • 3 výstupní porty (A, B, C) • reproduktor s 8kHz vzorkovací frekvencí Inteligentní NXT kostka Bluetooth v2.0+EDR 26 MHz 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 Interaktivní servomotor • lze využít zároveň jako senzor pro měření otáček Dotykový senzor • poskytuje robotu schopnost hmatu Ultrazvukový senzor • umožňuje robotu orientaci v prostoru, nalézat překážky a určit vzdálenost od nich Světelný senzor • dává robotu schopnost vidět – dokáže pasivně měřit intenzitu světla okolí nebo rozpoznávat různé barvy Zvukový senzor • pomocí tohoto senzoru robot slyší Co lze sestavit ze stavebnice LEGO Mindstorms NXT? Nepřeberné množství robotů … Z hlediska programovacích možností doporučujeme studentům použít jeden z následujících programovacích jazyků: 1. NXT-G – tento programovací jazyk dostal jméno z programovacího jazyka využívaného programem LabVIEW, vyvinutého firmou National Instruments, který se jmenuje pouze G. Zkratka „G“ pochází z faktu, že programovací jazyk je grafický. Programy napsané v NXT-G jsou tedy poskládané z grafických bloků pospojovaných dohromady, u kterých se nastavují jejich vlastnosti a posloupnosti. NXT-G je výsledkem práce firem LEGO a National Instruments a je základním programovacím nástrojem pro LEGO MINDSTORMS NXT. Důraz je u NXT-G kladen především na intuitivnost a jednoduchost vývojového prostředí včetně procesu programování tak, aby s robotem mohli pracovat už i žáci základních škol, kteří mají s programováním minimální zkušenosti. 2. NXC – tento textový jazyk odvozený od jazyka C běží v prostředí BricxCC na standardním firmwaru LEGO MINDSTORMS. Tato skutečnost je velmi příjemná pro ty, kteří chtějí programovat jak v NXT-G, tak v NXC, protože s každou změnou programovacího prostředí nemusí do kostky nahrávat nový firmware. Práce s jazykem zkracujícím spojení „Not eXactly C“ je velmi příjemná a programátor alespoň trochu znalý jazyka C si díky téměř stejné sémantice v tomto prostředí zvykne programovat velmi snadno. Další výhodou je, že se jedná o freewarovou aplikaci. Jako nevýhodu bych uvedl někdy nepříliš snadné debugování programů. Na rozdíl od NXT-G se jedná o čistě textové programování bez grafických prvků. 3. LeJOS-NXJ - tento programovací jazyk je šířený společností Sourceforge zdarma a je k dispozici pro operační systémy Windows, Linux a MAC OS. Díky rozšíření a znalosti jazyka Java mezi programátory si tak velká část uživatelů systému LEGO MINDSTORMS vybírá právě LeJOS NXJ s jeho rozsáhlými knihovnami, které podporují zajímavé funkce robota. Jako nevýhodu bych uvedl nutnost změny firmwaru NXT kostky, který obsahuje Java Virtual Machine a který nahrazuje standardní LEGO firmware. LEGO firmware však může být nahrán do NXT kostky zpět pomocí LEGO softwaru. Je na studentech, zda použijí jeden z námi doporučených programovacích jazyků nebo využijí jiný (např. MATLAB toolbox vyvinutý na univerzitě v Aachenu - produkt pro uživatele zvyklé programovat v Matlabu, RobotC - programovací jazyk založený na programovacím jazyku C, leJOS OSEK - programování v ANSI C/C++ nebo jiný). Řešené úlohy v probíhajícím školním roce PROJEKT Č.1 – SLEDOVÁNÍ ČÁRY Cílem studentů v této úloze bylo sestavit a naprogramovat robota tak, aby samostatně, bez jakékoliv další pomoci, projel co nejrychleji stanovenou dráhu podél černé čáry vyznačené na podložce a na konci černé čáry zastavil. Vlastního robota mohli studenti sestavit naprosto libovolně, mohli však využít pouze díly ze zapůjčených souprav. Po třech týdnech příprav, testování a ladění softwaru robotů následovala dvoukolová soutěž všech osmi týmů. PROJEKT Č.2 – BLUDIŠTĚ START/CÍL STARTOVNÍ PROSOR NEPRŮCHODNÁ OBLAST CÍLOVÝ PROSOR STĚNA Cílem studentů v této druhé úloze bylo sestavit a naprogramovat robota tak, aby samostatně, bez jakékoli další pomoci projel co nejrychleji bludištěm od jeho počátku až na jeho konec Vlastního robota mohli studenti opět sestavit naprosto libovolně, mohli však využít pouze díly ze zapůjčených souprav. Každý robot musel bludištěm projet od začátku do konce zcela samostatně (bez jakékoliv pomoci a jeho ovládání, např. externě přes bluetooth nebo hlasovými povely). V případě porušení pravidel byl tým okamžitě vyloučen ze soutěže. Minimální vzdálenost mezi dvěma libovolnými stěnami byla vždycky cca 40 cm. Všechny stěny bludiště stály kolmo ke dnu, tzn., že se tam nevyskytovaly žádné nakloněné stěny. Stěny byly rovné a nevyskytovaly se u nich žádná nepředpokládaná zahnutí. Jejich výška byla 28 cm. Čas projetí robotů se měřil pomocí dvou světelných závor umístěných ve startovacím a cílovém prostoru bludiště. Celkový rozměr bludiště byl 330 x 160 cm. Bludiště bylo postavené tak, aby nejkratší cesta mezi startovacím a cílovým prostorem nikdy nevedla zpět ke startovací linii. Průjezd vedl stále k cílovému prostoru. Volba senzorů a strategie průjezdu závisela pouze na jednotlivých týmech. Při orientaci v bludišti se roboti samozřejmě mohli dotýkat stěn. Po čtyřech týdnech příprav, testování a ladění softwaru robotů následovala opět dvoukolová soutěž všech týmů. Na základě výsledků obou projektů nejlepší dva týmy postoupily do finálové soutěže robotů, která se konala na ČVUT FEL v Praze v rámci jejich nového předmětu A3B99RO Roboti v prvním ročníku bakalářského programu Kybernetika a robotika. Finálová soutěž proběhla v pátek 11.12.2009 od 15 hodin v Zengerově posluchárně ČVUT FEL v Praze na Karlově náměstí. Pro finálovou soutěž byla vybrána úloha „BLUDIŠTĚ“. Jednotlivé týmy měly opět k dispozici základní sadu LEGO Mindstorms Education 9797 a sadu technických dílů 9648, ale cestu jak robota sestavit a naprogramovat, tu musel najít každý z týmů sám. Nejlepších osmnáct týmů z Fel ČVUT spolu se dvěma již zmiňovanými týmy robotického semináře z Gymnázia Voděradská změřilo síly v závěrečné soutěži o zajímavé ceny. Zvítězil robot, který nejrychleji samostatně projel bludištěm. Parametry bludiště se týmy dozvěděly teprve hodinu a půl před akcí, aby mohly doladit programy svých mobilních robotů. Při dvoukolovém klání týmů došlo jak na potlesk za úspěšné absolvování dráhy, tak na výbuchy smíchu při bezradnosti robota v rozích bludiště, nebo i na zklamání při nedokončení průjezdu. Ani jeden z týmů se neztratil ve velké konkurenci týmů z FEL ČVUT. Lepší z týmů Robíci se nakonec umístil na skvělém devátém místě s časem 21,872s. Druhý tým Traktoristi se pak umístil na dvanáctém místě s časem 27,183s. Jenom pro zajímavost, celkovým vítězem se stal tým Cencuľe s neuvěřitelným časem 11,455s. Použité zdroje a literatura • http://www.sps-pi.cz/sps • http://mindstorms.lego.com • www.eduxe.cz – informace o LEGO mindstorms (návody na stavbu, řešené úlohy atd.) • support.dce.felk.cvut.cz/roboti • www.tiltedtwister.com – projekty rubikova kostka, sudoku • www.nxtprograms.com - jednoduché a zajímavé projekty • http://support.dce.felk.cvut.cz/ekurzy/mod/resource/view.php?id=1282 – programovací prostředky a prezentace • http://www.ortop.org/NXT_Tutorial/index.html - NXT tutorial • http://seifrob.sweb.cz/lego_robotika/lego_robotika.htm stavba a programování LEGO robotů Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Tato prezentace byla vytvořena v rámci projektu OBZORY Autor: Ing. Martin Hlinovský. Ph.D. Předmět: Seminář Robotika Datum: 24.1.2010 Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond
Podobné dokumenty
Robotika pro začátečníky - Gymnázium, Praha 10, Voděradská 2
b. Programování LEGO Mindstorms NXT pomocí NXT-G
Seznámení s programovým prostředím NXT-G (grafický programovací jazyk –
programy napsané v tomto jazyku jsou poskládané z grafických bloků pospojova...
12 v Robot Educator
Pomocí výukového prostředí Robot Educator, které najdeš vpravo, vytvoř programy
k úlohám 10 – 12 z Common Palette.
Přednáška č.5 - - Senzory, jejich funkce, základní principy, motory
Vzorkovací (Shanonův-Kotělnikovův) teorém:
Platí-li fS ≥ 2 fa, lze původní signál rekonstruovat bez ztráty informace
srovnání LEGO MINDSTORMS Filip Kirschner
Kompatibilní se všemi senzory NXT 2.0
Akcelerometr je už v sadě
Ultrazvukový senzor
Mikrofon
+ Akcelerometr je již v základním setu
− V základní sadě chybí zvukový senzor
Na kostce je opět bluetoot...
Využití robota Lego Mindstorms Usage of the Lego Minstorms Robots
kdo touží po realizaci vlastních projektů. Jednou z hlavních předností stavebnice je téměř neomezená variabilita robota. Základním prvkem stavebnice je inteligentní programovatelná kostka(kostka NX...
Edukační robotika - Univerzita Karlova
Senzory, motory a světla; sestavení robota .................................................................................................. 39
KAPITOLA 7: LEGO MINDSTORMS NXT – PROGRAMOVACÍ PROST...
Projektové vyučování
Žáci mají pomoci malému chlapci, který cestuje s rodinou na jinou planetu a řeší
zde problém, jak zavlažovat rostliny. Žáci diskutují o významu rostlin pro život, dozvídají se, jak rostliny přijíma...
Programování robotů 1
Hlavním cílem knihy je, průběžně Vás seznámit se základy programování
v programovacím jazyku C#. Jedná se o objektově orientovaný programovací jazyk, který
vyvinula firma Microsoft tak, aby splňova...
Řízení robota MINDSTORMS NXT pomocí PC PC Controlling of
zabývat nebude, ale zaměří se spíše na textové orientované jazyky a větší práce bude také
věnována řízení robota z prostředí Mathematica. Z dostupných jazyků, jejichž zkrácený
výpis následuje, byly...