Spis treści

Sprawozdanie nr 6

Wstęp

Po zapoznaniu się z instrukcjami do laboratorium oraz odkomentowaniu kody odpowiedzialnego za komunikację z naszym robotem, czyli Dyziem tak aby był on wykrywany przez wirtualny port Comm 4 przystąpiliśmy do realizacji laboratorium.

nxt_robot_definition(dyzio,'/dev/rfcomm4',bt,off,on_demand,17.5,11,'C','B','A',false,'S1','S2','S3','S4').

Przebieg laboratorium

Od samego początku zaczęliśmy naszą pracę od dostosowania programu Więzień do aktualnie panujących warunków świetlnych. Dokonaliśmy zmian konstrukcyjnych robota - tak aby sensor świetlny był jak najbliżej powierzchni po której przemieszcza się robot.

Poniżej kod programu Więzień.

:- consult('plnxt.pl').
 
start :-
	nxt_go(100),
	trigger_create(10,czarny,szukaj),
	trigger_create(_,klucz,uciekaj).
 
czarny :-
	nxt_light(Value,force),
	Value < 50.
 
szukaj :-
	nxt_stop,	
	nxt_rotate(100, 60),
        trigger_kill(10),
	start.
 
klucz :-
	nxt_light(Value, force),
	Value > 68,
	Value < 70.
 
uciekaj :-
	nxt_play_tone(400,500),
	nxt_go_cm(500, 1000),
	nxt_play_tone(600,1000),
	stop.
 
stop :-
        trigger_killall,
	nxt_stop,
        nxt_close.

Niestety nie udało nam się nawiązać komunikacji między robotami. Powodami były:

Wnioski

  1. Komunikacja między robotami nie była możliwa do przetestowania z powodów wymienionych powyżej.
  2. Należy zwracać uwagę na tworzenie nowych wątków, gdyż nie są one zabijane aż do wydania poleceń
    trigger_kill(ID) / trigger_killall

    i mogą prowadzić do zapętlenia się programu.

  3. Wpływ oświetlenia dziennego ma zasadniczy wpływ na kalibrację sensora świetlnego. Kolor czerwony (przedział jasności 68-70) jest praktycznie niemożliwy do odróżnienia od koloru białego (69-71). Dodatkowo na pomiar jasności wpływa cień rzucany przez samego robota utrudniając jeszcze bardziej identyfikację kolorów. Jedynie kolor czarny jest łatwo rozróżnialny od pozostałych (przedział jasności <40).

Uwagi