Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:miw08_mindstormsdesign:strona_2 [2008/05/19 11:07]
miw
pl:miw:miw08_mindstormsdesign:strona_2 [2019/06/27 15:50] (aktualna)
Linia 2: Linia 2:
 Poniżej znajdują się algorytm sterowania wykorzystujący **sensor natężenia światła**. ​ Poniżej znajdują się algorytm sterowania wykorzystujący **sensor natężenia światła**. ​
  
-===== Poruszanie się wzdłuż narysowanej linii =====+===== 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. 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.
  
Linia 11: Linia 11:
       - obróć się w lewo o 45<​sup>​0</​sup>​. Obracaj się o -N<​sup>​0</​sup>​ w lewo póki obrót > -45<​sup>​0</​sup>​. Jeżeli linia czarna idź do (1). Jeżeli obrót < -45<​sup>​0</​sup>​ to STOP       - obróć się w lewo o 45<​sup>​0</​sup>​. Obracaj się o -N<​sup>​0</​sup>​ w lewo póki obrót > -45<​sup>​0</​sup>​. Jeżeli linia czarna idź do (1). Jeżeli obrót < -45<​sup>​0</​sup>​ to STOP
  
-==== Implementacja w Prologu ==== 
-==== XTT ==== 
  
-===== I tak kolejne.... ===== + 
-==== Zapis słowny ​====+==== Zapis regułowy ​==== 
 +Poniżej został zastosowany zupełny zapis regułW zapisie w Prologu zapis ten ulegnie zmianie. 
 +<code ada> 
 +Rule: 1 
 +if light_value ​== '​black'​ 
 +then go 1 and trun_mem ​
 + 
 +Rule: 2 
 +if light_value !'​black'​ and turn_mem in [0,45) 
 +then turn 1 and turn_mem +turn 
 + 
 +Rule: 3 
 +if light_value !'​black'​ and turn_mem in (-45,0) 
 +then turn 1 and turn_mem +turn 
 + 
 +Rule: 4 
 +if light_value !'​black'​ and turn_mem >45 
 +then turn -turn_mem and turn_mem = -1 
 + 
 +Rule: 5 
 +if light_value != '​black'​ and turn_mem not in (-45,0) and not in [0,90) 
 +then STOP 
 + 
 + 
 +</​code>​ 
 + 
 + 
 + 
 + 
 ==== Implementacja w Prologu ==== ==== Implementacja w Prologu ====
 +
 +<code prolog>
 +start :-
 +      nxt_light_sensor(Port,​Value),​
 +      Value = RGB_black,
 +      assert(turn_mem(0)),​
 +      nxt_go(1).
 +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).
 +</​code>​
 +
 +
 +
 +
 ==== XTT ==== ==== XTT ====
-====== Uwagi ====== +{{:​pl:​miw:​miw08_mindstormsdesign:​alg5.png|XTT}} 
-====== Materiały ======+ 
 + 
 +{{:​pl:​miw:​miw08_mindstormsdesign:​alg6.png|XTT2}} 
 + 
 +UWAGI!!! FIXME 
 +  * Problem z wpisaniem wartości z ujemną wartością 
 + 
pl/miw/miw08_mindstormsdesign/strona_2.1211188044.txt.gz · ostatnio zmienione: 2019/06/27 15:59 (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