
Chciałbym przedstawić robota mobilnego należącego do klasy minisumo, którego wykonałem w 2012 roku. Roboty tego typu tworzone są do walk na ringach o odpowiednich średnicach zależnych od klasy robota, czyli jego wymiarów i wagi. Klasa minisumo to wymiary w granicach 10x10 cm oraz waga poniżej 500 g. Na początek wypiszę naważniejsze założenia, które dyktowały kierunek prac nad robotem.
Założenia dotyczące konstrukcji mechanicznej:
- Wymiary spełniające wymagania klasy minisumo i masa robota poniżej 500 g.
- Nisko osadzony środek ciężkości konstrukcji i co jest tego konsekwencją, niewielka wysokość. Ma to na celu utrudnienie przewrócenia, a także wykrycia robota.
- Napęd zrealizowany przy wykorzystaniu dwóch silników osadzonych w tylnej części robota, przy czym każdy z silników odpowiada niezależnie za jedno z kół napędowych. Podparcie w trzech punktach, gdzie oprócz kół, punktem podparcia jest przednia krawędź obudowy robota, tzw. „pług”.
- Wykonanie ze stosunkowo lekkich, łatwo dostępnych materiałów, których połączenia można realizować bez użycia specjalistycznych narzędzi.
Założenia dotyczące wykorzystanej elektroniki:
- Sterowanie robotem oparte o głowną jednostkę obliczeniową, jaką powinien być łatwo dostępny mikrokontroler pozwalający generować co najmniej dwa przebiegi PWM w celu regulacji prędkości i mocy silników.
- Zestaw sensorów do wykrywania białych linii umieszczonych możliwie blisko najbardziej wysuniętych punktów robota.
- Cztery sensory pozwalające wykryć przeciwnika już ze znacznej odległości. Rozmieszczenie następujące: dwa z przodu i po jednym na każdy bok.
- System monitorowania stanu akumulatora.
- Pomiar przemieszczenia robota, z co najmniej dwóch niezależnych źródeł.
- Akumulator o niewielkiej pojemności, jednak o możliwości rozładowywania go znacznymi prądami.
Obudowa
Obudowa została wykonana z laminatu epoksydowego pokrytego miedzią, ze względu na jego dostępność, a także łatwe łączenie elementów i obróbkę. Aby połączyć ze sobą poszczególne elementy wykorzystano połączenia lutowane, a jako spoiwo lutownicze, cynę. Takie wykonanie zapewnia dostateczną wytrzymałość. W płycie dolnej robota wycięto odpowiednie otwory, aby było możliwe późniejsze umieszczenie w nich czujników białych linii. Natomiast w części przedniej, a także w bocznych wycięto otwory pod czujniki Sharp GP2Y0D340K, umożliwiające wykrycie przeciwnika. Obudowa została pomalowana na kolor złoty, metaliczny farbą akrylową.
Silniki
Zdecydowano się na użycie silników Pololu HP z przekładnią 30:1 ze względu na ich niewielkie rozmiary i znaczną moc. Całe przekładnie i pewne części korpusu silników zostały wpuszczone do wydrążonych piast, co pozwoliło na zastosowanie szerszych kół, a dodatkowo osłania przekładnie przed zanieczyszczeniami. Po pewnym czasie użytkowania można śmiało stwierdzić, że dobór silników okazał się błędem ze względu na ich niewielką wytrzymałość i trwałość przy większych napięciach, aczkolwiek zachowanych w granicach normy producenta. Szczotki w jednym z silników uległy uszkodzeniu po bardzo krótkim czasie pracy robota i musiały zostać wymienione. Natomiast drugi silnik potrafi się zaciąć raz na jakiś czas.
Czujniki białej linii
Wykorzystano czujniki TCRT1010 ze względu na niewielkie rozmiary, a także montaż przewlekany, co umożliwia umieszczenie czujników w pewnej odległości od PCB. Sprawdzanie stanu czujników odbywa się poprzez pomiar odpowiedniego napięcia wbudowanym w mikrokontroler przetwornikiem analogowo-cyfrowym. Jeżeli czujnik znajdzie się nad białą linią, fototranzystor zostaje otwarty, co powoduje przepływ prądu i wzrost mierzonego napięcia. Rezystory diod zostały tak dobrane, aby ograniczyć prąd do bezpiecznego, podanego w specyfikacji elementu.
Czujniki wykrywające położenie przeciwnika
Wykorzystano dwa czujniki podczerwieni SHARP GP2Y0D340K umieszczone w przedniej części robota i skierowane w taki sposób, aby wykrywać przeciwnika znajdującego się przed robotem.
Układ mikrokontrolera
W robocie zastosowano mikrokontroler ATmega 32A w obudowie przeznaczonej do montażu powierzchniowego. Zdecydowano się na zastosowanie tego dość popularnego mikrokontrolera z rodziny AVR, produkowanego przez firmę Atmel głównie ze względu na jego dostępność, łatwość programowania, a także posiadanie licznych peryferii. Wykorzystane zostały praktycznie wszystkie porty mikrokontrolera. Taktowany jest przez zewnętrzny rezonator kwarcowy o częstotliwości 16 MHz.
Sterowanie silnikami
Sterowanie silnikami zostało wykonane w oparciu o układy TB6612, które są realizacją mostków H. Zdecydowano się na te właśnie układy ze względu na ich niewielkie rozmiary w wersji przeznaczonej do montażu powierzchniowego, a także ze względu na niewielki spadek napięcia na nich, a co za tym idzie, mniejsze straty mocy. Każdy układ zawiera dwa kanały, więc może sterować dwoma silnikami. Jednak ze względu na zwiększone zapotrzebowanie na prąd silników, w celu zwiększenia wydajności układu zostały zmostkowane kanały, zarówno wejściowe, jak i wyjściowe. Takie rozwiązanie wymusiło zastosowanie dwóch układów TB6612. Sygnały określające kierunek obrotu silnika, a także sygnał PWM, którego wypełnienie odpowiada prędkości silników są podawane bezpośrednio z mikrokontrolera. Zastosowane układy TB6612 nie osiągają wysokich temperatur, dlatego nie było potrzeby stosowania radiatorów. Poniżej przedstawiono schemat podłączenia układów.
Zasilanie
Wykorzystano akumulator litowo-polimerowy o pojemności 500 mAh ze względu na duży dopuszczalny prąd rozładowania. Składa się on z trzech ogniw, więc nominalne napięcie wynosi $11,1 V$, natomiast przy pełnym naładowaniu może ono osiągać wartość $12,6 V$, co oczywiście wpływa na parametry robota. W celu zabezpieczenia akumulatora przez zbyt dużym rozładowaniem zastosowano układ przedstawiony w dalszej części opracowania.
Stabilizacja i filtracja napięcia
Silniki zasilane są napięciem akumulatora podawanym bezpośrednio do mostków H, natomiast większość elektroniki wykorzystanej w robocie wymaga stabilizowanego napięcia rzędu 5V. Zastosowano więc stabilizator napięcia Low-dropout (LDO) o symbolu L1117, charakteryzujący się stosunkowo niewielkim spadkiem napięcia. Pomimo sporej mocy rozpraszanej w układzie stabilizatora, nie wykorzystano radiatora, ponieważ jego temperatura nie przekracza podanych przez producenta norm. W celu filtracji napięcia zasilania zastosowano kilka kondensatorów o łącznej pojemności w granicach 1000 μ F. Ponadto zastosowany został drugi stabilizator w module akcelerometru w celu obniżenia napięcia do 3,3 V , które wymagane jest do jego poprawnej pracy.
Oprogramowanie
Program napisany w języku C. Stany czujników sprawdzane są w przerwaniu od timera mikrokontrolera. W zależności od aktualnego stanu wybierana jest odpowiednia operacja. Dla czujników linii wykonywane są pomiary napięcia poprzez przetwornik ADC i na jego podstawie określane jest wykrycie białej linii. Przeprowadzanie testu czujników można dokonać w trybie diagnostycznym, który uruchamiany jest przez wciśnięcie mikroswitcha do 6 sekund od podłączenia zasilania robota. Możliwa jest komunikacja robota z komputerem poprzez RS232 z wykorzystaniem interfejsu USART. W oprogramowaniu robota zostały zaimplementowane odpowiednie funkcje do jego obsługi. Ponadto napisany został program umożliwiający odbiór i wysyłanie informacji z poziomu systemu operacyjnego komputera. Wykorzystano do tego celu zestaw przenośnych bibliotek Qt.
Podsumowanie
Wykonana konstrukcja wymaga jeszcze sporego dopracowania. Niestety nie wszystkie założenia udało się zrealizować, już podczas prac część z nich została mocno zweryfikowana. Zrezygnowano między innymi z dwóch czujników podczerwieni Sharp w celu uproszczenia konstrukcji.
Ponadto na uruchomienie czeka moduł enkoderów inkrementalnych, ze względu na niedostępność układu zawierającego odpowiednie przerzutniki.
Dopracowania wymaga oprogramowanie, które nie zostało jeszcze w pełni przetestowane. Należy ponadto zaimplementować funkcje obsługujące enkodery, a także wykorzystujące akcelerometr do określania pozycji robota.
Waga robota wraz z akumulatorem wynosiła około 170 gram, więc konieczne było jego dociążenie. Wykorzystane zostały ciężarki wykonane z ołowiu umieszczone w częściach: bocznych i tylnej robota. Wypełniają one powstałe wolne przestrzenie w konstrukcji. Ponadto wykonano jeden większy ciężarek ołowiany, który umieszczać można na wierzchniej części robota, co niestety powoduje przeniesienie środka ciężkości wyżej, a także zwiększa wysokość robota. Jednak nie znaleziono innego sposobu na dociążenie robota.
Wydaje się błędem zrobienie płyty podłogowej ze stosunkowo lekkiego laminatu. Z pewnością zostanie to poprawione w kolejnych konstrukcjach.
Zdjęcia wykonanej konstrukcji


Więcej informacji można znaleźć na mojej stronie www.mdrwiega.com.
Cool? Ranking DIY