1. Wstęp

Celem drugiego laboratorium było bardziej dokładne zapoznanie się z zestawem LEGO Mindstorms. W tym tygodniu dostaliśmy listę propozycji algorytmów, z której mieliśmy wybrać niektóre i spróbować je zrealizować w środowisku dostarczonym przez LEGO. Ponieważ robot był już gotowy od razu wzięliśmy się do pisania algorytmów.

2. Programy

  • Jako pierwszy zrealizowaliśmy program „patrol”. Robot miał za zadanie przejechać zadaną trajektorię (okrąg) cztery razy. Jeżeli podczas przejazdu napotkał na przeszkodę (czujnik odległości) zatrzymywał się, wydawał dźwięk, po czym przez chwilę jechał do tyłu.

sr_11_patrol.jpg

Film: Algorytm "patrol"

  • Następnie zajęliśmy się realizacją algorytmu „unik”. Robot jedzie prosto do momentu wykrycia przeszkody (czujnik odległości), po czym obraca się o niecałe 180° i kontynuuje jazdę po linii prostej. Program ten nie różni się za bardzo od programu patrol. Główną różnicą jest fakt ciągłego działania programu.

sr_11_unik.jpg

Film: Algorytm "unik"

Porównując oba programy można zauważyć interesującą właściwość bloczka służącego do obsługi silniczków. W przypadku określonego czasu pracy silnika (np. przez zadanie konkretnej ilości obrotów) algorytm czeka na wykonanie się tego bloczka zanim przejdzie do wykonywania elementów umieszczonych za nim na szynie. W przypadku ustawienia silnika tak aby pracował w nieskończoność, algorytm, po ustawieniu obrotów silnika na określoną prędkość, przechodzi do wykonywania następnego w kolejności bloczka. Dzięki temu algorytm „unik” można wykonać bez rozgałęziania szyny.

  • Ostatni algorytm jaki zdążyliśmy zaprogramować to „sterowanie”. Robot sterowany był klaśnięciami (bądź innego rodzaju krótkimi dźwiękami). Po pierwszym klaśnięciu robot jechał do przodu, po drugim do tyłu a po trzecim zatrzymywał się. W celu wykrycia klaśnięcia użyliśmy dwóch bloczków sprawdzających poziom dźwięku: jednego ustawionego na poziom wysoki i jednego na niski. Dzięki takiemu podejściu mogliśmy wybrać czy robot ma reagować na rosnące czy opadające zbocze fali dźwiękowej. Po ustawieniu modułu sterującego silnikiem pomiędzy wspomnianymi boczkami (przypadek jazdy do przodu lub do tyłu) silnik włącza się w momencie rozpoczęcia się dźwięku, w przypadku umieszczenia modułu sterującego silnikiem po sprawdzeniu niskiego poziomu dźwięku (przypadek zatrzymania robota) robot reaguje dopiero po skończeniu się dźwięku.

sr_11_sterowanie.jpg

Film: Algorytm "sterowanie"

  • Udało nam się również stworzyć prosty algorytm sterowania głosem, który niczym nie różni się od algorytmu „sterowanie”. Główną podstawą teoretyczną do stworzenia tego algorytmu były słowa Króla z książki „Mały Książę” autorstwa Antoine de Saint-Exupery'ego: „Od każdego należy tylko tego wymagać, co może z siebie dać.” Uzyskane przez nas wyniki widać na zamieszczonym poniżej filmie.

Film: Algorytm sterowania głosem

3. Wnioski

W czasie trwania laboratorium udało nam się wykonać większość zadanych algorytmów. Podczas ich tworzenia zapoznaliśmy się z dostępnymi bloczkami oraz sposobami ich podłączania, które czasami bywają mało intuicyjne dla osób znających standardowe języki programowania. Niestety nie zdążyliśmy przyjrzeć się bliżej możliwościom wykorzystania tak zwanych 'linków', ale mamy nadzieję nadrobić to na kolejnym laboratorium.

Jako zmianę w laboratorium proponujemy wprowadzenie odrobiny rywalizacji poprzez zadanie konkretnego algorytmu, za którego najlepsze bądź najszybsze wykonanie dana drużyna zdobędzie dodatkowy punkt za sprawozdanie, uścisk dłoni prowadzącego laboratorium, bądź inną równie satysfakcjonującą nagrodę.

4. Spakowane programy

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