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.
4. Link do programów