Trudne początki
Na początku mieliśmy problem z połączeniem się z Heńkiem, spróbowaliśmy wymienić brick na mózg Gienka, jednak to również nie pomogło. Konsola wypisywała Segmentation fault. Success
i się zawieszała. Pomogło dopiero przejście na inne stanowisko. Straciliśmy przez to około pół godziny, więc bez zbędnych ceregieli zabraliśmy się do ostrego kodowania :)
Heniek po transplantacji
Testowanie funkcji plnxt
Najpierw szybko sprawdzilismy parę funkcji plnxt, czy Heniek z transplantacją mózgu Gienka poradzi sobie z nimi, gdy ten test przeszedł bez większych problemów, wezbrała w nas Panika.
Panikarz
Napisaliśmy kod wprawiającego Heńka/Gienka w panikę.
Opis algorytmu
Najpierw porusza się powoli w jednym kierunku, na klaśnięcie wpada w amok, obraca się, zasuwa szybko w tym kierunku przez pewnien czas nieczuły na czynniki zewnętrzne (z wyjątkiem dotyku i resetu:) i następnie znowu jedzie wolno. Dotknięcie sensora dotykowego powoduje wyłączenie zestawu.
Kod
:- consult('plnxt.pl').
start:-
nxt_open,
wolno,
trigger_create(_,pushed,[nxt_stop,nxt_close]).
wolno:-
nxt_go(200),
trigger_create(_,clap,[nxt_stop,panika]).
panika:-
nxt_rotate(400,100),
nxt_go_sec(600,3),
wolno.
% Sprawdzenie, czy natężenie dźwięku przekracza progową wartość.
clap :-
nxt_sound(Value,force),
Value > 55.
% Sprawdzenie, czy sensor dotyku jest wciśnięty.
pushed :-
nxt_touch(Value,force),
Value=1.
Problemy
Gdy chcieliśmy przetestować ponownie program, musieliśmy zabortować xpce, odpalić ponownie xpce, skonsultować ponownie program i go odpalić. Nie wiemy czy to wina NXT, plnxt, bluetootha czy plam na słońcu ale dość nie wygodna była ta procedura i warto by się przyjrzeć jak ją naprawić.
Kilkakrotnie podczas pisania algorytmu, kiedy coś sknociliśmy, okazało się dużym wyzwaniem zakończenie pracy Henia-Genia i jego zatrzymanie. Warto by było znaleźć rozwiązanie awaryjnego zakańczania pracy i zaprzestawania kręcenia silnikami przez NXT, ponieważ 'nxt_stop' nie sprawdzał się w przypadkach wysokiego ryzyka i zagrożenia.