Robot mobilny klasy micromouse. IPreferPI. Elżbieta Bundz. Bartosz Wawrzacz. Koło Naukowe Robotyków KoNaR.

Podobne dokumenty
Autonomiczny robot mobilny LF3 klasy linefollower. Jacek Jankowski

Raport z budowy robota typu Linefollower Mały. Marcin Węgrzyn

Linefollower Torpeda. Magdalena Kaczorowska

Zastosowanie silników krokowych jako napęd robota mobilnego

Raport z budowy robota Krzysio

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Micromouse Rapid Raport końcowy. Marcin Niestrój

Podstawy budowy robotów

Projekt i wykonanie robota klasy Micromouse

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

TIGER Autonomiczny robot mobilny typu Line Follower

MCAR Robot mobilny z procesorem AVR Atmega32

MOBOT RoboSnake. Moduł wieloczłonowego robota

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

ROBOT MOBILNY TYPU LINE FOLLOWER JACK. Michał Rybczyński

Raport Robot mobilny klasy micromouse. Adrian Gałęziowski Paweł Urbaniak

MozhePoyedzye. Robot klasy MiniSumo. Konrad Bednarek Michał Rataj

Robot mobilny klasy minisumo Wojak Wszechmocny. Robert Budziński

Płytka laboratoryjna do współpracy z mikrokontrolerem MC68332

Robot micromouse Rzuf nincza. Hubert Grzegorczyk

AN ON OFF TEMPERATURE CONTROLLER WITH A MOBILE APPLICATION

dokument DOK wersja 1.0

CHŁOPCZYK Robot typu Line Follower

Politechnika Wrocławska

Moduł mocy regulowany. Opis modułu

- WALKER Czteronożny robot kroczący

Autonomiczny robot mobilny w kategorii linefollower MORPROF

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Płytka uruchomieniowa AVR oparta o układ ATMega16/ATMega32. Instrukcja Obsługi. SKN Chip Kacper Cyrocki Page 1

WIZUALIZACJA DANYCH SENSORYCZNYCH Sprawozdanie z wykonanego projektu. Jakub Stanisz

Proste układy wykonawcze

Enkoder magnetyczny AS5040.

Robot mobilny klasy minisumo Buster

Edukacyjny sterownik silnika krokowego z mikrokontrolerem AT90S1200 na płycie E100. Zestaw do samodzielnego montażu.

ZL2AVR. Zestaw uruchomieniowy z mikrokontrolerem ATmega8

Konstrukcja mostka mocy typu "H" opartego o układ HIP4081A Robert Szlawski

Płytka ewaluacyjna z ATmega16/ATmega32 ARE0021/ARE0024

ZL9AVR. Płyta bazowa dla modułów ZL7AVR (ATmega128) i ZL1ETH (RTL8019)

KAmduino UNO. Płytka rozwojowa z mikrokontrolerem ATmega328P, kompatybilna z Arduino UNO

2.1 Porównanie procesorów

Robot mobilny klasy mini-sumo Żubr

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

4 Adres procesora Zworkami A0, A1 i A2 umieszczonymi pod złączem Z7 ustalamy adres (numer) procesora. Na rysunku powyżej przedstawiono układ zworek dl

Robot klasy minisumo

KAmduino UNO. Rev Źródło:

Zespół Szkół Technicznych w Skarżysku - Kamiennej. Projekt budowy Zasilacza regulowanego. Opracował: Krzysztof Gałka kl. 2Te

HELMUT Robot klasy mini sumo

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

AUTOMATYKA DO BRAM Cennik WAŻNY OD

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

AVREVB1. Zestaw uruchomieniowy dla mikrokontrolerów AVR. Zestawy uruchomieniowe

WIZUALIZACJA DANYCH SENSORYCZNYCH MINISTACJA METEOROLOGICZNA

STEROWNIKI ROBOTÓW ( PROJEKT ) ROBOT KLASY LINEFOLLOWER

Raport z budowy robota mobilnego klasy minisumo Łotrzyk. Maciej Majka Mateusz Ciszek

POLITECHNIKA WARSZAWSKA. Wydział Elektroniki i Technik Informacyjnych. Mikrokontrolery ARM

Programowanie mikrokontrolerów 2.0

Wyniki (prawie)końcowe - Elektroniczne warcaby

ZL25ARM. Płyta bazowa dla modułów diparm z mikrokontrolerami STR912. [rdzeń ARM966E-S]

SIMSON. Raport. Robot moblilny klasy Line follower. Łukasz Kaźmierczak. Dawid Kwaśnik. Małgorzata Lewandowska. Wrocław, r.

Płytka uruchomieniowa XM64

W semestrze letnim studenci kierunku Aplikacje Internetu Rzeczy podczas ćwiczeń z programowania CAD/CAM

Uniwersalny sterownik silnika krokowego z portem szeregowym RS232 z procesorem AT90S2313 na płycie E200. Zestaw do samodzielnego montażu.

Konstrukcja Micro Mouse

Mateusz Skiba Jakub Szymaczek. LINEFOLLOWER WiX

SML3 październik

Obługa czujników do robota śledzącego linie. Michał Wendland czerwca 2011

E-TRONIX Sterownik Uniwersalny SU 1.2

Kod produktu: MP01105T

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Tester samochodowych sond lambda

SWITCH & Fmeter. Fmax 210MHz. opr. Piotrek SP2DMB. Aktualizacja

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2019 CZĘŚĆ PRAKTYCZNA

Zrób to sam : generowanie ruchu, światła i dźwięku za pomocą Arduino i Raspberry Pi / Simon Monk. Gliwice, Spis treści

Sprzężenie mikrokontrolera (nie tylko X51) ze światem zewnętrznym cd...

Kod produktu: MP-1W-2480

Badanie właściwości wysokorozdzielczych przetworników analogowo-cyfrowych w systemie programowalnym FPGA. Autor: Daniel Słowik

ZL5PIC. Zestaw uruchomieniowy dla mikrokontrolerów PIC16F887

oznaczenie sprawy: CRZP/231/009/D/17, ZP/66/WETI/17 Załącznik nr 6 I-III do SIWZ Szczegółowy opis przedmiotu zamówienia dla części I-III

Płytka uruchomieniowa XM32

Mobilny robot klasy minisumo QuoShyan

Sterowniki Programowalne Sem. V, AiR

Rysunek 1 Schemat ideowy sterownika GSM

PROJECT OF FM TUNER WITH GESTURE CONTROL PROJEKT TUNERA FM STEROWANEGO GESTAMI

ZL27ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F103

Krótka informacja o bateriach polimerowych.

Ćw. 18: Pomiary wielkości nieelektrycznych II

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

AMRobot. Platforma mini robota edukacyjnego

Programowanie mikrokontrolerów AVR z rodziny ATmega.

WIZUALIZACJA I STEROWANIE ROBOTEM

Zasilacz do zegara ( audio-clocka )

DTR PICIO v Przeznaczenie. 2. Gabaryty. 3. Układ złącz

ZL16AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega8/48/88/168

Politechnika Białostocka

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

ZL29ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

STEROWNIK LAMP LED MS-1 Konwerter sygnału 0-10V. Agropian System

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż.

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Kuchnie indukcyjne IV generacji firm Bosch, Neff,

Transkrypt:

Robot mobilny klasy micromouse IPreferPI Elżbieta Bundz Bartosz Wawrzacz Koło Naukowe Robotyków KoNaR www.konar.pwr.wroc.pl Wrocław 2012 1

Spis treści 1. Wstęp...3 2. Założenia projektu...3 3. Konstrukcja mechaniczna...4 4. Układ napędowy...6 5. Układ zasilania...7 6. Elektronika...8 7. Komunikacja z robotem oraz łącznośd bezprzewodowa... 10 8. Oprogramowanie... 11 9. Podsumowanie... 12 2

1. Wstęp IPreferPI jest robotem micromouse stworzonym w ramach warsztatów rekrutacyjnych organizowanych przez Koło Naukowe Robotyków KoNaR. Niniejszy dokument przedstawia opis konstrukcji mechanicznej, zastosowane rozwiązania elektroniczne oraz nietypowe koncepcje wykorzystane przy budowie robota. Został on podzielony na sekcje osobno opisujące powyższe aspekty, stąd też poszczególne moduły są wspominane wielokrotnie i do poznania pełnego ich opisu wymagana jest lektura całości tekstu. 2. Założenia projektu Nadrzędnym celem było przygotowanie robota do startu w zawodach Robotic Arena 2011. Z powodu niewystarczającej ilości dostępnego czasu, nie udało się jednak napisad algorytmu rozwiązywania labiryntu i robot nie wziął udziału w konkurencji. Głównym założeniem towarzyszącym powstawaniu micromousa było stworzenie lekkiego, zwrotnego i szybkiego robota deklasującego istniejące wówczas konstrukcje oparte głównie na wyjątkowo wolnych serwomechanizmach. Pomimo iż podczas konstrukcji popełniono kilka błędów, a oprogramowanie robota wciąż jest dopracowywane, przez co nie osiągnął on pełni swoich możliwości, powyższe założenia uznano za spełnione. Rys 1. Robot IPreferPI 3

3. Konstrukcja mechaniczna Płytka z laminatu o grubości 1,5mm, na której znajduje się elektronika, jest jednocześnie podstawą mechaniki IPreferPI. Laminat tej grubości zapewnia idealną sztywnośd i pozwala na uniknięcie stosowania dodatkowej konstrukcji nośnej, zwiększającej masę robota. Micromouse ma trzy punkty podparcia - z tyłu opiera się na dwóch kołach, natomiast z przodu zamontowana jest kulka plastikowa Pololu o średnicy 3/8 cala. Silniki Pololu są trzymane przez standardowe obejmy tej samej firmy w wersji powiększonej (doświadczenie pokazuje, że stosowanie mniejszych obejm mija się z celem są wyjątkowo łamliwe). Rys 2. Widok na spód robota pokazujący mocowanie kulki podporowej Położenie kół jest określane za pomocą enkoderów magnetycznych AS5040 firmy austriamicrosystems. Płytki enkoderów, które musiały zostad umieszczone po zewnętrznej stronie kół, trzymają się na konstrukcji z laminatu, która wyśmienicie spełnia swoje zadanie jednocześnie wprowadzając ducha rozwiązania alternatywnego. Magnesy wymagane do pracy enkoderów zostały wklejone w kołpaki wykonane z laminatu, te zaś przytwierdzone są do felgi za pomocą kleju typu superglue. Pomimo wyśrodkowywania na oko mocowanie takie spełnia restrykcyjne warunki przedstawione w dokumentacji enkodera. 4

Rys 3. Szczegóły konstrukcji mocowania enkodera Rys 4. Mocowanie enkodera widok od tyłu 5

Przy projektowaniu konstrukcji mechanicznej popełniony został szereg błędów mogących negatywnie wpływad na działanie robota: nie przewidziano miejsca na otwory pod śruby mocujące kulkę podporową, przez co jest ona przyklejona taśmą izolacyjną. Wbrew pozorom, jest to najmniejsza wada konstrukcyjna, mająca wręcz stronę pozytywną mocowanie takie dobrze tłumi drgania i ewentualne nierówności podłoża; diody IR oraz fototranzystory użyte w roli czujników odległości wychodzą poza obrys płytki, przez co każde zderzenie ze ścianą, których ciężko uniknąd podczas pisania oprogramowania robota, skutkuje ich wyginaniem i koniecznością ponownego ustawiania w poprawnej pozycji; tylna oś została umiejscowiona za daleko względem środka robota, co czasami skutkuje trudnościami z obrotem robota w labiryncie o 180, nie jest to jednak problem krytyczny; nie przemyślano sposobu wygodnego i bezpiecznego mocowania ogniw dostarczających zasilania z pomocą znów musiała ruszyd taśma izolacyjna; nie przewidziano mechanicznego wyłącznika odcinającego zasilanie, uznanego zgodnie z tradycją za zbędny. Pomimo powyższych błędów, robot jest w stanie sprawnie poruszad się po labiryncie. Budowa robota pozwoliła na uzyskanie sporego doświadczenia, które będzie przydatne przy projektowaniu następnego robota klasy micromouse. 4. Układ napędowy Do napędu robota wykorzystano silniki Pololu HP z przekładniami 30:1. Na ich wałach zamontowane zostały koła firmy Solarbotics o średnicy 31,2 mm. Felgi musiały zostad przyklejone klejem na gorąco do wałów silnika, gdyż oryginalne mocowanie śrubą dociskającą wał jest zawodne z biegiem czasu śruba całkowicie się luzuje. Zakres prędkości obrotowych osiąganych przez w/w silniki jest zbliżony do optymalnego dla robota typu micromouse. Stosunkowo wysokie wypełnienie sygnału PWM sterującego silnikiem wymagane do jego ruszenia powoduje jednak problemy z precyzyjnym poruszaniem się z małymi prędkościami i wymaga specjalnego obejścia w oprogramowaniu. 6

5. Układ zasilania Do zasilania robota wykorzystano dwa rodzaje ogniw. W początkowej fazie testów konstrukcja jeździła na dwu-celowym pakiecie litowo -polimerowym firmy Kokam o pojemności 640 mah. Później zakupione zostały pojedyncze ogniwa szczycące się pojemnością 250 mah. Połączenie dwóch ogniw szeregowo dało pakiet o zadowalających parametrach i wyjątkowo małej masie. Cała elektronika łącznie z diodami IR do czujników odległości jest zasilana poprzez stabilizator liniowy LM1117 5V. Pierwotne plany zakładały użycie przetwornicy impulsowej stabilizującej napięcie zasilające silniki, lecz pomysł ten został porzucony w trakcie projektowania elektroniki. Decyzja ta zapadła, ponieważ prędkośd silników sterowana jest za pomocą regulatora PD ze sprzężeniem zwrotnym z enkoderów, przez co stałe napięcie zasilania silników nie jest wymagane. Argumentem był także brak takiego rozwiązania w robotach powstających w Japonii. W układzie wydzielono 3 pola mas: cyfrową (procesor i logika mostka H), analogową (diody sygnalizacyjne i czujniki) oraz przeznaczoną dla silników. Łączą się one w jednym punkcie tuż przy złączu zasilania i kondensatorze 220μF. Rys 5. Schemat układu zasilania 7

6. Elektronika Robotem zarządza mikrokontroler ATMega1284P. Wersja -4 wybrana została przede wszystkim z racji na dostępnośd przerwao zewnętrznych na wszystkich pinach, co pozwoliło na obsługę enkoderów opartą o przerwania. W momencie zakupu procesora wersje o mniejszej pojemności pamięci flash nie były dostępne, także w zastosowanym układzie gotowy kod robota zajmuje zaledwie 10% dostępnej przestrzeni. Do procesora podłączono wszystkie niezbędne elementy kondensatory filtrujące zasilanie, filtr napięcia zasilania przetwornika analogowo-cyfrowego, złącze programowania ISP 6-pin. Jest on taktowany przez zewnętrzny kwarc 20MHz, przez co nie ma problemu z wykonywaniem wszystkich niezbędnych obliczeo. Został wyposażony w scalony odbiornik podczerwieni TSOP4840, co umożliwia jego zdalne startowanie. Bardzo ważnym z punktu widzenia programowania i testowania robota jest wyprowadzenie sygnałów Tx i Rx protokołu UART, który dzięki zastosowaniu oddzielnego modułu bluetooth umożliwia wyjątkowo wygodne sterowanie oraz zdalne pozyskiwanie danych z sensorów robota. Rys 6. Schemat podłączenia procesora 8

Sterowanie diodami IR oraz trzema diodami sygnalizacyjnymi zostało zrealizowane za pomocą układu ULN2003A, składającego się z siedmiu osobnych układów Darlingtona. Ponieważ diody IR wykorzystane do stworzenia czujników odległości włączane są impulsowo na ułamki sekund wymagane do pomiaru ADC, prąd przez nie płynący nie został ograniczony przez rezystory dzięki tego zwiększa się zasięg i rozdzielczośd sensorów. Rys 7. Schemat zasilania LEDów Czujniki odległości zbudowano na podstawie diod IR SFH4550 oraz fototranzystorów BPV11. Wybór diod był prosty jest to model wykorzystywany przez czołowe konstrukcje japooskie, charakteryzujący się wyjątkowo wąskim kątem świecenia (podawanym przez producenta jako zaledwie 6 ). Fototranzystory zostały wybrane na podstawie porównania charakterystyk wielu dostępnych w tym czasie elementów tego typu. Rys 8. Schemat podłączenia fototranzystorów 9

7. Komunikacja z robotem oraz łącznośd bezprzewodowa Pierwotnie do celu komunikacji z robotem wykonany został przewodowy pilot wyposażony w złącze protokołu UART, wyświetlacz alfanumeryczny 2x16 znaków oraz 5 przycisków. Jego zastosowaniem było ustalanie parametrów jazdy oraz odczyt danych z sensorów. Umożliwiał także start robota za pomocą podczerwieni. Jego stosowanie było jednak wyjątkowo trudne z racji na łączące go z robotem i ograniczające jego ruchy kable. Z tego powodu zakupiono popularny moduł bluetooth BTM222, który znacznie ułatwił programowanie oraz prace nad algorytmem poruszania się po labiryncie. Rys 9. IPreferPI z dołączonym modułem bluetooth 10

8. Oprogramowanie Prace nad programem zarządzającym robotem podzielono na dwa etapy. Pierwszym było opracowanie metod pozwalających na poruszanie się po labiryncie na podstawie z podanych z góry kolejnych ruchów. Wymagało to sprzęgnięcia enkoderów z sterownikiem silnika i początkowo przysporzyło trochę problemów, głównie z powodu trudności z obsługą enkoderów przez procesor. Ponieważ użyte enkodery mają rozdzielczośd aż 10 bitów na obrót, wymagane było wyjątkowo sprawnie działające przerwanie zliczające impulsy. Najbardziej optymalny kod, jaki udało się uzyskad przedstawia listing 1. ISR(PCINT2_vect) // aktualna wartość enkoderów w globalnych int enkoderl, enkoderp { enkl = (PINC & (3 << 0)) >> 0; // enkodery podłączone do pinów 0,1,2,3 portu C enkp = (PINC & (3 << 2)) >> 2; // enkl akt. stan lewego, penkl poprzedni if(enkl!= penkl) { if( (penkl & 1) ^ ((enkl & 2) >> 1) ) enkoderl--; else enkoderl++; } if(enkp!= penkp) { if( (penkp & 1) ^ ((enkp & 2) >> 1) ) enkoderp--; else enkoderp++; } } penkl = enkl; penkp = enkp; Listing 1. Fragment kodu odpowiedzialny za zliczanie sygnałów z enkoderów Ruch micromousa jest stabilizowany względem ściany poprzez odpychanie się od niej w przypadku wykrycia zbytniej bliskości. Nieliniowy charakter wyniku pomiaru odległości otrzymany za pomocą wykorzystanych sensorów nie jest w tym przypadku problemem. Następnym etapem było napisanie algorytmu poznawania i rozwiązywania labiryntu. Zastosowano algorytm zalewania wodą opracowany dużo wcześniej w języku C++. Jego zaadoptowanie do wymagao języka C oraz dostępnych zasobów mikrokontrolera było już prostym zadaniem. 11

9. Podsumowanie W robocie pokładane są nadzieje na konkurowanie z najlepszymi w swojej kategorii. Planowane jest wystawianie go w krajowych zawodach micromouse'ów. Budowa robota pozwoliła nabrad cennego doświadczenia. Wykorzystane w projekcie pomysły i rozwiązania, a także popełnione i zauważone błędy, na pewno zaprocentują przy projektowaniu kolejnych konstrukcji. Zastosowane optyczne czujniki odległości okazały się zaskakująco dokładne i pozbawione szumów oraz błędnych pomiarów. Bardzo pozytywnie zostały także ocenione enkodery, mimo trudności procesora z ich obsłużeniem. W planach jest powstanie następcy IPreferPI, pozbawionego wszystkich jego wad. Najważniejszą przewidywaną zmianą jest zastosowanie mikrokontrolera z rodziny STM32, który umożliwi sprzętową obsługę wyjśd kwadraturowych z enkoderów oraz pozwalający na zaimplementowanie bardziej zaawansowanego algorytmu, czy też linearyzację wyników pomiaru odległości. Wymaganą modernizacją zapewniającą osiągnięcie dużo lepszych wyników jest także zastosowanie silników lepszej jakości pozwalających na bardziej dynamiczny ruch oraz wyposażonych w przekładnie o mniejszym luzie. Rys 10. IPreferPI w postawie bojowej 12