Serwisy partnerskie:
Close icon
Serwisy partnerskie

Robot mobilny

Article Image
Elmax
Niniejszy artykuł prezentuje budowę krok po kroku prostego robota mobilnego. Chyba każdy kiedyś marzył o zbudowaniu konstrukcji, która by wyręczała go przy obowiązkach domowych, ale takie zadanie niestety jest zbyt trudne. Przedstawiany projekt to prosty robot dla hobbysty, chcącego rozwijać swoje umiejętności w dziedzinie mobilnej robotyki amatorskiej. Uważam, że jest to swego rodzaju zestaw uruchomieniowy dla prostego robota mobilnego.

Jak to działa?

Przy projektowaniu układu moim głównym założeniem było stworzeniem uniwersalnej, nieskomplikowanej elektroniki dla robota. Jej uniwersalność miała polegać na łatwej rozbudowie i na prostym dostosowywaniu do nowej mechaniki (silniki, nowe elementy wykonawcze itd.). Główna funkcjonalność skupiona jest na pierwszej z dwóch płytek. Jej schemat widoczny jest na rysunku 1.

Centralnym elementem jest mikroprocesor AVR Atmega16, który połączony jest z układem MAX232 oraz ekspander portów sterowany przez I²C PIC8574T. Oprócz wyżej wymienionych trzech układów można znaleźć jeszcze wyświetlacz LCD 2×16 znaków, blok zasilania, kilka kontrolek oraz masę złączy służących do rozbudowy.  Całość miała być zasilana z pakietu li-pol 7,4V, więc zastosowałem stabilizator L7805 oraz kilka kondensatorów, które filtrują stabilizowane napięcie, znajdują się one zarówno przed i za stabilizatorem. Nie należy z nich rezygnować, gdyż mogą nastąpić problemy podczas zasilania silników z tego samego źródła zasilania, co elektronika. Tak jak było już wspomniane, głównym układem jest ATmega16 z wyprowadzonym przyciskiem do resetu, złączem ISP oraz kwarcem. Prócz tych podstawowych elementów, na płytce można znaleźć następujące złącza: 2×5 pin – uniwersalna linia zasilania 5V, 2×5 pin – złącze do sterownika silników, 1×3 pin – RS232, 1×3 pin – do podłączenia serwomechanizmów (2 sztuki), 1×2 pin – zasilanie serwomechanizmów, 1×4 pin – wyjścia ekspandera portów (2 sztuki), 1×16 pin – wyświetlacz LCD 2×16 znaków zgodny ze sterownikiem HD44780, 1×3 pin –  czujnikach Sharp np.: GP2Y0A02Y (2 sztuki), 2×2 pin – miejsce dla zworki łączącej interfejs RS232 z układem MAX232, 1×2 pin – I²C, 1×2 – zasilanie silników sterownych przez osobny moduł, 1×6 pin – porty I/O (ADC), 1×2 pin – złącze zasilania całości, 1×2 pin – złącze dla przełącznika.  Druga płytka to sterownik silników. Jego schemat zaprezentowany jest na rysunku 2.

Sterownik silników to osobny i niezależny moduł oparty na układzie L298N. Pozwala on na niezależne sterowanie kierunkiem obrotów silnika i ich prędkością. Całość jest prostym układem wzorowanym na schematach z noty katalogowej układu. Warto zwrócić uwagę, że L298N na wyjściach nie ma diod zabezpieczających przed prądami wstecznymi wytwarzanymi przez silnik. Należy dodać 8 diod na wyjściu układu (po dwie na każde wyjście), tak jak widać to na schemacie. Producent w nocie katalogowej zaleca użycie szybkich diod, ja użyłem diody 1N5819. Układ L298N używany był przeze mnie wielokrotnych i to w różnych formach, jednak męczyło mnie już to, że przy każdym rozmontowywaniu układu (wyjmowaniu płytek z obudowy) wyjęcie sterownika silników należało poprzedzić wypięciem aż 9 przewodów (3 na każdy silnik, masa, zasilanie silników, zasilanie logiki układu), dlatego w tym projekcie sterownik z główną płytką postanowiłem połączyć za pomocą 10-żyłowej taśmy i złączy takich jak do programatora (które nie umożliwiają odwrotnego podłączenia). Aby nie robić zamieszania z jednym kablem, który miałby doprowadzać zasilanie do silników, zrobiłem dla niego osobne złącze na płycie głównej (złącze ZAS_SIL), aby więc połączyć silniki z płytą główną, należy: podłączyć je do modułu z L298N, moduł połączyć taśmą z płytą główną, do złącza JP15 na płycie głównej dołączyć zasilanie dla silników. Zaprojektowane w programie Eagle płytki drukowane pokazane są na rysunkach 3 i 4.

Czujniki

W opisie nie przedstawiam żadnych czujników, bo tak jak wspomniałem, układ uważam za zestaw uruchomieniowy i każdy może dołączyć do niego to, co mu się podoba. Na płytce głównej znajdują się dwa złącza do czujników analogowych np. do dalmierzy SHARP. Inne czujniki można podłączyć do pozostałych portów.

Mechanika

Konstrukcja robota wykonana jest z laminatu dwustronnego pokrytego czarnym sprayem szybkoschnącym. Projekt mechaniki został wykonany w Corelu, ale można go również wykonać w dowolnym innym programie graficznym. Można też zaprojektować sobie robota w programach CAD, ja naszkicowałem później konstrukcję w Autodesk Inventor (screeny projektu widoczne są na rysunkach 5 i 6).

Następnie projekt wydrukowałem na papierze samoprzylepnym, który później nakleiłem na laminat. Wzorując się na liniach projektu wydrukowanego na papierze wyciąłem laminat najpierw małą wiertarką z tarczą tnącą, a następnie już dokładniej doszlifowałem całość pilnikiem. (Jeśli ktoś nie dysponuje akurat papierem samoprzylepnym, a robi sam płytki drukowane, może również wydrukować projekt na papierze termotransferowym, a następnie przeprasować go na płytkę, tak samo jak wzory ścieżek.) W ramie robota w odpowiednich miejscach są otwory na metalowe łączniki oraz na dwa serwomechanizmy modelarskie, napędzające całą konstrukcję. Prócz boków konstrukcji, do których przykręcane są silniki, wszystkie inne elementy są przykręcane na metalowych dystansach do płytek.  Na etapie projektowania warto też zaplanować miejsca na otwory, przez które przechodzić będą przewody, u mnie są to 4 niewielkie prostokątne otwory. Tak jak wspomniałem, napędem całości są dwa przerobione na pełny obrót serwomechanizmy modelarskie, nie miałem pod ręką żadnego ciekawego materiału na koła, więc wykorzystałem zakrętki od słoików, na które nakleiłem później gumową uszczelkę do okien o profilu E. Jako trzeci punkt podporu wykorzystałem kulę umieszczoną w łożysku, można to znaleźć w każdym markecie budowlanym.

Program

Cały urok tej konstrukcji polega na tym, że każdy, kto choć trochę potrafi programować,  może sam napisać dowolny program. Ja piszę programy w BASCOM-ie, jest to język bardzo łatwy, więc każdy na podstawie schematu konstrukcji bez problemu powinien napisać program dla robota.

Możliwości rozbudowy

Właśnie łatwość rozbudowy miała być głównym atutem tej konstrukcji. Do zwiększenia możliwości pojazdu można wykorzystać wolne porty I/O mikrokontrolera oraz RS232 i interfejs I²C. Ja nie dobudowywałem jeszcze żadnych specjalnie skomplikowanych układów, dodałem tylko enkodery – szybko przerobiony układ z czujnikami linii. W planach mam dobudowanie czujnika z komputerowej myszki optycznej, który miałby informować o realnym przesunięciu konstrukcji oraz dodanie skanera 2D opartego na 2 microserwach i 2 czujnikach optycznych Sharpa. 

Wykaz elementów
Płyta główna
 
R1, R6
1kΩ SMD 0805
R2
5kΩ
R3
50Ω
R4, R7-R9
330Ω SMD 0805
C1, C2, C7, C8, C12-C15, C17, C24, C25
100nF SMD 0805
C3, C4
100nF
C5, C8, C16, C18, C28
100µF
C9, C10
27pF SMD 0805
C11
1µF
LED1 (Power)
LED 3mm
LED2 (Kontrolka)
LED 3mm
LED3 (RXD kontrolka)
LED 3mm
LED4 (TXD kontrolka)
LED 3mm
IC1
L7805
IC2
MAX202/232 SO16L
IC3
ATmega32
IC4
PCF8574T SO16W
U1
2×16 LCD
JP1
goldpin – 1×5
JP2,JP5,JP11,JP16
goldpin – 1×3
JP3 (Zas. serwa)
goldpin – 1×2
JP4 (AVR_ISP)
goldpin – 2×5
JP6
goldpin – 1×6
JP7, JP15
goldpin – 2×5
JP8 (Zas. silnika)
goldpin – 1×2
JP9, JP10
goldpin – 1×4
JP12 (SUPPLY)
goldpin – 1×2
JP13 (SW)
goldpin – 1×2
JP14 (I2C)
godlpin – 1×2
JP17 (RS232)
goldpin – 1×3
JP18 (RS_zworka)
goldpin – 2×2
L1
dławik 10µH
Q1
4-16MHz lub brak
RESET
microswitch 5mm
S_PB2
mircoswitch 5mm
Sterownik silników
 
D1-D8
1N5819
IC1
L298 MULTIWATT-15 DUAL FULL-BRIDGE DRIVER
S1, S2
złącza 1×2, np. typu ARK
SV1
goldpin 2x5
Galeria
Firma:
Tematyka materiału: AVR, Atmega16, MAX232, I2C, PIC8574T, LCD, GP2Y0A02Y, BASCOM
AUTOR
Źródło
Elektronika dla Wszystkich styczeń 2010
Udostępnij
Zobacz wszystkie quizy
Quiz weekendowy
Edukacja
1/10 Jak działa rezystor LDR?
UK Logo
Elektronika dla Wszystkich
Zapisując się na nasz newsletter możesz otrzymać GRATIS
najnowsze e-wydanie magazynu "Elektronika dla Wszystkich"