To jest stara wersja strony!
Sprawozdanie z laboratorium nr 5
Robot: ?
Data wykonania: 21.01.2009, godz. 9.30
Autorzy: Damian Dudziński, Maciej Fabia, Szymon Frenkel
Budowa naszego robota:
Franek korzystał z dwóch sensorów:
czujnika dźwięku
czujnika dotyku
Najpierw zapoznaliśmy się z podstawowymi poleceniami API robota:
otwieranie i zamykanie połączenia Bluetooth - nxt_open, nxt_close,
poruszanie się z daną prędkością i zatrzymywanie - nxt_go(n), nxt_stop,
pobieranie danych z czujników - nxt_sound, nxt_touch,
reagowanie na zdarzenie - trigger_create.
Następnie zaimplementowaliśmy algorytm „panikarz”. Robot jechał powoli do przodu. Po usłyszeniu
klaśnięcia przez chwilę szybko się cofał, a następnie ponownie zaczynał powoli poruszać się do
przodu.
:- consult('plnxt.pl').
fakt.
start:-
nxt_open,
krecenie,
trigger_create(_,pushed,[nxt_stop,nxt_close]).
krecenie :-
nxt_rotate(150,360),
sleep(1), % Chwila przerwy
trigger_create(_,przeszkoda,wypychanie).
wypychanie :-
nxt_stop,
nxt_go_cm(300,40),
sleep(10),
nxt_go_cm(-300,40),
sleep(10).
trigger_create(_,fakt,krecenie).
% Sprawdzenie, czy znaleziono przeszkodę
przeszkoda :-
nxt_ultrasonic(Value,force),
Value < 20.
% Sprawdzenie, czy sensor dotyku jest wciśnięty.
pushed :-
nxt_touch(Value,force),
Value=1.
:- start.
panikarz_14-01-09.pl
Wnioski
Po zatrzymaniu algorytmu kilkukrotnie musieliśmy restartować SWIPL, ponieważ robot blokował się w momencie, kiedy po ucieczce miał znów jechać do przodu. Nie reagował wtedy na próby ponownego nawiązania połączenia - przyczyną były prawdopodobnie wątki stworzone przez trigger_create. Mimo to naszym zdaniem PLNXT daje większe możliwości niż standardowe środowisko graficzne LEGO.