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.

(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/piw/2009/sprawozdania/piw20090429-08d.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0