LEGO Roboti a jejich programování (teoretická a praktická část)

Transkript

LEGO Roboti a jejich programování (teoretická a praktická část)
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

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...

Více

12 v Robot Educator

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.

Více

Přednáška č.5 - - Senzory, jejich funkce, základní principy, motory

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

Více

srovnání LEGO MINDSTORMS Filip Kirschner

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...

Více

Využití robota Lego Mindstorms Usage of the Lego Minstorms Robots

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...

Více

Edukační robotika - Univerzita Karlova

Edukační robotika - Univerzita Karlova Senzory, motory a světla; sestavení robota .................................................................................................. 39 KAPITOLA 7: LEGO MINDSTORMS NXT – PROGRAMOVACÍ PROST...

Více

Projektové vyučování

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...

Více

Programování robotů 1

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...

Více

Řízení robota MINDSTORMS NXT pomocí PC PC Controlling of

Ří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...

Více