To jest stara wersja strony!
Poruszanie się wzdłuż linii
Poniżej znajdują się algorytm sterowania wykorzystujący sensor natężenia światła.
Algorytm 1
Aby sprawdzić działanie algorytmu należy przygotować makietę z narysowaną czarną linią (najlepiej na białym tle). W algorytmie założono, że robot znajduje się na czarnej linii w chwili startu. Zadaniem robota jest poruszanie się wzdłuż linii.
Zapis słowny
jedź do przodu jeżeli widzisz czarną linię, inaczej idź do pkt (2)
obracaj się w prawo o N0 póki obrót < 450. Jeżeli linia czarna idź do (1). Jeżeli obrót > 450 idź do (3).
obróć się w lewo o 450. Obracaj się o -N0 w lewo póki obrót > -450. Jeżeli linia czarna idź do (1). Jeżeli obrót < -450 to STOP
Zapis regułowy
Poniżej został zastosowany zupełny zapis reguł. W zapisie w Prologu zapis ten ulegnie zmianie.
Implementacja w Prologu
start :-
nxt_light_sensor(Port,Value),
Value = RGB_black,
assert(turn_mem(0)),
nxt_go(0).
start :-
turn_mem(Value),
Value >= 0,
Value < 45,
nxt_turn(Speed,1)
retractall(turn_mem(_)),
increment(Value,X),
assert(turn_mem(X)).
start :-
turn_mem(Value),
Value >= 45,
nxt_turn(Speed,-Value),
retractall(turn_mem(_)),
assert(turn_mem(-1)).
start :-
turn_mem(Value),
Value < 0,
Value > -45,
nxt_turn(Speed,-1),
retractall(turn_mem(_)),
decrement(Value,X),
assert(turn_mem(X)).
start :-
nxt_go(0).
XTT