|
|
pl:dydaktyka:piw:2010:sprawozdania:piw20100602-17d [2010/06/06 21:56] piw10 utworzono |
pl:dydaktyka:piw:2010:sprawozdania:piw20100602-17d [2019/06/27 15:50] |
====== Wstęp ====== | |
Zespół składa się z następujących osób: | |
- //Szef// - Bartłomiej Tyranowski | |
- //Mechanik// - Bartłomiej Trzciński | |
- //Konstruktor// - Adrian Toboła | |
| |
====== Implementacja ====== | |
| |
Po starannym przygotowaniu naszego stanowiska pracy, przystąpiliśmy do niewielkiej modyfikacji robota. Zainstalowaliśmy czujnik odległości oraz dobudowaliśmy zderzak: | |
| |
{{:pl:dydaktyka:piw:2010:sprawozdania:lab_5_ttt.jpg|}} | |
| |
Na poprzednim laboratorium implementowaliśmy program Więzień, zatem na tych zajęciach zajęliśmy się algorytmem programu Sprzątacz | |
| |
===== Sprzątacz v.1: ===== | |
| |
<code prolog> | |
:- consult('plnxt.pl'). | |
| |
start :- | |
nxt_open, | |
A is 0, | |
trigger_create(_,check_distance,swipe(A)), | |
nxt_rotate(200,30), | |
trigger_create(_,nxt_is_stopped,continue(A)). | |
| |
check_distance :- | |
nxt_ultrasonic(Value, force), | |
Value < 40. | |
| |
swipe(A) :- | |
trigger_killall, | |
nxt_stop, | |
nxt_go_cm(500,40), | |
trigger_create(_,nxt_is_stopped,go_back(A)). | |
| |
go_back(A) :- | |
trigger_killall, | |
nxt_stop, | |
nxt_go_cm(500,-40), | |
trigger_create(_,nxt_is_stopped,continue(A)). | |
| |
continue(A) :- | |
trigger_killall, | |
nxt_stop, | |
A =< 360, | |
A is A + 30, | |
trigger_create(_,check_distance,swipe(A)), | |
nxt_rotate(200,30), | |
trigger_create(_,nxt_is_stopped,continue(A)). | |
| |
</code> | |
| |
===== Sprzątacz v.2: ===== | |
| |
<code prolog> | |
:- dynamic(angle/1). | |
:- consult('plnxt.pl'). | |
| |
start :- | |
nxt_open, | |
A is 0, | |
trigger_create(_,check_distance,remember(A)), | |
nxt_rotate(200,30), | |
trigger_create(_,nxt_is_stopped,go_on(A)). | |
check_distance :- | |
nxt_ultrasonic(Value, force), | |
Value < 40. | |
| |
remember(A) :- | |
assert(angle(A)). | |
| |
go_on(A) :- | |
A is A + 30, | |
A =< 360, | |
trigger_create(_,check_noise(A),start2), | |
trigger_create(_,check_distance,remember(A)), | |
nxt_rotate(200,30), | |
trigger_create(_,nxt_is_stopped,go_on(A)). | |
| |
check_noise(A) :- | |
nxt_sound(Value,force), | |
Value > 30, | |
A > 360. | |
| |
start2 :- | |
B is 0, | |
trigger_create(_,[check_distance,not(angle(B)],come_closer), | |
nxt_rotate(200,30), | |
trigger_create(_,nxt_is_stopped,go_on2(B)). | |
| |
go_on2(B) :- | |
B is B + 30, | |
B =< 360, | |
trigger_create(_,[check_distance,not(angle(B)],come_closer), | |
nxt_rotate(200,30), | |
trigger_create(_,nxt_is_stopped,go_on2(B)). | |
</code> | |
| |
załączone pliki: {{:pl:dydaktyka:piw:2010:sprawozdania:lab5_tobola_trzcinski_tyranowski.zip|}} | |
| |
====== Podsumowanie ====== | |
| |
| |
| |