Przykład 1
Pierwszy program realizuje sekwencje ruchu robota po kwadracie. Program jest uruchamiany w jednym wątku i stosowana jest w nim rekurencja.
:- consult('plnxt.pl').
start :-
nxt_open,
rectangle_loop.
rectangle_loop :-
nxt_go_cm(350,40),
nxt_rotate(350,90),
rectangle_loop.
Przykład 2
Drugi przykład realizuje te same działania co przykład pierwszy, lecz umożliwia działanie wielowątkowe. Przetestować to można uruchamiając algorytm przy pomocy start, co powoduje uruchomienie sie programu w tle, a my mamy dostęp do konsoli. Użycie predykatu stop powoduje zatrzymanie się robota.
:- consult('plnxt.pl').
start :-
nxt_open,
nxt_goal(ewka, rectangle_loop).
rectangle_loop :-
nxt_go_cm(350,40),
nxt_rotate(350,90),
rectangle_loop.
stop :-
trigger_killall,
nxt_stop,
nxt_close.
Przykład algorytmu
Przykład rozbudowanego algorytmu wykorzystującego sensor dźwięku. Robot zatrzymuje się po klaśnięciu. Po ponownym klaśnięciu wznawia ruch. Predykat stop zadany z konsoli powoduje zatrzymanie się robota i zamknięcie połączenia.
:- consult('plnxt.pl').
start :-
nxt_open,
nxt_goal(ewka, go_on_buddy).
go_on_buddy :-
nxt_go(200),
sleep(1), % Chwila przerwy, żeby jedno klaśnięcie nie zostało rozpoznane jako dwa.
trigger_create(_,clap,wait_a_second_buddy).
wait_a_second_buddy :-
nxt_stop,
sleep(1),
trigger_create(_,clap,go_on_buddy).
% Sprawdzenie, czy natężenie dźwięku przekracza progową wartość.
clap :-
nxt_sound(Value,force),
Value > 15.
stop :-
trigger_killall,
nxt_stop,
nxt_close.
Przedstawione przykłady są kopiami kodu ze strony laboratorium. Brak czasu, spowodowany problemami z połączeniem bluetooth uniemożliwił nam podjęcie pracy nad własnymi algorytmami. Mamy nadzieje, że na następnych laboratoriach nie pojawi się już problem z komunikacja i będziemy mogli cały czas wykorzystać na tworzenie algorytmów.
Środowisko PLNXT umożliwia dużo większą kontrole nad robotem niż proste oprogramowanie udostępniane przez firmę LEGO. Algorytmy budowane przy pomocy języka proglog mogą być bardziej skomplikowane i wykorzystywać w pełni możliwości robota.
Jako wniosek nasuwa się propozycja uwzględnienia w opisie laboratorium podpowiedzi dotyczącej problemów z komunikacja. Rozwiązaniem tego problemu może okazać się zmiana nazwy urządzenia bluetooth w preferencjach z domyślnej - robo0-2 na dowolną inną.