====== Sprawozdanie nr 6 ====== * Robot: Dyzio * Data: 09.06.2010, godz. 15.30 * Autorzy: Andrzej Gryboś, Michał Henslok, Tomasz Jama ===== Wstęp ===== Po zapoznaniu się z instrukcjami do laboratorium oraz odkomentowaniu kody odpowiedzialnego za komunikację z naszym robotem, czyli [[https://ai.ia.agh.edu.pl/wiki/pl:mindstorms:lab:wyposazenie:04-dyzio|Dyziem]] tak aby był on wykrywany przez wirtualny port Comm 4 przystąpiliśmy do realizacji laboratorium. nxt_robot_definition(dyzio,'/dev/rfcomm4',bt,off,on_demand,17.5,11,'C','B','A',false,'S1','S2','S3','S4'). {{:pl:dydaktyka:piw:2010:sprawozdania:dyzio_lab6_1.jpg|}} {{:pl:dydaktyka:piw:2010:sprawozdania:dyzio_lab6_2.jpg|}} ===== Przebieg laboratorium ===== Od samego początku zaczęliśmy naszą pracę od dostosowania programu Więzień do aktualnie panujących warunków świetlnych. Dokonaliśmy zmian konstrukcyjnych robota - tak aby sensor świetlny był jak najbliżej powierzchni po której przemieszcza się robot. Poniżej kod programu Więzień. :- consult('plnxt.pl'). start :- nxt_go(100), trigger_create(10,czarny,szukaj), trigger_create(_,klucz,uciekaj). czarny :- nxt_light(Value,force), Value < 50. szukaj :- nxt_stop, nxt_rotate(100, 60), trigger_kill(10), start. klucz :- nxt_light(Value, force), Value > 68, Value < 70. uciekaj :- nxt_play_tone(400,500), nxt_go_cm(500, 1000), nxt_play_tone(600,1000), stop. stop :- trigger_killall, nxt_stop, nxt_close. Niestety nie udało nam się nawiązać komunikacji między robotami. Powodami były: * problemy z komunikacją wynikające z za dużej liczby urządzeń jednocześnie korzystających z połączeń typu Bluetooth * brak czasu na dokładne zaznajomienie się z obsługą protokołu TCP/IP w środowisku SWI Prolog * dopracowywanie programu Więzień ===== Wnioski ===== - Komunikacja między robotami nie była możliwa do przetestowania z powodów wymienionych powyżej. - Należy zwracać uwagę na tworzenie nowych wątków, gdyż nie są one zabijane aż do wydania poleceńtrigger_kill(ID) / trigger_killall i mogą prowadzić do zapętlenia się programu. - Wpływ oświetlenia dziennego ma zasadniczy wpływ na kalibrację sensora świetlnego. Kolor czerwony (przedział jasności 68-70) jest praktycznie niemożliwy do odróżnienia od koloru białego (69-71). Dodatkowo na pomiar jasności wpływa cień rzucany przez samego robota utrudniając jeszcze bardziej identyfikację kolorów. Jedynie kolor czarny jest łatwo rozróżnialny od pozostałych (przedział jasności <40). ===== Uwagi ===== * Opis laboratoriów powinien być bardziej szczegółowy - w trakcie zajęć nie ma za dużo czasu, aby zapoznać się ze wszystkimi potrzebnymi funkcjami oraz ich przetestowania (obsługa protokołu TCP/IP w Prologu), a studenci poza zajęciami nie mają możliwości własnego ich sprawdzenia * Ze względu na brak możliwości programowania sekwencyjnego w Prologu pewnie działania są o wiele trudniejsze do napisania niż w innych językach programowania