Robot, którego używaliśmy na zajęciach był już przygotowany, był to jeden z przykładów z instrukcji LEGO. Oryginalnie ten typ robota prezentował podnoszenie piłeczki. Wyposażony był w czujnik nacisku i odległosci zamontowane z przodu robota oraz czujnik dźwięku.
Na zajęciach zrealizowaliśmy cztery algorytmy w języku Prolog przy czym trzy z nich były to gotowe programy przygotowane na stronie z instrukcją. Pierwszy z nich realizował zwykłe przemieszczanie się robota. Kolejny zatrzymywał robota w przypadku napotkania przeszkody. Trzeci algorytm był to przykład nr 2 ze strony, którego zadaniem było zatrzymywanie robota i ponowny start po usłyszeniu klaśnięcia. Następnie przystąpiliśmy do implementacji własnego programu Panikarz. Jego zachowanie wyglądało następująco:
Do powyższego celu zmodyfikowaliśmy przykład nr 2:
:- consult('plnxt.pl').
start:-
nxt_open, go_on_buddy, trigger_create(_,pushed,[nxt_stop,nxt_close]).
go_on_buddy :-
nxt_go(200), sleep(1), trigger_create(_,clap,uciekaj).
uciekaj :-
nxt_stop, nxt_play_tone(1000,500), nxt_rotate(600,180,force), nxt_go_cm(600,50), start.
clap :-
nxt_sound(Value,force), Value > 50.
pushed :-
nxt_touch(Value,force), Value=1.
Pliki z programami - jasio_sr_1100.zip
Podczas realizacji problemem okazało się dodanie przez nas dźwięku podczas ucieczki. Niestety nie udało się nam to przy pomocy opcji force, gdyż nie pozwala ona na równoległe wykonywanie czynności a jedynie sekwencyjne. Tak więc robot najpierw wydawał dźwięk a dopiero potem brał się za ucieczkę. Drugim napotkanym problemem było dziwne zachowanie podczas jazdy z dużą prędkością, kiedy to czasem nie zamierzenie zmieniał kierunek.