Nowa wersja
|
Poprzednia wersja
|
pl:mindstorms:lab:lab5 [2008/04/22 15:54] gjn utworzono |
pl:mindstorms:lab:lab5 [2019/06/27 15:50] (aktualna) |
====== Lab Prolog NXT API ====== | ====== Lab Prolog NXT API ====== |
FIXME | |
| |
| ===== Cel ===== |
| Celem laboratorium jest wykorzystanie PlNXT (API w języku Prolog) w tworzeniu programów sterujących robotem Mindstorms NXT. |
| |
| ===== Wstęp ===== |
| PlNXT składa się z czterech modułów: |
| * {{:pl:miw:miw08_mindstormsapi:080527:nxt_actions_icommand.pl|nxt_actions_icommand}} |
| * {{:pl:miw:miw08_mindstormsapi:080527:nxt_sensomoto.pl|nxt_sensomoto}} |
| * {{:pl:miw:miw08_mindstormsapi:080527:nxt_movement.pl|nxt_movement}} |
| * {{:pl:miw:miw08_mindstormsapi:080527:threads.pl|threads}} |
| |
| Proszę pobieżnie zapoznać się z dokumentacją: |
| * [[http://student.agh.edu.pl/~holownia/plnxt/nxt_sensomoto.html|nxt_sensomoto]] |
| * [[http://student.agh.edu.pl/~holownia/plnxt/nxt_movement.html|nxt_movement]] |
| * [[http://student.agh.edu.pl/~holownia/plnxt/threads.html|threads]] |
| |
| Powinniście mieć Państwo do dyspozycji robota [[http://mindstorms.lego.com/Overview/MTR_Tribot.aspx|TriBot]]. Proszę zapoznać się z jego opisem. Jeśli wszystko jest na miejscu, poprzednia grupa nie przywłaszczyła sobie żadnego klocka i można przystąpić do ćwiczenia. ;) |
| |
| Proszę otworzyć plik {{:pl:miw:miw08_mindstormsapi:test.pl|test.pl}} i załadować w SWI Prolog. Analizując plik, proszę obserwować wykonanie. W razie potrzeby posiłkować się dokumentacją. |
| |
| ===== Przebieg ćwiczenia ===== |
| Wykorzystując PlNXT zaimplementujcie Państwo jeden z poniższych algorytmów. Mile widziany swój pomysł (oczywiście odpowiednio skomplikowany). |
| |
| ==== Algorytm I - Poszukiwanie piłki ==== |
| Robot przeszukuje jakiś obszar w poszukiwaniu piłki. Np. kwadrat o boku 50 cm albo koło o promieniu 75 cm. Jeśli jej nie znajdzie, wraca do punktu początkowego i przeszukuje obszar jeszcze raz. Po znalezieniu zatrzaskuje szczęki i prezentuje "taniec radości". Tutaj można wykazać się artyzmem. ;) Na sygnał dźwiękowy przerywa/wznawia poszukiwanie. |
| |
| ==== Algorytm II - Omijanie przeszkód ==== |
| Robot przemieszcza się z punktu A do B. Po napotkaniu przeszkody zatrzymuje się i próbuje ją ominąć. Na sygnał dźwiękowy przerywa/wznawia ruch. |
| |
| ===== Uwagi ===== |
| Należy zamykać połączenie po wykonaniu programu przy użyciu predykatu nxt_sensomoto:nxt_connection_close/0. Jeśli w wyniku błędu w programie poprawne zamknięcie połączenia nie będzie możliwe, należy wyłączyć i włączyć MindstormsNXT oraz adapter Bluetooth, a także ponownie uruchomić SWI Prolog. W przeciwnym razie mogą wystąpić problemy przy nawiązywaniu ponownego połączenia. |
| |
| ===== Sprawozdanie ===== |
| W sprawozdaniu należy zawrzeć: |
| * krótki opis algorytmu (co się udało zrobić, czego nie), |
| * kod programu, |
| * uwagi dotyczące funkcjonalności PlNXT. |