Wstęp

Zespół składa się z następujących osób:

  1. Szef - Bartłomiej Tyranowski
  2. Mechanik - Bartłomiej Trzciński
  3. Konstruktor - Adrian Toboła

Implementacja

Po starannym przygotowaniu naszego stanowiska pracy, przystąpiliśmy do niewielkiej modyfikacji robota. Zainstalowaliśmy czujnik światła:

Podjęliśmy się napisania algorytmu o wdzięcznej nazwie „Więzień”, niestety na resztę nie starczyło nam czasu.

Kod programu prezentuje się następująco:

%consult('/plnxt/').
 
 start :-   
    nxt_light_LED(activate),
    trigger_create(_,check_color_black,skret),
    trigger_create(_,check_color_red,czmychajczympredzej),
    nxt_go(150).
 
check_color_black :-
    nxt_light(Light2,force),
    Light2 < 43.
 
check_color_red :-
    nxt_light(Light,force),
    Light > 45,
    Light < 50.
 
skret :-
    nxt_stop,   
    Angle is 90 + random(90),
        nxt_rotate(200,Angle),
        start.
 
czmychajczympredzej :-
    nxt_stop,
    trigger_create(_,check_color_black,woohoo),
    nxt_play_tone(666,2000),
        nxt_go(300),
    trigger_killall.
 
woohoo :-
    nxt_stop,
    nxt_play_tone(666,2000),
    nxt_go_cm(200,30).

załączone pliki: lab4_tobola_trzcinski_tyranowski.zip

Spostrzeżenia, podsumowanie

Głównym problemem, jaki napotkaliśmy pisząc program, była niemożność kalibracji sensora światła. Próbowaliśmy przeróżnych konfiguracji: ustawialiśmy stanowisko na stole, na podłodze, regulowaliśmy odległość czujnika światła od podłoża, korzystaliśmy z wbudowanego oświetlenia, jednakże zabiegi te nie przyniosły oczekiwanego rezultatu. Mieliśmy rozróżnić kolor czerwony i czarny, jednak wartości wskazywane przez sensor często były dla obu jednakowe lub bardzo zbliżone. Możliwe, że za stan rzeczy odpowiedzialna była czerwona dioda doświetlająca podłoże. W związku z tym w miejscu, gdzie namalowany jest czerwony kwadrat, położyliśmy kartę płatniczą barwy niebieskiej. Odnotowaliśmy zdecydowaną poprawę w rozróżnianiu kolorów.

Problemy sprawiała również czarna otoczka czerwonego pola, jednak zniwelowaliśmy to wyżej opisaną metodą.

Istotnym utrudnieniem w pracy z robotem była komunikacja Brick'a z komputerem PC poprzez Bluetooth. Parokrotnie mieliśmy problem ze sparowaniem urządzeń, a otrzymywane komunikaty były sprzeczne z aktualnym stanem:

Po poprawnie przeprowadzonej operacji łączenia, dostawaliśmy komunikaty o błędach, które wprowadzały zamieszanie i były sprawcą naszej dezorientacji. Kolejny raz predykaty nxt_open i stop powodowały zawieszanie środowiska, co skutkowało koniecznością jego restartu i ponownego inicjowania, generując niepotrzebne opóźnienia w realizacji zadań laboratorium.

pl/dydaktyka/piw/2010/sprawozdania/piw20100526-17d.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