Zdalnie sterowany samochód na bazie LEGO Mindstorms EV3
Gdy poznamy już trochę zestaw do robotyki LEGO Mindstorms EV3® wraz z podstawami
programowania w oprogramowaniu LabVIEW, a także zbudujemy większość robotów pokazanych w instrukcji, warto pokusić się o tworzenie własnych konstrukcji, które pozwolą
rozwinąć nasze umiejętności i dadzą nam dużo radości.
W tym artykule postaram się zainspirować was do stworzenia podwozia zdalnie sterowanego samochodu. Większość z nas lubiło bawić się zdalnie sterowanymi samochodami i mogło godzinami jeździć po dywanie, kręcąc bączki i wykonując slalomy. Spróbujemy stworzyć taki samochód od podstaw i rozbudować go o funkcje niedostępne w większości zabawek. Ponadto będziemy mogli go w pełni kontrolować. Nie podam wam gotowej instrukcji, ale garść porad i podpowiedzi, które pozwolą rozpocząć samodzielną zabawę z LEGO Mindstorms EV3®.
Co trzeba wiedzieć?
Zakładam, że znasz już podstawy konstrukcji z klocków LEGO, miałeś do czynienia z zestawami LEGO Technic, a także zbudowałeś kilka podstawowych konstrukcji z LEGO Mindstorms EV3®. Powinieneś też mieć trochę doświadczenia w programowaniu robotów z klocków LEGO.
Czego potrzebujemy?
Podstawą do budowy modelu jest zestaw Lego Mindstorms EV3® i zbiór kilkunastu dodatkowych klocków z LEGO Technic. Ja skorzystałem z zestawu Lego Education Mindstorms EV3® (45544) wraz z zestawem LEGO® MINDSTORMS® Education EV3® – zestaw rozszerzający (45560). Sam zestaw podstawowy nie dostarczy nam np. odpowiedniej ilości kół i elementów konstrukcyjnych, ale można wykorzystać koła i klocki z dowolnego zestawu LEGO jaki posiadamy. Potrzebujemy także laptopa lub tablet który pozwoli nam na programowanie naszego robota.
Etap I - Podwozie
Konstrukcja
Podstawą naszej konstrukcji będzie podwozie wyposażone w ramę, koła, dwa duże silniki, jeden średni serwomotor oraz kostkę EV3. Ramę zbudować można przede wszystkim w oparciu o różnej długości belki – TECHNIC BEAM w szczególności tworzące literę L czy literę T oraz klocki będące połączniem belek takie jak BEAM FRAME 5X7 Ø 4.85 i BEAM R. FRAME 5X11 Ø4.85. Połączenie tych elementów pniami w stabilną i wytrzymałą konstrukcje jest dosyć prostym zadaniem, pokazane zostało na ilustracjach. (Ilustracje 1-3).
Kluczowym elementem podwozia jest przednia oś. Aby nasz pojazd mógł być sprawnie sterowany, musi być skrętna. Wykorzystane tu rozwiązanie jest jednym z prostszych do wykonania, podstawą jest listwa zębata RACK 13 M i koło zębate z 12 zębami DOUBLE CONICAL WHEEL Z12 1M umieszczone na osi wpiętej do serwomotoru. Do wykonania belek skrętnych do których mocowane są koła wykorzystałem DOUBLE CROSS BLOCK w kolorze czarnym, dodatkowo oś z kołem zębatym wzmocniona została czarną belką w kształcie litery T. (Ilustracje 4-5).
Silniki połączone prostokątem z belek umieszczone zostały z tyłu pojazdu, napędzając tylną oś podwozia. W tylnej części nad silnikami umieszczona została kostka EV3. Dzięki temu dociążone zostały koła napędowe, mamy swobodny dostęp do gniazd, w które wpinamy kable połączeniowe oraz zachowaliśmy dużo wolnej przestrzeni w przedniej części pojazdu do dalszej rozbudowy konstrukcji. Serwomotor sterujący listwą zębatą umieszczony został centralnie w osi pojazdu pomiędzy dużymi silnikami.
Ilustracja 1. Umiejscowienie kostki EV3 i silników
Ilustracja 2. Układ kolców tworzących ramę pojazdu
Ilustracja 3. Prosta konstrukcja pozwalająca na sterowanie kołami
Ilustracja 4. Belka skrętna, do której mocowane są koła
Ilustracja 5. Wzmocnienie osi sterującej przednimi kołami
Warto wiedzieć
Istnieje wiele sposobów wykonania ramy, jak i układu kierowniczego w oparciu o posiadane części. Przykłady do wzorowania się przy tworzeniu własnych konstrukcji znajdziemy w instrukcjach do modeli pojazdów seryjnych zestawów LEGO Technic, konstrukcjach fanów – tzw. MOC-ach (od ang. My Own Creation), książkach dotyczących systemu LEGO Technic oraz stronach i blogach fanów LEGO. Podstawową książką w którą warto się zaopatrzyć przy konstruowaniu własnych robotów jest książka Pawła „Sariela” Kmiecia „Nieoficjalny przewodnik konstruktora LEGO Technic”. Znajdziemy w niej bardzo szczegółowy opis podstaw konstruowania, przykłady tworzenia prostych maszyn aż po zaawansowaną mechanikę. W szczególności zwróć uwagę na dyferencjały, układy kierownicze czy różnego rodzaju zawieszenia do pojazdów.
Warto też odwiedzić stronę autora http://sariel.pl/ na której znajduje się mnóstwo przydatnych informacji oraz narzędzia, takie jak przelicznik jednostek, specyfikacji kół zębatych czy silników.
Programowanie
Gdy mamy już skonstruowane podwozie, możemy rozpocząć tworzenie prostych programów pozwalających poruszać się naszym pojazdem. Pierwszą rzeczą jaką musimy zrobić jest połączenie kostki z oprogramowaniem i sprawdzenie, czy wszystkie podłączone silniki działają. Następnie warto ułożyć prosty program, który pozwoli uruchomić pojazd i przejechać prosto określony dystans. Zwrócić uwagę czy silniki są wpięte zgodnie z oznaczeniem na bloku sterowania silnikami (Move stering), a także czy dobrze została ustawiona ich moc, aby pojazd poruszył się do przodu. Sposób w jaki zamocowane zostały silniki, powoduje konieczność odwrócenia kierunku jazdy. Zrobimy to ustawiając ujemną moc silników, co normalnie oznacza jazdę do tyłu.
W dalszej części zabawy powinniśmy ułożyć kilka prostych programów, które pozwolą poznać możliwości naszego pojazdu, takich jak: jazda w koło, prosty slalom czy ósemka. Wymagać to będzie dołożenia bloku sterującego serwomotorem i określenia obrotu osi, na której znajdują się koła zębate skręcające koła. Zakres obrotu osi można wyrazić w stopniach (On for degreess) lub
w postaci ułamka stanowiącego część obrotu osi (On for rotations). Radzę poeksperymentować
i optymalnie dobrać wychylenie kół biorąc pod uwagę konstrukcję podwozia i wolne miejsce na skręt kół. Koła nie powinny przy maksymalnych wychyleniach obcierać o żadne elementy konstrukcyjne.
Etap II - Czujniki
Ilustracja 6. Położenie czujnika ultradźwiękowego
Ilustracja 7. Montaż czujnika żyroskopowego w osi pojazdu
Ilustracja 8. Usztywnianie konstrukcji dodatkowymi
belkami
Ilustracja 9. Miejsce ukrycia kabli
W kolejnym etapie warto nasz pojazd wyposażyć w czujniki, które pozwolą aktywować różne funkcje oraz uczynić go bardziej „inteligentnym” od większości zabawek. W swojej konstrukcji posłużyłem się dostępnymi w zestawie dwoma czujniki dotyku, czujnikiem ultradźwiękowym oraz żyroskopem. Przyciski umieszczone zostały w tylnej części pojazdu bezpośrednio przy kostce, tak aby w łatwy sposób poprzez ich wciśnięcie można było aktywować różne dodatkowe funkcje. Czujnik ultradźwiękowy umieszczony został w osi pojazdu oraz został lekko wysunięty przed obrys kół, tak aby mógł dobrze wykrywać pojawiające się przed nim przeszkody. Tuż nad czujnikiem ultradźwiękowym, również w osi pojazdu, umieszczony został
żyroskop, co ułatwia późniejsze dokonywanie obliczeń z jego wykorzystaniem. Całość konstrukcji wzmocniona została dodatkowo różnymi belkami. Usztywniły one konstrukcję oraz stworzyły bazę do dalszej rozbudowy pojazdu. Wszystkie podłączone kable ukryte zostały w przedniej części pojazdu (Ilustracje 6-9).
Ciekawostka
Już na tym etapie budowy możemy naszego robota zamienić
w zdalnie sterowany model, dysponując tabletem lub smartfonem wyposażonym w system operacyjny Android lub iOS. W sklepach z aplikacjami dostępnych jest kilka aplikacji do kontrolowania robotów EV3. Osobiście często używam aplikacji „RemotEC3” dostępnej na Androida. Po jej zainstalowaniu musimy sparować naszą kostkę EV3 ze smartfonem i uruchomić aplikację. Podstawowa konfiguracja polega na wybraniu odpowiedniego urządzenia bluetooth z listy i przypisaniu odpowiednich silników do suwaków (slider). Po poprawnej konfiguracji możemy sterować samochodem za pomocą smartfona lub tabletu, jak w klasycznych zabawkach.
Programowanie
Po wyposażeniu pojazdu w czujniki sprawdzamy ich połączenie z oprogramowaniem LabVIEW i możemy przejść do zabawy w programowanie. Zacznijmy od prostych do wykonania zadań, ponieważ gdy bez większego doświadczenia będziemy chcieli od razu mieć pojazd o wielu funkcjach, program stanie się skomplikowany, łatwo o błędy i znudzenie. Dlatego złożony problem podzielimy na mniejsze zadania (dekompozycja), by dobrze je opanować i dopiero wtedy połączyć je w większe bloki.
Oto kilka prostych zadań, które możemy przećwiczyć na tym etapie:
- Czujnik ultradźwiękowy – zatrzymanie przed przeszkodą, cofnięcie po wykryciu przeszkody, wykonanie skrętu i ominięcie przeszkody, jednoczesne zatrzymanie i wydanie dźwięku po wykryciu przeszkody.
- Żyroskop – wyświetlenie odczytu na wyświetlaczu, obrót osi pojazdu o zadany kąt.
- Przyciski – aktywacja klaksonu, włączenie i wyłączenie syreny lub/i oświetlenia kostki, wyzerowanie żyroskopu, uruchomienie konkretnego programu np. ósemka, slalom
Etap III - Tuning
Na etapie, kiedy pojazd potrafi się już poruszać i reagować na sygnały z różnych czujników, możemy popracować nad stroną wizualną i wykonać dowolny tuning naszego pojazdu zmieniając go w ciężarówkę czy pojazd kosmiczny. Jego wygląd zależy tylko od naszej kreatywności i części które posiadamy. Pamiętajmy, że zestaw LEGO Mindstorms bazuje na LEGO Technic, możemy więc go
dowolnie łączyć z innymi zestawami. Jest również kompatybilny z LEGO system, co pozwala na wykorzystanie ROBOTYKA – TECHNIKA 92 [ 1 – 2020 ] elementów z tak odległych serii, jak LEGO Friends czy LEGO Ninjago. Warto rozważyć też rozbudowę o elementy mechaniczne, jak podnoszone panele, skrzynie czy uchwyty do przewożenia ładunku. Prosty tuning wizualny pokazany jest na Ilustracjach (Ilustracje 10 i 11).
Ilustracja 10. Gotowy pojazd – widok z przodu
Ilustracja 11. Gotowy pojazd – widok z boku
Warto wiedzieć
Pojazd nasz możemy doposażyć jeszcze dodatkowo w czujnik koloru, który pozwoli nam reagować na zmieniające się oświetlenie, np. włączenie oświetlenia kostki po zgaszeniu światła, na kolory, np. możemy zbudować kolorowy pilot aktywujący różne funkcje w zależności od koloru. Umieszczając
czujnik skierowany w dół tuż nad podłożem, możemy stworzyć robot podążającego po kolorowej linii (Line Follower) lub reagującego na zmianę koloru podłoża np. zatrzymanie pojazdu na polu czerwonym, przyśpieszenie lub skręt na polu zielonym. Do uruchamiania funkcji naszego pojazdu
możemy użyć także przycisków znajdujących się na kostce EV3. Jeżeli zaopatrzymy się natomiast w czujnik dźwięku z zestawu NXT, możemy wykonać pojazd reagujący na dźwięk otoczenia.
Rozbudowa
Opisane wyżej pomysły na rozpoczęcie prac nad własnym pojazdem nie wyczerpują tematu i na pewno nie pokazują wszystkich możliwości. To od naszej kreatywności i chęci dalszej nauki zależeć będzie, jak skomplikowany model zechcemy zbudować. Warto wymienić kilka kierunków, którymi można podążać. Na pewno można pomyśleć o rozbudowie modelu pod względem konstrukcyjnym o takie elementy jak: amortyzowane zawieszenie, zwiększenie prześwitu, zmiana napędu, dołożenie dyferencjałów czy zastosowanie skrzyni biegów.
Ciekawym kierunkiem rozbudowy może być dołożenie systemu Power Function lub systemu pneumatyki LEGO, czyli dodatkowych silników, świateł, przełączników, siłowników czy systemu zdalnego sterowania IR.
Dzięki temu za pomocą pilota na podczerwień możemy aktywować silniki napędzające różne mechanizmy, np. chwytaki, skrzynie ładunkowe, wysięgniki, czy dołożyć do modelu oświetlenie w tym kierunkowskazy.
Bardziej zaawansowani użytkownicy mogą spróbować programowania naszego pojazdu za pomocą Pythona, Javy, C czy C#. Pozwoli to lepiej kontrolować model i da większe możliwości rozbudowy. Ciekawym projektem do zrealizowania jest wykonanie programu przy użyciu biblioteki MonoBrick (www.monobrick.dk) i języka C# w środowisku Visual Studio do tworzenia oprogramowania kontrolującego pojazd. Możemy stworzyć interfejs do poruszania pojazdem, jak w grach komputerowych, za pomocą klawiatury i poszczególnymi klawiszami aktywować dodatkowe funkcje.