Autonomiczny robot mobilny w kategorii linefollower MORPROF

Podobne dokumenty
Poradnik programowania procesorów AVR na przykładzie ATMEGA8

STEROWNIKI ROBOTÓW ( PROJEKT ) ROBOT KLASY LINEFOLLOWER

Autonomiczny robot mobilny LF3 klasy linefollower. Jacek Jankowski

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

DOKUMENTACJA. dot. Budowy i przebiegu konstrukcji linefollower-a. Data: MCHT2 Jakub Tomczyk Łukasz Pawelec Mateusz Wróbel

MCAR Robot mobilny z procesorem AVR Atmega32

Linefollower Torpeda. Magdalena Kaczorowska

TIGER Autonomiczny robot mobilny typu Line Follower

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

SDD287 - wysokoprądowy, podwójny driver silnika DC

Raport z budowy robota Krzysio

Mikrokontrolery AVR Wprowadzenie

SDD287 - wysokoprądowy, podwójny driver silnika DC

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

Mateusz Skiba Jakub Szymaczek. LINEFOLLOWER WiX

Podstawy budowy robotów

Projekt i wykonanie robota klasy Micromouse

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

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

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

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

SPRAWOZDANIE. Architektura systemów komputerowych projekt robota W Y K O N A N I E :

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

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

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

HELMUT Robot klasy mini sumo

WIZUALIZACJA DANYCH SENSORYCZNYCH MINISTACJA METEOROLOGICZNA

Analogowy sterownik silnika krokowego oparty na układzie avt 1314

Sterowniki Programowalne Sem. V, AiR

MozhePoyedzye. Robot klasy MiniSumo. Konrad Bednarek Michał Rataj

Programowanie mikrokontrolerów AVR z rodziny ATmega.

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

Robot mobilny klasy mini-sumo Żubr

Politechnika Wrocławska

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

LOW ENERGY TIMER, BURTC

Nowy MULTIMETR z czujnikiem Halla

Dokumentacja Techniczno-Ruchowa

KOMUNIKACJA Z OTOCZENIEM MIKROKONTROLERA

WIZUALIZACJA DANYCH SENSORYCZNYCH Sprawozdanie z wykonanego projektu. Jakub Stanisz

DWUKIERUNKOWY REGULATOR SILNIKA DC VDC 20A

SYSTEM PRZERWAŃ ATmega 32

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

Sprawozdanie z realizacji projektu:

PRUS. projekt dokumentacja końcowa

CHŁOPCZYK Robot typu Line Follower

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

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

Spis treści. Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Systemy Wbudowane. Arduino - rozszerzanie. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

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

Sterownik momentu obrotowego silnika prądu stałego

AUTONOMOUS GUARDIAN ROBOT AUTONOMICZNY ROBOT WARTOWNIK

MOBOT RoboSnake. Moduł wieloczłonowego robota

KAmodQTR8A. Moduł QTR8A z ośmioma czujnikami odbiciowymi

Rysunek 1 Schemat ideowy sterownika GSM

Kod produktu: MP01611

Laboratorium Analogowych Układów Elektronicznych Laboratorium 6

Instytut Teleinformatyki

Kod produktu: MP01105

Micromouse Rapid Raport końcowy. Marcin Niestrój

Zestaw czujników białej linii do robota klasy follow the line. Raport końcowy.

ZL4PIC uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC (v.1.0) Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

SYGNALIZATOR OPTYCZNO-AKUSTYCZNY SP-4006

Rys. 1. Schemat ideowy karty przekaźników. AVT 5250 Karta przekaźników z interfejsem Ethernet

Mikroprocesory i Mikrosterowniki Liczniki Timer Counter T/C0, T/C1, T/C2

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

Immobilizer samochodowy otwierający dostęp poprzez kod czteroznakowy.

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

ZL2AVR. Zestaw uruchomieniowy z mikrokontrolerem ATmega8

Instytut Teleinformatyki

Zastosowanie silników krokowych jako napęd robota mobilnego

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

Płytka uruchomieniowa XM32

Badanie charakterystyk elementów półprzewodnikowych

Opis dydaktycznych stanowisk pomiarowych i przyrządów w lab. EE (paw. C-3, 302)

SYSTEMY MIKROPROCESOROWE W AUTOMATYCE. Projekt bariery świetlnej.

STEROWANIE ROBOTEM MOBILNYM TYPU LINE-FOLLOWER

APPLICATION OF ADUC MICROCONTROLLER MANUFACTURED BY ANALOG DEVICES FOR PRECISION TENSOMETER MEASUREMENT

Zapoznanie się z podstawowymi strukturami funktorów logicznych realizowanymi w technice RTL (Resistor Transistor Logic) oraz zasadą ich działania.

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

LABORATORIUM PODSTAW ELEKTRONIKI MATERIAŁY POMOCNICZE SERIA PIERWSZA

Kod produktu: MP01105T

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

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

Moduł mocy regulowany. Opis modułu

Badanie napędu z silnikiem bezszczotkowym prądu stałego

Rozproszony system zbierania danych.

Politechnika Białostocka

Inż. Kamil Kujawski Inż. Krzysztof Krefta. Wykład w ramach zajęć Akademia ETI

2.1 Porównanie procesorów

Konfiguracja podstawowych parametrów falownikóww LG ig5a na przykładzie wentylatora KEF/4-225/ T

Liniowe stabilizatory napięcia

Systemy Wbudowane. Arduino dołączanie urządzeń Wersja Arduino więcej portów I/O. Układy serii 74. Układy serii 74xx a seria 40xx

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Stanowisko do pomiaru fotoprzewodnictwa

Robot mobilny klasy minisumo Buster

Instytut Teleinformatyki

płytka montażowa z tranzystorami i rezystorami, pokazana na rysunku 1. płytka montażowa do badania przerzutnika astabilnego U CC T 2 masa

Transkrypt:

Autonomiczny robot mobilny w kategorii linefollower MORPROF Autorzy projektu: Marek Płóciennik 145396 Marcin Wytrych 145419 Koordynator Projektu: Dr inż. Grzegorz Granosik

Spis Treści: 1. Opis projektu 2.Konstrukcja 3. Elektronika 4. Sterowanie 5. Podsumowanie

1. Opis projektu Głównym założeniem realizowanego projektu było zbudowanie autonomicznego robota mobilnego w kategorii linefollower. Takie roboty mobilne mają za zadanie przejechać wyznaczoną trasę w jak najkrótszym czasie. Trasa zbudowana jest z białej powierzchni i czarnej ok. 2 cm szerokości linii, może składać się z przeróżnych odcinków określonych w regulaminie. Przewidywany czas końcowy realizacji projektu MORPROF był przewidziany na około 20 września 2009 r., ponieważ 28 września 2009r. organizowano zawody Robotic Arena we Wrocławiu. Aby wystawić MORPROFA należało jednak przeprowadzić testy zachowania się konstrukcji na torze. Kolejnym założeniem było sprawdzenie możliwości sterowania robotem za pomocą implementacji różnych typów oraz algorytmów sterowania np. regulatora PID w celu płynnej kontroli pokonywanej trasy. rys.1. Powyższe zdjęcie przedstawia przykładowy przebieg trasy dla robotów kategorii linefollower.

2. Konstrukcja Aby robot mógł wystartować w zawodach jego konstrukcja musi spełniać wymagania regulaminu. W regulaminie jest napisane że: - Główny obrys robota musi mieścić się na kartce papieru formatu A4. - Waga robota nie jest ograniczona. - Robot musi poruszać się w sposób autonomiczny. Komunikacja z robotem w czasie przejazdu trasy jest zabroniona (oprócz startu i zatrzymania robota). - Robot powinien być tak zaprojektowany by można było go uruchomić na znak dany przez sędziego. Podstawą konstrukcji całego robota był laminat (tworzywo sztuczne) do którego zostały przymocowane silniki, czujniki oraz pakiety zasilające. rys.2. Powyższy rysunek przedstawia widok z góry całej konstrukcji. Całość napędzały 2 silniki DC z przekładnią o napięciu zasilania 12V i prędkości 1200 obr/min. Silniki zostały zamontowane przy użyciu aluminium, ponieważ jest to materiał łatwy w obróbce oraz łatwo dostępny.

Układ napędowy oraz nośny składa się z: - silnik DC (rys.3. oznaczone 2); - elastycznego sprzęgła służy do redukcji naprężeń oraz niedokładności wynikających z ręcznej konstrukcji (rys.3. oznaczone 3); - kół napędzających konstrukcję (rys.3. oznaczone 4); - kółek realizujących stabilność konstrukcji oraz zabezpieczenie przed podnoszeniem się lub opuszczaniem za nisko palety czujników (rys.3. oznaczone 1); - palety czujników (rys.3. oznaczone 4); 5 1 6 4 2 4 3 rys.3. Widok z dołu 1) kółka pomocnicze; 2) silniki; 3) elastyczne sprzęgło; 4) koła napędzające; 6) regulacja palety czujników względem podłoża. Kółka pomocnicze to kółeczka napinające taśmę magnetofonową w odtwarzaczach kasetowych. Całość zasilają dwa pakiety Ni-Mh używane w modelarstwie do modeli zdalnie sterowanych RC o parametrach 7.2 V; 4000 mah.

3. Elektronika Układ sterowania opiera się na prostej konstrukcji elektronicznej, bazującej na mikrokontrolerze Atmega 8, podwójnym mostku H (układ L298) oraz czujnikach odbiciowych QRD1114. Tworząc układ sterowania korzystaliśmy z dokumentacji technicznej poszczególnych elementów. Schematy oraz projekty płytek drukowanych zamieszczamy poniżej. rys.4. Stabilizator zasilający układ elektroniczny +5V. rys.5. Schemat podłączenia mikrokontrolera z pozostałymi elementami. Poniższe rysunki przedstawiają projekty płytek drukowanych oraz gotowe zmontowane układy.

rys.6. Projekt płytki. rys.7. Gotowy układ płytki. rys.8. Projekt płytki mostka H. rys.9. Zmontowany układ mostka H. Kolejne rysunki przedstawiają układy połączeń, wyprowadzeń oraz zawartości komponentów

rys.10. Schemat budowy czujnika linii. rys.11. Sposób podłączenia czujnika linii. rys.12. Schemat wewnętrzny układu L298. rys.13. Widok układu L298 oraz oznaczenie jego wyprowadzeń.

rys.14. Połowa układu L298 jeden pełny mostek H. Paleta czujników została zrealizowana na płytce uniwersalnej (rys.3 oznaczone 5) na podstawie schematu połączeń pokazanych na rys.7. Rezystory umieszczone w obwodzie fotorezystora i diody ograniczają prąd płynący przez te elementy. Sygnał podawany na wejście mikrokontrolera to napięcie w zakresie 0-5V. W sytuacji kiedy czujnik widzi białą powierzchnię, promieniowanie diody odbija się od niej, polaryzuje fototranzystor, w wyniku czego przewodzi złącze C-E. Napięcie na wyjściu signal (rys.7.) ma bardzo małą wartość (co jest uzależnione od charakterystyki czujnika). W chwili gdy czujnik trafia na czarną powierzchnię, promieniowanie diody zostaje przez nią pochłonięte. Skutkiem tego jest brak polaryzacji tranzystora. Przez złącze C-E nie płynie prąd w wyniku czego na wyjściu signal (rys.7.) jest stan wysoki (napięcie ok. 5V). Cały układ z mikrokontrolerem działa na poziomach napięć zgodnych z logiką TTL (0-5V). Poniżej jest podana ch-ka prądu kolektora (fototranzystor w czujniku QRD1114) w funkcji odległości. Wynika z niej że najlepsze osiągi są w granicach 20-30 milsów. W milimetrach jest to przedział od 0,5080 do 0,7620. Czujniki te sprawdzają się nawet przy odległości do około 5mm. Silniki są sterowane za pomocą drivera zbudowanego z układu L298 i kilku elementów dodatkowych zgodnie z notą katalogową. Praca drivera jest sterowana za pomocą dwóch bitów ustawiających kierunek oraz trzeciego bitu, z którego generowany jest sygnał MSI (PWM) sterujący prędkością silnika.

rys15. Powyższy rysunek przedstawia charakterystykę wyjścia fototranzystora czujnika QRD1114 w zależności od odległości. Skala jest podana w milsach. rys.17. Charakterystyka czujników w zakresie przejścia pomiędzy powierzchniami białą i czarną.

4. Sterowanie Sterowanie robota jest zrealizowane w postaci programu napisanego w języku C i zaimplementowanego w mikrokontrolerze. Poniżej jest zamieszczony listing programu. #include <avr/io.h> #define F_CPU 16000000 #include <util/delay.h> #define bc bit_is_clear #define bs bit_is_set //konfiguracja wejść, wyjść, ustawienie timerów, inicjalizacja PWM void pwm_init() //ADC6 = 0x01; //ADC7 = 0x01; DDRC = 0xC0; DDRB = 0x06; // = (1<<PB1) (1<<PB2); DDRD = 0xF0; // = (1<<PD4) (1<<PD5) (1<<PD6) (1<<PD7); TCCR1A = (1<<COM1A1) (1<<COM1B1); TCCR1A = (1<<WGM11); TCCR1B = (1<<WGM13) (1<<WGM12) (1<<CS11); ICR1 = 1023; OCR1B = 0;//wpisujac tu odpowiednie wartosci zmieniasz kierunek //obrotu badz zatrzymijesz serwo OCR1A = 0; PORTD =(1<<4); //PORTD =(1<<4); //ustawienia bitów na atm_8 do //sterowania silnikami PORTD &=~(1<<5); //PORTD &=~(1<<5) PORTD =(1<<6); //PORTD =(1<<6) PORTD &=~(1<<7); //PORTD &=~(1<<7); void pwml(int pwm, int kierunek) //lewy silnik OCR1B = pwm; if (pwm==0) PORTD = (1<<4); PORTD = (1<<5); //zwarcie else if (kierunek==1) PORTD =(1<<4); PORTD &=~(1<<5); //przód else PORTD =(1<<5); PORTD &=~(1<<4); //tył void pwmr(int pwm, int kierunek) //prawy OCR1A = pwm;

if (pwm==0) PORTD = (1<<6); PORTD = (1<<7); //zwarcie else if (kierunek==1) PORTD =(1<<6); PORTD &=~(1<<7); //przód else PORTD =(1<<7); PORTD &=~(1<<6); //tył int main() pwm_init(); while(1) if( bs(pinc,5)) // włączenie krańcowych czujników oznacza //obrót w miejscu pwml(400,2); pwmr(700,1); goto s; if( bs(pinc,0)) pwml(700,1); pwmr(400,2); goto s; if( bs(pinc,4)) // włączenie pośrednich czujników oznacza //obrót z jazdą do przodu ograniczoną prędkością pwml(200,1); pwmr(650,1); goto s; if( bs(pinc,1)) pwml(650,1); pwmr(200,1); goto s; if( bs(pinc,3)) // włączenie środkowych czujników oznacza //jazde do przodu z pełną prędkością pwml(600,1); pwmr(600,1); goto s; if( bs(pinc,2)) pwml(600,1); pwmr(600,1); s:;

Program sterujący pracą robota składa się z części inicjując pracę silników, mikrokontrolera oraz algorytmu regulującego sterowanie silnikami. Robot posiada jedynie czujniki umieszczone w przedniej części. Na następnej stronie zamieszczony jest schemat blokowy działania programu. rys.18. Algorytm działania programu.

5. Podsumowanie Morprof jest naszym pierwszym wspólnym projektem dla tego też konstrukcja oraz wykonanie nie jest idealne. Robot jednak spełnia założone oczekiwania. Konstrukcja została wykonana w ramach możliwości oraz dostępu do poszczególnych podzespołów, komponentów a także miejsca, w którym można było wszystko poskładać i przeprowadzać niezbędne testy. Projekty schematów oraz płytek drukowanych zostały wykonane w programie EAGLE. Jest to środowisko dostępne bezpłatnie w wersji demo, w którym na podstawie stworzonego schematu ideowego można utworzyć projekt płytki. Płytki były w pełni projektowane oraz wykonywane przez nas. Wykonanie ich nie było łatwym zadaniem szczególnie w przypadku płytki z mikrokontrolerem. Układ atmega 8 jest w wersji smd co dodatkowo zwiększyło trudności polutowania całego układu. Paleta czujników została zamocowana w taki sposób, aby można było doregulować odległość czujników od powierzchni. Miało to na celu otrzymanie jak najdokładniejszych pomiarów z czujników. Kwestia sterowania odbywa się metoda spełnienia warunków. Warunki uwzględniają hierarchie ważności czujników, tzn. odczyt znajdujący się bliżej krańca jest ważniejszy od odczytu znajdującego się bliżej środka. Algorytm działania uwzględnia możliwość wystąpienia poślizgów w czasie wykonywania obrotów, skutkiem tego pełna efektywna prędkość wysterowania silników uzyskiwana jest jedynie przy załączonych środkowych czujnikach, przy większych prędkościach pokonywania zakrętu robot ma tendencje do wypadania z trasy na skutek konieczności zrównoważenia zbyt dużej wartości prędkości. W początkowym założeniu chcieliśmy zastosować sterowanie za pomocą regulatora PID. Doświadczenia pokazały że bez zastosowania enkoderów w celu zbierania informacji o aktualnej prędkości, regulacja za pomocą regulatora jest niepraktyczna. Układ wykorzystuje 6 czujników podłączonych w sposób podany na rysunku poniżej.

rys.16. Wyprowadzenia konkretnych pinów z układu. Czujniki są podłączone od pinu PC0 do pinu PC5 włącznie. Na pinach PB1 i PB2 są wyprowadzone sygnały MSI (PWM). Piny PD5, PD4, PD7 i PD6 służą do ustawiania kierunku obrotów silników. W projekcie nie wykorzystaliśmy pinów ADC6 i ADC7 ale są podpięte do wejść mikrokontrolera i wyprowadzone w celach ewentualnej modernizacji. Czujniki są podpięte do portu C mikrokontrolera który w zależności od konfiguracji może służyć jako wejście cyfrowe (stany 1 lub 0) a także jako wejście przetwornika A/C.