To jest stara wersja strony!
Zapoznanie z PLNXT
Celem ćwiczenia było zapoznanie się z interfejsem programistycznym w prologu do Lego Mindstorms.
Przebieg Ćwiczenia
Wykożystywana w tym ćwiczeniu konstrukcja robota, nie jest szczególnie istotna, warto nadmienić, że robot był samojezdy oraz posiadał nst. czujniki:
Komunikacja pomiędzy robotem a PC odbywała się za pomocą Bluetooth.
Po wstępnym zapoznaniu się z instrukcją
API przystąpiliśmy do jego testowania. W pierwszej fazie udało się nam przetestować działanie podstawowych funkcji
API:
nxt_open, nxt_close - otwarcie/zamknięcie połączenia
nxt_voltage_millivolt(Voltage) - odczyt napięcia na bateriach
nxt_rotate(350,360) - obrót w prawo
nxt_go(300) - jazda do przodu z prędkością 300 stopni/sekundę
Implementacja Algorytmu
:- consult('../plnxt/plnxt.pl').
start :-
nxt_open,
trigger_create(_,check_distance,[nxt_stop, rotate90]),
trigger_create(_, check_stop, [nxt_stop, nxt_close]),
nxt_go(500).
check_distance :-
nxt_ultrasonic(Distance,force),
Distance < 15.
rotate90 :-
go_rotate,
trigger_create(_,check_distance,[nxt_stop, rotate90]),
nxt_go(500).
go_rotate :-
nxt_rotate(350, 90), sleep(1),
nxt_go_cm(500,30),
nxt_rotate(350,-90),sleep(1),
nxt_go_cm(500,30),
nxt_rotate(350,-90),sleep(1),
nxt_go_cm(500,30),
nxt_rotate(350,90),sleep(1).
check_stop :-
nxt_touch(Stop,force),
Stop = 1.
Robot porusza się do przodu z zadaną prędkością, gdy zbliży się do przeszkody wykonuje serię manewrów umożliwiających jej ominięcie i jedzie dalej aż do napotkania kolejnej przeszkody, poczym znów ją omija, wyłaczenie programu następuje poprzez wciśnięcie czujnika dotyku. Zrezygnowaliśmy tutaj ze sterowania robotem poprzez klaśnięcia ponieważ system ten źle sprawdza się w warunkach laboratorium i jest bardzo ciężki w testowaniu.
omijanie.pl