W trakcie realizacji algorytmu napotkaliśmy problem związany z rozróżnianiem kolorów. Po w miarę stabilnym umocowaniu czujnika, robot nie był w stanie odpowidnio rozróznić koloru białego i czerwonego. Oba kolory przyjmowały wartości zbliżone do liczby 68. Nie było problemów z rozróżnianiem koloru czerwonego dla którego wartości zbliżone były do liczby 40.

:- consult('../plnxt.pl').

start :-
    nxt_open,
    thread_create(go_on_buddy,_,[detached(true)]).

go_on_buddy :- 
	nxt_light_LED(activate),
	trigger_create(_, black, turn, 1).
	%trigger_create(_, red, runaway, 1), 
	%nxt_go(200).

black :-
	nxt_light(Value, force),
	write(Value),
	%write('black'),
	nl,
	fail.
	%Value > 35,
	%Value < 38.

red :-
	nxt_light(Val, force),
	write('red'),
	nl,
	Val > 67,
	Val < 70.

turn :- 
	nxt_rotate(350, 160, force),
	trigger_create(_, black, turn, 1),
	nxt_go(200).
	
runaway :- 
	trigger_killall,
	nxt_go(300, force),
	trigger_create(_, black, outside, 1).

outside :-
	timer_create(_, 3, stop).
	
stop :-
    trigger_killall,
    nxt_stop,
    nxt_close.

Jak się okazało problemem było zbyt wysokie umieszczenie czujnika. Po umieszczeniu czujnik tuż nad powierzchnią stołu nie mieliśmy już dużych problemów z działaniem programu

:- consult('../plnxt.pl').

start :-
    nxt_open,
    thread_create(go_on_buddy,_,[detached(true)]).

go_on_buddy :- 
	nxt_light_LED(passivate),
	trigger_create(_, black, turn, 1),
	trigger_create(_, red, runaway, 1), 
	nxt_go(200).

black :-
	nxt_light(Value, force),
	Value > 29,
	Value < 35.

red :-
	nxt_light(Val, force),
	Val > 41,
	Val < 47.

turn :- 
	nxt_rotate(350, 160, force),
	trigger_create(_, black, turn, 1),
	nxt_go(200).
	
runaway :- 
	trigger_killall,
	nxt_go(300, force),
	trigger_create(_, black, outside, 1).

outside :-
	timer_create(_, 3, stop).
	
stop :-
    trigger_killall,
    nxt_stop,
    nxt_close.

Kolega Grzegorz Janas, odrabiający laboratorium „lab_plnxt_zaawansowane” w ubiegłym tygodniu miał ogromnego pecha z połączeniem, ustawieniem parametrów portu i sparowaniem. Bezbłędne połączenie robota Lego umożliwia wykonywanie dalszej częsci laboratorium.

  • Już na samym początku były problemy z wtyczką BT, nie chciała działać. Rozwiązanie: W moim przypadku pomogło przełożenie do innego portu. Z obserwacji na innych stanowiskach pomógł restart systemu.
  • Brak skryptu plnxt_stty w pliku plnxt_v0.tar.gz utrudniał ustawienia parametrów portu i sparowania. O braku wspomnianiego skryptu został poinformowany prowadzący laboratoria.
  • Kolejnym problemem był komunikat:

?- nxt_open. ERROR: source_sink `/dev/rfcomm3' does not exist (Host is down)

Exception: (10) open('/dev/rfcomm3', write, _L182, [buffer(false)]) ?

W takim wypadku należy sprawdzić czy w robocie jest włączony Bluetooth. Czasami Bluetooth sam sie wylacza (być może oszczędzanie energii) i tym samym płata ogromnego psikusa osobom próbującym wykonać laboratorium…

pl/dydaktyka/piw/2009/sprawozdania/piw20090429-14d.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0