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:jsi20090114-11d [2009/01/18 21:28]
jsi08
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20090114-11d [2009/01/18 22:28]
jsi08
Linia 3: Linia 3:
 ====== Środa 14.01.09 godz. 11:00 ======= ====== Środa 14.01.09 godz. 11:00 =======
 ===== Konstrukcja ===== ===== Konstrukcja =====
-Robot, którego używaliśmy na zajęciach był już wcześniej zbudowany, był to jeden z przykładów z instrukcji LEGO. Oryginalnie ten typ robota prezentował podnoszenie piłeczki. Wyposażony był w czujnik nacisku ​zamontowany ​z przodu robota oraz czujnik dźwięku.+Robot, którego używaliśmy na zajęciach był już przygotowany, był to jeden z przykładów z instrukcji LEGO. Oryginalnie ten typ robota prezentował podnoszenie piłeczki. Wyposażony był w czujnik nacisku ​i odległosci zamontowane ​z przodu robota oraz czujnik dźwięku.
 {{:​pl:​mindstorms:​studenci:​przedmioty:​jsi:​jsi2008:​jasio_sr_1100.jpg|}} {{:​pl:​mindstorms:​studenci:​przedmioty:​jsi:​jsi2008:​jasio_sr_1100.jpg|}}
 +===== Algorytmy =====
 +Na zajęciach zrealizowaliśmy cztery algorytmy w języku Prolog przy czym trzy z nich były to gotowe programy przygotowane na stronie z instrukcją. Pierwszy z nich realizował zwykłe przemieszczanie się robota. Kolejny zatrzymywał robota w przypadku napotkania przeszkody. Trzeci algorytm był to przykład nr 2 ze strony, którego zadaniem było zatrzymywanie robota i ponowny start po usłyszeniu klaśnięcia.
 +Następnie przystąpiliśmy do implementacji własnego programu **Panikarz**. Jego zachowanie wyglądało następująco:​
  
 +  * po usłyszeniu klaśnięcia robot się zatrzymuje
 +  * wydaje dźwięk
 +  * następnie obraca o około 180 stopni
 +  * i ucieka na pełnej prędkości przez 50 cm
 +  * i przechodzi do zwykłego, powolnego poruszania się
 +  * ponadto w przypadku najechania na przeszkodę robot zatrzymuje się a program kończy działanie
 +
 +Do powyższego celu zmodyfikowaliśmy przykład nr 2:
 +
 +:- consult('​plnxt.pl'​).
 + 
 +start:-
 + nxt_open,
 + go_on_buddy,​
 + trigger_create(_,​pushed,​[nxt_stop,​nxt_close]).
 + 
 +go_on_buddy :-
 + nxt_go(200),​
 +        sleep(1),
 + trigger_create(_,​clap,​uciekaj).
 + 
 +uciekaj :-
 + nxt_stop,
 + nxt_play_tone(1000,​500),​
 + nxt_rotate(600,​180,​force),​
 +        nxt_go_cm(600,​50),​
 + start.
 +
 +clap :-
 + nxt_sound(Value,​force),​
 + Value > 50.
 + 
 +pushed :-
 + nxt_touch(Value,​force),​
 + Value=1.
 +
 +Pliki z programami - {{:​pl:​mindstorms:​studenci:​przedmioty:​jsi:​jsi2008:​jasio_sr_1100.zip|}}
 +
 +===== Problemy, propozycje zmian =====
 +Podczas realizacji problemem okazało się dodanie przez nas dźwięku podczas ucieczki. Niestety nie udało się nam to przy pomocy opcji force, gdyż nie pozwala ona na równoległe wykonywanie czynności a jedynie sekwencyjne. Tak więc robot najpierw wydawał dźwięk a dopiero potem brał się za ucieczkę.
 +Drugim napotkanym problemem było dziwne zachowanie podczas jazdy z dużą prędkością,​ kiedy to czasem nie zamierzenie zmieniał kierunek.
pl/mindstorms/studenci/przedmioty/jsi/jsi2008/jsi20090114-11d.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