Raport z budowy robota mobilnego klasy minisumo Łotrzyk Maciej Majka Mateusz Ciszek Koło Naukowe Robotyków KoNaR www.konar.pwr.edu.pl 6 stycznia 2016
SPIS TREŚCI SPIS TREŚCI Spis treści 1 Wstęp 2 2 Rozwinięcie 2 2.1 Mechanika............................. 3 2.1.1 Podwozie i nadwozie................... 3 2.1.2 Podsumowanie...................... 3 2.2 Elektronika............................ 4 2.2.1 Zasilanie.......................... 4 2.2.2 Mikrokontroler...................... 6 2.2.3 Czujniki.......................... 6 2.2.4 Sterowanie silnikami................... 7 2.2.5 Interfejs komunikacyjny................. 8 2.3 Program.............................. 9 2.3.1 Konfiguracja peryferii................... 10 2.3.2 Algorytm sterowania................... 10 3 Podsumowanie 10 4 Informacje dodatkowe 12 1
2 ROZWINIĘCIE Streszczenie Robot klasy minisumo powstał z uwagi na odbywające się warsztaty KNR KoNaR i związany z nimi proces rekrutacyjny. Jest to prosta konstrukcja, w obudowie z polutowanych elementów wyciętych z laminatu. Jako napęd zastosowano dwa silniki pololu z przekładniami. Robot posiada cztery cyfrowe czujniki odległości Sharp GP2Y0D340K. Sterowanie robotem odbywa się za pomocą mikrokontrolera STM32F103RBT6. 1 Wstęp Rysunek 1: robot po ukończeniu Opisywana w raporcie konstrukcja, jest to robot mobilny klasy minisumo, przeznaczony do uczestnictwa w walkach z podobnymi konstrukcjami. Konstrukcja ta, została zaprojektowana od podstaw przy wykorzystaniu podzespołów sugerowanych przez prowadzących warsztaty robotyczne. Obowiązki projektowe zostały mocno podzielone. Część mechaniczną projektu przygotował Mateusz Ciszek, elektronikę oraz sterowanie zaprojektował Maciej Majka. Zespół nadzorował członek KNR KoNaR - Michał Burdka. 2 Rozwinięcie W niniejszej części opisane zostały poszczególne elementy robota oraz prace nad nimi. 2
2.1 Mechanika 2 ROZWINIĘCIE 2.1 Mechanika Do zaprojektowania koncepcji robota użyto oprogramowania Autodesk Inventor na licencji studenckiej. Zasadniczo narzędzie to posłużyło jedynie do dokładnego wymiarowania elementów z laminatu oraz ustalenia właściwych gabarytów robota. 2.1.1 Podwozie i nadwozie Podwozie zostało wykonane w całości z laminatu szklano-epoksydowego dwustronnie pokrytego miedzią. Jest to prosta obudowa, która została połączona w całość za pomocą spoiwa lutowniczego. Wyróżnić tu można zasadniczo trzy elementy 1. arkusz laminatu w kształcie litery T z przylutowanym na stałe ostrzem stalowym 2. panele boczne osłaniające elektronikę 3. panel frontowy, z otworami na czujniki odległości Silniki zostały zamocowane uchwytami bezpośrednio do podwozia. Sposób mocowania płytki z elektroniką do nadwozia także wykorzystuje spoiwo lutownicze (w trzech punktach). Poprzeczki na froncie nadwozia zabezpieczają czujniki odległości przed uszkodzeniem. Felgi kół są to wydruki 3D popularnego modelu Solarbotics RW2i. 2.1.2 Podsumowanie Konstrukcja wykonana w ten sposób wbrew pozorom okazuje się sztywna i wytrzymała. Projekt ten posiada jednak kilka wad które można by wyeliminować 1. konstrukcja tego typu jest stanowczo za lekka i wymaga dociążenia (gotowy robot z pakietem litowo-polimerowym osiągnął masę zaledwie 150 gramów) co negatywnie wpływa na jego przyczepność - za pomocą dostępnych kawałków ołowiu udało się dociążyć konstrukcję do masy 360g 2. otwory na czujniki nie zostały precyzyjnie dopasowane do kąta widzenia czujników (były za małe) przez co utrudnione było ustawienie czujników w pozycji roboczej tak aby robot nie widział sam siebie lub podłoża, a także był odporny na drgania całego systemu. 3
2.2 Elektronika 2 ROZWINIĘCIE 2.2 Elektronika Płytka z elektroniką została zaprojektowana w programie KiCAD. W celu minimalizacji płytki, użyto wyłącznie elementów SMD (poza złączami goldpin), przy czym starano się wybierać elementy w rozmiarze 0805. Płytka pierwotnie przeznaczona była do wykonania za pomocą fototransferu. Niestety, prawdopodobnie na skutek złego wywołania lakieru światłoczułego nie udało się jej poprawnie wytrawić. Z racji małej ilości czasu na wykonywanie kolejnych płytek i możliwości powtórzenia się problemu, wykonanie PCB zostało zlecone zewnętrznej firmie. Rysunek 2 przedstawia gotową płytkę po wytrawieniu. Rysunek 2: Płytka PCB 2.2.1 Zasilanie Robot jest zasilany za pomocą pakietu litowo-polimerowego 7.4V. Całość elektroniki przed odwrotną polaryzacją zabezpiecza tranzystor N-MOSFET IRLR7843. Następnie zasilanie poddawane jest filtracji i dostarczane do wejść prądowych mostków TB6612. Kolejne dwie sekcje zasilacza przedsawione na rysunku 4 są to liniowe stabilizatory LDO LM1117S które odpowiadają za dostarczanie do układu napięć 3.3V (dla mikrokontrolera) oraz 5V (zasilanie logiki mostków oraz czujników robota). Do filtracji wykorzystano kondensatory elektrolityczne, tantalowe oraz ceramiczne. Dodatkowo użyto dławi- 4
2.2 Elektronika 2 ROZWINIĘCIE Rysunek 3: Elektronika robota - sekcja zasilająca ków mocy o indukcyjnościach kolejno: 100µH dla linii zasilającej czujniki oraz 10µH dla mikrokontrolera. Kondensatory 100nF są obecne przy każdym układzie elektronicznym. Rysunek 4: Schemat zabezpieczenia oraz zasilaczy liniowych w robocie W przypadku ponownego projektowania schematu, podstawową zmianą było by dołożenie drugiego tranzystora MOS na linii zasilającej czujniki przeciwnika, tak aby móc je uruchamiać wraz z przejściem do wykonywania programu celem uniemożliwienia szybkiego rozładowania baterii w trybie oczekiwania na sygnał startowy. 5
2.2 Elektronika 2 ROZWINIĘCIE 2.2.2 Mikrokontroler Jako jednostkę sterującą naszym robotem wybrano mikrokontroler STM32F103RBT6 w obudowie LQFP64. Może on pracować z maksymalnym taktowaniem 72MHz i posiada 128KB pamięci flash. Posiada cztery 16 bitowe timery oraz dwa 12 bitowe konwertery A/C. Maksymalny pobór prądu przy zewnętrznym oscylatorze, maksymalnym taktowaniu i włączonych wszystkich peryferiach według producenta wynosi typowo 36mA. W naszym robocie zastosowano zewnętrzny oscylator kwarcowy 8MHz i użyto pętli PLL aby uzyskać maksymalne taktowanie. Programowanie procesora odbywa się poprzez interfejs SWD. Na rysunku 5 przedstawiono schemat podłączenia mikrokontrolera. Rysunek 5: Schemat podłączenia mikrokontrolera 2.2.3 Czujniki W urządzeniu zastosowano cztery czujniki odległości GP2Y0D340K firmy Sharp. Jest to kompaktowy czujnik pracujący w paśmie podczerwieni wy- 6
2.2 Elektronika 2 ROZWINIĘCIE krywający obiekty w odległości do około 40 centymetrów. Dysponuje on wyjściem cyfrowym a więc jest łatwy w implementacji. Akceptuje on poziomy zasilania od 4.5V do 5.5V. Po wykryciu obiektu na wyjściu czujnika otrzymujemy stan niski. Schemat implementacji czujników został przedstawiony na rysunku 6. Każdy czujnik posiada odpowiadającą diodę LED która sygnalizuje stan w jakim znajduje się dany czujnik. Płyta PCB opisywanego robota posiada wyjścia na 3 czujniki linii typ. KTIR0711s ale nie zostały one zaimplementowane - algorytm szukania przeciwnika nie przewiduje przemieszczania się bez wykrycia przeciwnika. Rysunek 6: Sposób implementacji czujników odległości 2.2.4 Sterowanie silnikami W projekcie wykorzystano mostki TB6612 polecane na warsztatach KNR KoNaR. Są to mostki dwukanałowe o wydajności prądowej 1.2A/kanał. W 7
2.2 Elektronika 2 ROZWINIĘCIE Rysunek 7: Schemat podłączenia mostka TB6612 naszym projekcie jeden mostek obsługuje jeden silnik, a kanały są połączone równolegle, przez co zyskujemy wydajność prądową i minimalizujemy ryzyko spalenia mostka przez udar prądowy. Zasilanie części logicznej mostków to 5V. Wejścia prądowe zostały podłączone bezpośrednio do głównej szyny zasilania za tranzystorem zabezpieczającym polaryzację. Mostek jest sterowany za pomocą dwóch linii dla sygnałów logicznych przy wykorzystaniu tabeli stanów udostępnianej przez producenta oraz wejścia PWM dla sterowania prędkością. Bazowa częstotliwość pracy sygnału PWM wynosi 1.25kHz. Poprzez wpisy do rejestru CCR można sterować wypełnieniem a tym samym prędkością obrotów silnika. Zasilanie mostków jest filtrowane za pomocą kondensatorów tantalowych i ceramicznych. 2.2.5 Interfejs komunikacyjny Robot posiada 5 diód LED oraz dwa przyciski typu tact switch. Cztery diody służą sygnalizowaniu stanu w jakim znajdują się czujniki. Jedna dioda odpowiada za sygnalizację pracy robota (wykonywanie się pętli głównej programu). Dwa dostępne przełączniki służą do 1. uruchamiania pętli głównej 8
2.3 Program 2 ROZWINIĘCIE 2. resetowania procesora Robot posiada także złącze przeznaczone do zamontowania modułu startowego wymaganego na zawodach w kategorii minisumo. Sposób realizacji tych funkcji przedstawiono na rysunku 8. Rysunek 8: Zbliżenie na elementy interfejsu komunikacyjnego Nie zastosowano tu żadnych bezprzewodowych interfejsów komunikacyjnych. Powodem takiej decyzji były ograniczenia czasowe i finansowe projektu, a także niska przydatność tego typu komunikacji z robotem klasy minisumo. Przydatną funkcją w bardziej rozwiniętym projekcie był by bezprzewodowy programator procesora. 2.3 Program Program został napisany w języku C. Oprogramowanie wykorzystane do tworzenia kodu źródłowego to 9
3 PODSUMOWANIE 1. STM32CubeMX 2. System Workbench for STM32 (based on ECLIPSE) 3. ST-Link Utility Są to programy darmowe. 2.3.1 Konfiguracja peryferii W projekcie wykorzystano pojedynczy timer do sprzętowej generacji sygnału PWM. Pracuje on z częstotliwością 1.25kHz. Wykorzystane zostały dwa kanały dla niezależnej kontroli prędkości obu silników robota. Timer dzieli podstawowe taktowanie 72MHz przez 36 i zlicza 1600 impulsów 2.3.2 Algorytm sterowania Algorytm sterowania robotem jest bardzo prosty i został wykonany głównie za pomocą instrukcji if. Głowna instrukcja while uruchamiana jest zmiany i podtrzymania stanu na pinie modułu startowego. Robot nie widząc przeciwnika wykonuje wyłącznie obrót w miejscu do czasu wykrycia obiektu w polu widzenia czujników. Skrajne czujniki odchylone o 20 stopni względem osi robota odpowiadają za naprowadzenie robota na przeciwnika. Po jego wykryciu zostają zmienione stany sterujące mostkami i kierunek ruchu z obrotu na jazdę do przodu. W zależności od ilości czujników które wykrywają obiekt regulowana jest prędkość robota (jest zwiększana wraz z ilością czujników które wykryły obiekt). 3 Podsumowanie W tym dokumencie opisano budowę robota klasy minisumo stworzonego na potrzeby warsztatów KNR KoNaR, zawodów RoboticArena 2015 oraz rekrutacji do KNR KoNaR. Udało się zrealizować w pełni działającego robota w przewidzianych wcześniej funkcjach. Algorytm który został napisany nie jest idealny, szczególnie dotyczy to regulacji prędkości silników i sposobu zachowania się robota na arenie. Było to jednak pierwsze podejście do takiego urządzenia, jak i pierwsza styczność z mikrokontrolerami od strony projektowania i programowania. Od strony mechanicznej do wad robota należy dodać jego niską masę własną która znacznie obniża przyczepność kół. Istnieje także problem z prostopadłością silników względem osi robota. Elektronika robota spisuje się bez zarzutu i reaguje w przewidziany sposób. W przypadku ponownego projektowania płytki i schematu można by rozważyć 10
3 PODSUMOWANIE większą minimalizacje tego modułu i zwiększenie ilości funkcji interfejsu komunikacyjnego. Projekt ten można uznać za zakończony, ale ewentualnością jest ulepszenie algorytmu i użycie go do testowania kolejnych konstrukcji klasy minisumo. Tworzenie tej konstrukcji było świetną okazją do rozpoczęcia pracy z mikrokontrolerami, zapoznaniem się czujnikami i pracą mostków H. Robot wystartował w zawodach Robotic Arena 2015 pod nazwą Łotrzyk. Niestety, podczas pierwszej walki w czasie 3 rundy, oś jednego z silników poluzowała się i wyleciała z przekładni. Przyczyną takiej sytuacji mogły być problemy z osiowością silników względem siebie co mogło generować wibracje i obciążenia w poprzek osi silnika. Moment ten został uwieczniony na zdjęciu 9 Rysunek 9: Moment uszkodzenia przekładni robota uwieczniony przez www.gazetawroclawska.pl 11
4 INFORMACJE DODATKOWE 4 Informacje dodatkowe Wiedza na temat budowy opisanego urządzenia pochodzi w części z warsztatów KNR KoNaR. Dotyczy to szczególnie aspektów implementacji i programowania mikrokontrolera. Nieoceniona była pomoc opiekuna grupy Michała Burdki który cierpliwie weryfikował kolejne wersje schematu oraz płytki drukowanej i udzielał niezbędnych informacji. Wiedza potrzebna do implementacji mostków i czujników pochodzi z dokumentacji producentów tych układów. Powyższy dokument redagował Maciej Majka, podczas pracy nad robotem wykonywał: 1. schemat 2. rysunek płytki 3. montaż i uruchomienie 4. algorytm i programowanie 12