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_1 [2008/03/30 23:17]
miw
pl:miw:miw08_mindstormsdesign:strona_1 [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 ====== Algorytmy (echosonda) ====== ====== Algorytmy (echosonda) ======
 Poniżej znajdują się algorytmy sterowania wykorzystujące **echosondę**. Aby sprawdzić działanie algorytmów należy przygotować tor przeszkód. Poniżej znajdują się algorytmy sterowania wykorzystujące **echosondę**. Aby sprawdzić działanie algorytmów należy przygotować tor przeszkód.
-===== Unikanie przeszkód ===== 
  
 +===== Objechanie przeszkody =====
 ==== Zapis słowny ==== ==== Zapis słowny ====
-      - jedź do przodu+      - jedź do przodu ​
       - jeżeli przeszkoda zatrzymaj się (wskaźnik echosondy poniżej progu) idź do (3) inaczej wróć do (1)       - jeżeli przeszkoda zatrzymaj się (wskaźnik echosondy poniżej progu) idź do (3) inaczej wróć do (1)
       - obróć się o 90<​sup>​0</​sup>​ w prawo       - obróć się o 90<​sup>​0</​sup>​ w prawo
-      - idź do (1)+      - jeżeli przeszkoda zatrzymaj się (wskaźnik echosondy poniżej progu) idź do (3) inaczej idź do (5) 
 +      - zrób krok do przodu 
 +      - jeżeli przeszkoda idź do (3) inaczej idź wykonaj kolejny punkt 
 +      - obróć się o 90<​sup>​0</​sup>​ w lewo i idź do (1)
  
-==== Implementacja w Prologu ==== 
-start:- 
-       ​go(Angle,​Speed,​force) 
  
-start2 :-  
-       ​foward(Speed),​ 
-       ​sensor(Echosonda,​X),​ 
-       X > parametr. 
-start2 :- 
-       ​sensor(echosonda,​X),​ 
-       X =< parametr, 
-       ​turn(right,​90). 
-start2 :- 
-       X =< parametr, 
-       stop. 
  
  
-==== XTT ==== 
  
-===== Objechanie przeszkody ===== +==== Zapis regułowy ​==== 
-==== Zapis słowny ​====h + 
-      - jedź do przodu ​ +<code ada> 
-      - jeżeli przeszkoda zatrzymaj się (wskaźnik echosondy poniżej progu) idź do ( c) inaczej wróć do (a) +Rule: 1 
-      - obróć się o 90<sup>0</sup> w prawo +if ultrasonic_Value > 50 and go ≠ 0 
-      - zrób krok do przodu +then go :100 and go_cm :0 and turn :
-      - obróć się o 90<sup>0</supw lewo i idź do (a) + 
-==== Implementacja w Prologu ​==== +Rule: 2 
-==== XTT ====+if ultrasonic_Value > 50 and go 0 and turn 
 +then go :100 and go_cm :0 and turn :0 
 + 
 +Rule: 3 
 +if ultrasonic_Value ​50 and go = and turn 0 
 +then go := 100 and go_cm := 0 and turn := 0 
 + 
 +Rule: 4 
 +if ultrasonic_Value ​50 and go = and turn 0 
 +then go_cm :10 and go :0 and turn :
 + 
 +Rule: 5 
 +if ultrasonic_Value ≤ 50 and go ≠ 0 
 +then turn :90 and go :0 and go_cm :
 + 
 +Rule: 6 
 +if ultrasonic_Value ≤ 50 and go 0 and turn ≠ 0 
 +then turn :0 and go := 0 and go_cm := 10 
 + 
 +Rule: 7 
 +if ultrasonic_Value ≤ 50 and go 0 and turn 0 and go_cm 
 +then turn :90 and go :0 and go_cm :
 + 
 +Rule: 8 
 +if ultrasonic_Value ≤ 50 and go 0 and turn 0 and go_cm ≠ 0 
 +then turn := -90 and go := 0 and go_cm := 0 
 +</​code>​ 
 + 
 + 
  
-===== Pokonywanie przeszkód ===== 
-==== Zapis słowny ==== 
-      - jedź do przodu 
-      - jeżeli przeszkoda zatrzymaj się (wskaźnik echosondy poniżej progu) idź do ( c) inaczej wróć do (a) 
-      - obróć się o 45<​sup>​0</​sup>​ w prawo i zapisz odczyt czujnika 
-      - obróć się o 135<​sup>​0</​sup>​ w lewo i zapisz odczyt czujnika 
-      - jeżeli odczyt_1 większy od odczyt_2 obróć się o 135<​sup>​0</​sup>​ w prawo 
-      - idź do (a) 
-==== Implementacja w Prologu ==== 
-==== XTT ==== 
  
-===== I tak kolejne.... ===== 
-==== Zapis słowny ==== 
 ==== Implementacja w Prologu ==== ==== Implementacja w Prologu ====
 +<code prolog>
 +
 +state(go). // Knowladge Base => previous state updated in fly.. initial state would also be state(go)
 +
 +start :-
 +      nxt_ultrasonic_sensor(port,​Value)
 +      Value > 50,
 +      start_go.
 +
 +start :-
 +      nxt_ultrasonic_sensor(port,​Value)
 +      Value =< 50,
 +      start_turn.
 +
 +start :-
 +      nxt_go(0).
 +
 +start_go :-
 +      state(go),
 +      nxt_go(0).
 +
 +start_go :-
 +      state(go_cm),​
 +      nxt_go_cm(distance,​speed).
 +
 +start_turn :-
 +      state(go),
 +      nxt_turn_degrees(speed,​90).
 +
 +start_turn :-
 +      state(go_cm),​
 +      nxt_turn_degrees(speed,​-90).
 +</​code>​
 +
 +
 +
 ==== XTT ==== ==== XTT ====
-====== Uwagi ====== +{{:​pl:​miw:​miw08_mindstormsdesign:​alg3.png|XTT}} 
-====== Materiały ======+
pl/miw/miw08_mindstormsdesign/strona_1.1206911870.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