====== Wstęp ====== Zespół składa się z następujących osób: - //Szef// - Bartłomiej Tyranowski - //Mechanik// - Bartłomiej Trzciński - //Konstruktor// - Adrian Toboła ====== Implementacja algorytmów ====== ===== Algorytm 1 ===== Robot jedzie przed siebie. Jeśli znajdzie się za blisko ściany, to zawraca. Po klaśnięciu wyłącza się. :- consult('plnxt.pl'). start :- nxt_open, go. go :- nxt_go(200), trigger_create(_,check_distance,turn_somewhere_else), trigger_create(_,check_noise,turn_off), go. check_distance :- nxt_ultrasonic(Distance,force), Distance < 15. check_noise :- nxt_sound(Value,force), Value > 50. turn_off :- trigger_killall, nxt_stop, nxt_close. turn_somewhere_else :- nxt_stop, Angle is 100 + random(160), nxt_rotate(200,Angle), nxt_play_tone(666,1000). ===== Algorytm 2 ===== Robot jedzie do przodu do napotkania ciemnego obszaru, cofa się o 20cm, skręca o 0-90 stopni i znowu jedzie. W ten sposób porusza się aż do pojawienia się hałasu. W takim przypadku robot się wyłącza. start :- nxt_open, go. go :- nxt_go(200), trigger_create(_,check_light,reverse), trigger_create(_,check_noise,turn_off), go. check_light :- nxt_light(Value,force), Value < 40. check_noise :- nxt_sound(Value,force), Value > 50. reverse :- nxt_stop, nxt_go_cm(-200, 20), turn. turn :- nxt_rotate(200,Angle), Angle is random(90), go. turn_off :- trigger_killall, nxt_stop, nxt_close. załączone pliki: {{:pl:dydaktyka:piw:2010:sprawozdania:lab3_tobola_trzcinski_tyranowski.zip|}} ====== Podsumowanie ====== Uciążliwą kwestią jest fakt zawieszania się środowiska i niemożność wykonania komendy abort. W takim przypadku postępowaliśmy wg. następującego algorytmu: - kill xpce - restart bricka - próba sparowania Brick'a i PC - uruchomienie xpce - wykonanie nxt_open (pojawią się errory) - ponowne parowanie urządzeń - można nawiązać połączenie z robotem