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 [2008/12/17 08:03]
gjn
pl:mindstorms:lab:lab_plnxt_zapoznanie [2019/06/27 15:50] (aktualna)
Linia 9: Linia 9:
   * adapter BT,   * adapter BT,
   * PLNXT.   * PLNXT.
 +
 +===== Przygotowanie stanowiska =====
 +
 +__UWAGA!__ Przed rozpoczęciem ćwiczeń należy starannie przygotować swoje stanowisko pracy [[lab215|zgodnie z instrukcją]].
  
 ===== Wstęp ===== ===== Wstęp =====
Linia 39: Linia 43:
 Należy zbudować robota opisanego w instrukcji QuickStart i dołączyć sensory. Należy zbudować robota opisanego w instrukcji QuickStart i dołączyć sensory.
  
-===== Przygotowanie środowiska ===== 
  
-  * zapisz plik {{:​pl:​mindstorms:​lab:​plnxt-20081217.tar.gz|plnxt-20081217.tar.gz}} na dysku w folderze FIXME 
-  * rozpakuj: tar xvzf plnxt-20081217.tar.gz 
-  * przejdź do katalogu plnxt: cd plnxt 
  
 ===== Praca w powłoce SWIPL ===== ===== Praca w powłoce SWIPL =====
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 fazierobot 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 ​====+===== Zakończenie =====
  
-Robot przemieszcza się do przodu. Po 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.+__UWAGA__! Prosze nie rozmontowywać robota!
  
-==== Panikarz ====+**__UWAGA__**! Jeżeli należycie Państwo do ostatniej tego dnia grupy ćwiczeniowej,​ należy //​wyciągnąć baterie z robota// i przekazać je prowadzącemu do naładowania!
  
-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 ===== 
- 
-Rozmontować robota, wkladając wszystkie części do [[pl:​mindstorms:​lab:​wyposazenie#​rozlozenie_klockow_w_przegrodach|odpowiednich przegródek w pudełku]] 
- 
-__UWAGA__! Należy to robić powoli i ostrożnie - połamanie klocków przy rozmontowywniu jest latwiejsze niż przy montażu. :-( 
  
 ===== Sprawozdanie ===== ===== Sprawozdanie =====
Linia 173: 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:​conf|konfiguracja BT]] +
- +
-===== BT ===== +
-stty -F /​dev/​rfcomm0 -echo -icanon -iexten -isig -crnl -inpck -istrip -ixon -cstopb -cs8 parnb parodd -opost ispeed 115200 ospeed 115200 +
pl/mindstorms/lab/lab_plnxt_zapoznanie.1229497383.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