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:lab:lab_plnxt_zapoznanie [2009/01/14 09:12]
holownia
pl:mindstorms:lab:lab_plnxt_zapoznanie [2019/06/27 15:50] (aktualna)
Linia 64: Linia 64:
     * nxt_voltage_millivolt(Voltage). % Odczyt napięcia baterii.     * nxt_voltage_millivolt(Voltage). % Odczyt napięcia baterii.
   * Zamknąć połączenie:​ nxt_close.   * Zamknąć połączenie:​ nxt_close.
- 
 ===== Programy w pliku ===== ===== Programy w pliku =====
  
 Większość predykatów ma swoją wersję z opcją '​force'​ (np. nxt_go(400,​force).),​ która wymusza natychmiastowe wykonanie polecenia.\\ Większość predykatów ma swoją wersję z opcją '​force'​ (np. nxt_go(400,​force).),​ która wymusza natychmiastowe wykonanie polecenia.\\
-Brak tej opcji sprawia, że polecenie oczekuje ​na wykonanie ​do zatrzymania robota.\\+Brak tej opcji sprawia, że polecenie oczekuje ​z wykonaniem ​do zatrzymania robota.\\
 To pozwala na pisanie sekwencyjnych programów, jak przykład niżej. To pozwala na pisanie sekwencyjnych programów, jak przykład niżej.
  
Linia 77: Linia 76:
 start :- start :-
  nxt_open,  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 80 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_go_cm(-400,​80),​ % Jazda 80 cm do tyłu z prędkością 400 stopni/​sekundę.
  nxt_close.  nxt_close.
  
Linia 88: Linia 87:
 Proszę przetestować proste przykłady programów z wykorzystaniem mechanizmu trigger (dokumentacja:​ {{:​pl:​mindstorms:​lab:​threads.pdf|threads.pdf}}). Proszę przetestować proste przykłady programów z wykorzystaniem mechanizmu trigger (dokumentacja:​ {{:​pl:​mindstorms:​lab:​threads.pdf|threads.pdf}}).
  
-==== Przykład ​====+==== Przykład ====
  
 <code prolog> <code prolog>
Linia 107: Linia 106:
 Robota czekałoby bolesne spotkanie z przeszkodą. Robota czekałoby bolesne spotkanie z przeszkodą.
  
-==== Przykład 2 ==== 
  
-<code prolog> 
-:- consult('​../​plnxt.pl'​). 
- 
-start:- 
- nxt_open, 
- go_on_buddy,​ 
- trigger_create(_,​pushed,​[nxt_stop,​nxt_close]). 
- 
-go_on_buddy :- 
- nxt_go(200),​ 
-        sleep(1), % Chwila przerwy, żeby jedno klaśnięcie nie zostało rozpoznane jako dwa. 
- trigger_create(_,​clap,​wait_a_second_buddy). 
- 
-wait_a_second_buddy :- 
- nxt_stop, 
-        sleep(1), 
- trigger_create(_,​clap,​go_on_buddy). 
- 
-% Sprawdzenie,​ czy natężenie dźwięku przekracza progową wartość. 
-clap :- 
- nxt_sound(Value,​force),​ 
- Value > 15. 
- 
-% Sprawdzenie,​ czy sensor dotyku jest wciśnięty. 
-pushed :- 
- nxt_touch(Value,​force),​ 
- Value=1. 
-</​code>​ 
- 
-Robot jedzie do przodu. Zatrzymuje się po klaśnięciu. Wznawia ruch po ponownym klaśnięciu.\\ 
-Po wciśnięciu sensora dotyku zatrzymuje się i zamyka połączenie.\\ 
-Proszę odpowiednio dobrać próg natężenia dźwięku. W laboratorium może być głośno.\\ 
-Zbyt niska wartość może spowodować zapętlenie.\\ 
-Zbyt wysoka sprawi, że zamiast klaskać, trzeba będzie solidnie "​puknąć"​ sensor. 
  
 ===== Implementacja algorytmu ===== ===== Implementacja algorytmu =====
  
-Proszę zaimplementować ​jeden lub więcej z poniższych algorytmów:+Proszę zaimplementować poniższe algorytmy:
  
-==== Omijanie przeszkód ​====+==== Algorytm 1 ==== 
 +Robot porusza się dowolnie wewnątrz obszaru ograniczonego czarną linią (można wykorzystać planszę testową). Nie może poza niego wyjechać! Gdy najedzie na czarną linię, powinien zawrócić -- niekoniecznie o 180 stopni, żeby było ciekawiej. Podpowiedź:​ można użyć formuły typu "//​Angle is 120 + random(120)//"​.
  
-Robot przemieszcza się do przodu. Po napotkaniu przeszkody zatrzymuje się i próbuje ją ominąć. W fazie przemieszczania do przodu (tylko w tej fazie) robot zatrzymuje się i zamyka połączenie po klaśnięciu. +==== Algorytm 2 ==== 
- +Robot podąża wzdłuż czarnej linii (można wykorzystać planszę testową)Nie może jej zgubić! Gdy napotka przeszkodę, powinien ​się zatrzymać ​poinformować o problemie sygnałem dźwiękowym. Po usunięciu przeszkody robot powinien kontynuować jazdę.
-==== Unikanie przeszkód ​==== +
- +
-Robot przemieszcza się do przoduPo napotkaniu przeszkody cofa się, obraca w innym kierunku i wznawia przemieszczanie do przodu. W fazie przemieszczania do przodu (tylko w tej fazie) robot zatrzymuje ​się i zamyka połączenie po klaśnięciu. +
- +
-==== Panikarz ==== +
- +
-Robot przemieszcza się powoli. Po klaśnięciu zmienia kierunek i szybko ucieka przez jakiś czas (wtedy nie jest podatny na klaśnięcie), po czym uspokaja się i znowu jedzie powoli. Zatrzymuje się i zamyka połączenie po wciśnięciu sensora dotyku.+
  
 ===== Zakończenie ===== ===== Zakończenie =====
Linia 175: Linia 133:
   * uwagi dotyczące funkcjonalności PLNXT.   * uwagi dotyczące funkcjonalności PLNXT.
  
-[[pl:mindstorms:studenci:przedmioty:jsi:​sprawozdania2008|Wykaz sprawozdań]] +[[pl:dydaktyka:piw:2010:wykaz_sprawozdan|Wykaz sprawozdań]]
- +
pl/mindstorms/lab/lab_plnxt_zapoznanie.1231920722.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