====== 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