Spis treści

Sprawozdanie nr 5

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.