====== Laboratorium (sterowanie wieloma robotami w PLNXT) ====== ===== Opis ===== Cel: testowanie możliwości interfejsu programistycznego PLNXT przez budowę algorytmów sterujących więcej niż jednym robotem jednocześnie. Środki: * zestaw LEGO, * plansza testowa, * adapter BT, * PLNXT. ===== Przygotowanie stanowiska ===== __UWAGA!__ Przed rozpoczęciem ćwiczeń należy starannie przygotować swoje stanowisko pracy [[lab215|zgodnie z instrukcją]]. ===== Dokumentacja ===== Warstwa behawioralna: {{:pl:mindstorms:lab:nxt_movement.pdf|nxt_movement.pdf}}\\ Tiggery, timery, zadania (goals): {{:pl:mindstorms:lab:threads.pdf|threads.pdf}}\\ [[https://ai.ia.agh.edu.pl/wiki/pl:prolog:prolog_lab#czesc_fakultatywna|Wykorzystanie dodatkowych bibliotek SWI Prolog]] ===== Budowa robota ===== Prowadzący powinien udostępnić złożonego robota TriBot lub jego uproszczoną wersję (wg. instrukcji QuickStart). Robot powinien posiadać sensor światła, zwrócony ku dołowi (odległość diody od planszy powinna być jak najmniejsza w celu uniknięcia fałszywych odczytów spowodowanych ingerencją zewnętrznych źródeł światła). UWAGA! Dla celów niniejszego laboratorium sensor światła musi być podłączony do portu nr 3. ===== Implementacja algorytmu ===== Proszę zaimplementować algorytm „Więzień” z [[lab_plnxt_zaawansowane|poprzedniego laboratorium]], będą o niego oparte programy w ramach niniejszego laboratorium. ===== Sterowanie wieloma robotami ===== Pierwszy etapem laboratorium będzie uruchomienie zaimplementowanego wcześniej algorytmu więzień na 2 robotach jednocześnie. Dodatkowo, znalezienie przez jednego z robotów klucza, tj. czerwonego obszaru, ma spowodować iż drugi również zasygnalizuje dźwiękiem znalezienie klucza i również rozpocznie ucieczkę. Program należy testować na 2 osobnych planszach. W tym celu zespoły powinny nawiązać ze sobą współpracę, tj. dobrać się w pary i na zmianę korzystać z obu robotów oraz plansz. ===== Komunikacja między robotami ===== Pary zespołów powinny stworzyć dwa niezależne programy sterujące robotami i rozbudować je o możliwość komunikacji w celu osiągnięcia efektu jak powyżej (do komunikacji najprościej wykorzystać protokół TCP/IP, którego obsługa jest wbudowana w SWI Prolog). ===== Zakończenie ===== __UWAGA__! Prosze nie rozmontowywać robota! **__UWAGA__**! Jeżeli należycie Państwo do ostatniej tego dnia grupy ćwiczeniowej, należy //wyciągnąć baterie z robota// i przekazać je prowadzącemu do naładowania! ===== Sprawozdanie ===== W przypisanej grupie przestrzeni nazw stworzyć stronę, na której umieścić: * kod Państwa programów, * spostrzeżenia, napotkane problemy, wnioski, * uwagi dotyczące funkcjonalności PLNXT. [[pl:dydaktyka:piw:2010:wykaz_sprawozdan|Wykaz sprawozdań]]