====== Sprawozdanie z laboratorium 3 ====== ===== 1. Wstęp ===== Naszym zadaniem było wymyślenie i implementacja kilku zadanych algorytmów które miał realizować robot Czesław. Był on już w pełni zbudowany, więc zajęliśmy się wyłącznie częścią programistyczną. {{:pl:dydaktyka:jsi:2009:sprawozdania:mk_wl-bolek.jpg|}} ===== 2. Algorytmy ===== ==== Magazynier ==== ===Opis === Pierwszym zadaniem było podniesienie piłki. Następnie robot miał wykonać obrót o 180 stopni i przenieść piłeczkę pod ścianę. Dodatkowo na klaśniecię Czesław miał zakończyć swoją pracę. ===Realizacja === {{:pl:dydaktyka:jsi:2009:sprawozdania:kmw.jpg|}} Ciekawym rozwiązaniem było zastosowanie rozgałęzienia od "punktu startowego", które umożliwiło równoległą pracę algorytmu ( robot kończył działanie po zarejestrowaniu dźwięku przewyższającego wartość progową). W pętli while zastosowaliśmy bloczek "switch", który porównuje wartość natężnia dźwięku. Dzięki temu uzyskujemy możliwość warunkowego wykonywania programu. Film: [[http://www.youtube.com/watch?v=FXE70JaJuRQ]] ==== Magazynier2 ==== ===Opis === Kolejnym zadaniem było podniesienie piłki. Następnie robot miał wykonać obrót o 180 stopni i opuścić piłkę pod najechaniu na białą kartkę. Dodatkowo na klaśniecię Czesław miał zakończyć swoją pracę. ===Realizacja === {{:pl:dydaktyka:jsi:2009:sprawozdania:kmw2.jpg|}} Algorytm jest bardzo podobny do Magazyniera, jedyną różnicą jest wykorzystanie sensora do pomiaru natężenia światła, zamiast sonaru. Pomocne okazało się wykorzystanie sterownika robota w celu zbadania wartości poziomu natężenia światła dla różnych powierzchni. Film: [[http://www.youtube.com/watch?v=tjPYmoc-p_4]] ==== Złodziej ==== ===Opis === Zadaniem było podjechanie dostatecznie blisko kulki i podniesienie jej. Następnie robot miał się cofnąć, wykonać obrót o 180 stopni. Robot kończył ucieczkę po zarejestrowaniu okrzyku "Stój Policja" ===Realizacja === {{:pl:dydaktyka:jsi:2009:sprawozdania:kmw3.jpg|}} Kluczową rzeczą do zrealizowania tego algorytmu było ustalenie odległości, po której miało nastąpić zatrzymanie Czesława i złapanie piłeczki. Odległość ustaliśmy metodą prób i błędów. Przy wykonywaniu zadania, stwierdziliśmy że sonar nie reaguje na piłeczkę ( jest za wysoko zawieszony). Omineliśmy tą niedogodność ustawiająć przeszkodę na drodze robota. Film: [[http://www.youtube.com/watch?v=p3BP2x3Wsig]] ==== Złodziej2 ==== ===Opis === Zadaniem było podjechanie dostatecznie blisko kulki i podniesienie jej. Następnie robot miał się cofnąć, wykonać obrót o 180 stopni. Robot po zarejestrowaniu okrzyku "Stój Policja" ma uciekać. ===Realizacja === {{:pl:dydaktyka:jsi:2009:sprawozdania:kmw4.jpg|}} W porównaniu do "Złodzieja" dodatkowo wstawiliśmy pętlę, w której umieściliśmy bloki "move" odpowiadające za ucieczkę Czesława przed policją. Z powodu braku czasu, nie udało się zrealizować ucieczki w losowym kierunku. Film: [[http://www.youtube.com/watch?v=H0iJOgzfoXY]] ===== 3. Podsumowanie i sugestie ===== Podczas wykonywania laboratorium poznaliśmy kolejne elementy składowe środowiska Lego. Dużą niedogodnością były problemy z komunikacją bluetooth, przez co traciliśmy czas na przenoszenie Czesława z miejsca na miejsce i podłączanie go. W środowisku Lego brakuje funkcji zoomout, która umożliwiłaby łatwiejsze zarządzanie programem. Atutem jest dostępnośc w środowisku Lego NXT podlągu do aktualnych wartości sensorów, możliwe jest również odczytanie tych wartości z konsoli wbudowanej w robota. Plusem jest również możliwość rozgałęzienia algorytmu z "punktu startowego", dzięki temu uzyskujemy możliwość równoległego wykonywaniu czynności robota. Uważamy że laboratorium jest dobrym wstępem, przed zaawansowanym programowaniem robotów. Myślimy że ciekawym urozmaiceniem laboratorium byłaby możliwośc komunikowania się robotów między sobą. Wtedy np. jeden robot mógłby pełnić rolę czujnika, który kontrolowałby czy piłka jest w właściwym miejscu. Po złapaniu kulki przez złodzieja, robot "czujnik" powiadomiłby policjanta o kradzieży. ===== 4. Spakowane programy ===== {{:pl:dydaktyka:jsi:2009:sprawozdania:programy_kmw.zip|}}