Spis treści

Skład zespołu:

1. Wstęp

2. Konstrukcja robota

Do ćwiczenia (ku naszej radości) przystąpiliśmy z gotowym robotem. Jak się przekonaliśmy - za bardzo uwierzyliśmy w ekipę, która montowała robota przed nami. Algorytmy, które testowaliśmy nie chciały działać. Jak się okazało - wszystkie czujniki były do robota przymocowane, jednak czujnik dźwięku miał odłączony kabelek. Na szczęście w krótkim czasie udało się odnaleźć „usterkę”.

przepraszamy za słabą jakość ;(

3. Opracowanie algorytmów

Algorytm
:- consult('plnxt.pl').
 
start :-
	nxt_open,
	thread_create(go_on_buddy,_,[detached(true)]).
 
go_on_buddy :-
	nxt_go(200),
        sleep(1), % Chwila przerwy, żeby jedno klaśnięcie nie zostało rozpoznane jako dwa.
	trigger_create(_,clap,run_away).
 
run_away :-
	nxt_stop,
	Angle is 120 + random(120),
	nxt_rotate(900, Angle),
	Time is 2 + random(2),
	nxt_go(900),
        sleep(Time),
	nxt_stop,
	AngleBack is -1 * Angle,
	nxt_rotate(900, AngleBack),
	go_on_buddy.
 
% Sprawdzenie, czy natężenie dźwięku przekracza progową wartość.
clap :-
	nxt_sound(Value,force),
	Value > 60.
 
stop :-
	trigger_killall,
	nxt_stop,
	nxt_close.

A tuaj można zobaczyć efekty w postaci wideo:

Więcej wideo na: http://student.agh.edu.pl/~mzywiol/projekty/prolog/gienio/ oraz w salonach sieci Empik

4. Napotkane problemy

Początkowo natpotkaliśmy problem z połączeniem robota za pomocą bluetooth. Nie pomagały próby resetowania komputera ani resetowania robota. Za poradą prowadzącego pousówaliśmy wszystkie połączenia z samego NXT i dopiero wtedy udało się nawiązać połączenie.

Kolejnym problem(???) było robienie złych laboratoriów. Z samego początku zaczeliśmy pisać algorytmy dla Automatyki które okazały się trudniejsze :). Dopiero po pewnej chwili zorientowaliśmy się, że robimy złe ćwiczenia i znaleźliśmy odpowiednie labolatorium.

Podczas pracy z NXT natrawialiśmy na dziwny błąd(a może to nie błąd). Problem stwarzały wątki które najprawdopodobniej blokowały koła robota i nie mogliśmy odpalić tego samego algorytmu 2 razy pod rząd, dopiero resetowanie robota dawało taką możliwość.

5. Co zmienić w laboratorium?

Według nas przydała by się przejrzystsza wiki ponieważ dość ciężko połapać się które laboratorium trzeba wykonywać i które jest dla kogo. Do tego mieliśmy problem z znalezieniem informacji odnośnie synchronizacji robota. Informacje te w końcu znaleźliśmy ale zajęło nam to dość sporo czasu który mógł być wykorzystany bardziej pożytecznie.

6. Wnioski

Pisząc kolejne algorytmy trzeba uważać na progi jakie są przekazywane przez sensory. Początkowo dla algorytmu panikarza mieliśmy bardzo niski próg i sam silnik powodował reakcje robota (wartość około 5) poźniej podnieśliśmy próg do 15 ale dalej mieliśmy ten problem i zastanawialiśmy się czy nie ma gdzieś błędu w algorytmie, później poszliśmy do progu 60 i wtedy robot zaczoł prawidłowo reagować.

Ćwiczenia z NXT po napisaniu podstawowych algorytmów zamieniają się w dość wesołą zabawa dzięki czemu można zacząć udziwniać algorytmy i tworzyć dziwaczne rzeczy :).

7. Pliki

panic.tar.gz