Sprawozdanie (laboratorium 2)

1. Cel zajęć

Celem drugich zajęć z robotami LEGO Mindstorms było napisanie kilku prostych algorytmów sterowania.

Do dyspozycji naszej grupy oddany został po raz drugi nasz dobry znajomy - Leon.

2. Napisane programy

Uwaga: Wszystkie napisane przez nas programy rozpoczynają się wejściem w nieskończoną pętlę. Pętla ta jest pusta i opuszczana jest w momencie gdy czujnik dźwiękowy odnotuje odpowiednio głośny sygnał. Dzięki takiemu rozwiązaniu każdy program mogliśmy uruchamiać za pomocą np. klaśnięcia.

A) Patrol

Założenia:

Pierwszy algorytm miał wprowadzać robota w ruch po pewnej trajektorii (np. koło, kwadrat) powtarzany przez zadaną ilość razy. W przypadku napotkania na swojej drodze przeszkody robot miał odtworzyć sygnał dźwiękowy a następnie wycofać się.

Realizacja:

Napisany przez nas program wprowadza Leona w powtarzaną 16 razy pętlę główną. W jej wnętrzu znajdują się dwie mniejsze pętle. Pierwsza z nich trwa każdorazowo 2 sekundy i sprawia że Leon porusza się w przód, równocześnie cały czas sprawdzając czy nie zbliżył się zbytnio do jakiejś przeszkody. Jeśli tak się stało algorytm kolejno: wyłącza silniki, odtwarza dźwięk (w tym wypadku - „Good job”) i wycofuje robota na niewielką odległość. Druga z mniejszych pętli trwa 1 sekundę i jest odpowiedzialna za wykonywanie skrętu w prawo. Obie pętle w połączeniu skutkują ruchem robota po trajektorii mniej więcej przypominającej kwadrat (nie udało nam się uzyskać kąta 90 stopni podczas skręcania).

Program:

Film:

mv_patrol_leon.rar Oglądnij

B) Uniki

Założenia:

Drugi algorytm wymagał aby robot poruszał się po linii prostej do przodu. Po zbliżeniu się do przeszkody robot miał wykonać unik (np. obrót w prawo) odtwarzając przy tym dźwięk.

Realizacja:

Nasz program składa się z nieskończonej pętli w której wnętrzu nieustannie sprawdzany jest odczyt czujnika zbliżeniowego. Jeśli robot zbliży się zbytnio do jakiegoś obiektu algorytm kolejno: wyłącza silniki, odtwarza dźwięk (w tym wypadku - złowrogi śmiech ;) ) i wykonuje skręt w prawo, w celu ominięcia napotkanej przeszkody. W przeciwnym wypadku robot cały czas porusza się po linii prostej.

Program:

Filmy:

mv_uniki.rar Oglądnij- widok z góry

mv_uniki_fpp.rar Oglądnij- widok z perspektywy robota

C) Sterowanie

Założenia:

Założeniami tego programu było sterowanie robotem za pomocą sygnałów dźwiękowych (np. klaśnięć: 1 klaśnięcie - ruch w przód, 2 - ruch w tył).

Realizacja:

Stworzony przez nas algorytm po usłyszeniu sygnału wprowadza Leona w ruch do przodu. Po minięciu 500ms algorytm przechodzi do pętli w której ponownie sprawdzany jest odczyt czujnika dźwiękowego. Jeśli w ciągu 2 kolejnych sekund robot usłyszy kolejny dźwięk, zamieniany jest kierunek jego ruchu na przeciwny.

Program:

Obserwacje:

Niestety algorytm nie działał poprawnie. Leon zgodnie z naszymi oczekiwaniami ruszał na pierwsze klaśnięcie, jednak na drugie w żaden sposób nie reagował.

3. Podsumowanie

Drugie zajęcia z serii LEGO Mindstorms okazały się równie udane co pierwsze. Po raz kolejny pozwoliły nam połączyć przyjemne (zabawę) z pożytecznym (nauką) w odpowiednio wyważonych proporcjach. Uważamy jednak że zajęcia mogłyby być nawet lepsze, jeśli w instrukcji do ćwiczeń znalazłyby się drobne wskazówki dotyczące napisania konkretnych programów (być może dzięki temu udałoby się nam odnaleźć błąd w naszym rozwiązaniu do programu 'Sterowanie'?).

Pozytywnych wrażeń nie zepsuł nawet fakt nieudanej pierwszej próby montażu aparatu na robocie podczas nagrywania filmików z przejazdów: mv_klops.rar Oglądnij.

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