You are on page 1of 43

Programowanie jako zabawa.

Od LEGO Duplo do LEGO Mindstorms NXT.

Prezentacja platformy LEGO Mindstorms NXT


16 marca 2009
Zastrzeżenia prawne

© 2008,2009 Politechnika Śląska w Gliwicach, dr inż. Piotr Czekalski.

Niniejszy dokument jest objęty prawami autorskimi. Rozpowszechnianie, kopiowanie i udostępnianie osobom trzecim jest
możliwe wyłącznie za zgodą autora.

Informacja zawarta w niniejszym dokumencie ma charakter niekomercyjny, edukacyjny i jako taka nie może stanowić bazy
bezpośredniej lub pośredniej dla wszelakiej działalności komercyjnej.

Jakkolwiek autor dołożył wszelkich starań podczas opracowania niniejszego dokumentu tak, aby informacje przedstawiane w
tym dokumencie były najnowsze i zgodne ze stanem faktycznym opisywanych urządzeń, protokołów, sprzętów oraz stanu
wiedzy, nie może zagwarantować pełnej poprawności dokumentu, w szczególności w związku ze zmieniającymi się
uwarunkowaniami technicznymi, wersjami firmware, wersjami oprogramowania i sprzętu.
W związku z tym dokument jest udostępniany w niniejszej postaci „as is” bez jakiejkolwiek gwarancji i nie może stanowić
podstawy do roszczeń.

Autor nie odpowiada za szkody materialne i niematerialne wyrządzone pośrednio lub bezpośrednio w wyniku zastosowania
informacji zawartych w niniejszym dokumencie.

Autor zwraca się do wszelkich osób korzystających z niniejszego dokumentu o zgłaszanie wszelkich dostrzeżonych usterek i
nieścisłości celem ich usunięcia dla szeroko rozumianego dobra ogółu. Ponieważ dokument ten może funkcjonować w wielu
wersjach, w celu weryfikacji nieścisłości konieczne jest porównanie stanu faktycznego z dokumentem o odpowiedniej wersji.

Znaki towarowe znajdujące się w niniejszym dokumencie przynależą wraz z prawami autorskimi odpowiednim ich właścicielom,
a w szczególności:

LEGO, the LEGO logo, DUPLO, BIONICLE, MINDSTORMS, the BELVILLE, CLIKITS, KNIGHTS’ KINGDOM and EXO-FORCE
logos, the Brick and Knob configurations and the Minifigure stanowią znaki towarowe LEGO Group.

Microsoft, Robotics Studio, .NET logo, Visual Studio, ActiveX oraz Windows stanowią znaki towarowe Microsoft Corporation.

Java, JDK oraz JAVA logo stanowią znaki towarowe Sun Microsystems.

ageia PhysX stanowi znak towarowy nVIDIA Corporation.

WALL-E stanowi znak zastrzeżony PIXAR oraz Disney.

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 2


Przedstawiciel dorosłego
pokolenia LEGO
BIO:
– dr inż. Piotr Czekalski
– 34 lata, 110kg wagi, 196cm wzrostu
Kontakt:
– www.piotrczekalski.pl
– piotr.czekalski@polsl.pl
Praca:
– Zakład Mikroinformatyki i Teorii Automatów Cyfrowych
Wydział AEiI, Instytut Informatyki,
Politechnika Śląska w Gliwicach

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 3


Generacja LEGO

AFOL = Adult Fan of LEGO

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 4


Mindstorms NXT

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 5


Historia „inteligentnych klocków”
1980 LEGO Educational Products Department.
1986 Pierwsze systemy LEGO sterowane procesorem.
1988 Współpraca z MIT – projekt „inteligentnego klocka”.
1998 Robotics Invention System 1.0 .
1999 Robotics Discovery Set / Robotics Invention System 1.5 .
2000 Robotics Invention System 2.0 .
2006 LEGO Mindstorms NXT .
2007 Zewnętrzni dostawcy sensorów .
2008 Nowe elementy LEGO Brand (power drive).
2009 NXT Black Edition.
2009 (lipiec? - Mindstorms NXT 2.0)
Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 6
Dlaczego platforma NXT?
Nauka poprzez zabawę – każdy zna LEGO!
Pasują do wszystkich klocków z Duplo
włącznie ;-), szczególnie do serii Technic.
Platforma jest prosta.
Platforma jest świetnie udokumentowana.
Platforma używa popularnych protokołów
komunikacyjnych.
AFOL – ma świetne wsparcie w sieci Internet.
Platforma jest uniwersalna – ograniczeniem jest tylko
wyobraźnia !!!

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 7


Dlaczego platforma NXT?
Pozwala na tanie i szybkie stworzenie prototypów
wielu urządzeń oraz testowania logiki oprogramowania
dla nich. Daje możliwość szybkiej personalizacji
urządzeń dzięki mnogości elementów LEGO.
Uczy programowania w wielu językach,
programowania współbieżnego, zorientowanego na
agenty inteligentne i komunikację - pozwala na
zastosowanie AI w praktyce.
Integruje w jednym miejscu fizykę, informatykę,
robotykę i automatykę.
Rozwija wyobraźnię i kreatywność oraz uczy praktyki.

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 8


Zestawy LEGO Mindstorms NXT

Wersja „cywilna”
nr 8527.

Wersja „edukacyjna”
nr 9797 (Base Set)
nr 9648 (Resource Set).

Akcesoria, oprogramowanie.
Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 9
Dodatkowe komponenty i sensory
innych firm (20 lipca 2008)

Mindsensors (www.mindsensors.com):
– Vision Subsystem v2 for NXT
– 8 Channel Servo Controller for NXT
– RCX Sensor multiplexer for NXT
– Multi-Sensitivity Acceleration Sensor
for NXT – (ACCL-Nx-v2)
– Motor Multiplexer for NXT (MTRMX-Nx)
– RCX to NXT Communication Adapter
(NRLink-Nx)
– Sony PlayStation 2 Controller interface
for NXT (PSP-Nx)

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 10


Dodatkowe komponenty i sensory
innych firm (20 lipca 2008)

Mindsensors (www.mindsensors.com):
– PSP-Nx Combo with Wireless Controller
– Dual Infra Red Obstacle Detector for NXT
(DROD-Nx)
– Magnetic compass for NXT (CMPS-Nx)
– Pneumatic Pressure Sensor for NXT (PPS35-Nx)
– Realtime Clock for NXT
– High Precision Long Range Infrared distance
sensor for NXT (DIST-Nx-Long)
– High Precision Medium Range Infrared distance
sensor for NXT (DIST-Nx-Medium)
– High Precision Short Range Infrared distance
sensor for NXT (DIST-Nx-Short)

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 11


Dodatkowe komponenty i sensory
innych firm (20 lipca 2008)

Mindsensors (www.mindsensors.com):
– Sensor building kits – do tworzenia własnych
czujników (cyfrowych i analogowych)

– Dzielniki portów (do sensorów i silników)

– Kable połączeniowe

– Inne akcesoria do czujników (np. obiektywy do


kamer, wtyczki, gniazda, etc.)

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 12


Dodatkowe komponenty i sensory
innych firm (20 lipca 2008)

HiTechnic (www.hitechnic.com):
– NXT Compass Sensor
– NXT Color Sensor
– NXT Acceleration / Tilt Sensor
– NXT IRSeeker
– NXT Gyro
– NXT IRLink
– Infrared Electronic Ball
– Sensor Development Kits (analogowe, cyfrowe)
– Kable

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 13


Jednostka centralna
NXT Intelligent Brick
32-bitowy mikrokontroler ARM 7 @ 48MHz
(ATMEL AT91SAM7S256)
256 kB flash + 64kB SRAM
8-bitowy mikrokontroler AVR
(Atmega48V) 4 KB flash + 0,5kB SRAM
Interfejsy komunikacyjne:
– USB v. 2.0 @ 12Mbps.
– Bluetooth v. 2.0, EDR i SPP (Serial Port Profile).
Wyświetlacz LCD 100 x 64 monochromatyczny.
Głośnik 8 kHz, przetwornik dźwięku 8-bit / 2-16 kHz.
4 przyciski na kostce (programowalne) + reset.
Zasilanie 6 x AA lub specjalny akumulator.
Wewnątrz JTAG do debuggingu (dla amatorów elektroniki
lutowanej).
Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 14
Dokumentacja jednostki centralnej
NXT Intelligent Brick (od 2006)
Hardware Development Kit – opis architektury kostki
– Schematy elektryczne.
– Opis interfejsów i protokołów komunikacyjnych z
czujnikami i serwomechanizmami.
– Można zmienić firmware na dowolny inny (są) !
Software Development Kit
– Kod źródłowy do drivera dla PC / Mac (i Linux).
– Opis maszyny wirtualnej oraz format plików NXT.
Dostępny Bluetooth Development Kit
– Opis komunikacji z kostką poprzez BT.
Dostępny firmware kostki jako Open Source.

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 15


NXT Intelligent Brick w środku

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 16


Komunikacja ze światem
zewnętrznym (we/wy)
Sześciopinowe złącza RJ12 z przesuniętym zabezpieczeniem
4 porty wejściowe dla sensorów (1,2,3,4)
3 porty we/wy dla serwomechanizmów (A,B,C)
Kompatybilne z sensorami i silnikami RIS/RCX (prekursor NXT)

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 17


Zasoby (podstawy, sprzęt,
oprogramowanie)
Podstawa
– http://mindstorms.lego.com/
Sensory, akcesoria, sprzęt
– http://www.hitechnic.com/
– http://www.vernier.com/nxt/
– http://www.mindsensors.com/
– http://www.codatex.com/index.php?LEGO_NINDSTORMS_NXT
– http://www.extremenxt.com/lego.htm
Projektowanie modeli
– http://ldd.lego.com/
– http://www.ldraw.org/

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 18


Zasoby (różne, niesklasyfikowane)
Blogi, newsgroups, projekty, filmy, know-how
– http://www.nxtbot.com/
– http://news.lugnet.com/robotics/
– http://www.thenxtstep.blogspot.com/
– http://mynxt.matthiaspaulscholz.eu/tools/
– http://www.youtube.com, wpisz "NXT"
– http://nxtasy.org/
– http://www.philohome.com/
– http://www.crynwr.com/lego-robotics/
– http://www.nxtprograms.com/

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 19


Modele oprogramowania robotów
Model on-chip:
– oprogramowanie tworzone bezpośrednio za pomocą oryginalnego
firmware w kostce NXT Intelligent Brick,
– oprogramowanie jest autonomiczne.
Zalety / wady

Kompilacja Uruchomienie

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 20


Modele oprogramowania robotów
Model autonomiczny:
– oprogramowanie kompilowane na PC,
– przekazywane w całości do NXT Intelligent Brick,
– uruchamiane na NXT Intelligent Brick bez potrzeby komunikacji
z PC (algorytm wykonuje NXT Intelligent Brick).
Zalety / wady

Kompilacja Uruchomienie

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 21


Modele oprogramowania robotów
Model zdalnie sterowany / nadzorowany:
– oprogramowanie kompilowane i uruchomione na PC,
– aplet lub firmware przekazywany i uruchamiany na
NXT Intelligent Brick,
– wymagane ciągłe połączenie z NXT Inteligent Brick
(USB / Bluetooth).
Zalety / wady.

Kompilacja Instalacja Uruchomienie


apletu
lub
firmware
lub
LCP

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 22


Funkcje firmware LEGO v. 1.05
Bardzo ograniczone programowanie liniowe (do 5 operacji)
– Tylko jeden wątek.
– Tylko sensory / serwomechanizmy „Genuine LEGO” oraz takie,
które są sprzętowo kompatybilne z ww. elementami.
– Z góry przypisane porty dla określonych czujników.
– Z góry przypisane serwomechanizmy do portów oraz ich funkcje
i znaczenie:
Zasadniczo nadaje się wyłącznie dla programowania Tribota.

● Pozwala na proste sprawdzenie połączeń i funkcjonowania

elementów.
Podgląd wartości na portach wejściowych dla czujników „Genuine
LEGO” i kompatybilnych.
„Try me” – proste, wbudowane programy prezentacji sensorów.

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 23


Przegląd oprogramowania
Autonomiczne:
– graficzne:
● NXT-G,
● NI LabVIEW Toolkit,
● Robolab. Uruchomienie
– Assembler:
● NBC (Next Byte Codes).
– C:
● NXC (Not eXactly C),
● RobotC,
● GCC dla NXT,
● LEJOS OSEK.
– Java:
● LeJOS NXJ.
Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 24
Przegląd oprogramowania
Nadzorowane:
– C#:
● Microsoft Robotics Studio (1.5 lub 2008),
● Lego.NET,
● NXT#,
Uruchomienie
● Mindsqualls.
– Matlab, Simulink:
● RWTH - Mindstorms NXT Toolbox for MATLAB.
– Perl:
● Lego::NXT (Perl).
– Java:
● TinyVM,
● iCommand.

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 25


Przegląd oprogramowania
Nadzorowane (cd):
– Python:
● NXT Python.
– Rubby:
● NXT Rubby. Uruchomienie
– Graficzne (zdalne sterowanie):
● LEGO NXT Mobile Application
(MIDP: Nokia, Sony, LG, etc. oraz PDA),
● RobotC,
● BricxCC,
● OnBrickPDA & OnBrickPC,
● NXT Director (Palm OS),
● RoboLab,
● NI LabVIEW Toolkit.
Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 26
Programowanie w języku NXT-G

Prezentacja aplikacji Lego Mindstorms Edu


NXT oraz funkcji edytora projektu.

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 27


Obszar roboczy. Start.

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 28


Obszar roboczy. Praca.

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 29


Programowanie w języku Java

Programy z wykorzystaniem LeJOS API


Programy z wykorzystaniem iCommand
Środowisko Eclipse, Netbeans.
Darmowe!
Świetne wsparcie w sieci Internet.

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 30


Eclipse IDE

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 31


Programowanie w języku
C# oraz VPL

Komercyjne wsparcie Microsoft.


Uniwersalne środowisko Microsoft Robotics
Developer Studio 2008.
Darmowy do lipca 2008 (aktualnie komercyjny,
dostępna darmowa wersja Express).
Zintegrowane środowisko wirtualnej
rzeczywistości do symulacji robotów.

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 32


Tryb pracy programów MSRDS
Model zdalnie sterowany / nadzorowany:
–oprogramowanie kompilowane i uruchomione na PC,
–w wersji 1.5 instalowany specjalny aplet,
–w wersji 2008 korzysta z API wbudowanego w standardowy
firmware LEGO Mindstorms NXT poprzez LCP.

Kompilacja Instalacja Uruchomienie


apletu
lub
firmware
Lub
LCP

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 33


DSS
Frontside za pomocą przeglądarki.

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 34


Programowanie w języku VPL
Dedykowany edytor
pozwala na
przygotowanie
zestawu
współpracujących ze
sobą asynchronicznie
serwisów oraz ich
konfigurację.

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 35


Symulacje za pomocą
Visual Simulation Environment.

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 36


Komunikacja BT.

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 37


Komunikacja BT

Zarządzanie komunikacją BT.


– Wł. / Wył. Interfejsu BT.
– Przeglądanie otoczenia w poszukiwaniu urządzeń BT.
– Parowanie z innymi urządzeniami.
– Lista kontaktów (urządzeń powiązanych w sensie BT):
●Można wymusić połączenie.
● Można usunąć powiązanie.

– Lista aktualnych połączeń:


NXT Intelligent Brick obsługuje do 4 urządzeń sparowanych

i podłączonych jednocześnie.
– Widoczność BT.

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 38


Komunikacja BT
Kostka może działać z aktualnym
firmware tylko jako
Master albo Slave (nie pełni obu
funkcji jednocześnie).
Kanał 0 BT przeznaczony jest dla
Slave (wysyła dane do Master).
Kanały 1-3 dla połączeń z innymi w
roli Master (wysyła dane do Slave).
W danej chwili Master komunikuje
się tylko z jedną kostką Slave.
Szczegóły w Bluetooth
Development Kit
(opublikowany przez LEGO).

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 39


Zdalne zarządzanie innym NXT.
Pozwala na zarządzanie
inną kostką NXT z kostki
z firmware NXJ. Master

Komunikacja poprzez
BT.
Urządzenia muszą być
sparowane.
Slave

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 40


Literatura
Creating Cool MINDSTORMS NXT Robots, Daniele Benedettelli, Apress, 2008.
LEGO Mindstorms NXT-G Programming Guide, Jim Kelly, Apress, 2007.
LEGO Mindstorms NXT: The Mayan Adventure, James Floyd Kelly, Apress, 2006.
Advanced NXT: The Da Vinci Inventions Book, Matthias Paul Scholz, Apress, 2007.
Extreme NXT: Extending the LEGO Mindstorms NXT to the Next Level, Michael
Gasperi, Philippe E. Hurbain, and Isabelle L. Hurbain, Apress, 2007.
The LEGO MINDSTORMS NXT Zoo! - A Kid-Friendly Guide to Building Animals with the
NXT Robotics System, Fay Rhodes, No Starch Press, 2008.
Building Robots with LEGO Mindstorms NXT, Mario Ferrari, Guilio Ferrari, and David
Astolfo, Syngress, 2007.
The Unofficial LEGO MINDSTORMS NXT Inventor's Guide, David J. Perdue, No Starch
Press, 2007.
Maximum LEGO NXT: Building Robots with Java Brains, Brian Bagnall, Variant Press,
2007.

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 41


Literatura
The LEGO Mindstorms NXT Idea Book: Design, Invent, and Build, Martijn Boogaarts,
Jonathan A. Daudelin, Brian L. Davis, Jim Kelly, Lou Morris, Fay and Rick Rhodes,
Matthias Paul Scholz, Christopher R. Smith, Rob Torok, Chris Anderson, No Starch
Press, 2008.
LEGO Mindstorms NXT Power Programming: Robotics in C, John C. Hansen, Variant
Press, 2007.
Professional Microsoft Robotics Developer Studio, Kyle Johns, Trevor Taylor, Wrox,
2008.

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 42


Koniec prezentacji.
Dziękuję za uwagę.

Materiały z prezentacji dostępne


są pod adresem:

www.piotrczekalski.pl/mindstorms

Wersja 1.0 | 09 marca 2009 dr inż. Piotr Czekalski 43

You might also like