====== 1) Kody programów wykonanych na zajęciach: ====== ===== Więzień ===== Z użyciem planszy testowej. Wymagane sensory: światło. Robot zaczyna działanie wewnątrz obszaru zaznaczonego grubą czarną linią na planszy testowej. Chce się z tego obszaru wydostać, ale nie może zrobić tego (nie wolno mu przekroczyć czarnej linii), dopóki nie znajdzie „klucza” - czerwonego obszaru symbolizującego piłkę. Po najechaniu na „klucz” sygnalizuje to dźwiękiem i ucieka z obszaru wewnątrz czarnej linii. Po wydostaniu się sygnalizuje ten fakt dźwiękiem i kończy pracę. ---- :- consult('plnxt.pl'). start :- nxt_open, thread_create(go,_,[detached(true)]), trigger_create(_,sensor,stop). go :- nxt_open, nxt_light_LED(activate), trigger_create(_,check_color,odwroc), trigger_create(_,search_key,get_key), nxt_go(300). check_color :- nxt_light(Value, force), Value < 50. odwroc :- nxt_rotate(320, 120 + random(120), force), go. search_key :- nxt_light(Red, force), Red = 65. get_key :- nxt_stop, trigger_killall, nxt_go(300), trigger_create(_, check_color, make_heppy), trigger_create(_, black, is_outside, 1). trigger_create(_,sensor,stop). sensor :- nxt_touch(Value, force), Value = 1, stop. make_heppy :- nxt_play_tone(800, 2000). is_outside :- timer_create(_, 3, stop). stop :- trigger_killall, nxt_stop, nxt_close. :- start. ===== Co przybyło? ===== Wymagane sensory: odległość, dźwięk. Robot obraca się i bada rozmieszczenie przedmiotów wokół siebie. Po pierwszym obrocie zatrzymuje się. Należy mu dołożyć w tym obszarze jakiś przedmiot. Po klaśnięciu wykonuje drugi obrót. Po wykryciu dostawionego przedmiotu podjeżdza do niego i kończy pracę. ---- :- consult('plnxt.pl'). start :- nxt_open, thread_create(rotate,_,[detached(true)]), %trigger_create(_,search_key,stop). trigger_create(_,distance,_). rotate :- nxt_rotate(200, 360, force). distance :- nxt_ultrasonic(Value, force), Value < 20, nxt_play_tone(800, 100), save_object(Value), trigger_create(_,distance,_). save_object(Value):- assert(new_object(Value)). :- start. ====== 2) Spostrzeżenia, napotkane problemy, wnioski, uwagi na temat PLNXT: ====== * Podczas próby odczytania wartości z sensora światła dla koloru czerwonego robot przestawał reagować na komendy po trzecim odczycie. * Przy realizacji algorytmu //Wiezień// trudno było określić jaka jest prawidłowa wartość dla koloru czarnego i czerwonego. Problem wynikał z niejednolitego naświetlenia planszy. ====== 3) Pliki z kodem wynikowym ====== {{:pl:dydaktyka:piw2009:sprawozdania:kod_programu.zip|}}