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:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20090121-09c [2009/01/26 09:59]
jsi08 problemy
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20090121-09c [2019/06/27 15:50] (aktualna)
Linia 19: Linia 19:
       ​nxt_go_cm(-400,​20),​       ​nxt_go_cm(-400,​20),​
       ​nxt_pincer(close).       ​nxt_pincer(close).
-  ​sprzataj. +           sprzataj. 
-  obrot(0).+           ​obrot(0).
   obrot(X) :-   obrot(X) :-
       ​nxt_rotate(400,​10),​       ​nxt_rotate(400,​10),​
Linia 39: Linia 39:
 Przyczyna błędu jest w komendzie: nxt_stop - naszym celem, było to, by zatrzymała komendę obrotu o 360 stopni (nxt_rotate(400,​360)) i faktycznie - zatrzymywała,​ ale oprócz tego miała wpływ również na komendę jazdy do tyłu, tzn. rozkaz nxt_go_cm(-400,​10) był anulowany. Przyczyna błędu jest w komendzie: nxt_stop - naszym celem, było to, by zatrzymała komendę obrotu o 360 stopni (nxt_rotate(400,​360)) i faktycznie - zatrzymywała,​ ale oprócz tego miała wpływ również na komendę jazdy do tyłu, tzn. rozkaz nxt_go_cm(-400,​10) był anulowany.
  
-check_ultrasonic :-+  ​check_ultrasonic :-
  nxt_ultrasonic(Value,​force),​  nxt_ultrasonic(Value,​force),​
  Value < 25,  Value < 25,
  write(Value).  write(Value).
  
-ruch :-    ​+  ​ruch :-    ​
  nxt_pincer(open),​ %%%  nxt_pincer(open),​ %%%
  nxt_go_cm(-400,​10),​ %%%  nxt_go_cm(-400,​10),​ %%%
  nxt_go_cm(400,​10). %%%  nxt_go_cm(400,​10). %%%
-  + 
-ultrasonic :- +  ultrasonic :-
  nxt_stop, %%%  nxt_stop, %%%
  ruch.  ruch.
  
-sprzataj :-+  ​sprzataj :-
  nxt_open,  nxt_open,
  trigger_create(_,​check_ultrasonic,​ultrasonic),​  trigger_create(_,​check_ultrasonic,​ultrasonic),​
Linia 64: Linia 64:
 [reszta kodu be zmian] [reszta kodu be zmian]
  
-ultrasonic :- +  ​ultrasonic :-
  nxt_stop,   nxt_stop,
  trigger_killall,​ %%%  trigger_killall,​ %%%
  ruch.  ruch.
  
-sprzataj :-+  ​sprzataj :-
  nxt_open,  nxt_open,
  trigger_create_noreturn(_,​check_ultrasonic,​ultrasonic),​ %%%  trigger_create_noreturn(_,​check_ultrasonic,​ultrasonic),​ %%%
Linia 80: Linia 80:
  
 Próbowaliśmy tez tworzyć triggera jak poprzednio przez trigger_create/​3,​ ale kończyło się to identycznym błędem. Próbowaliśmy tez tworzyć triggera jak poprzednio przez trigger_create/​3,​ ale kończyło się to identycznym błędem.
 +
 +Inne problemy:
 +  * Robot pozostawiony przez poprzednią grupę miał odwrotnie podpięte silniki. Zamiast skręcać w prawo, skręcał w lewo.   
 +  * Silniki robota, nie wyłączały się jednocześnie przez komendę nxt_stop. Robot zamiast zatrzymywać równocześnie koła, najpierw zatrzymywał jedno, a dopiero po chwili drugie. ​    
 +  * Użycie funkcji trigger_create więcej niż jeden raz powodowało zwrócenie błędu. Po jego otrzymaniu dalsza komunikacja z robotem była niemożliwa. Konieczne było zrestartowanie robota oraz ponowne uruchomienie prologa. Wyświetlany był błąd: ​
 +    ​
 +**ERROR: Arithmetic: `force/​0'​ is not a function ^  Exception: (19) _L3673 is force//256 ?​**  ​
  
 **Wnioski:​** **Wnioski:​**
Linia 88: Linia 95:
  
 === Zmiany === === Zmiany ===
-    ​+  ​Można wprowadzić większą ilość przykładowych,​ sprawdzonych algorytmów o zróżnicowanym poziomie trudności (najlepiej skorzystać z algorytmów napisanych przez studentów, które działają - czyli pewnie te bez triggerów) 
  
 === Plik z laboratorium === === Plik z laboratorium ===
pl/mindstorms/studenci/przedmioty/jsi/jsi2008/jsi20090121-09c.1232960399.txt.gz · ostatnio zmienione: 2019/06/27 15:57 (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