Laboratorium nr. 2
Złożyliśmy robota według dołączonej instrukcji, dodaliśmy jedynie sensor odległości umożliwiając Irkowi omijanie przeszkód.
W pierwszej wersji naszego algorytmu omijanie polegało na zmianie kierunku jazdy o 90 stopni w odległości 20 cm przed przeszkodą, algorytm zadziałał bezbłędnie, choć mamy pewne zastrzeżenia co do dokładności sensora odległości.
Uznaliśmy ten schemat za banalny i postanowiliśmy zrobić lepsze omijanie. Irek po „zobaczeniu” przeszkody powinien skręcić w lewo przejechać kawałek, skręcić w prawo przejechać kawałek, skręcić w prawo przejechać kawałek (…Ufff) skręcić w lewo i w efekcie znaleźć się na swoim pierwotnym torze.
Zbudowaliśmy następujący schemat blokowy:
I obawiamy się ze znaleźliśmy błąd w środowisku NXT :), otóż po wykonaniu omijania Irek postanawiał po raz drugi wykonać to samo omijanie, tak jakby znowu widział przed sobą przeszkodę. Spędziliśmy nad drobnymi modyfikacjami programu i jego parametrów 30 minut bez efektu i żadnego pomysłu na błąd z naszej strony.
Instrukcja switch otrzymywała drugi raz informację od sensora że Irek napotkał przeszkodę (dwa razy słyszeliśmy wydawany dźwięk przez bloczek sound który dodaliśmy w ramach testu).
Z ważniejszych zasadzek jakie mogą Cię spotkać to opcja „Wait for Completion” odznaczenie jej powoduje równoległe wykonywanie się bloczków, zastosowaliśmy to przy zmianie kierunku jazdy, lewy i prawy silnik jednocześnie kręciły się w przeciwnych kierunkach.