Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
Nowa wersja
Both sides next revision
|
pl:plnxt:start [2009/02/20 11:44] gjn wersja beta |
pl:plnxt:start [2010/05/09 16:02] bejo |
| |
====== PLNXT Wprowadzenie ====== | ====== PLNXT Wprowadzenie ====== |
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 ([[http://lejos.sourceforge.net]]) i NQC ([[http://bricxcc.sourceforge.net/nqc]]). Wczesne próby rozwiązań opartych o Prolog można znaleźć w projekcie Legolog ([[http://www.cs.toronto.edu/cogrobo/Legolog]]). Niestety nie oferuje on ogólnego API i obsługuje tylko starszą wersję Mindstorms - RCX. | 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ą [[http://lejos.sourceforge.net|lejos/iCommand]] i [[http://bricxcc.sourceforge.net/nqc|NQC]]. Wczesne próby rozwiązań opartych o Prolog można znaleźć w projekcie [[http://www.cs.toronto.edu/cogrobo/Legolog|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 ([[http://hekate.ia.agh.edu.pl]]). Ma na celu zapewnienie regułowego rozwiązania programistycznego wysokiego poziomu. | //PLNXT// to API w języku Prolog dla platformy Mindstorms NXT. Jest rozwijane w ramach projektu [[http://hekate.ia.agh.edu.pl|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: | Na podstawie przeglądu istniejących rozwiązań, wymagania nowego API dla NXT zostały sformułowane następująco: |
* rozwiązanie hybrydowe oparte na socketach z wykorzystaniem biblioteki NXT++, która komunikuje się z robotem, | * rozwiązanie hybrydowe oparte na socketach z wykorzystaniem biblioteki NXT++, która komunikuje się z robotem, |
* prosty graficzny symulator NXT, pozwalający w pewnym zakresie testować algorytmy bez użycia zestawu Mindstorms.\\ | * prosty graficzny symulator NXT, pozwalający w pewnym zakresie testować algorytmy bez użycia zestawu Mindstorms.\\ |
W rzeczywistości wszystkie te rozwiązania oparte są na protokole komunikacji LEGO. | 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.** | 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.** |
* [[pl:mindstorms:interfejs|Opis najbardziej przydatnych elementów interfejsu jednostki centralnej.]] | * [[pl:mindstorms:interfejs|Opis najbardziej przydatnych elementów interfejsu jednostki centralnej.]] |
| |
Powyższe materiały są częścią serwisu [[pl:mindstorms|Laboratorium AGH - LEGO Mindstorms]]. | Powyższe materiały są częścią serwisu [[pl:mindstorms:start|Laboratorium AGH - LEGO Mindstorms]]. |
| |
====== Dokumentacja ====== | ====== Dokumentacja ====== |
| |
====== Download ====== | ====== Download ====== |
| ===== Release M0 ===== |
| //20.02.2009//: Pobierz {{:plnxt:plnxt-m0.tar.gz|PlNXT-M0}} |
| |
FIXME | ===== Release M3 ===== |
| //09.05.2010//: Pobierz {{:plnxt:plnxt-m3.1.tar.gz|PlNXT-M3.1}} |
| |
====== Konfiguracja ====== | ====== Konfiguracja ====== |
===== Przygotowanie środowiska ===== | ===== Przygotowanie środowiska ===== |
| |
Różne moduły komunikacyjne wymagają różnego przygotowania środowiska. | Różne moduły komunikacyjne wymagają różnego przygotowania środowiska: |
* ''nxt_actions_serial'' -- praca przez lokalny port szeregowy | * ''nxt_actions_serial'' -- praca przez lokalny port szeregowy, |
* ''nxt_actions_icommand'' -- praca za pośrednictwem iCommand (Java) | * ''nxt_actions_icommand'' -- praca za pośrednictwem [[http://lejos.sourceforge.net/icommand.php|iCommand]] (Java), |
* ''nxt_actions_sockets'' -- praca za pośrednictwem gniazd TCP | * ''nxt_actions_sockets'' -- praca za pośrednictwem gniazd TCP. |
Tymczasowo możliwa jest używanie jedynie modułu “serial”. | 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. | Wkrótce będzie to poprawione. Wobec tego dalsze instrukcje są przygotowane jedynie dla tego modułu. |
| |
====== Pierwsze kroki ====== | ====== Pierwsze kroki ====== |
| |
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". | Jeżeli masz już poprawnie przygotowane środowisko (patrz [[#konfiguracja]]), możesz przejść do pisania prostych programów. Zachęcam do zapoznania się z [[pierwsze_kroki|''Pierwszymi krokami'']]. |
| |
[[pierwsze_kroki]] | |
| |
====== Strony pokrewne ====== | ====== Strony pokrewne ====== |
| Patrz [[pl:mindstorms:linki]] (część serwisu [[pl:mindstorms:start|Laboratorium AGH - LEGO Mindstorms]]). |
| |
====== Licencja ====== | ====== Licencja ====== |
| |