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:miw:miw08_mindstormsapi [2008/06/12 02:02]
miw
pl:miw:miw08_mindstormsapi [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 ====== PlNXT ====== ====== PlNXT ======
 +__**Projekt zakończony**__
 +
 +Piotr Hołownia, <​holownia@student.agh.edu.pl>​
  
 PlNXT to API w Prologu do obsługi [[http://​mindstorms.lego.com/​eng/​Overview/​default.aspx|LEGO Mindstorms NXT]] PlNXT to API w Prologu do obsługi [[http://​mindstorms.lego.com/​eng/​Overview/​default.aspx|LEGO Mindstorms NXT]]
Linia 6: Linia 9:
  
 Udało się założone cele zrealizować w zadowalającym stopniu. Są rzeczy, które warto poprawić. Zachęcam do zapoznania się z opisem. Udało się założone cele zrealizować w zadowalającym stopniu. Są rzeczy, które warto poprawić. Zachęcam do zapoznania się z opisem.
 +
 +Dokumentacja:​ {{:​pl:​miw:​miw08_mindstormsapi:​plnxtdocs.zip|plnxtdocs.zip}}
  
 ====== Opis warstw ====== ====== Opis warstw ======
Linia 51: Linia 56:
  
 ====== Przygotowanie środowiska ====== ====== Przygotowanie środowiska ======
 +
  
 ===== Z użyciem iCommand ===== ===== Z użyciem iCommand =====
Linia 56: Linia 62:
 Krótka instrukcja konfiguracji połączenia BT z wykorzystaniem iCommand dla użytkowników systemu Windows: Krótka instrukcja konfiguracji połączenia BT z wykorzystaniem iCommand dla użytkowników systemu Windows:
  
-(niebawem będzie).+  - Ściągnij i rozpakuj ​(np. do katalogu C:\nxt\) następujące pliki zip: 
 +    * iCommand (http://​lejos.sourceforge.net/​p_technologies/​nxt/​icommand/​downloads.php)
 +    * rxtx (http://​www.rxtx.org),​ 
 +    * bluesock (http://​bluesock.dev.java.net). 
 +  - Dopisz do zmiennej środowiskowej Classpath ścieżki do następujących plików jar: icommand.jar,​ bluesock.jar,​ RXTXcomm.jar. Np.: <​code>​ C:​\nxt\icommand-0.7\dist\icommand.jar;​C:​\nxt\bluesockbeta1.0\bluesock.jar;​C:​\nxt\rxtx-2.1-7-bins-r2\RXTXcomm.jar </​code>​ 
 +  - Dopisz do zmiennej środowiskowej Path ścieżki do katalogów z bibliotekami dll pochodzącymi z RXTX i bluesock. Np.: <​code>​ C:​\nxt\rxtx-2.1-7-bins-r2\Windows\i368-mingw32\;​C:​\nxt\bluesockbeta1.0\ </​code>​ 
 +  - Sparuj komputer z NXT. Dla tego urządzenia musi być dostępna usługa portu szeregowego "Dev B". Sprawdź jaki port COM został przypisany do tej usługi dla NXT. 
 +  - Umieść w katalogu domowym plik icommand.properities (przy próbie skorzystania z iCommand zostanie utworzony automatycznie). Edytuj go, wpisując dwie następujące linie: 
 +<​code>​ 
 +nxtcomm=COM6 
 +nxtcomm.type=bluesock  
 +</​code>​ 
 + 
 +Zamiast COM6 wpisz port, który jest przypisany do Twojego NXT.
  
 Chcąc używać API, należy do katalogu projektu skopiować następujące pliki: Chcąc używać API, należy do katalogu projektu skopiować następujące pliki:
Linia 77: Linia 96:
  
 [[pl:​mindstorms:​lab:​lab5|Laboratorium]] przewidziane na 1,5 godziny składa się z obserwowania testowego programu oraz implementacji wybranego algorytmu. [[pl:​mindstorms:​lab:​lab5|Laboratorium]] przewidziane na 1,5 godziny składa się z obserwowania testowego programu oraz implementacji wybranego algorytmu.
 +
 +
  
  
Linia 83: Linia 104:
 ====== Co należy poprawić? ====== ====== Co należy poprawić? ======
  
-  * Moduł komunikacyjny nxt_actions_icommand nie daje możliwości odczytu kierunku obrotu silnika. Nie jest to zaimplementowane w samym iCommand. +Moduł komunikacyjny nxt_actions_icommand nie daje możliwości odczytu kierunku obrotu silnika. Nie jest to zaimplementowane w samym iCommand. 
-  ​* ​Odczytu sensorów dokonuje się podając numer portu. Powinna być też możliwość łatwiejszego odczytu bez podawania portu. Port byłby wtedy pobierany z konfiguracji robota. +---- 
-  ​* ​Musi istnieć możliwość usuwania wcześniej utworzonych timerów i triggerów.+Odczytu sensorów dokonuje się podając numer portu. Powinna być też możliwość łatwiejszego odczytu bez podawania portu. Port byłby wtedy pobierany z konfiguracji robota. 
 +---- 
 +Musi istnieć możliwość usuwania wcześniej utworzonych timerów i triggerów
 +---- 
 +W iCommand metoda Motor.A.rotate(long count,​boolean returnNow) obraca silnik o zadany kąt i zwraca sterowanie, jeśli returnNow==true. Nie zwraca go jednak wystarczająco szybko (wywoływana przez jpl), aby uruchomienie dwóch silników bezpośrednio po sobie odbyło się bez opóźnienia. 
 + 
 +Stąd błędy w poruszaniu się robota przy użyciu tej metody. Np. predykat nxt_go(200,​1000) sprawia, że robot nieznacznie skręca przed wykonaniem ruchu prostoliniowego i na koniec także.
  
 +Praca silników jest lekko przesunięta w czasie. Przy większych prędkościach obrotowych (np. 700 stopni na sekundę) ta różnica staje się niedopuszczalnie duża. Przy mniejszych (np. 150 stopni na sekundę) wydaje się nie przeszkadzać. Może dla wyeliminowania tego błędu należałoby zastosować wielowątkowość w Javie.
 +----
  
 ====== Historia prac nad projektem ====== ====== Historia prac nad projektem ======
  
 [[pl:​miw:​miw08_mindstormsapi:​historia|Historia]] - spotkania, kolejne wersje projektu, sprawozdania cząstkowe. [[pl:​miw:​miw08_mindstormsapi:​historia|Historia]] - spotkania, kolejne wersje projektu, sprawozdania cząstkowe.
pl/miw/miw08_mindstormsapi.1213228949.txt.gz · ostatnio zmienione: 2019/06/27 15:58 (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