Sprawozdanie nr 5
Robot: Dyzio
Data: 2.06.2010, godz. 15.30
Autorzy: Andrzej Gryboś, Michał Henslok, Tomasz Jama
Sprzątacz
:- consult('plnxt.pl').
start :-
nxt_rotate(100,30),
smiec,
start.
smiec :-
nxt_ultrasonic(Value, force),
Value < 10,!,
sprzatnij.
smiec :-
1 = 1.
sprzatnij :-
nxt_go_cm(250, 15),
nxt_play_tone(400,500),
nxt_go_cm(-250, 15),
nxt_play_tone(600,1000).
Początkowo chcieliśmy stworzyć program wielowątkowy jednak to podejście skutkowało irytującymi błędami, które powodowały nieustanne bugowanie się środowiska i przymusowy restart zarówno połączenia z robotem jak i kompilatora. Zmieniliśmy zatem program na sekwencyjny i robot zaczął posłusznie wykonywać nasze polecenia. Pojawiło się trochę błędów z powodu zakłóceń czujnika ultradźwiękowego jednak były one sporadyczne.
Co przybyło
:- consult('plnxt.pl').
start :-
nxt_rotate(100,360),
trigger_create(_,clap,obrot),
trigger_create(_,
X is
smiec :-
nxt_ultrasonic(Value, force),
Value < 10.
clap :-
nxt_sound(Value,force),
Value > 70.
obrot :-
nxt_rotate(100,360).
stop :-
nxt_stop,
nxt_close.
Niestety nie udało się nam zakończyć pracy nad tym programem (Następna grupa nie dała nam szansy :( choć chcieliśmy zostać). Program posiada elementy wątków, które miały być usunięte.
Robot obraca się i reaguje na klaśnięcie. W celu realizacji programu wydaje nam się iż należało użyć poleceń assert/retract w celu dodania w sposób dynamiczny faktów do bazy (przeszkody) w celu rozróżnienia starych i nowych przeszkód.