tutaj

Transkrypt

tutaj
Robot mobilny kategorii minisumo - CyKozak1
Michał Cycon, Piotr Kozak
Wydział Elektroniki Politechniki Wrocławskiej
15 grudnia 2009
1
Powodem rozbieżności w nazwie robota, która wystąpiła przy zgłoszeniu do uczestnictwa w zawodach
RoboticArena2009 był niedostatek snu spowodowany intensywną pracą nad projektowaniem do wczesnych
godzin dnia następnego.
Zdjęcie 1: Ważenie robota
1
Założenia projektowe
Celem projektu było zbudowanie robota mobilnego spełniającego wymagania kategorii minisumo
a następnie udział w zawodach Robotic Arena 2009 we Wrocławiu. Robot miał być autonomiczną
jednostką mobilną poruszającą się na podstawię informacji z czujników oraz wgranego do procesora
programu. Robot miał tak się poruszać by na czarnym podłożu samoczynnie nie wyjechać poza
okrąg białej linii. Robot miał reagować przy najechaniu na białą linię tyłem lub przodem. Prędkość
poruszania się miała zależeć od obecności przeciwnika w pobliżu. Czujnikami informującymi o obecności przeciwnika mają być: refleksyjny czujnik podczerwieni oraz czujniki bezpośredniego kontaktu.
Rozmiary geometryczne miały nie przekraczać długości i szerokości równych 10 centymetrów. Masa
natomiast miała być mniejsza od 500 gram.
Nazwa CyKozak jest kompozycją nazwisk autorów robota. W wolnym tłumaczeniu nazwę można
tłumaczyć tak: Cy - Cyber oraz Kozak - bojownik.
Prace nad projektem przebiegały w trzech etapach:
• projektowanie układu sterującego
• budowanie konstrukcji mechanicznej
• programowanie z testowaniem
2
2.1
Realizacja projektu
Projektowanie układu sterującego
Układ elektroniczny został zaprojektowany specjalnie na potrzeby tego projektu. Problemy z
jakimi trzeba było się zmierzyć wynikały z koniecznej minimalizacji rozmiarów końcowej płytki PCB.
Wymagane rozmiary oraz odpowiednie upakowanie zostało uzyskane dzięki zastosowaniu elementów
SMD w obudowie 0805, dwu-warstwowym płytkom PCB oraz modułowej, dwu-częściowej budowie.
Na górnej płytce umieszczono procesor w podstawce wraz z odpowiednio wyprowadzonymi pinami,
sygnalizacyjne diody led, kabelek doprowadzający zasilanie z baterii oraz wejście do programatora
ISP (wyprowadzenia zgodne z USBasp). Na płytce dolnej znalazły się pozostałe elementy układu
sterującego m.in.: stabilizator napięcia LDO 5V, układ sterowania silnikami DC L298, generator
2
Zdjęcie 2: Modułowa budowa układu elektronicznego.
3
Zdjęcie 3: Zainstalowane czujniki linii białej.
astabilny NE555, klucze tranzystorowe, wyprowadzenia do podłączenia czujników zewnętrznych itd.
Sercem układu jest mikrokontroler Atmega16 w obudowie DIP firmy Atmel. Jako czujniki białej
linii zastosowano TCRT7000 (2x przód, 1x tył). W konstrukcji refleksyjnego czujnika przeciwnika
wykorzystano dwie diody świecące w podczerwieni zasilane generatorem astabilnym o częstotliwości
36kHz oraz odbiornik podczerwieni TSOP1736. Czujnikami uderzeniowymi są zwykłe mikro-switche.
2.2
Konstrukcja mechaniczna
Konstrukcja została zbudowana z tworzywa sztucznego PCV co wpływa na tak małą masę robota (ok. 285g) Wielką wagę przywiązywaliśmy do tego by każdy element był rozbieralny, co w razie
usterki czy wadliwego działania miało nam znacznie ułatwić wprowadzanie zmian.
Zadanie najważniejsze, czyli napęd realizują dwa serwomechanizmy Tower Pro SG-5010. Przed
zakupem serw nie zastanawialiśmy się nad trafnością tego wyboru. Przeważający wpływ na decyzję odegrała cena (ok. 30zł za sztukę). Serwomechanizmy te zawierają własną przekładnie, co
zwolniło nas z pracy nad własną przekładnią. Koła o przyczepnym ogumieniu pochodzącą ze starej
drukarki hp930. Zasilanie pochodzi z dwóch bateryjek litowo-jonowych z telefonu Nokia, połączonych
szeregowo dających napięcie o wartości 7,8 V. Co istotne, zasilanie układu sterującego silnikami DC
zostało poprowadzone bezpośrednio z baterii natomiast zasilanie układu logicznego (procesor,czujniki)
poprowadzono równolegle z przejściem przez stabilizator.
Czujniki linii białej zostały zamontowane z lewej i prawej strony z przodu i po środku z tyłu.
By zapewnić poprawne działanie, czujniki musiały znaleźć się w czarnym otoczeniu. Odbiciowy czujnik przeciwnika został zamontowany w przedniej części. Uzyskany zasięg działania tego czujnika nie
jest satysfakcjonujący (ok. 15-20cm) i wymaga jeszcze dopracowania. Czujniki uderzeniowe zostały
zamontowane w taki sposób by przy natknięciu się przednim pługiem na przeciwnika zostały zadziałane. Pług został przymocowany w taki sposób by poddawał się przy napotkaniu na przeszkodę.
Tylni pług to wizja wywracania przeciwnika przez podjechanie i szybki obrót wokół własnej osi. Oba
pługi opadają przy starcie robota przez programowe drgnięcie tył-przód.
4
Zdjęcie 4: Czujniki zamontowane na przodzie robota.
5
Zdjęcie 5: CyKozak
Zdjęcie 6: Pługi
6
2.3
Programowanie
Program został napisany w języku C, przy wykorzystaniu pakietu WinAVR. Zaimplementowany
program realizuje prosty algorytm działania, uwzględniający następujące zachowania:
• start - 5 sekund i zacznij się kręcić w lewo
• czujnik białej linii przód - do tyłu, obrót o 180 stopni, do przodu
• czujnik białej linii tył - do przodu
• czujnik przeciwnika - do przodu z maksymalną prędkością
• lewy czujnik uderzeniowy - szybki skręt w lewo o 20 stopni
• prawy czujnik uderzeniowy - szybki skręt w prawo o 20 stopni
3
Wnioski po zrealizowaniu projektu
Podczas realizacji projektu mieliśmy okazję poczuć się jak prawdziwi konstruktorzy, obmyślając
każdy jeden szczegół powstającej konstrukcji. Mieliśmy wielki zapał do zrealizowania założonego celu.
Wymagało to poświęcenia sporej ilości czasu na każdym ”w naszym mniemaniu” detalu robota. Były
momenty słabości, gdy po zainwestowaniu pewnych środków nie było widać postępów i efektów pracy.
Przykładem może być moment znalezienia ”Fatal Error” w projekcie płytek PCB, po ich wytrawieniu,
na kilka dni przed zawodami. Po jakimś czasie nastał dzień chwały. Ta chwila, po tym wszystkim, po
przebrnięciu przez multum problemów i błędów, to coś dla czego warto było próbować. To chwila, w
której robot zaczyna działać.
Efektem udziału w zawodach Robotic Arena 2009 jest wniosek, że decydujące znaczenie w walce
robota ma napęd. Napęd w postaci samego silnika jak również przełożenia. Mocniejszy silnik automatycznie wprowadza zaostrzenia wymagań związanych z zasilaniem, akumulatorami. Reasumując, każdy element musi zostać dobrany z szczegółową wiedzą i precyzją. Za rzecz równie istotną
w skuteczności walki robota, natomiast o wiele ciekawszą uważam inteligencję robota, dzięki której
można wygrać nawet z cięższym i silniejszym przeciwnikiem. Inteligencja robota w mym rozumowaniu polega na programie synchronizującym działanie czujników oraz dużej liczbie skutecznie działających czujników, wykrywających przeciwnika oraz mierzących odległość od niego (np.czujniki ultradźwiękowe). Niestety w naszym projekcie nie zastosowaliśmy tego typu czujników, co wynikało przede
wszystkim z kosztów jak również ze stopnia zaawansowania sonaru. Na to miejsce zbudowaliśmy refleksyjny czujnik odbiciowy działający na podczerwieni z częstotliwością 36kHz. Uzyskany zasięg (ok.
15-20 cm) nie był zadowalający, co wynikało z pewnych niedociągnięć zaprojektowanego układu.
Działanie pługów przedniego oraz tylniego można uznać za pozytywne. Przedni, który został zrobiony z blachy aluminiowej po puszce oraz cienkiego laminatu bardzo dobrze się spisywał, skutecznie
utrudniał podjechanie przeciwnika pod pług. Tylni natomiast, hmm... pomysł dobry lecz za słaba
moc napędu by był skuteczny.
7

Podobne dokumenty