Sprawozdanie z laboratorium 2

1. Wstęp

Celem drugiego laboratorium dotyczącego LEGO Mindstorms było lepsze zapoznanie się z możliwościami programowania LEGO mindstomrs NXT w środowisku dostarczonym przez LEGO. Za zadanie mieliśmy w związku z tym zrealizowanie kilku bardziej skomplikowanych algorytmów. Robot był już wcześniej zbudowany, więc od razu zaczęliśmy tworzyć algorytmy sterujące nim. Zamiast zdjęć, zamieszczamy linki do filmów z wykonywanych programów.

2. Programowanie robota

2.1 Patrol

Zrealizowaliśmy program, który polegał na patrolowaniu terenu przez robota. Dwukrotnie jeździł po kwadracie, a dodatkowo reagował na pojawienie się jakiejś przeszkody, tzn. cofał się, wydawał dźwięk, a następnie realizował dalej patrol.

Film: http://www.youtube.com/watch?v=cVEEdC8XhSU

2.2 Uniki

Następny program był bardzo podobny do programów, które zrealizowaliśmy już na pierwszych laboratoriach. Robot jechał prosto, a po napotkaniu przeszkody, skręcał, wydawał dźwięk i jechał dalej.

Film: http://www.youtube.com/watch?v=C3B5NJ8hibY

Trajektoria, która jechał mogła być różna, nie musiała być to jazda prosto, a reakcja na przeszkodę mogła być taka, jak przy patrolu.

Film: http://www.youtube.com/watch?v=3PoEWxPuXLE

2.3 Śledzenie

Kolejnym programem było zrealizowanie podążania za źródłem, np. dźwięku. Ponieważ robot posiada tylko jeden sensor dźwiękowy, zaproponowaliśmy następujące rozwiązanie:

  1. Robot skręca w prawo, podjeżdża, sprawdza poziom dźwięku, wraca do miejsca rozpoczęcia.
  2. Robot skręca w lewo, podjeżdża, sprawdza poziom dźwięku, wraca do miejsca rozpoczęcia.
  3. Robot wybiera drogę, gdzie poziom dźwięku był wyższy i podjeżdża trochę. Wraca do punktu 1.

Jak widać, żeby zrealizować ten program, skorzystaliśmy z nowych funkcji środowiska, tak zwanych linkach, którymi mogą być przekazywane wartości. Na dodatek skorzystaliśmy z bloku COMPARE, który porównuje dwie wartości i wystawia rezultat TRUE albo FALSE.

Film: http://www.youtube.com/watch?v=V01mB6sXPaU

Na filmie widać, że wydawaliśmy dźwięki tylko wtedy, gdy robot sprawdzał głośność. Nie chcieliśmy używać jednego, ciągłego źródła dźwięku, by nie przeszkadzać innym, ale i w takim przypadku nasz algorytm działałby dobrze.

2.4 Sterowanie

Ostatnim programem było sterowanie za pomocą sygnałów dźwiękowych. Ponieważ programy, które polegają na prostym reagowaniu na jedno klaśnięcie realizowaliśmy już wcześniej, postanowiliśmy, że nasz robot będzie rozróżniał jeden i dwa sygnały dźwiękowe. Robot wykonywał następujący program:

  1. Wydaje dźwięk, czeka sekundę, sprawdza poziom dźwięku.
  2. Czeka dwie sekundy.
  3. Wydaje dźwięk, czeka sekundę, sprawdza poziom dźwięku.
  4. Dodaje do siebie wartości dźwiękowe i sprawdza czy przekroczyły razem konkretny poziom dźwięku.
  5. Jedzie do przodu, jeśli wartość nie została przekroczona lub do tyłu, jeśli została.
  6. Wraca do punktu 1.

Film: http://www.youtube.com/watch?v=zzrnQf0KVV0

3. Podsumowanie

Laboratorium było udaną kontynuacją tego, co zaczęliśmy robić na pierwszym spotkaniu. Niestety, ciągle programowaliśmy w środowisku dostarczonym przez LEGO, które nie wystarcza do realizacji bardziej skomplikowanych programów. Zaczęliśmy używać linków, które pomagają np. przekazywać wartość i modyfikować ją. Nie przerobiliśmy zagadnień dotyczących bluetootha, jednak mamy pomysł, jak można by wykorzystać możliwość komunikacji między Brickami. Jako zmianę w laboratorium (poza zaczęciem programowania w innym środowisku) proponujemy wprowadzenie zadania typu:

  1. Nawiąż komunikację z innym Brickiem.
  2. Napisz program który będzie korzystał z sensorów jednego Bricka, a reagował silnikami na drugim.

4. Spakowane programy

pl/dydaktyka/jsi/2009/sprawozdania/jsi20091209-08a.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