Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:plnxt:start [2009/02/17 13:44]
gjn
pl:plnxt:start [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
  
 ====== 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]]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: ​
Linia 22: Linia 22:
     * 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.**
  
-===== “Threads” jako dodatkowy komponent ​=====+===== Obsługa wątków ​=====
  
 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ń. 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. 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.
  
 ====== Platforma LEGO Mindstorms NXT ====== ====== Platforma LEGO Mindstorms NXT ======
-[[pl:plnxt:o_mindstorms_merge]]+ 
 +Minimalna wiedza potrzebna do używania PLNXT:\\ 
 +  * [[pl:​mindstorms:​opis|Krótki opis.]] 
 +  * [[pl:​mindstorms:​zestaw|Zestaw LEGO Mindstorms NXT.]] 
 +  * [[pl:​mindstorms:​interfejs|Opis najbardziej przydatnych elementów interfejsu jednostki centralnej.]] 
 + 
 +Powyższe materiały są częścią serwisu ​[[pl:mindstorms:start|Laboratorium AGH - LEGO Mindstorms]].
  
 ====== Dokumentacja ====== ====== Dokumentacja ======
Linia 39: Linia 46:
  
 ====== 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 ======
  
-Jeżeli nie używałeś jeszcze Mindstorms NXT, polecam przejrzeć instrukcję LEGO. Ładna, kolorowa, z obrazkami. :) Na pewno dysponujesz wersją angielską. {{pl:​mindstorms:​dokumentacja:​nxtuserguide_pl_.pdf|Tutaj}} do ściągnięcia wersja polska. ​ Jeśli jesteś do tego zbyt leniwy, zacznij od krótkiego ​opisu Mindstorms NXT (FIXME link), niezbędnego do używania PLNXT. Zawarta jest tam minimalna, jak tylko się da, wiedza o platformie.+Jeżeli nie używałeś jeszcze Mindstorms NXT, polecam przejrzeć instrukcję LEGO. Ładna, kolorowa, z obrazkami. :) Na pewno dysponujesz wersją angielską. {{pl:​mindstorms:​dokumentacja:​nxtuserguide_pl_.pdf|Tutaj}} do ściągnięcia wersja polska. ​ Jeśli jesteś do tego zbyt leniwy, zacznij od krótkiego ​zapoznania z [[#​platforma_lego_mindstorms_nxt|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 [[student:​msc2009_nxtapi:​plnxt_pl#​download|download]].+Pobierz i rozpakuj aktualną wersję PLNXT. Do ściągnięcia w dziale [[#​download|download]].
  
 ===== Przygotowanie środowiska ===== ===== Przygotowanie środowiska =====
  
-Różne moduły komunikacyjne wymagają różnego przygotowania środowiska. 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.+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 [[http://​lejos.sourceforge.net/​icommand.php|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.
  
-==== Moduł ​nxt_actions_serial ​==== +==== Moduł ​serial ​==== 
-FIXME Pozbierać wszystko, co tu zostało odkryte, do kupy.+[[pl:​plnxt:​conf_serial|Konfiguracja trybu szeregowego dla GNU/Linux]]
  
-==== Moduł ​nxt_actions_icommand ​====+==== Moduł ​icommand ​==== 
 +FIXME
  
-==== Moduł ​nxt_actions_sockets ​====+==== Moduł ​sockets ​==== 
 +FIXME
  
 ====== Pierwsze kroki ====== ====== Pierwsze kroki ======
  
-Jeżeli masz już poprawnie przygotowane środowisko (patrz ​Quick start), 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 ======
  
Linia 76: Linia 93:
 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. 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/​]]. Z pewnością wraz z PLNXT otrzymałeś egzemplarz licencji GNU General Public License. Jeśli nie, zobacz [[http://​www.gnu.org/​licenses/​]].
 +
 +{{:​hekate:​gplv3.png|GPLv3}}
  
 ====== Kontakt ====== ====== Kontakt ======
Linia 85: Linia 104:
  
 E-mail: holownia(_at_)agh.edu.pl E-mail: holownia(_at_)agh.edu.pl
 +ew. gjn(_at_)agh.edu.pl
 +
 +====== Prace rozwojowe ======
 +Dla [[mindstorms:​plnxt:​plnxtdev:​start|deweloperów]].
  
 ====== Aktualności/​problemy ====== ====== Aktualności/​problemy ======
  
-**14 stycznia 2009**\\ +  * **14 stycznia 2009** ​-- PLNXT zostało użyte podczas zajęć ze studentami. Liczymy na uzyskanie opinii, które pomogą usunąć błędy. Wcześniej trwały prace nad modułem warstwy komunikacyjnej z wykorzystaniem połączenia szeregowego,​ opartego bezpośrednio na protokole LEGO. Protokół ten daje większe możliwości,​ niż używane wcześniej moduły icommand i sockets. Pozwala m.in. synchronizować pracę silników. Wyższa warstwa została przekształcona tak, żeby wykorzystać w pełni to, co daje nam protokół LEGO. Należy ją jeszcze wtórnie przystosować do użycia modułów warstwy komunikacyjnej,​ niezapewniających synchronizacji,​ jak również same te moduły. W tym momencie możliwe jest użycie tylko modułu serial jako warstwy komunikacyjnej.
-PLNXT zostało użyte podczas zajęć ze studentami. Liczymy na uzyskanie opinii, które pomogą usunąć błędy. Wcześniej trwały prace nad modułem warstwy komunikacyjnej z wykorzystaniem połączenia szeregowego,​ opartego bezpośrednio na protokole LEGO. Protokół ten daje większe możliwości,​ niż używane wcześniej moduły icommand i sockets. Pozwala m.in. synchronizować pracę silników. Wyższa warstwa została przekształcona tak, żeby wykorzystać w pełni to, co daje nam protokół LEGO. Należy ją jeszcze wtórnie przystosować do użycia modułów warstwy komunikacyjnej,​ niezapewniających synchronizacji,​ jak również same te moduły. W tym momencie możliwe jest użycie tylko modułu serial jako warstwy komunikacyjnej.+
pl/plnxt/start.1234874666.txt.gz · ostatnio zmienione: 2019/06/27 15:59 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0