Na dobry początek zapoznaliśmy się z dostępnymi predykatami aby zobaczyć co one powodują.
Następnie przetestowaliśmy przykłady, aby nabrać rozeznania w dostarczonej technologi.
Pierwszy:
:- consult('sciezka_do_plnxt.pl').
start :-
nxt_open,
nxt_go_cm(400,80), % Jazda 200 cm do przodu z prędkością 400 stopni/sekundę.
nxt_go_cm(-400,80), % Jazda 200 cm do tyłu z prędkością 400 stopni/sekundę.
nxt_close.
:- start.
Drugi:
:- consult('sciezka_do_plnxt.pl').
start :-
nxt_open,
trigger_create(_,check_distance,[nxt_stop,nxt_close]),
nxt_go(300).
check_distance :-
nxt_ultrasonic(Distance,force),
Distance < 15.
Ten przykład wyjaśnił w pełni do czego służy opcja 'force', dzięki niej pomiary odpowiednich sensorów są wykonywane cyklicznie, dzięki czemu w tym przypadku robot nie zderzy się z niczym co jest przed nim.
Następnie jako, że czas nas gonił niemiłosiernie, zajęliśmy się implementacją algorytmu nr 2 z tych laborek, oto on:
:- consult('plnxt.pl').
start :-
nxt_open,
go_on,
trigger_create(_,check_touch, [nxt_stop, nxt_close]).
go_on :-
nxt_go(300),
trigger_create(_,check_distance, zawroc).
check_distance :-
nxt_ultrasonic(Distance,force),
Distance < 35.
zawroc :-
nxt_stop,
nxt_rotate(400,180),
go_on.
check_touch :-
nxt_touch(V,force),V = 1.
Plik do pobrania: zwiedzaj.pl
Program nie był trudny do napisania a efekt był niewspółmiernie wielki i zabawny:)
Robot miał za zadanie jechać do przodu a gdy napotka przeszkodę miał zawrócić o 180 stopni i nadal jechać do przodu,
Po naciśnięciu sensora dotyku miał się zatrzymać.
Film(.3GP) nakręcony telefonem podczas działania robota: Filmik.
Następnie zabraliśmy się za kodowanie kolejnego algorytmu ale czas nie pozwolił nam na dokończenie go, a plany były ambitne:-)