Celem ćwiczenia było zapoznanie się z interfejsem programistycznym w prologu do Lego Mindstorms.
:- consult('../plnxt/plnxt.pl'). start :- nxt_open, trigger_create(_,check_distance,[nxt_stop, rotate90]), trigger_create(_, check_stop, [nxt_stop, nxt_close]), nxt_go(500). check_distance :- nxt_ultrasonic(Distance,force), Distance < 15. rotate90 :- go_rotate, trigger_create(_,check_distance,[nxt_stop, rotate90]), nxt_go(500). go_rotate :- nxt_rotate(350, 90), sleep(1), nxt_go_cm(500,30), nxt_rotate(350,-90),sleep(1), nxt_go_cm(500,30), nxt_rotate(350,-90),sleep(1), nxt_go_cm(500,30), nxt_rotate(350,90),sleep(1). check_stop :- nxt_touch(Stop,force), Stop = 1.
API prologu jest zdecydowanie wygodniejszą formą tworzenia oprogramowania dla Mindstorms niż kożystanie z dostarczanego programu firmy LEGO, z którego kożystaliśmy na wcześniejszych zajęciach. Warto było by się zastanowić nad innym sposobem rozkazywania robotowi w trakcie jego działania niż klaskanie (co niestety często się zdarza w instrukcjach), z bardzo prozaicznego powodu ponieważ system klaskań nie sprawdza się w warunkach laboratorium.