Ustanowienie połączenia z robotem przebiegło bez problemów. Test poprawności połączenia wykonaliśmy wpisując instrukcję nxt_go(200,200).
W celu wykonania laboratorium musieliśmy zmodyfikować robota do postaci pokazanej na zdjęciach.
Niepotrzebne sensory zostały odpięte, a wymagane zostały podłączone.
Modyfikacją robota Ewka Zajmował się Marcin.
:- consult('./plnxt.pl'). start :- nxt_light_LED(activate), nxt_goal(henio, prog), trigger_create(_,czy_czarny,turn), trigger_create(_,clap,stop). obroty :- trigger_create(_,czy_czarny,turn). prog :- nxt_go_cm(150,100), prog. prog2 :- sleep(1), % trigger_create(a,czy_czarny,turn), % trigger_kill(a), nxt_go_cm(300,1), prog. turn :- nxt_stop, nxt_go(-300,force), sleep(2), nxt_turn(400,30), % % stop, % nxt_turn(800,90), trigger_create(_,czy_czarny,turn) panika :- nxt_stop, nxt_go_cm(800,10), nxt_rotate(800,45), nxt_go_cm(800,10), nxt_rotate(800,-90), nxt_go_cm(800,20), nxt_rotate(800,90), nxt_go_cm(800,10), nxt_rotate(800,-45). czy_koniec :- trigger_create(_,push,stop). clap :- nxt_sound(Value,force), Value > 15. push :- nxt_stop, nxt_touch(Value,force), Value = 1. czy_czarny :- light(V), V<59. czy_czerwony :- light(V), V<31, v>25. czy_bialy :- light(V), V>60. light(Value) :- %nxt_stop, nxt_light(Value,force). %write("light wynosi "),write(Value) stop :- trigger_killall, nxt_stop.
Niestety w początkowej fazie implementacji popełniliśmy błąd, który dzięki pomocy prowadzącego zostął naprawiony.
Przez wykonanie owego błędu nie mogliśmy ukończyć laboratorium.
Zdefinjowany algorytm jest jedynie więzniem, który napotykając obiekt zatrzymuje się.
Dodatkowo z porzednich laboratoriów umięscilsmy w programie awaryjne wyłączenie robota w skutek klasnięcia.
Przydałaby się lista z problemami oraz rozwiązaniem(przynajmniej teoretycznym) na jakie napotykali się studenci w trakcie wykonywania laboratoriów. Lista taka mogła by się znajdować na wiki.