MCAR Robot mobilny z procesorem AVR Atmega32 Opis techniczny Jakub Kuryło kl. III Ti Zespół Szkół Zawodowych nr. 1 Ul. Tysiąclecia 3, 08-530 Dęblin e-mail: jkurylo92@gmail.com 1
Spis treści 1. Wstęp.. 3 2. Opis elektroniki.. 4 2.1 Układ zasilania 4 2.2 Układ sterowania silnikami DC. 4 2.3 Układ sterowania silnikiem krokowym. 5 2.4 Wyświetlacz. 5 2.5 Czujnik.. 6 2.6 Pomiar napięcia baterii.. 6 2.7 Spis połączeń pinów mikrokontrolera.. 7 2.8 Atmega32. 8 3. Opis działania robota 9 4. Zdjęcia. 9 2
1. Wstęp Robot MCAR jest to pojazd autonomiczny oparty na podwoziu samochodu elektrycznego (zabawki zdalnie sterowanej) sterowany za pomocą mikrokontrolera AVR Atmega 32. Czujnikiem badającym otoczenie przed pojazdem jest Sharp GP2D120 mierzący odległość od przedmiotu w zakresie od 4 do 30 cm. Czujnik został zamocowany na podstawie przytwierdzonej do silnika krokowego unipolarnego dzięki któremu możliwy jest pomiar w zakresie 180 o. Podwozie robota sterowane i napędzane jest za pomocą silników elektrycznych prądu stałego DC. Za sterowanie silnikami DC odpowiada mostek H w postaci ukaldu L293DNE, sterowanie silnikiem krokowym odbywa się bezpośrednio z mikrokontrolera poprzez układ ULN2003APG będący zestawem 7 tranzystorów NPN w układzie Darlingtona. Procesorem całego układu jest mikrokontroler Atmega32 taktowany wewnętrznym oscylatorem 4MHz. Posiada on 32kB pamięci flash przechowującej program, 1024 Bity pamięci EEPROM i 2kB pamięci SRAM. Dodatkowo zawiera 8 kanałów 10 bitowych analogowo cyfrowego konwertera (ADC), 4 kanały PWM (Modulacji szerokości impulsu). Powyżej wypisane cechy mikrokontrolera,w głównej mierze ilość pamięci flash i duża liczba wyjść programowalnych zadecydowały o wybore tego, a nie innego mikrokontrolera. Elektronika zasilana jest napięciem stałym +5V podawanym z dwóch stabilizatorów: LM78S05 o wydajności prądowej do 2A zasilającym silniki sterowania i napędu jak i silnik krokowy, 78M05CDT o wydajnośći prądowej do 0,5 A zasilającym elektronikę sterującą: procesor, czujnik, układy sterujące silnikami. Źródłem zasilania jest pakiet 6 akumulatorków o łącznej pojemności 1,3Ah i napięciu 7,2V. 3
2. Opis elektroniki 2.1 Układ zasilania Układ zasilania oparty jest na 2 stabilizatorach napięcia: LM78S50 i 78M05CDT, stabilizujących napięcie do wartości +/- 5V. Na wejściu jak i wyjściu układów znajduje się zestaw kondensatorów wygładających napięcie dla uniknięcia skoków napięcia co w efekcie mogło by prowadzić do restartowania procesora. Źródło zasilania podłączane jest do wejścia ZAS+ i ZAS-. Wyjście PWR2 jest doprowadzone bezpośrednio do układów sterowania silnikami. Wyjście VCC zasila układy logiczne i czujnik odległości. 2.2 Układ sterowania silnikami DC Sterowanie silnikami prądu stałego odbywa się za pośrednictwem mostka H, układu L293DNE. Układ ten posiada 3 punkty zasilające logikę układu podłączone do wyjścia VCC ukłądu zasilania i jeden punkt zasilania silników podłączony do PWR2 wyjścia ukałdu zasilania. Cztery wyjścia 1Y, 2Y, 3Y, 4Y słóżą do podłączenia silników DC. Wejścia 1A, 4A słóżą do sterowania. Podanie napięcia na jedo wyjście z pary (para: 1A z 2A i druga 3A z 4A) powoduje uruchomienie silnika (M1/M2) w określonym kierunku. Pozostałe 4 punkty GND to masa układu L293DNE. 4
2.3 Układ sterowania silnikiem krokowym Sterowanie silnika krokowego unipolarnego polega na sekwencyjnym podawaniu napięcia na wszystkie 4 cewki silnika. Układ ULN2003APG ma za zadanie podawać napięcie z PWR2 układu zasilania na odpowiednie cewki poprzez sterowania mikrokontrolerem. Jest to rozwiązanie powrzechnie stosowane ze względu na małą wydajność prądową portów I/O mikrokontrolera. 2.4 Wyświetlacz Wyświetlacz 2x16 znaków zastosowany w pojeździe ma za zadanie reprezentację wyników odczytu czujnika i innych danych potrzebnych w procesie projektowania oprogramowania dla procesora. Wyświetlacz podłączony jest do 6 wyjść procesora. Wejścia wyświetlazcza to: E (enable) uruchomienie wyświetlacza, RS komunikacja z procesorem wyświetlacza, D4 D7 linie danych. Dodatkowo został umieszczony potencjometr 10kOhm słóżący do regulowania kontrastu wyświetlacza. 5
2.5 Czujnik Czujnik dokonujący pomiaru odległości od przeszkody Sharp GP2D120 posiada 3 piny podłączeniowe: 1 VCC (zasilanie), 2 GND (masa), 3 VO (Voltage Output, napięcie wyjściowe). Wyjście VO jest podłączone bezpośrednio do portu ADC procesora. 2.6 Pomiar napięcia baterii Elektronika robota została wyposażona w układ monitorujący napiecie baterii. Jest to rezystorowy dzielnik napięcia przez 10. Podłązcony bezpośrednio do PWR1. 6
2.7 Spis połączeń pinów mikrokontrolera. Lp. Nazwa pinu Połączony z 1 PA0 DB7 wyświetlacza 2 PA1 DB6 wyświetlacza 3 PA2 DB5 wyświetlacza 4 PA3 Czujnik SHARP 5 PA4 Czujnik 1 - gniazdo 6 PA5 Czujnik 2 gniazdo 7 PA6 Czujnik 3 gniazdo 8 PA7 Dzielnik napięcia 9 PB0 RS wyświetlacza 10 PB1 E wyświetlacza 11 PB2 DB4 wyświetlacza 12 PB3 L293DNE 13 PB4 NC 14 PB5 Gniazdo programatora 15 PB6 Gniazdo programatora 16 PB7 Gniazdo programatora 17 PC0 NC 18 PC1 NC 19 PC2 NC 20 PC3 NC 21 PC4 ULN2003APG 22 PC5 ULN2003APG 23 PC6 ULN2003APG 24 PC7 ULN2003APG 25 PD0 Gniazdo transmisji danych 26 PD1 Gniazdo transmisji danych 27 PD2 NC 28 PD3 NC 29 PD4 L293DNE 30 PD5 L293DNE 31 PD6 NC 32 PD7 L293DNE *NC No Connection 7
2.8 Atmega32 8
3. Opis działania robota Czujnik sharp GP2D120 dokonuje pomiaru kąta odbicia wiązki światła od przedmiotu i zwraca na wyjściu sygnał analogowy w postaci napięcia w zakresie od 0,4 do 3V. Napięcie to, jest mierzone przez przetwornik analogowo cyfrowy ADC. Funkcja getadc() języka Bascom zwraca wartość typu Word gdzie przykładowo 8 to brak przeszkody, a 256 to przeszkoda na odległość ok. 10 cm od czujnika. Proram wsadowy mikrokontrolera posiada funkcję skanowanie() która wysyła kolejno w określonych odstępach czasu sygnały sterowania silnikiem krokowym na którym osadzony jest czujnik. Co 4 sygnały pobierana jest wartość zwracana przez czujnik i w ten sposób robot widzi z której strony i w jakiej odległości znajduje się przeszkoda. W zależności od dokonanego odczytu (skanu terenu) wykonywana jest jazda robota. Sterowanie prędkości robota odbywa się poprzez kanał PWM (kanał modulacji częstotliwości sygnału) na odpowiednie porty mikrokontrolera podawane jest napięcie o zmiennym wypełnieniu gdzie wartość 256 to 100% wypełnienie, a 128 to już 50% wypełnienia. Opracowany algorytm analizuje dane odebrane z czujnika i steruje jazdą robota. 4. Zdjęcia 9
Czujnik Sharp GP2D120 10
Płyta główna Mikrokontroler Atmega32 11
12