|
|
pl:dydaktyka:piw:2010:sprawozdania:piw20100519-17c [2010/05/23 22:12] piw10 |
pl:dydaktyka:piw:2010:sprawozdania:piw20100519-17c [2019/06/27 15:50] |
====== Sprawozdanie z laboratorium (proste algorytmy w PLNXT) ====== | |
* Robot: **Ewka** | |
* Data wykonania: **19.05.2010 godz. 17:00** | |
* Autorzy: **Gabriela Pasek, Michał Paszko, Leszek Piątek** | |
| |
---- | |
| |
==== Kod programów ==== | |
| |
=== Algorytm1 === | |
| |
<code prolog> | |
:- consult('plnxt.pl'). | |
| |
start :- | |
nxt_open, | |
nxt_goal(ewka, alg1). | |
| |
alg1 :- | |
nxt_go(200), | |
trigger_create(_,check_line,[nxt_stop,Angle is 120 + random(120),nxt_rotate(100,Angle)]), | |
alg1. | |
| |
check_line :- | |
nxt_light(Value, force),write(Value),nl, | |
Value < 30. | |
| |
stop :- | |
trigger_killall, | |
nxt_stop, | |
nxt_close. | |
</code> | |
| |
=== Algorytm2 === | |
| |
<code prolog> | |
:- consult('plnxt.pl'). | |
| |
start :- | |
nxt_open, | |
nxt_goal(ewka, alg2). | |
| |
alg2 :- | |
nxt_go(100), | |
trigger_create(_,check_line,[wroc_na_linie]), | |
alg2. | |
| |
check_line :- | |
nxt_light(Value, force),write(Value),nl, | |
Value > 30. | |
| |
wroc_na_linie :- | |
nxt_stop, | |
nxt_rotate(100, 10), | |
trigger_create(_,not(check_line),[alg2]). | |
| |
stop :- | |
trigger_killall, | |
nxt_stop, | |
nxt_close. | |
| |
</code> | |
| |
===== Spostrzeżenia, napotkane problemy, wnioski ===== | |
| |
=== Spotrzeżenia === | |
| |
=== Napotkane problemy === | |
* Pierwszym zauważonym przez nas problemem był brak charakterystycznego dźwięku przy włączaniu //brick'a// robota //Ewka//. | |
* Drugim mogącym budzić podejrzenia objawem było dziwnie zachowanie ikonki baterii //brick'a//, to znaczy kiedy robot był w stanie //idle// stan baterii wynosił 100%, natomiast kiedy robot wykonywał algorytmy poziom baterii malał do poziomu 40% - 50%, a następnie ustalił się na poziomie 100% po ponownym przejściu do stanu //idle//. | |
* Niestety po raz kolejny zawiodło połączenie Blutetooth pomiędzy komputerem, a naszym robotem. Na szczęście tym razem udało nam się zaprogramować i wykonać Algorytm1 oraz Algorytm2 z laboratorium. Kiedy przystąpiliśmy do implementacji i częściowego testowania poszczególnych predykatów, połączenie z //Ewką// przestało istnieć. Wykorzystywaliśmy doświadczenie zdobyte na poprzednim laboratorium, ale nie udało nam się ponownie połączyć z robotem - nie pomagał restart komputera, restart robota, ponowne sparowanie urządzeń oraz usuwanie skojarzonych wcześniej urządzeń. | |
| |
=== Wnioski === | |
* Jest nam bardzo przykro, że z powodu problemów z połączeniem Bluetooth - a mimo wielkich chęci - nie wykonaliśmy wszystkich zadań z opisywanych zajęć. | |
===== Uwagi dotyczące funkcjonalności PLNXT ==== | |
| |
* PLNXT często dziwnie zachowuje się, gdy chcemy zakończyć działanie programu. Nie pomaga wywołanie predykatów //stop.// oraz //halt.// - ostatecznym rozwiązaniem jest 'zabicie' procesu. | |
* Przy wykonywaniu predykatu //nxt_open.// PLNXT często zawieszał się. | |
| |
| |