1. Wstęp

Głównym celem dzisiejszych zajęć z LEGO Mindstorms było wykorzystanie sensorów. Do zaimplementowanie były podane 4 propozycje algorytmów. Udało się nam zaimplementować kilka z nich.

2. Przebieg laboratorium

2.1 Magazynier

Pierwszym ćwiczeniem było zaprogramowanie robota w taki sposób aby po wzięciu piłeczki przetransportował ją pod ścianę. Po złapaniu piłeczki w swoje szczęki robot miał się odwrócić po czym rozpocząć jazdę na wprost. Wyłącznikiem awaryjnym miało być klaśnięcie. Oto schemat układu wykonujący to działanie :

To zadanie udało się zrealizować bez większych problemów. Robot poruszał się po linii prostej do momentu znalezienia piłeczki. Robot używał do tego celu czujnik dotyku. Po uaktywnieniu się tego czujnika zamykał szczęki, po czym się odwracał i kontynuował jazdę. Po zbliżeniu się do ściany na odległość 25cm zatrzymywał się. Dodatkowo podczas każdej fazy algorytmu można go było wyłączyć, gdy mikrofon odebrał sygnał klaśnięcia. Poniżej paczka w której znajduje się program oraz 2 filmiki pokazujące działanie. Pierwszy filmik prezentuje działanie algorytmu bez zakłóceń, a drugi wyłączenie awaryjne za pomocą klaśnięcia.

mgr-bolek-film-program.rar

2.2 Magazynier 2

Tutaj naszym zadaniem była drobna modyfikacja powyższego algorytmu. Robot miał za zadanie wykorzystać sensor dotyku w celu zlokalizowania piłeczki. Piłeczka miała być przez niego przeniesiona na podłoże o innym kolorze. W naszym przypadku miała to być biała kartka papieru. Aby robot mógł łatwiej rozpoznać podłoże ustawiliśmy go na ciemnych płytkach. Schemat programu :

W paczce znajduje się plik wideo obrazujący działanie programu oraz sam program. Trudności jakie napotkaliśmy w tym przypadku to manewr zawracania. Nie zawsze robot obracał się o tą samą ilość stopni. W założeniach robot miał się obrócić o 180 stopni. Na filmiku widać, że nie do końca robot tak zadziałał. Ten problem pojawiał się zarówno w przypadku programu Magazynier jak i Magazynier 2. Przypuszczamy, że to wina niepoprawnej kalibracji czujnika robota. Algorytm można było poprawić w miejscu zostawiania piłeczki na kartce. Jak widać Bolek zachowuje sie jakby się tej kartki przestraszył. Można było algorytm wzbogacić o instrukcję zatrzymania i czekania przed zostawieniam piłeczki na kartce, gdyż robot wykonuje te czynności za szybko i piłeczka się stacza z kartki. Paczka z programem i filmikiem : mgr2-film-prog.rar

2.3 Złodziej

Ostatnim zadaniem jakie udało nam się zrobić na zajęciach był program złodziej. Miał on za zadanie podjechać powoli do piłeczki po czym wziąć ją, odwrócić się po czym szybko oddalić się z miejsca zdarzenia. Problemem jaki tu napotkaliśmy był fakt, że wymagane było wykorzystanie czujnika odległości w celu wykrycia piłeczki. W tym celu niego przebudowaliśmy robota, tak aby robot nie patrzył przed siebie, a trochę po skosie w dół. Jako że czasu do końca zajęć pozostało niewiele była to konstrukcja prowizoryczna i robot stał się trochę niestabilny - miał kłopoty z utrzymaniem piłeczki w szczękach. Jak widać na filmiku założenia programu zostały spełnione. Robot poprawnie wykrywa piłeczkę, i poprawnie wykonuje inne manewry, jednak trzymanie piłeczki sprawia mu wielki problem. Gdyby czas zajęć był nieco dłuższy, z pewnością poprawilibyśmy konstrukcję i rozwinęli ten program nieco bardziej. Oto schemat :

A tutaj paczka z filmikiem i programem :zlodz-prog-film.rar

3. Wnioski

Dzisiejsze zajęcia poszły nam dużo sprawniej niż poprzednie. Spowodowane jest to faktem, iż przyzwyczailiśmy się już do nietypowego środowiska pracy. Jednak było kilka kwestii, z którymi dalej mieliśmy problemy. Jedną z nich jak przypuszczamy są kłopoty z wykonywaniem zadań równolegle. Pierwsze próby wykonaniem takiego programu prezentuje filmik w tej paczce : error.rar. To jeden z pierwszych programów. Niestety plik z programem się nie zachował. Tutaj robot miał za zadanie dojechać do piłeczki, złapać ją i po wykonaniu tych czynności jechać dopóki nie dojedzie do ściany. Niby silniki były ustawione aby robot się poruszał do przodu cały czas, to jednak zatrzymał się przed piłeczką. Warto tutaj podkreślić, że sprawdzenie czy robot dojechał do sciany odbywało się po włączeniu silników. Być może robot traktował piłeczkę jako ścianę. Jednak po drobnym rozbudowaniu programu powstał program Magazynier i nagle wszystko zaczęło działać tak jak trzeba. Drugim problemem jest wspomniane wcześniej obracanie się robota. 180 stopni to nie zawsze 180 stopni. Raz się obracał o więcej, a raz o mniej. Uznaliśmy, że może robot ma dzisiaj zły dzień i z tego powodu nie interweniowaliśmy specjalnie w tym przypadku. Na zakończenie warto wspomnieć, iż po kilku zajęciach z serii LEGO poznaliśmy już środowisko w którym przyszło nam pracować przez co na etapie projektowania programu udało nam się wyeliminować część dziwnych zachowań robota. Niestety niektóre z nich dalej pozostają dla nas zagadką. Być może producenci LEGO w przyszłości usuną te niedociągnięcia.

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