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:dydaktyka:piw:2010:sprawozdania:piw20100519-09b [2010/05/25 22:58]
piw10
pl:dydaktyka:piw:2010:sprawozdania:piw20100519-09b [2019/06/27 15:50] (aktualna)
Linia 7: Linia 7:
 ===== Budowa robota ===== ===== Budowa robota =====
 Udostępniony został nam w pełni rozbudowany robot Ewka, uzbrojony we wszystkie dostępne sensory - TriBot. Udostępniony został nam w pełni rozbudowany robot Ewka, uzbrojony we wszystkie dostępne sensory - TriBot.
 +
  
 ===== Konfiguracja środowiska pracy ===== ===== Konfiguracja środowiska pracy =====
-Podczas pracy na laboratorium ponownie pojawił się problem z komunikacją z robotem poprzez bluetooth. Początkowo udało się nawiązać połączenie z robotem, lecz podczas próby wykonania pierwszego algorytmu komunikacja została zerwana i ponowne próby połączenia nie dawały efektu. Po upływie ​około ​połowy zajęć udało się nawiązać połączenie - kluczem do sukcesu była zmiana nazwy urządzenia w preferencjach bluetooth'​a.+Podczas pracy na laboratorium ponownie pojawił się problem z komunikacją z robotem poprzez bluetooth. Początkowo udało się nawiązać połączenie z robotem, lecz podczas próby wykonania pierwszego algorytmu komunikacja została zerwana i ponowne próby połączenia nie dawały efektu. Po upływie ​ponad połowy ​czasu zajęć udało się nawiązać połączenie - kluczem do sukcesu była zmiana nazwy urządzenia w preferencjach bluetooth'​a.
  
  
 ===== Implementacja algorytmów ===== ===== Implementacja algorytmów =====
  
 +**Przykład 1**
  
 +Pierwszy program realizuje sekwencje ruchu robota po kwadracie. Program jest uruchamiany w jednym wątku i stosowana jest w nim rekurencja.
 +
 +<​code>​
 +:- consult('​plnxt.pl'​).
 + 
 +start :-
 + nxt_open,
 + rectangle_loop.
 + 
 +rectangle_loop :-
 + nxt_go_cm(350,​40),​
 + nxt_rotate(350,​90),​
 + rectangle_loop.
 +</​code>​
 +
 +**Przykład 2**
 +
 +Drugi przykład realizuje te same działania co przykład pierwszy, lecz umożliwia działanie wielowątkowe. Przetestować to można uruchamiając algorytm przy pomocy //start//, co powoduje uruchomienie sie programu w tle, a my mamy dostęp do konsoli. Użycie predykatu //stop// powoduje zatrzymanie się robota.
 +
 +<​code>​
 +:- consult('​plnxt.pl'​).
 + 
 +start :-
 + nxt_open,
 + nxt_goal(ewka,​ rectangle_loop).
 + 
 +rectangle_loop :-
 + nxt_go_cm(350,​40),​
 + nxt_rotate(350,​90),​
 + rectangle_loop.
 + 
 +stop :-
 + trigger_killall,​
 + nxt_stop,
 + nxt_close.
 +</​code>​
 +
 +**Przykład algorytmu**
 +
 +Przykład rozbudowanego algorytmu wykorzystującego sensor dźwięku. Robot zatrzymuje się po klaśnięciu. Po ponownym klaśnięciu wznawia ruch. Predykat //stop// zadany z konsoli powoduje zatrzymanie się robota i zamknięcie połączenia.
 +
 +<​code>​
 +:- consult('​plnxt.pl'​).
 + 
 +start :-
 + nxt_open,
 + nxt_goal(ewka,​ go_on_buddy).
 + 
 +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.
 + 
 +stop :-
 + trigger_killall,​
 + nxt_stop,
 + nxt_close.
 +</​code>​
 +
 +
 +Przedstawione przykłady są kopiami kodu ze strony laboratorium. Brak czasu, spowodowany problemami z połączeniem bluetooth uniemożliwił nam podjęcie pracy nad własnymi algorytmami. Mamy nadzieje, że na następnych laboratoriach nie pojawi się już problem z komunikacja i będziemy mogli cały czas wykorzystać na tworzenie algorytmów.
  
 ===== Spostrzeżenia i wnioski ===== ===== Spostrzeżenia i wnioski =====
-Środowisko PLNXT umożliwia dużo większą kontrole nad robotem niż proste oprogramowanie udostępniane przez firmę LEGO. Algorytmy budowane przy pomocy języka proglog mogą być bardziej skomplikowane i wykorzystywać w pełni możliwości robota.<br> +Środowisko PLNXT umożliwia dużo większą kontrole nad robotem niż proste oprogramowanie udostępniane przez firmę LEGO. Algorytmy budowane przy pomocy języka proglog mogą być bardziej skomplikowane i wykorzystywać w pełni możliwości robota. 
-Mamy nadzieje, że na następnych laboratoriach nie pojawi się już problem z komunikacja i będziemy mogli cały czas wykorzystać na tworzenie algorytmów :) + 
-Jako wniosek nasuwa się również ​propozycja uwzględnienia w opisie laboratorium podpowiedzi dotyczącej problemów z komunikacja. Rozwiązaniem tego problemu może okazać się zmiana nazwy urządzenia bluetooth w preferencjach z domyślnej - robo0-2 na dowolną inną.+Jako wniosek nasuwa się propozycja uwzględnienia w opisie laboratorium podpowiedzi dotyczącej problemów z komunikacja. Rozwiązaniem tego problemu może okazać się zmiana nazwy urządzenia bluetooth w preferencjach z domyślnej - robo0-2 na dowolną inną.
  
pl/dydaktyka/piw/2010/sprawozdania/piw20100519-09b.1274821084.txt.gz · ostatnio zmienione: 2019/06/27 15:54 (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