Sprawozdanie z zajęć laboratoryjnych realizowanych przez: Świerkosz, Wróbel, Kowalski.
Realizacja zadań
Po przyjściu na stanowisko zastaliśmy zbudowanego robota. Przebudowaliśmy go trochę zmieniając układ sensorów, po czym przystąpiliśmy do realizacji właściwej części laboratorium.
Algorytm numer 1
Algorytm naiwny, robot pcha piłkę.
:- consult('../plnxt.pl').
% uruchamia algorytm
start :-
nxt_open,
nxt_light_LED(activate),
trigger_create(_,check_light,[stop]),
nxt_go(200).
% sprawdza jasność podłoża
check_light :-
nxt_light(Value,force),
Value < 40.
% zatrzymuje robota
stop :-
trigger_killall,
nxt_stop,
nxt_close.
YouTube: Ball I
Algorytm numer 2
:- consult('../plnxt.pl').
% uruchamia algorytm
start :-
nxt_open,
nxt_play_tone(1000,1000),
nxt_go(300),
trigger_create(_,check_distance,[turn]).
% sprawdza odległość od potencjalnej przeszkody
check_distance :-
nxt_ultrasonic(Distance,force),
Distance < 20.
% nasłuchuje
check_sound :-
nxt_sound(Value,force),
Value > 70.
% wykonuje obrót i jedzie dalej
turn :-
nxt_stop,
trigger_create(BZZ,check_sound,[stop]),
nxt_rotate(350, 90),
nxt_go_sec(300, 2),
nxt_rotate(350, -90),
trigger_kill(BZZ),
trigger_create(_,check_distance,[turn]),
nxt_go(300).
% zatrzymuje robota
stop :-
nxt_play_tone(1000,1000),
trigger_killall,
nxt_stop,
nxt_close.
YouTube: Barrier I, YouTube: Barrier II
Algorytm numer 3
:- consult('../plnxt.pl').
% uruchamia algorytm
start :-
nxt_open,
trigger_create(_,check_sound,[run]),
trigger_create(_,check_touch,[stop]),
nxt_go(150).
% nasłuchuje
check_sound :-
nxt_sound(Value,force),
Value > 50.
% sprawdza czujnik dotyku
check_touch :-
nxt_touch(Value,force),
Value = 1.
% wykonuje obrót i jedzie dalej
run :-
nxt_stop,
Angle is 60 + random(60),
nxt_rotate(400, Angle),
nxt_go_sec(600, 2),
trigger_create(_,check_sound,[run]),
nxt_go(150).
% zatrzymuje robota
stop :-
trigger_killall,
nxt_stop,
nxt_close.
YouTube: Panic I