[[
✎ pl:dydaktyka:piw:2010:sprawozdania:piw20100519-15e
]]
aiWiki
Pokaż stronę
Ostatnie zmiany
Indeks
Zaloguj
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
====== Sprawozdanie nr 3 ====== * Robot: Dyzio * Data: 19.05.2010, godz. 15.30 * Autorzy: Andrzej Gryboś, Michał Henslok, Tomasz Jama ===== Wstęp ===== Poczatek laboratorium poświęciliśmy na rozwiązanie problemów z łącznością których doświadczyliśmy tydzień temu. Udało nam się je rozwiązać poprzez zamykanie pl i ponowne wpisywanie: ./bin/plnxt_stty <nazwa_robota> a następnie ponowne uruchomienie powłoki. Musieliśmy również usunąć polecenie nxt_open z kodu programu i wpisywać je ręcznie przed uruchomieniem. Oto pierwsza działająca wersja programu panikarz: <code prolog> :- consult('plnxt.pl'). start :- nxt_go(100), nxt_goal(dyzio, go_on_buddy). go_on_buddy :- nxt_go(100), sleep(1), % Chwila przerwy, żeby jedno klaśnięcie nie zostało rozpoznane jako dwa. trigger_create(_,clap,uciekaj), trigger_create(_,click,stop), go_on_buddy. uciekaj :- nxt_stop, nxt_rotate(900, 90), nxt_go_sec(900, 1), sleep(1), go_on_buddy. % Sprawdzenie, czy natężenie dźwięku przekracza progową wartość. clap :- nxt_sound(Value,force), Value > 50. click :- nxt_touch(Value, force), Value > 0. stop :- trigger_killall, nxt_stop, nxt_close. </code> ===== Działające algorytmy ===== Niestety pierwsza wersja programu działała połowicznie. Robot poruszał się do przodu, ale drugi wątek z triggerami nie działał. Po przeniesieniu wszystkiego do jednego wątku powstała poniższa, w pełni działająca wersja programu: <code prolog> :- consult('plnxt.pl'). start :- nxt_go(100), sleep(1), % Chwila przerwy, żeby jedno klaśnięcie nie zostało rozpoznane jako dwa. trigger_create(_,clap,uciekaj), trigger_create(_,click,stop). uciekaj :- nxt_stop, nxt_rotate(900, 90), nxt_go_sec(900, 1), sleep(1), start. % Sprawdzenie, czy natężenie dźwięku przekracza progową wartość. clap :- nxt_sound(Value,force), Value > 50. click :- nxt_touch(Value, force), Value > 0. stop :- trigger_killall, nxt_stop, nxt_close. </code> Następnie napisaliśmy również w 100% działającą wersję omijacza: <code prolog> :- consult('plnxt.pl'). start :- nxt_go(100), trigger_create(_,clap,stop), trigger_create(_,odl,omijaj). omijaj :- nxt_stop, nxt_rotate(100, 30), start. % Sprawdzenie, czy natężenie dźwięku przekracza progową wartość. clap :- nxt_sound(Value,force), Value > 50. odl :- nxt_ultrasonic(Value, force), Value < 20. stop :- nxt_stop, nxt_close. </code> Oto zdjęcie robota dla powyższego programu: {{:pl:dydaktyka:piw:2010:sprawozdania:zdjecie0017.jpg|}}
pl/dydaktyka/piw/2010/sprawozdania/piw20100519-15e.1274811056.txt.gz
· ostatnio zmienione: 2019/06/27 15:54 (edycja zewnętrzna)
Pokaż stronę
Poprzednie wersje
Menadżer multimediów
Do góry