Inteligentne klocki
W bogatej ofercie firmy Lego są zabawki nie tylko dla dzieci, ale także dla młodzieży i dorosłych. Seria mindstorms służy do budowania najprawdziwszych robotów i innych programowalnych automatów.
Sercem zestawu jest tzw. inteligentny klocek NXT. Jest to mikrokomputer z 32-bitowym procesorem ARM 7, spotykanym zazwyczaj w prostszych komórkach Nokii, czy np. w klasycznym ipodzie. Komputer przetwarza informacje spływające z sensorów i w zależności od programu steruje zachowaniem robota za pomocą serwomotorów. Kostka ma aż 4 porty wejścia na sensory oraz 3 wyjścia do sterowania serwomotorami. Poza tym ma port USB do komunikacji z pecetem i moduł łączności bezprzewodowej bluetooth, które nie tylko zapewniają wymianę danych, ale także umożliwiają zdalne sterowanie maszynami bezpośrednio z komputera.
Sensory
W pudełku znajdziesz dwa czujniki dotyku, czujnik koloru, który rozpoznaje sześć barw oraz ultradźwiękowy czujnik odległości. Do tego dochodzą 3 serwomotory z czujnikami obrotu, które pozwalają tworzyć ruchome elementy robota. Czujniki, silniczki i komputer łączy się kablami. Oczywiście z samych sensorów, silników i komputera nie da się zrobić robota. Korpus maszyny tworzy się z ponad 600 elementów zaawansowanych kloców lego technics.
W sklepach internetowych można znaleźć dodatkowe, opcjonalne sensory. Czujnik dźwięku, który pozwala robotowi reagować na polecenia wydawane głosem, sensor z kompasem, pozwalający zaprogramować poruszanie robota w przestrzeni na podstawie pomiarów pola magnetycznego Ziemi. Można także kupić akcelerometr, który umożliwia odczytanie zmian położenia maszyny, a nawet nadajnik RF ID. Kontrolery NXT można łączyć i wymieniać między nimi dane, co umożliwia konstruowanie większych maszyn, z dużą liczbą ruchomych elementów.
Tworzenie programu
Na dołączonej do zestawu płycie dołączono sterownik kontrolera NXT do Windows/Maca i aplikację do tworzenia programów ożywiających robota. Edytor jest bardzo prosty w użyciu. Nie musisz pisać kodu. Zamiast tego tworzysz program, składając go z graficznych modułów – klocków.
Każdy klocek pozwala skonfigurować jedną funkcję kontrolera. Układając wiele klocków jeden za drugim, możesz stworzyć sekwencję czynności, jakie mają być wykonane po sobie lub warunkowo. Oczywiście przebieg akcji można opisać tak, by zależał od informacji pobieranych przez sensory.
Jeśli chcesz, żeby robot pojechał do przodu, przeciągasz z palety ikonę z trybikami, która symbolizuje akcję move (ruch), następnie klikasz myszą w klocek i w oknie poniżej dobierasz parametry akcji. Możesz określić zarówno prędkość przemieszczania się robota, jak i kierunek oraz długość ruchu. Zachowanie robota możesz uzależnić od informacji o otoczeniu, np. o przeszkodach, dodając klocek symbolizujący sensor dystansu.
Środowisko programowania, mimo że proste w użyciu, obsługuje pętle i instrukcje selektywne, więc można w nim łatwo tworzyć rozbudowane programy sterujące, które sprawnie reagują na bodźce z otoczenia.
Aby zainstalować program w robocie, musisz podłączyć inteligentną kostkę do komputera lub połączyć się z nią za pomocą interfejsu bezprzewodowego.
Co w zestawie?
Lego Mindstorms NXT 2.0 (8547)zawiera:
- kontroler NXT z 32-bit procesorem ARM7
- 3 serwomotory z wbudowanymi czujnikami obrotu
- 2 czujniki dotyku
- czujnik koloru
- dalmierz ultradźwiękowy
- kable do łączenia sensorów i serwomotorów z kontrolerem
- 612 klocków serii Lego Technics
- aplikacja do programowania
- instrukcja
Cena ok. 1050 zł
Pierwszy robot
Choć mindstorms, tak jak każdy inny zestaw firmy Lego, zachęca do kreatywności i projektowania własnych konstrukcji, to na początku warto poznać sposoby łączenia elementów oraz instalacji i podłączania sensorów, korzystając z gotowych instrukcji. W pudełku są instrukcje dla czterech maszyn, ale na stronie producenta (http://mindstorms.lego.com/) można znaleźć dodatkowe instrukcje krok po kroku, jak zbudować rozmaite urządzenia. Najważniejsze jest to, że oprócz instrukcji łączenia elementów jest do klocków dołączony gotowy program, który można otworzyć w edytorze i od razu załadować do kontrolera. Dzięki temu przykładowi możesz lepiej zrozumieć, jak buduje się programy do kontrolera NXT, także poprzez modyfikacje dostarczonego kodu.
Wśród gotowych instrukcji są także przepisy na stworzenie zupełnie innych urządzeń, takich jak odtwarzacz muzyczny, analogowy zegarek itp.
Konstrukcje z sieci
Wiele gotowych instrukcji przygotowanych przez fanów można znaleźć w sieci, najłatwiej za pośrednictwem Google. Duża część projektów fanowskich to nie są wcale roboty, lecz rozmaite, często bardzo wyrafinowane automaty. Na przykład na stronie http://tiltedtwister.com/ jest przepis krok po kroku, jak złożyć z klocków i oprogramować maszynę, która ułoży za ciebie kostkę Rubika, rozpoznając i analizując jej układ za pomocą zamieszczonego w zestawie czujnika koloru. Sporo ciekawych, choć nie tak dokładnych, przepisów znajdziesz także na polskiej stronie poświęconej klockom mindstorms (http://mindstorms.pl/). Tam, oprócz ciekawych robotów, prezentowane są także zupełnie egzotyczne maszyny, jak np. urządzenie do rozdawania kart, które przyjmuje instrukcje za pośrednictwem kart perforowanych. W tym wypadku autor także udostępnił oprogramowanie w postaci kodu źródłowego, które można skopiować ze strony WWW.
Alternatywny firmware
Zaawansowanych projektów nie można napisać w dostarczonym w zestawie środowisku programistycznym. Ale to nie jest żadne ograniczenie, bo w internecie znajduje się wiele alternatywnych aplikacji do tworzenia programów dla kontrolera NXT, a także, co ważne, alternatywny firmware kontrolera, którym można zastąpić oprogramowanie dostarczone przez Lego.
Inteligentny klocek lego można programować np. za pomocą Javy, która jest standardem dla tworzenia oprogramowania w systemach wbudowanych. Do tego celu w klocku NXT trzeba zainstalować firmware LejOS (http://lejos.sourceforge.net/), który zawiera wirtualną maszynę niezbędną do uruchamiania programów w Javie. To rozwiązanie jest bardzo popularne na świecie wśród studentów informatyki i robotyki, którzy na początku studiów uczą się budować proste automaty, modelując je i programując właśnie za pomocą klocków lego mindstorms i kontrolera NXT.
Inny popularny firmware to Ch Mindstorms NXT Control Packag (http://iel.ucdavis.edu/projects/chmindstorms/), który pozwala pisać programy dla kontrolera w języku Ch. Z kolei pakiet NXTGCC (http://nxtgcc.sourceforge.net/) pozwala uruchamiać programy dla kontrolera przygotowane za pomocą bardzo popularnego, opensource’owego kompilatora GCC, który obsługuje wiele języków programowania, w tym C, C++ i Javę.
Dzięki tym alternatywnym wersjom firmware’u klocki, gdy trafią w ręce młodego miłośnika informatyki, nieprędko znajdą się na szafie, bo w miarę zdobywania kolejnych umiejętności, będzie mógł wykorzystywać zestaw w coraz to nowy sposób. Porad dotyczących alternatywnego firmware’u najlepiej szukać na forach miłośników mindstorms (http://mindboards.sourceforge.net/).