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:40]
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 ======
  
-===== Minimalna wiedza ​o NXT potrzebna do używania PLNXT =====+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.]]
  
-==== Zestaw LEGO Mindstorms NXT ==== +Powyższe materiały są częścią ​serwisu [[pl:mindstorms:start|Laboratorium AGH LEGO Mindstorms]].
- +
-W skład zestawu Mindstorms NXT wchodzi: +
-  * Brick (jednostka centralna). +
-  * Sensory: +
-    * //Dotyku.// Szumna nazwa. W rzeczywistości jest to zwykły przycisk, który rozróżnia dwa stany (wciśnięty,​ puszczony). +
-    * //​Natężenia dźwięku.//​ +
-    * //​Natężenia światła.//​ Wyposażony w czerwoną diodę. Włączenie diody umożliwia rozpoznawanie barw (w skali szarości) przy słabym oświetleniu zewnętrznym. +
-    * //​Odległości.//​ To ten podobny trochę do głowy modliszki. Z dwoma dużymi “oczami”. Przy użyciu ultradźwięków badana jest odległość pomiędzy sensorem, a najbliższą przeszkodą. Zasięg do 255 cm. +
-  * Trzy serwomechanizmy. +
-  * Klocki umożliwiające składanie robotów z wykorzystaniem powyższych elementów. +
- +
-==== Łączenie komponentów ==== +
- +
-Do portów B i C należy podłączyć silniki odpowiadające za ruch. Do portu A silnik używany do dodatkowych funkcji. +
-Standardowe podłączenie sensorów (chociaż można podłączyć je dowolnie): +
-  * Port 1dotyk. +
-  * Port 2: dźwięk. +
-  * Port 3: światło. +
-  * Port 4: odległość. +
- +
-==== Interfejs ==== +
- +
-=== Przyciski === +
-Włączanie NXT odbywa się przez wciśnięcie pomarańczowego przycisku. Tym samym przyciskiem zatwierdza się wybór w menu. Do przemieszczania się między pozycjami służą przyciski w kształcie trójkątów. Ciemny przycisk poniżej służy do anulowania wyboru i do wyłączania NXT (gdy jest się w głównym menu). +
- +
-=== Bluetooth === +
-Włączanie BT odbywa się w menu interfejsu NXT. Należy wybrać: Bluetooth ​-> On/Off -> {On albo Off}. +
-Gdy BT jest włączony, w lewym górnym rogu wyświetlacza znajduje się symbol BT oraz na prawo od niego symbol '<'​. Po nawiązaniu połączenia obok symbolu '<'​ pojawia się symbol '>'​. Razem tworzą: '<>'​. ​ Po zamknięciu połączenia znika symbol '>'​. +
- +
-=== Baterie === +
-W prawym górnym rogu wyświetlacza znajduje się wskaźnik poziomu baterii. Cały czarny oznacza pełne baterie. +
- +
-==== Ustawienia ==== +
- +
-=== Sleep === +
-NXT ma funkcję “sleep”. Fabrycznie jest ustawiona na 10 minut. Jeżeli do tego czasu nie zostanie wciśnięty dowolny przycisk, NXT się wyłączy. To oznacza, że może to zrobić także w trakcie wykonywania algorytmu. To może być denerwujące. W celu wyłączenia należy wybrać z menu Settings -> Sleep -> Never. +
- +
-=== Dźwięk === +
-Przy włączaniu NXT mogą być wydawane irytujące dźwięki. Można je wyłączyć wybierając z menu Settings -> Volume -> 0. +
- +
-=== Odczyt wartości sensorów === +
-Można odczytać wskazania sensorów bezpośrednio z menu NXT. Należy wybrać View -> {rodzaj_sensora} -> {port}+
  
 ====== Dokumentacja ====== ====== Dokumentacja ======
Linia 84: 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 121: 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 130: 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.1234874406.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