Udało nam się sprawnie połaczyć z robotem, niestety dalej nie był już tak skory do współpracy. Podstawowe polecenia wykonywał na swój własny sposób. Nie reagował na polecenia nakazujące jazdę do tyłu takie jak np.:
nxt_go(-200). nxt_go_cm(-200,20).
Na rozkazy obrotu reagował dość zaskakująco. Zamiast wykonywać obrót o zadaną ilość stopni kręcił się aż do wydania polecenia nxt_stop.
Po kilku restartach robota i połączenia w końcu doszliśmy do porozumienia.
Udało nam sie napisać algorytm poruszania wewnątrz obszaru ograniczonego czarną linią.
:- consult('./plnxt.pl'). start :- nxt_light_LED(activate), nxt_goal(henio, prog), trigger_create(_,czy_czarny,turn), trigger_create(_,clap,stop). prog :- nxt_go_cm(150,100), prog. turn :- nxt_stop, nxt_go(-300,force), sleep(2), nxt_turn(400,30), trigger_create(_,czy_czarny,turn). clap :- nxt_sound(Value,force), Value > 15. czy_czarny :- light(V), V<59. czy_czerwony :- light(V), V<31, v>25. czy_bialy :- light(V), V>60. light(Value) :- nxt_light(Value,force). stop :- trigger_killall, nxt_stop.
Niestety nie udało nam się dojść dlaczego robot co jakiś czas wykonywał „własne polecenia” - na swój sposób interpretował otrzymywane instrukcje.
Z braku miejsca na kolejne sprawozdanie doklejamy do poprzedniego.
Kontynuowaliśmy walkę z robotem przy algorytmie „więzień”.
Zadanie bardzo uciążliwe. Różnica jasności planszy czerwonej i białej jest tak marginalna że wystarczy ze robot wykręci się czujnikiem w stronę przeciwną od okna i program nie będzie działał.