LEGO Mindstorms NXT jest uniwersalną platformą, która oferuje konstruowanie robotów, jak również rozwiązania programistycznie. Jeśli chodzi o programowanie Mindstorms NXT, LEGO dostarcza środowisko, które pozwala tworzyć algorytmy przy użyciu prostego wizualnego języka diagramów przepływu sterowania. Dzięki otwartości platformy pojawiło się wiele programistycznych rozwiązań dla języków takich, jak C/C + +, Java, etc. Przykłady obejmują lejos/iCommand i NQC. Wczesne próby rozwiązań opartych o Prolog można znaleźć w projekcie Legolog. Niestety nie oferuje on ogólnego API i obsługuje tylko starszą wersję Mindstorms - RCX.
PLNXT to API w języku Prolog dla platformy Mindstorms NXT. Jest rozwijane w ramach projektu HeKatE. Ma na celu zapewnienie regułowego rozwiązania programistycznego wysokiego poziomu.
Na podstawie przeglądu istniejących rozwiązań, wymagania nowego API dla NXT zostały sformułowane następująco:
PLNXT ma następujące cechy:
W rzeczywistości wszystkie te rozwiązania (poza symulatorem) oparte są na protokole komunikacji LEGO.
Dowolną inną implementację warstwy komunikacyjnej można stworzyć bazując na pliku nxt_actions_dummy.pl. Ograniczeniem jest to, że nazwy predykatów eksportowanych muszą pozostać takie same. Nie ma także możliwości wprowadzenia niczego nowego bez uwzględnienia tego w warstwie wyższej. Dlaczego? Jest to jedna z warstw projektu, ale wydzielona tylko, aby umożliwić wstawienie w jej miejsce różnych alternatywnych wersji. Nie powinna być bezpośrednio używana w projektach bazujących na PLNXT. Nie ma takiej potrzeby.
Do implementacji złożonych algorytmów sterowania NXT niezbędne jest wprowadzenie mechanizmów opóźniania akcji w czasie oraz uwarunkowanie akcji od pewnych zdarzeń.
W module „threads” znajdują się predykaty umożliwiające tworzenie triggerów i timerów z wykorzystaniem wątków w SWIProlog. Trigger uruchamia akcję pod warunkiem zajścia zdarzenia. Timer uruchamia akcję po wyznaczonym czasie.
Minimalna wiedza potrzebna do używania PLNXT:
Powyższe materiały są częścią serwisu Laboratorium AGH - LEGO Mindstorms.
serwer dokumentacji online
20.02.2009: Pobierz PlNXT-M0
09.05.2010: Pobierz PlNXT-M3.1
Jeżeli nie używałeś jeszcze Mindstorms NXT, polecam przejrzeć instrukcję LEGO. Ładna, kolorowa, z obrazkami. :) Na pewno dysponujesz wersją angielską. Tutaj do ściągnięcia wersja polska. Jeśli jesteś do tego zbyt leniwy, zacznij od krótkiego zapoznania z platformą LEGO Mindstorms NXT, niezbędnego do używania PLNXT. Zawarta jest tam minimalna, jak tylko się da, wiedza o platformie.
Pobierz i rozpakuj aktualną wersję PLNXT. Do ściągnięcia w dziale download.
Różne moduły komunikacyjne wymagają różnego przygotowania środowiska:
nxt_actions_serial
– praca przez lokalny port szeregowy,nxt_actions_icommand
– praca za pośrednictwem iCommand (Java),nxt_actions_sockets
– praca za pośrednictwem gniazd TCP.
Tymczasowo możliwa jest używanie jedynie modułu serial
.
Wkrótce będzie to poprawione. Wobec tego dalsze instrukcje są przygotowane jedynie dla tego modułu.
Jeżeli masz już poprawnie przygotowane środowisko (patrz konfiguracja), możesz przejść do pisania prostych programów. Zachęcam do zapoznania się z ''Pierwszymi krokami''.
Patrz linki (część serwisu Laboratorium AGH - LEGO Mindstorms).
Copyright © 2006-9 by the HeKatE Project
PLNXT jest rozwijany przez HeKatE Project (http://hekate.ia.agh.edu.pl).
PLNXT jest wolnym oprogramowaniem: możesz go rozprowadzać i/lub modyfikować na warunkach licencji GNU General Public License, wydanej przez Free Software Foundation, według wersji 3 tej licencji lub którejś z późniejszych.
PLNXT rozpowszechniany jest z nadzieją, iż będzie on użyteczny - jednak BEZ JAKIEJKOLWIEK GWARANCJI; nawet domyślnej gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. W celu uzyskania bliższych informacji, przeczytaj licencję GNU General Public License. Z pewnością wraz z PLNXT otrzymałeś egzemplarz licencji GNU General Public License. Jeśli nie, zobacz http://www.gnu.org/licenses/.
Prosimy o kontakt w przypadku, gdy:
E-mail: holownia(_at_)agh.edu.pl ew. gjn(_at_)agh.edu.pl
Dla deweloperów.