====Sprawozdanie nr 4==== Robot:[[https://ai.ia.agh.edu.pl/wiki/pl:mindstorms:lab:wyposazenie:11-kajtek|Kajtek]]\\ Data:** 26.05.2010**\\ Grupa:** Woliński Krzysztof, Dawid Boisse, Paulina Mlaś**\\ ===Przygotowanie do zajęć=== Najpierw uruchomiliśmy dwa testowe programy, aby sprawdzić naszą komunikację z //Kajtkiem//. ==Ćwiczenie pierwsze== :- consult('plnxt.pl'). start :- nxt_open, rectangle_loop. rectangle_loop :- nxt_go_cm(350,40), nxt_rotate(350,90), rectangle_loop. ==Ćwiczenie drugie== :- consult('plnxt.pl'). start :- nxt_open, nxt_goal(kajtek, rectangle_loop). rectangle_loop :- nxt_go_cm(350,40), nxt_rotate(350,90), rectangle_loop. stop :- trigger_killall, nxt_stop, nxt_close. ===Pierwsze zadanie=== Zgodnie z instrukcją rozpoczęliśmy implementację pierwszego zadania o nazwie "Więzień". W pierwszej kolejności używając czujnika światła odczytaliśmy wartości dla kolorów: białego, czerwonego i czarnego. Biały:42,40,41 Czerwony:35,37,37 Czarny:19,25,26,26 ==Kod programu== :- consult('plnxt.pl'). start :- nxt_open, nxt_goal(kajtek, go_on_buddy). go_on_buddy :- nxt_go(800,30), nxt_light(Value), trigger_create(_,check_red,go_go_go), trigger_create(_,check_black,go_round), write(Value),nl, go_on_buddy. check_black :- nxt_light(Value,force), Value < 30, write('black'),write(Value),nl. check_red :- nxt_light(Value,force), Value > 34,Value < 38, write('red'),write(Value),nl. go_go_go :- nxt_go(500,300), write('go'),nl. go_round :- nxt_rotate(300,90), write('round'),nl. stop :- trigger_killall, nxt_stop, nxt_close. Niestety zauważyliśmy, iż robot nie poruszał się zgodnie z naszymi oczekiwaniami: przekraczał czarną linię zanim napotkał czerwony kwadrat. Spostrzegliśmy jednak, że plansza nie była jednorodnie oświetlona, np. z powodu cieni generowanych przez samego robota albo biurko. Aby rozwiązać ten problem włączyliśmy LEDa, jednak to także nie rozwiązało całkowicie naszego problemu. Zanotowaliśmy nowe wartości dla kolorów: białego, czerwonego i czarnego, które generował //Kajtek//. Kilka razy członkowie naszego zespołu podnosili robota, co było błędem ponieważ robot nadal zczytywał wartości i błędnie reagował. Nowe wartości to: Biały:41,42,43,44 Czerwony:38,39 Czarny:28,30,31,30,31 ==Poprawiony kod== :- consult('plnxt.pl'). start :- nxt_open, nxt_light_LED(activate), nxt_goal(kajtek, go_on_buddy). go_on_buddy :- nxt_go(800,30), nxt_light(Value), trigger_create(_,check_red,go_go_go), trigger_create(_,check_black,go_round), write(Value),nl, go_on_buddy. check_black :- nxt_light(Value,force), Value < 33, write('black'),write(Value),nl. check_red :- nxt_light(Value,force), Value > 37,Value < 40, write('red'),write(Value),nl. go_go_go :- nxt_go(500,300), write('go'),nl. go_round :- nxt_rotate(300,90), write('round'),nl. stop :- trigger_killall, nxt_stop, nxt_close. ===Podsumowanie=== Robot niekiedy poprawnie wykonywał swoje zadanie, ale zdarzało się również, że nie poruszał się zgodnie z zamierzeniami. Bardzo trudno było dobrać wartości w ten sposób by robot bezbłędnie je odczytywał i dobrze na nie reagował.