Różnice

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

Odnośnik do tego porównania

pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20090114-09b [2009/01/19 02:19]
jsi08
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20090114-09b [2019/06/27 15:50]
Linia 1: Linia 1:
-==== Laboratorium (zapoznanie z PLNXT)==== 
-W celu ułatwienia ruchów odczepilismy robotowi "​kleszcze"​ co widać na poniższym zdjęciu. 
-{{:​pl:​mindstorms:​studenci:​przedmioty:​jsi:​jsi2008:​jsi20090114-09b.jpg|robot ​ po dołączenou czujników i drobnej modyfikacji}} 
  
-Na szczęście zastaliśmy zbudowanego Henia :) 
- 
-Przygotowanie stanowiska nie sprawiło nam problemu dzięki dobrej instrukcji. Pierwsze co zrobiliśmy to wypróbowanie przykładowych programów. 
- 
-<code prolog> 
-:- consult('​sciezka_do_plnxt.pl'​). 
-  
-start :- 
- nxt_open, 
- nxt_go_cm(400,​80),​ % Jazda 200 cm do przodu z prędkością 400 stopni/​sekundę. 
- nxt_go_cm(-400,​80),​ % Jazda 200 cm do tyłu z prędkością 400 stopni/​sekundę. 
- nxt_close. 
-  
-:- start. 
-</​code>​ 
- 
-<code prolog> 
-:- consult('​sciezka_do_plnxt.pl'​). 
-  
-start :- 
- nxt_open, 
- trigger_create(_,​check_distance,​[nxt_stop,​nxt_close]),​ 
- nxt_go(300). 
-  
-check_distance :- 
- nxt_ultrasonic(Distance,​force),​ 
- Distance < 15. 
-</​code>​ 
-Wszystko przebiegało zgodnie z planem, ale zauważyliśmy następujący problem. Po skompilowaniu drugiego kodu, robot wykonał swoje zadanie, jednak ponowne wykonanie [start.] jest niemożliwe. Musieliśmy wyłączyć powłokę SWIPL i skompilować kod ponownie. 
- 
- 
-Biorąc przykład drugi za bazę, napisaliśmy program umożliwiający omijanie przeszkody. 
-<code prolog> 
-:- consult('​plnxt.pl'​). 
-  
-start:- 
- nxt_open, 
- go_on_buddy,​ 
- trigger_create(_,​pushed,​[nxt_stop,​nxt_close]). 
- 
-go_on_buddy :- 
- nxt_go(250),​ 
-        sleep(0.1), % Chwila przerwy, żeby jedno klaśnięcie nie zostało rozpoznane jako dwa. 
- trigger_create(_,​check_distance,​detour_buddy). 
-  
-detour_buddy :- 
- nxt_stop, 
- nxt_turn(400,​ -180), 
- nxt_go_sec(400,​ 2), 
- nxt_turn(400,​ 180), 
- nxt_go_sec(400,​ 5), 
- nxt_turn(400,​ 180), 
- nxt_go_sec(400,​ 2), 
- nxt_turn(400,​ -180), 
- go_on_buddy. 
-  
-% Sprawdzenie,​ czy sensor dotyku jest wciśnięty. 
-pushed :- 
- nxt_touch(Value,​force),​ 
- Value=1. ​ 
- 
-check_distance :- 
- nxt_ultrasonic(Distance,​force),​ 
- Distance < 15. 
- 
-</​code>​ 
- 
-Poniżej umieściliśmy kod algorytmu Panikarza. 
- 
-<code prolog> 
-:- consult('​plnxt.pl'​). 
-  
-start:- 
- nxt_open, 
- go_on_buddy,​ 
- trigger_create(_,​pushed,​[nxt_stop,​nxt_close]). 
- 
-go_on_buddy :- 
- nxt_go(250),​ 
-        sleep(0.1), % Chwila przerwy, żeby jedno klaśnięcie nie zostało rozpoznane jako dwa. 
- trigger_create(_,​clap,​panic_buddy). 
-  
-panic_buddy :- 
- nxt_stop, 
- random(-180,​180,​ Direction), 
- nxt_rotate(400,​ Direction), 
- nxt_go_sec(800,​ 1), 
- trigger_create(_,​clap,​go_on_buddy). 
-  
-% Sprawdzenie,​ czy natężenie dźwięku przekracza progową wartość. 
-clap :- 
- nxt_sound(Value,​force),​ 
- Value > 30. 
-  
-% Sprawdzenie,​ czy sensor dotyku jest wciśnięty. 
-pushed :- 
- nxt_touch(Value,​force),​ 
- Value=1. 
-</​code>​ 
- 
-Zdarzało się ze komputer nie mógł się połączyć przez Bluetooth z robotem. Nie wiemy co może być przyczyną, ale wyłączenie i włączenie robota rozwiązywało problem. 
- 
-====załącznik==== 
-{{:​pl:​mindstorms:​studenci:​przedmioty:​jsi:​jsi2008:​jsi20090114-09b.tar.gz|filmy}} 
pl/mindstorms/studenci/przedmioty/jsi/jsi2008/jsi20090114-09b.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