Przejdź do treści

Kołowy robot mobilny minisumo z czujnikami Sharp

Chciałbym przedstawić konstrukcję niewielkiego, kołowego robota mobilnego przeznaczonego do zawodów robotycznych klasy minisumo.

Założenia dotyczące konstrukcji mechanicznej:

  • Wymiary spełniające wymagania klasy robotów minisumo, czyli szerokość i długość nieprzekraczające 10 cm, a masa robota poniżej 500 gram.
  • Nisko osadzony środek ciężkości konstrukcji i niewielka wysokość. Ma to utrudnić przewrócenie oraz wykrycie 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 części elektronicznej:

  • 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, ale dużej wydajności prądowej.

Konstrukcja mechaniczna

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ą.

Układ napędowy

Koła

Ze względu na niedostępność odpowiednich, gotowych kół zdecydowano się zaprojektować je i wykonać. Główne wymagania odnośnie projektowanych kół to: wysoka przyczepność i niewielki moment bezwładności. Jako materiał na piasty rozważano stopy aluminium, a także poliamid. Jednak ze względu na większą dostępność wybrano ten pierwszy, a następnie wytoczono piasty. Opony zostały odlane z kleju poliuretanowego, aby zapewnić odpowiednią przyczepność do podłoża. Wykorzystano formy wykonane z gipsu. Nie uwzględniono na tym etapie tego, że odlewane opony skurczą się po wyschnięciu kleju, co spowodowało, że koła mają średnicę o około 1 mm mniejszą od zamierzonej.

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.

Mocowania silników

Silniki zostały przymocowane do płyty podłogowej robota za pomocą ręcznie wykonanych obejm. Obejmy zostały wygięte z pasków blachy miedzianej, a następnie zostały na ich końcach wywiercone otwory. Każda obejma przytwierdzona jest do konstrukcji za pomocą dwóch śrub M3.

Czujniki

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.

Dodatkowo, dzięki zastosowaniu tranzystora bipolarnego typu NPN i kolejnego portu mikrokontrolera, możliwe jest wyłączenie diod i pomiar napięcia na fototranzystorach jedynie przy świetle zewnętrznym. Takie rozwiązanie pozwala w pewnym stopniu uniezależnić działanie czujników od intensywności oświetlenia zewnętrznego. Ponadto pozwala w niektórych sytuacjach zmniejszyć pobór prądu, poprzez wyłączenie diod, gdy działanie czujników nie jest wymagane.

 

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. Czujniki nie znajdują się na środku robota, a zostały rozsunięte na boki, aby umożliwić dokładniejsze określenie położenia przeciwnika. Zastosowano wymienione modele ze względu na ich niewielkie wymiary, a także szybkość pomiarów dochodzącą do $8 ms$ i niezawodność.
Początkowo zakładano wykorzystanie czterech takich czujników, czyli dodatkowo po jednym na każdy bok robota. Jednak w trakcie prac, zweryfikowano to założenie i w celu uproszczenia konstrukcji zastosowano jedynie dwa. Ze względu na to, że wycięto nawet odpowiednie otwory w obudowie robota i uwzględniono dodatkowe czujniki w projekcie PCB, istnieje możliwość zamontowania ich. Będzie się to jednak wiązało ze zmianą oprogramowania.

Moduł akcelerometru

Robot wyposażony został w akcelerometr, który pozwala wykryć uniesienie robota, a także z założenia jest uzupełnieniem dla enkoderów w wyznaczaniu pozycji i stanu robota. Zdecydowano się na akcelerometr analogowy ze względu na niewykorzystane kanały przetwornika ADC w mikrokontrolerze, a także łatwiejsze oprogramowanie takiego elementu (z własnego punktu widzenia). Zaprojektowano osobną płytkę PCB, na której został umieszczony stabilizator napięcia 3.3V, które jest standardowym napięciem pracy układu MMA7361. W celu umożliwienia komunikacji z mikrokontrolerem zastosowano proste translatory poziomów napięć.

Sterowanie

Mikrokontroler

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.

Układ zasilania

Akumulator

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.

Układ monitorowania stanu akumulatora

Kontrolę rozładowania akumulatora zrealizowano z wykorzystaniem wzmacniacza operacyjnego działającego jako komparator napięć. Porównuje on napięcie diody Zenera podawane na wejście nieodwracające z napięciem akumulatora dostostowanym do odpowiedniego poziomu poprzez dzielnik napięć i podawanym na wejście odwracające wzmacniacza. Wartość rezystora R14 została tak dobrana, aby prąd przepływający przez diodę był w przybliżeniu równy 5 mA, co powinno umożliwić odpowiednią stabilizację napięcia. Natomiast dzielnik napięcia został obliczony w taki sposób, aby próg zadziałania komparatora odpowiadał napięciu akumulatora w granicach 9,25 V. Kiedy napięcie spadnie poniżej zadanego poziomu na wyjściu układu pojawi się stan wysoki.

Zastsowany układ LM358 składa się z dwóch wzmacniaczy operacyjnych. Drugi wzmacniacz pełni rolę wtórnika, gdyż nie znaleziono dla niego lepszego zastosowania, a celem było uniknięcie wzbudzeń układu. W dalszej części przedstawiono odpowiedni schemat.

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

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. 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. Wydaje się błędem zrobienie płyty podłogowej ze stosunkowo lekkiego laminatu. Z pewnością zostanie to poprawione w kolejnych konstrukcjach.


Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.