====== Sprawozdanie z laboratorium nr 1 ====== * Robot: **Kajtek + Irek** * Data wykonania: **12.05.2010 godz. 15:30 (Oficjalnie jesteśmy w grupie o 9:30, ale nie mogliśmy się wtedy zjawić, prowadzący z 15:30 wyraził zgodę, abyśmy zostali na zajęciach.)** * Autorzy: **Renata Niedziela, Michał Urbańczyk, Artur Glier** ---- ===== Początek ===== Po przeczytaniu opisu konfiguracji robota przy połączeniu przez bluetooth, wzięliśmy się do pracy. I tutaj pojawiły się największe problemy. Początkowo klucz Bluetooth był niewidoczny, użyliśmy innego i po restarcie komputera pojawił się w systemie i dało się go wykryć innym urządzeniem bluetooth (w tym przypadku telefonem komórkowym - nie mieliśmy zaufania do bricka NXT). Połączyliśmy robota z komputerem, oznaczyliśmy połączenie jako zaufane, podaliśmy PIN, sparowaliśmy urządzenia poprzez plnxt_stty. Kolejne problemy pojawiły się po dodaniu linii w pliku plnxt.pl. Po próbie wykonania go spod powłoki SWIPL, wyskakiwał błąd związany z brakiem pliku rfcomm11. Prowadzący kilkukrotnie próbował pomóc nam rozwiązać ten problem, ale nie dopatrzał się błędu i wymienił nam robota na Irka. Irek 9 okazał się bardziej skory do współpracy i już po 5 minutach mieliśmy sparowanego, przygotowanego robota wraz z otwartą powłoką SWIPL. ===== Budowa robota ===== Początkowo testowaliśmy robota podłączając kolejną różne sensory i wywołując polecenia z instrukcji: nxt_go(300). % Jazda do przodu z prędkością 300 stopni/sekundę. nxt_stop. nxt_go_cm(400,80). % Jazda do przodu z prędkościa 400 stopni/sekundę. Zatrzymanie po 80 cm. nxt_touch(Value). % Odczyt sensora dotyku. nxt_sound(Value). % Odczyt sensora dźwięku. nxt_light(Value). % Odczyt sensora światła. nxt_light_LED(activate). % Włączenie diody sensora światła. nxt_light(Value). nxt_light_LED(passivate). nxt_ultrasonic(Value). nxt_rotate(350,360). % Obrót w prawo o 360 stopni z prędkością 350 stopni/sekundę. nxt_play_tone(500,2000). % Wydanie dźwięku o częstotliwości 500 Hz i czasie trwania 2000 ms. nxt_voltage_millivolt(Voltage). % Odczyt napięcia baterii. Nie wymaga to chyba komentarza, wszystko działało tak jak zakładaliśmy. =====Program===== Chcieliśmy napisać poniższy program (swoją drogą to identyczny do tego, który robiliśmy na wcześniejszych zajęciach, tylko w innym środowisku): //Idź tak długo na przód, aż napotkasz przeszkodę. Po napotkaniu przeszkody zatrzymaj się i cofnij o pewną niewielką odległość(aby móc sprawnie zawrócić nie zahaczając o przeszkodę). Obróć się o kąt prosty w lewo. Powrót do początku programu.// consult('/plnxt/'). start :- nxt_open, trigger_create(_,check_distance,[nxt_stop,skret]), nxt_go(300). check_distance :- nxt_ultrasonic(Distance,force), Distance < 15. skret :- nxt_go_cm(400,10), nxt_rotate(350,-90), nxt_close, start. I tu zdarzyła się dziwna sprawa, za pierwszym razem program zadziałał i robot "odbijał" się od przeszkód. Przy drugim odpaleniu robot się obraził i nie chciał się ruszyć już do końca zajęć. Pojawiły się problemy z najprostszymi poleceniami i nawet połączenie bluetooth zaczęło szwankować. Nie znaleźliśmy przyczyny tych problemów, ale wiemy, że nie jesteśmy jedyną grupą, której się to przytrafiło. =====Wnioski i spostrzeżenia===== Możliwe, że przy tak dużej ilości połączeń bluetooth zachodziły pewne interferencje, które przeszkadzały przy komunikacji z robotem.