[[
✎ pl:dydaktyka:piw:2010:sprawozdania:piw20100512-09d
]]
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 2 ====== **Robot:** Agatka\\ **Data wykonania:** 12.05.2010 godz. 9:30\\ **Autorzy:** Martyka Łukasz, Stereńczak Agata, Szczurek Joanna\\ ===== Budowa robota ===== Po przyjściu na zajęcia otrzymaliśmy już zmontowanego robota. Jedyne co dobudowaliśmy to ramię do czujnika ultradźwięków. ===== Konfiguracja środowiska PLNXT ===== Postępując zgodnie z instrukcją do laboratorium w pliku plnxt.pl odkomentowaliśmy linię <code> :- use_module(lib/nxt_actions_serial).</code> a następnie w poniższej linii wstawilismy nr naszego robota - 5. Ten sam numer wstawiliśmy w trzech analogicznych liniach. <code>nxt_goal_definition(my_robot,'/dev/rfcomm5',bt,off,on_demand,17.5,11,'C','B','A',false,'S1','S2','S3','S4').</code> ===== Testowanie połączenia ===== Aby dokonać połączenia z robotem w powłoce SWIPL wpisaliśmy poniższy kod: <code>$ pl ?- [plnxt]. ?- nxt_open.</code> Połączenie poprzez Bluetooth sprawiło nam wiele problemów. W sytuacji gdy Brick przechodził w stan uśpienia następowało przerwanie połączenia, którego ponowne nawiązanie wymagało usuwania ustawień z komputera. Zabiegi te musiały być często powtarzane i nie zawsze przynosiły pożądany skutek.\\ Odkrytym przez nas sposobem, który umożliwiał skuteczne połączenie było usunięcie połączeń z komputera a następnie nawiązanie połączenia od strony Brick-a. ===== Praca w powłoce SWIPL ===== Pracę rozpoczęliśmy od przetestowanie komend podanych w treści laboratorium. ===== Zadanie 1 ===== Robot porusza się dowolnie wewnątrz obszaru ograniczonego czarną linią (można wykorzystać planszę testową). Nie może poza niego wyjechać! Gdy najedzie na czarną linię, powinien zawrócić – niekoniecznie o 180 stopni, żeby było ciekawiej.\\ Kod programu: <code>:- consult('plnxt.pl'). start :- nxt_open, nxt_light_LED(activate, force), trigger_create(_,check_light,change_angle), nxt_go(300). change_angle :- Angle is 100 + random(60), nxt_rotate(360, Angle, force), start. check_light :- nxt_light(Light,force), Light < 44. :- start. </code> Działanie naszego robota prezentuje nakręcony przez nas filmik: [[http://www.youtube.com/watch?v=iu3KdBIg-Pk|zadanie 1 na robocie Ewka]]\\ ===== Zadanie 2 ===== Robot podąża wzdłuż czarnej linii (można wykorzystać planszę testową). Nie może jej zgubić! Gdy napotka przeszkodę, powinien się zatrzymać i poinformować o problemie sygnałem dźwiękowym. Po usunięciu przeszkody robot powinien kontynuować jazdę. \\ Kod: <code>:- consult('plnxt.pl'). start :- nxt_open, nxt_light_LED(activate, force), trigger_create(_,check_light,change_angle), nxt_go(400). change_angle :- Angle is 3, nxt_rotate(140, Angle, force), start. check_light :- nxt_light(Light,force), Light > 44. :- start. </code> Nasz robot jeździł po czarnej linii, kiedy z niej zjeżdżał zmieniał kąt jazdy o 3 stopnie. Jednak jego działanie nie było w pełni poprawne. Na dodanie sygnału dźwiękowego zabrakł nam czasu. ===== Wnioski ===== Uważamy, że praca w powłoce PLNXT była dużo bardziej przyjazna, niż praca w graficznym oprogramowaniu LEGO.\\ Plusem był również fakt, iż komendy można testować na robocie wpisując od razu z konsoli, bez konieczności przesyłania pliku do Brick-a.\\
pl/dydaktyka/piw/2010/sprawozdania/piw20100512-09d.1274120092.txt.gz
· ostatnio zmienione: 2019/06/27 15:54 (edycja zewnętrzna)
Pokaż stronę
Poprzednie wersje
Menadżer multimediów
Do góry