====== Wstęp ====== Zespół składa się z następujących osób: - //Szef// - Bartłomiej Tyranowski - //Mechanik// - Bartłomiej Trzciński - //Konstruktor// - Adrian Toboła ====== Implementacja ====== Po starannym przygotowaniu naszego stanowiska pracy, przystąpiliśmy do niewielkiej modyfikacji robota. Zainstalowaliśmy czujnik światła: {{:pl:dydaktyka:piw:2010:sprawozdania:lab4_1.jpg|}} 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: {{:pl:dydaktyka:piw:2010:sprawozdania: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. {{:pl:dydaktyka:piw:2010:sprawozdania:lab4_2.jpg|}} 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: {{:pl:dydaktyka:piw:2010:sprawozdania:lab4_3.jpg|}} 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.