Raport z budowy robota minisumo Django Fat Krzysztof Dąbek Szymon Jasak 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 3 2.1 Mechanika............................. 3 2.1.1 Podwozie......................... 4 2.1.2 Nóż przedni........................ 5 2.1.3 Obudowa......................... 6 2.1.4 Napęd........................... 7 2.1.5 Elementy konstrukcyjne................. 8 2.1.6 Podsumowanie...................... 9 2.2 Elektronika............................ 9 2.2.1 Zasilanie.......................... 11 2.2.2 Mikrokontroler...................... 12 2.2.3 Czujniki.......................... 14 2.2.4 Sterowanie silnikami................... 16 2.2.5 Interfejs komunikacyjny................. 18 2.3 Program.............................. 20 2.3.1 Konfiguracja peryferii................... 20 2.3.2 Algorytm sterowania................... 21 3 Podsumowanie 22 4 Materiały źródłowe 26 1
1 WSTĘP Rysunek 1: Django Fat 1 Wstęp W raporcie znajduje się opis szczegółowy robota minisumo Django Fat oraz sprawozdanie z przebiegu prac projektowych i konstrukcyjnych tego projektu. Robot został zaprojektowany i stworzony podczas warsztatów rektrutacyjnych Koła Naukowego Robotyków KoNaR. Opiekunem drużyny, nadzorującym prace projektowe był Łukasz Maliszewski. Celem robota było wzięcie udziału w zawodach Robotic Arena 2015, w konkurencji minisumo. Termin przygotowania robota do zawodów ustalono na 12. grudnia 2015 roku. Konstrukcja robota przebiegała pod presją czasu i ostatecznie wszystkie walki oddano walkowerem. Z powodu błędów w wykonaniu płytki PCB, mimo usilnych prób naprawy w nocy przed zawodami oraz w dniu zawodów nie udało się uruchomić robota na czas. Ostateczny termin zbudowania działającego robota zmieniono na początek stycznia 2016 r. 2
2 ROZWINIĘCIE 2 Rozwinięcie 2.1 Mechanika Mechanika robota Django Fat [rys 1.] w założeniu miała stawiać na dużą szybkość oraz maksymalny nacisk na przedni nóż przy optymalnym nacisku na oś napędową. ten efekt uzyskano przez wykorzystanie dwóch silników Pololu o przekładni 30:1 oraz optymalną odległość osi kół od przedniej krawędzi robota. Drugą ważną cechą robota jest modułowość. Większość elementów została przymocowana śrubami oraz kątownikami. Także czujniki zakupiono przylutowane do małych płytek wyprodukowanych przez firmę Pololu oraz połączono z główną płytką sterującą kablami i goldpinami. Całość można łatwo rozmontować i wykorzystać ponownie w innym projekcie lub wprowadzić zmiany w bieżącym. Projekt mechaniki wykonano jedynie na kartce ze względu na ograniczenia czasowe oraz warsztatowe. Konstrukcja przebiegała za pomocą prostych narzędzi w garażu na wsi, więc nie było możliwości dokładnej obróbki elementów mechanicznych. Ostateczny rezultat nieco różnił się od pierwotnych zamierzeń oraz w czasie konstrukcji pojawiło się kilka problemów, które wymusiły zmianę projektu. 3
2.1 Mechanika 2 ROZWINIĘCIE Rysunek 2: Podwozie robota 2.1.1 Podwozie 1. Opis i Opis i uzasadnienie. Podwozie [rys 2.] zostało wykonane z materiału cięższego niż inne części konstrukcyjne żeby maksymalnie obniżyć środek ciężkości robota. Takie rozwiązanie także osłania elementy konstrukcji bardziej wrażliwe na uszkodzenia. 2. Proces konstrukcji oraz naprawy. Podwozie zostało wykonane ze stalowej blachy. Pierwszą wersję odrzucono z powodu uszkodzeń w czasie konstrukcji. Druga wersja to powycinana i powiercona blacha o oszlifowanych krawędziach, do której dokręcono resztę elementów. Niedokładności w wykonaniu podwozia zrekompensowano podkładkami oraz dodatkowym szlifowaniem i wygięciem przedniej części, co spowodowało zmniejszenie nacisku na nóż przedni. 4
2.1 Mechanika 2 ROZWINIĘCIE Rysunek 3: Nóż przedni 2.1.2 Nóż przedni 1. Opis i uzasadnienie. Nóż wycięto z noża przeznaczonego do heblarki/strugarki do drewna wykonanego ze stali nierdzewnej o stosunkowo wysokiej twardości przymocowano śrubami do podwozia. Takie rozwiązanie daje możliwość wymiany noża na jeden z dwóch zapasowych w przypadku jego stępienia bądź uszkodzenia. Nóż musiał być twardy i ciężki żeby przesunąć środek ciężkości robota do przodu oraz ostry żeby zapewnić jak najmniejszą odległość krawędzi od podłoża i potencjalnie wjechać pod przeciwnika i przewrócić go. 2. Proces konstrukcji oraz naprawy. Podczas wiercenia dziur montażowych w nożach wiertło z domieszką kobaltu stępiło się, więc wykonano tylko jeden nóż w całości, co chwilowo uniemożliwia wymianę uszkodzonego elementu. 5
2.1 Mechanika 2 ROZWINIĘCIE Rysunek 4: Obudowa (przód) 2.1.3 Obudowa 1. Opis i uzasadnienie. Obudowa [rys 4.] została wykonana z aluminiowej blachy, która zapewnia stosunkowo łatwą obróbkę. Umieszczono ją z przodu, żeby osłonić elementy wewnętrzne przed przeciwnikiem w przypadku podniesienia go. Obudowę wygięto tak, aby było możliwe ewentualne przewrócenie przeciwnika oraz pomalowano, aby przypominała postać Jango Fett a, z przyczyn czysto estetycznych. W obudowie została wycięta dziura, w której zamontowano czujnik odległości. 2. Proces konstrukcji oraz naprawy. W początkowym projekcie obudowa miała być wygięta w łuk oraz zdecydowanie niższa, a także chronić boki i tył robota. Jednak napotkano na trudności w wykonaniu takich elementów dostępnymi narzędziami w stosunkowo krótkim czasie. 6
2.1 Mechanika 2 ROZWINIĘCIE (a) Napęd robota (b) Koło napędowe Rysunek 5: Układ napędowy robota 2.1.4 Napęd 1. Opis i uzasadnienie. Do napędzenia robota zastosowano silniki firmy Pololu o przekładni 30:1 oraz węglowych szczotkach komutatora [rys. 5a], które zapewniają wytrzymałość. Przekładnia została dobrana tak żeby uzyskać możliwie największą prędkość, przy optymalnym momencie obrotowym, na tyle małym żeby nie podniósł przodu robota do góry podczas startu. Napęd przymocowano dedykowanymi obejmami do silników Pololu. Silniki umieszczono w jednej osi w optymalnym oddaleniu od krawędzi przedniej robota, zapewniającym dobry nacisk na oś, co zapobiega poślizgowi. 2. Proces konstrukcji i naprawy. Silniki miały być umieszczone możliwie blisko siebie żeby zamontować do nich możliwie najszersze koła zapewniające przyczepność. Jednakże nie znaleziono odpowiednio szerokich kół i układ napędowy zamontowano tak żeby nie przekroczyć dozwolonych wymiarów w tej konkurencji [rys.5b]. Z powodu umieszczenia czujników białej linii pod podwoziem oraz śrub mocujących nóż koła musiały zostać zamontowane pod podwoziem, aby unieść całą konstrukcję. Ostatnie poprawki pozwoliły powrócić do początkowego położenia kół (na podwoziu). 7
2.1 Mechanika 2 ROZWINIĘCIE Rysunek 6: Elementy konstrukcyjne 2.1.5 Elementy konstrukcyjne 1. Opis i uzasadnienie. Do przymocowania wszystkich elementów do obudowy oraz podwozia wykorzystano dostępne i łatwe w obróbce kątowniki oraz różnej wielkości śruby i nakrętki [rys. 6]. Daje to możliwości modyfikacji robota oraz odzyskania niektórych elementów w przypadku uszkodzenia całej konstrukcji. Połączenia elektryczne wykonano za pomocą kabli żeńskożeńskich. Wynika to z chęci wykorzystania już posiadanych materiałów oraz ułatwienia demontażu lub wymiany modułów. Całość konstrukcji została dodatkowo obciążona kawałkami ołowiu, z braku pomysłu i czasu przyklejonymi do obudowy taśmą izolacyjną. Dzięki temu masę robota zwiększono do 495g co dla tej konkurencji jest niewiele mniejszą wartością od dopuszczalnej 2. Proces konstrukcji i naprawy. Wiele elementów konstrukcyjnych użyto, ponieważ były one dostępne pod ręką, a całkiem nieźle spełniały swoje zadanie. Wiele z nich dodatkowo wygięto, ucięto lub zeszlifowano, gdy okazało się, że nie pasują. 8
2.2 Elektronika 2 ROZWINIĘCIE 2.1.6 Podsumowanie Całość mechaniki robota została wykonana niedokładnie, szybko i bez prawidłowo wykonanego projektu trójwymiarowego. Jest to największy problem tej konstrukcji. Jednak rozwiązania ułatwiające rozłożenie robota na części i wymianę elementów umożliwią poprawienie konstrukcji lub całkowite jej przebudowanie, żeby była zgodna z początkowymi założeniami projektu. Mimo wszystko całość działa bez większych problemów 2.2 Elektronika Elektronikę zaprojektowano w programie KiCAD, który został przedstawiony na warsztatach rekrutacyjnych, pod czujnym okiem opiekuna grupy, Łukasza Maliszewskiego. Połączenia elementów na schemacie, użyte rozwiązania (np. jeden kontroler podwójny dla jednego silnika), reguły według których tworzony był projekt płytki, ilość przelotek oraz umiejscowienie elementów na płytce były wielokrotnie omawiane z opiekunem, sprawdzane i poprawiane. W rezultacie na płytce została zastosowana optymalna grubość ścieżek dla każdego poziomu napięcia, w celu zmniejszenia prawdopodobieństwa spalenia płytki przy zwarciu, oraz odpowiednie zwężenia przy układach scalonych [rys.7b]. Duża ilość przelotek o średnicy 0.5 mm oraz średnicy miedzi wokół 1 mm lub 1.5 mm sprawiła wiele problemów podczas wiercenia oraz wydłużony czas lutowania płytki [rys.7d]. Połączenia z czujnikami, baterią, silnikami oraz modułem startowym zrealizowano za pomocą goldpinów co zapewnia możliwość zmiany konfiguracji oraz szybkiego odłączenia elementu, gdy może on zostać uszkodzony lub uszkodzić inne elementy. Płytka została wywołana metodą fototransferu na warsztatach rekrutacyjnych [rys.7a], a następnie wytrawiona bez poważniejszych problemów. 9
2.2 Elektronika 2 ROZWINIĘCIE (a) PCB przed lutowaniem (b) PCB po lutowaniu (c) Stanowisko do przelotek (d) Wiertło do przelotek Rysunek 7: Elektronika robota 10
2.2 Elektronika 2 ROZWINIĘCIE (a) Zasilacz robota (b) Schemat zasilania Rysunek 8: Zasilanie robota 2.2.1 Zasilanie 1. Opis i uzasadnienie. Robot zasilany jest akumulatorem litowo-polimerowym Dualsky ES520 o pojemności 520mAh oraz napięciu zasilania 7.4V [rys.8a]. Zasilacz podłączono do płytki za pomocą goldpinów. Użyto tego napięcia, gdyż po zastosowaniu stabilizatorów LM1117 uzyskano napięcia 5V oraz 3.3V. Napięcie 7.4V potrzebne jest do zasilania silników Pololu, 5V zasila czujniki białej linii, 3.3V czujniki odległości oraz całą logikę układu elektrycznego. W układzie nie zostało przewidziane zabezpieczenie przed odwrotną polaryzacją [rys.8b]. 11
2.2 Elektronika 2 ROZWINIĘCIE 2. Proces konstrukcji i naprawy. Do płytki przylutowany jest przełącznik zasilania, który wyłącza lub włącza cały obwód, nie jest on jednak elementem SMD. W projekcie przewidziano diodę sygnalizującą włączone lub wyłączone zasilanie, jednak nie została ona przylutowana. Do jednego ze stabilizatorów przylutowano blaszkę, która spełnia zadanie dodatkowego radiatora, gdyż zauważono nagły wzrost temperatury tego elementu podczas pierwszego uruchomienia. 2.2.2 Mikrokontroler 1. Opis i uzasadnienie. Początkowo wybrano mikrokontroler STM32F4 w obudowie LQFP64, jednak po konsultacji z opiekunem grupy został zmieniony na STM32F103RCT6 [rys. 9b], gdyż możliwości wersji F4 były zbyt duże w stosunku do potrzeb tego projektu. Typ STM wybrano ze względu na rozwinięte środowisko programistyczne (Cube, Workbench, ST-Link) oraz polecenie przez prowadzących warsztaty rekrutacyjne. F1 został wybrany ze względu na dostępność w sklepach internetowych, niewysoką cenę oraz wystarczająco wysokie parametry. Obudowę 64 wybrano, aby z pewnością zmieściły się wszystkie peryferia, okazało się że obudowa 48 byłaby również wystarczająca, jednak mogłoby to utrudnić projektowanie płytki. Podczas lutowania płytki procesor został uszkodzony i wymieniony na STM32F103RBT6 o nieco mniejszej pamięci [rys.9a]. 2. Specyfikacja. Rdzeń: 32-bitowy ARM Cortex M3 Pamięć Flash: 128 kb Pamięć RAM: 20 kb Maksymalna częstotliwość taktowania rdzenia: 72 MHz Ilość liczników (timerów) 16-bitowych: 4 Obsługa PWM, DMA Ilość przetworników ADC 12-bitowych: 2 Ilość kanałów: 16 kanałów Ilość przetworników DAC 12-bitowych: 2 Ilość kanałów: 2 kanałów Interfejsy: 2x SPI, 2x I2C, 3x USART, 1x CAN Napięcie zasilania: od 2 V do 3,6 V Obudowa: LQFP64 12
2.2 Elektronika 2 ROZWINIĘCIE (a) Mikroprocesor (b) Schemat mikroprocesora Rysunek 9: Mikroprocesor 13
2.2 Elektronika 2 ROZWINIĘCIE 3. Proces konstrukcji i naprawy. Podczas lutowania płytki znaleziono zwarcie pomiędzy napięciem 3.3 V a masą GND, po wielokrotnym przecięciu ścieżek okazało się, że zwarcie wystąpiło przy mikroprocesorze, a następnie zidentyfikowano je jako zwarcie w środku samego procesora. Ostatecznie procesor, po konsultacjach z członkami KNR KoNaR został uznany za spalony i wymieniony na wersję RBT6 dzięki Michałowi Burdce. Jednak wciąż występowało zwarcie, zidentyfikowane jako zwarcie przez krzem. Po wielu godzinach testów z pomocą Bartosza Kurosza z KNR KoNaR udało się zidentyfikować problem, najpierw jako przesunięcie nóżek procesora, zaś po poprawieniu jako obrócenie procesora o 90 w stosunku do położenia na schemacie. Położenie procesora zostało poprawione. 2.2.3 Czujniki 1. Opis i uzasadnienie. Czujniki białej linii. W projekcie wykorzystano cztery moduły Pololu z czujnikiem odbiciowym KTIR0711S [rys.10a] do wykrywania białej linii (obwodu ringu do walk minisumo). Wybrano je ze względu na nieduży koszt oraz modułową budowę całej konstrukcji oraz przykręcono do podwozia w czterech najbardziej wysuniętych miejscach, żeby zapobiec wyjechaniu z ringu zarówno przodem jak i tyłem. Dane z czujników są odczytywane z ich wyjścia analogowego. Czujniki odległości. Robot wyposażony jest w pięć modułów Pololu z czujnikiem odległości Sharp GP2Y0A60SZLF o zakresie 10-150 cm [rys.10b]. To rozwiązanie wybrano ze względu na łatwy montaż i demontaż czujników oraz zasięg, który umożliwia wykrycie przeciwnika nawet na drugim końcu ringu w zawodach minisumo enhanced. Czujniki zostały zamontowane według zaleceń producenta pionowo (przedni poziomo) w ustawieniu: jeden z przodu, dwa po bokach pod kątem 30 oraz dwa z tyłu pod kątem 60 w stosunku do osi prostopadłej do osi kół, przechodzącej przez jej środek. Dane z czujników są odczytywane z ich wyjścia analogowego. 14
2.2 Elektronika 2 ROZWINIĘCIE (a) Czujnik białej linii (b) Czujnik odległości (c) Schemat podlaczenia czujnikow Rysunek 10: Czujniki robota 15
2.2 Elektronika 2 ROZWINIĘCIE 2. Proces konstrukcji i naprawy. Czujniki białej linii. Do każdego modułu czujnika zostały przylutowane kable z końcówką żeńską zaś czujniki przykręcono bezpośrednio do podwozia, pod nim. To rozwiązanie zapewnia możliwie małą grubość czujników u dołu pojazdu oraz niezaburzoną wizję. Czujniki odległości. Do każdego modułu czujnika zostały przyczepione goldpiny, dołączone do zestawu. Zaś całość połączona z płytką za pomocą kabli żeńsko-żeńskich. Moduł z czujnikiem przykręcono do podwozia (przedni do obudowy) za pomocą małych kątowników, które łatwo odkręcić lub zmienić ich orientację. Podczas transportu robota z kilku modułów odpadły kondensatory, które zostały później przylutowane ponownie. 2.2.4 Sterowanie silnikami 1. Opis i uzasadnienie. Do sterowania silnikami użyto dwóch podwójnych mostków TB6612 zgodnie z zaleceniami opiekuna grupy jeden dla każdego silnika. Mostek jest zasilany napięciem 7.4 V, żeby uzyskać maksymalną moc silników dla posiadanego akumulatora. Logika mostka zasilana jest napięciem 3.3 V, jak reszta logiki układu. Każdy mostek ma doprowadzone dwa wejścia logiczne, które kontrolują kierunek obrotu osi silnika, oraz jeden interfejs PWM. Silniki podłączono do kontrolerów za pomocą goldpinów i kabli z końcówką żeńską do nich przylutowanych. 2. Specyfikacja. Napięcie logika: 2.7V - 5.5V Napięcie silnik: 4.5V - 13.5V Ciągły prąd wyjścia na kanał: 1.2A Chwilowy prąd wyjścia na kanał: 3.2A Obudowa: SSOP24-szeroki - 8.3x7.6x1.6mm 3. Proces konstrukcji i naprawy. Podczas wielokrotnego sprawdzania płytki zauważono zwarcia między nóżkami mostka, które zostały zniwelowane przed pierwszym podłączeniem. Brak dalszych problemów z mostkami. 16
2.2 Elektronika 2 ROZWINIĘCIE (a) Sterowniki silników (b) Schemat sterowników Rysunek 11: Sterowniki silników 17
2.2 Elektronika 2 ROZWINIĘCIE 2.2.5 Interfejs komunikacyjny 1. Opis i uzasadnienie. Programator Na płytce został przylutowany raster czterech goldpinów odpowiedzialnych za połączenie z programatorem SWD na płytce STM32DiscoveryF3, która za pomocą ST-Link 2 łączy się z komputerem. Reset Możliwość debugowania i wgrywania programu na płytkę za pomocą środowiska Workbench umożliwia złącze Reset programatora, połączone także z przyciskiem Reset, który przerywa i uruchamia ponownie program wgrany do mikroprocesora. Switch Główny Switch zasilania umożliwia włączenie lub wyłączenie płytki poprzez przerwanie obwodu w części zasilającej. Przycisk Na płytce znajduje się przycisk użytkowy, który może służyć jako sygnał logiczny, gdy potrzebna jest zmiana działania programu. Diody LED W projekcie zostały przewidziane cztery kolorowe diody LED kontrolowane przez logikę procesora oraz dioda zasilania, która nie została przylutowana. Bluetooth Powód zamontowania modułu Bluetooth: brak. Moduł Bluetooth: brak. 18
2.2 Elektronika 2 ROZWINIĘCIE (a) Diody i przyciski (b) Schemat sterowników (c) Schemat sterowników Rysunek 12: Interfejs komunikacyjny 19
2.3 Program 2 ROZWINIĘCIE 2.3 Program Program sterujący robotem został napisany w języku C z wykorzystaniem sterownika mikroprocesorów STM, HAL. Procesor skonfigurowano za pomocą programu STM32CubeMX oraz zaprogramowano w środowisku STM32Workbench na bazie Eclipse. Program został napisany w kilku wersjach przed poprawnym polutowaniem płytki, nie był więc testowany podczas pisania. Gdy płytka zaczęła działać, program był testowany i poprawiany. Do momentu napisania raportu z powodzeniem została wprowadzona tylko wersja 1.0.0. 2.3.1 Konfiguracja peryferii We przygotowanych wersjach programu wykorzystano następującą konfigurację: clock configuration: Timer: TIM1: (tylko v2.6.0) PSC=359, ARR=99, Freq=1kHz, global interrupt TIM3: Prescaler(PSC)=359, Counter Period(ARR)=99, Freq=1kHz, PWM generation 20
2.3 Program 2 ROZWINIĘCIE ADC: DMA: TIM4: Prescaler(PSC)=359, Counter Period(ARR)=99, Freq=1kHz, PWM generation v1.0.0: ADC2-IN6, 12-bit v1.1.0: ADC1-IN10, ADC2-IN6, 12-bit v2.0.0: ADC1 -IN4,-IN5,-IN6,-IN7,-IN14,-IN10,-IN11,-IN12,-IN13, 12-bit, DMA1 Channel 1 Circular v2.6.0: ADC1 -IN4,-IN5,-IN6,-IN7,-IN14,-IN10,-IN11,-IN12,-IN13, 12-bit, DMA1 Channel 1 Circular v1.0.0: TIM3 PWM DMA1 Channel 3, TIM4 PWM DMA1 Channel 7 v1.1.0: TIM3 PWM DMA1 Channel 3, TIM4 PWM DMA1 Channel 7 v2.0.0: TIM3 PWM DMA1 Channel 3, TIM4 PWM DMA1 Channel 7, ADC1 DMA1 Channel 1 v2.6.0: TIM3 PWM DMA1 Channel 3, TIM4 PWM DMA1 Channel 7, ADC1 DMA1 Channel 1 2.3.2 Algorytm sterowania 1. v1.0.0 Algorytm działa na bazie prostej zasady znajdź i zniszcz. Robot kręci się w miejscu do momentu aż przedni czujnik odległości znajdzie przeciwnika. Zostało to zrealizowane przez funkcje które zwracają wartości logiczne. Jeśli funkcja zwraca false program pracuje w pętli cały czas sprawdzając przedni czujnik. W przypadku znalezienia przeciwnika (zwrócenie wartości true) program pracuje w kolejnej pętli, która sprawdza czy wciąż przeciwnik jest z przodu. Jeśli tak, robot jedzie do przodu z pełną prędkością. W programie przewidziano oczekiwanie na start z modułu startowego oraz reakcję na komendę killswitch. 21
3 PODSUMOWANIE 2. v1.1.0 Działanie algorytmu podobne do v1.0.0. Dodano czujnik białej linii, który zapobiega wyjechaniu poza ring przodem. Pętle, w których pracuje program zostały przeniesione wewnątrz funkcji. 3. v2.0.0 Algorytm oparty na poprzednich wersjach. W programie obsłużone są wszystkie czujniki białej linii co zapobiega przekroczeniu jej zarówno z przodu jak i z tyłu. Czujniki odległości zostały obsłużone w inny sposób. Robot szuka przeciwnika na lewym, przednim czujniku (funkcja seek()), gdy go znajdzie jedzie z pełną prędkością do przodu (funkcja engage()), aż przeciwnik pojawi się w polu widzenia czujnika lewego, tylnego. Wtedy obraca się w lewo, aż przeciwnik pojawi się przed przednim czujnikiem i realizuje funkcję destroy() czyli frontalny atak na przeciwnika. Podczas wykonywania jakiegokolwiek manewru w każdym przejściu pętli sprawdzana jest funkcja escape(), która zapobiega przejechaniu białej linii. 4. v2.6.0 Algorytm jest rozszerzoną i poprawioną wersją 2.0.0. Robot szuka przeciwnika na jednym z dwóch przednich czujników i w zależności od tego wykonuje funkcję engage() po prawej lub lewej stronie w zależności od tego, który czujnik wykryje przeciwnika jako pierwszy. Została także dodana funkcja maneuver1(), która na podstawie przerwania timera liczy czas, w którym wykonywana jest funkcja destroy(), jeśli zmiany na czujniku przednim są niewielkie przez dłużej niż pięć sekund, robot odjeżdża do tyłu zakręcając do momentu, w którym zobaczy przeciwnika z przodu. 5. Podsumowanie Algorytmy w uproszczonej wersji były testowane za pomocą STM32DiscoveryF3, na diodach sygnałowych. Wszystkie programy (póki co) są teoretyczne i nie zostały przetestowane na działającej płytce, poza wersją v1.0.0. 3 Podsumowanie W dokumencie zawarto szczegółowy opis budowy i działania robota typu minisumo Django Fat, a także proces jego budowy, naprawy oraz ocenę efektów względem początkowych założeń. Efektem doczesnym pracy podczas warsztatów rekrutacyjnych KNR KoNaR jest robot, który potrafi jeździć oraz znaleźć przeciwnika. Nie udało się zrealizować postanowień początkowych, które 22
3 PODSUMOWANIE zakładały: wzięcie udziału w Robotic Arenie z działającym robotem, stworzenie funkcjonalnej i działającej konstrukcji do 12.12.2015r. Jednakże cele poboczne zostały częściowo wykonane, czyli: zbudowanie działającej konstrukcji, ukończenie pierwszego robota. Głównym aspektem robota, który powinien być zrobiony lepiej jest jego mechanika. Po pierwsze brak prawidłowego projektu mechaniki spowodował problemy podczas konstrukcji. Po drugie brak precyzyjnych narzędzi i doświadczenia w konstruowaniu tego typu maszyn, poskutkował złym wyważeniem robota oraz dużymi niedokładnościami i nierównościami konstrukcji. Rozwiązania użyte w projekcie elektroniki też mogłyby być inne. Podłączenie wszystkiego za pomocą kabli i goldpinów jest wygodne i zapewnia możliwość modyfikacji, jednak jest problematyczne z powodu miejsca zajmowanego przez te części. Ilość przelotek na płytce PCB jest głównym problemem projektu elektroniki, jednak nie przysporzyło wielu problemów. Programy napisane dla robota mogłyby być lepiej zoptymalizowane, jednak do tego potrzebne byłoby więcej czasu na testowanie działającej płytki. Projekt nie jest zakończony. Będzie poprawiany i modyfikowany w najbliższej przyszłości, do osiągnięcia zadowalającego rezultatu. W planach: poprawienie mechaniki robota, stworzenie elementów z większa dokładnością, optymalizacja oprogramowania, testy, zmiany, testy i zmiany. Kolejnym punktem w dalszej pracy nad projektem będzie stworzenie kolejnego projektu na bazie pierwszego, w którym poprawione zostanie wszystko od początku fazy projektowej. Celem jest zbudowanie jak najbardziej efektywnej pary robotów minisumo. Nauki i doświadczenia wyciągnięte z budowy robota oraz udziału w warsztatach rekrutacyjnych: Jak zbudować robota. Na czym polegają zawody robotyczne. Ogromna ilość informacji przyswojona podczas spotkań warsztatowych na temat procesów projektowania i konstrukcji robotów (projektowanie elektroniki, mechaniki, programowanie mikroprocesorów itd.), a także cała masa pozostałej wiedzy przekazanej przy okazji przez członków koła. Mnóstwo nowych umiejętności praktycznych (wiercenie wiertłem 0.5mm, lutowanie, posługiwanie się przydatnymi robotykowi narzędziami, tworzenie robota itd.) oraz zwiększenie wiary we własne możliwości, jeśli chodzi o wprowadzanie w życie skomplikowanych projektów oraz przyswojenie nowych umiejętności. 23
3 PODSUMOWANIE Lepiej wcześniej zacząć fazę projektową. W razie problemów warto poradzić się osób z większym doświadczeniem zarówno w fazie projektowej jak i konstrukcyjnej. Tworzenie mechaniki robota bez projektu wprowadza ogromną ilość błędów, problemów i niedokładności. Trudno budować robota przy niskiej temperaturze używając tylko podstawowych narzędzi. Podczas lutowania wielokrotnie sprawdzać każdy przylutowany element od razu po przylutowaniu. Projekt warto doprowadzić do końca i nie poddawać się gdy coś pójdzie nie tak. Nie warto wybierać elementów SMD o minimalnych rozmiarach. Wszystkie potrzebne informacje można znaleźć w datasheet ach. Nigdy nie jest za późno na rzeźbę! Podczas Robotic Areny robot Django Fat wziął udział w konkurencji minisumo, został zważony, zmierzony i dopuszczony do konkurencji. Jednak nie udało się doprowadzić go do stanu działania, więc wszystkie walki zostały oddane walkowerem. 24
3 PODSUMOWANIE (a) Bez osłony (przod) (b) Bez osłony (bok) (c) Bez osłony (góra) (d) Bez osłony (skos) (e) Z osłoną (bok) (f) Z osłoną (tył) Rysunek 13: Zdjęcia robota Django Fat 25
LITERATURA 4 Materiały źródłowe Warsztaty Rekrutacyjne KNR KoNaR Forum dyskusyjne forbot: http://forbot.pl/blog/ Strona producenta ST: http://www.st.com/web/en/home.html Strona sklepu internetowego Botland: http://botland.com.pl/ Strona sklepu internetowego Electropark: http://electropark.pl/ Inne strony internetowe Własne informacje i doświadczenia Konsultacje ze znajomymi oraz członkami KNR KoNaR Literatura 26