Sprawozdanie z laboratorium (proste algorytmy w PLNXT)
Robot: Dyzio
Data wykonania: 19.05.2010 godz. 17:00
Autorzy: Przemysław Brzeziński, Michał Gamrat, Łukasz Różycki
algorytm1
start :-
nxt_open,
nxt_light_LED(activate),
nxt_go(300),
trigger_create(_,check_distance,obstacle).
check_distance :-
nxt_light(Value,force),
Value < 48.
obstacle :-
nxt_stop,
Angle is 120 + random(120),
nxt_rotate(300,Angle),
start.
finish :-
nxt_stop,
nxt_light_LED(passivate),
nxt_close.
Algorytm2
start :-
nxt_open,
nxt_light_LED(activate),
go_forward.
go_forward :-
nxt_go(100),
trigger_create(_,check_black,white).
check_black :-
nxt_light(Value,force),
Value > 46.
white :-
nxt_stop,
nxt_rotate(300,5),
go_forward.
finish :-
nxt_stop,
nxt_light_LED(passivate).
nxt_close.
Panikarz3
start :-
%nxt_open,
nxt_goal(dyzio, init).
init :-
trigger_create(_,press,stop),
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,run_away_buddy).
run_away_buddy :-
nxt_stop,
nxt_rotate(500,180),
nxt_go_cm(500,20),
go_on_buddy.
% Sprawdzenie, czy natężenie dźwięku przekracza progową wartość.
clap :-
nxt_sound(Value,force),
Value > 40.
%Sprawdzenie, czy naciśnięty został sensor dotyku
press :-
nxt_touch(Value,force),
Value > 0,
stop.
stop :-
nxt_stop,
trigger_killall,
%nxt_close.