Nowa wersja
|
Poprzednia wersja
|
pl:dydaktyka:piw:2010:sprawozdania:piw20100526-17d [2010/05/30 18:12] piw10 utworzono |
pl:dydaktyka:piw:2010:sprawozdania:piw20100526-17d [2019/06/27 15:50] (aktualna) |
====== Implementacja ====== | ====== 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|}} |
| |
====== Podsumowanie, spostrzeżenia ====== | 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: |
| |
| <code prolog> |
| %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). |
| |
| </code> |
| |
| 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. |