====== Skład zespołu: ====== * Tomek Drożdż * Piotr Jamróz * Paweł Hersztowski * Przemysław Krupiński ====== Wstęp ====== * Laboratorium pozwoliło nam dowiedzieć się jak konstruować zaawansowanych algorytmów opartych na jednym lub na wielu wątkach. * Zadaniem głównym było rozwiązanie jednego z podanych problemów. Nasz wybór padł na Sprzątacza. ====== Konstrukcja robota ====== Do ćwiczeń podeszliśmy już z zbudowanym robotem. Jedyną rzeczą jaką musieliśmy(domontować) były baterie. Po zamontowaniu baterii i podłączeniu pod USB bluetooth próbowaliśmy nawiązać połączenie z robotem co nam wyjątkowo nie chciało się udać dopiero po zmaganiach z wcześniejszymi ćwiczeniami i zabawach z samym robotem (za dużo połączeń potworzonych) udało nawiązać się połączenie. {{:pl:dydaktyka:piw2009:sprawozdania:robocik.png|}} (oto i nasz robocik w dobrych rękach) ====== Opracowanie algorytmów ====== Z proponowanych zagadnień najbardziej do gustu przypadło nam stworzenie sprzątacza (przydałoby nam się coś takiego na mieszkaniu ;). Zadecydowaliśmy, że nasz robot (Gienio) będzie obracał się dookoła własnej osi. Jeśli w odległości max. 40 cm przed sobą znajdzie jakiś przedmiot postara się go wypchnąć przed siebie. Oto proponowany przez nas algorytm: :- consult('plnxt.pl'). start :- nxt_open, thread_create(go_on_buddy,_,[detached(true)]). go_on_buddy :- nxt_rotate(200,360), trigger_create(_,distance,clear). clean :- nxt_stop, nxt_go_cm(300,40), nxt_go_cm(-300,40), go_on_buddy. distance :- nxt_ultrasonic(D), D < 15. stop :- trigger_killall, nxt_stop, nxt_close. Algorytm ten udało się sprawdzić niestety tylko po części. Wpłynęły na to problemy, które dokładnie opisaliśmy w następnej części sprawozdania. ====== Napotkane problemy ====== Niestety spotkaliśmy się z uciążliwymi problemami. Pierwszym z nim było połączenie przez Bluetooth. Po wykonaniu instrukcji dotyczącej kłopotów z połączeniem Bluetooth (czyszczenie dotychczasowych połączeń i ponowne parowanie) udało się w końcu połączyć z robotem. Niestety potem natrafiliśmy na problemy z wątkami (komunikat "threads wouldn't die"). Przy testowaniu algorytmu robot przestał reagować. Po kliku minutach (w czasie, których szukaliśmy błędów w algorytmie) robot nagle wykonał przesłany mu algorytm! Potem znowu przestał reagować i wymagany był jego reset. Niestety ponownie pojawiły się problemy z połączeniem. Pomógł dopiero restart komputera ====== Wnioski ====== Laboratorum było bardzo interesujące, a proponowane algorytmy to ciekawy sposób na przyswojenie sobie wątków i triggerów w plnxt. Niestety wciąż najbardziej uciążliwe są problemy z połączenie przez Bluetooth i samego testowania i uruchamiania algorytmy :( Rozwiązywanie tych problemów pochłania niestety sporą część zajęć. ====== Pliki ====== {{:pl:dydaktyka:piw2009:sprawozdania:sprzataczka.pl.tar.bz2|}}