14 listopada 2015

line follower - czyli moje początki z robotyką

Mój pierwszy line follower był mocno przekombinowany, w sumie miała to być platforma uniwersalna - rozwojowa, na której mogłem tworzyć różne roboty. Całość składała się  z płyty głównej do której były przytwierdzone dwa przerobione serwa modelarskie
oraz dwa koszyki na akumulatorki typu CR123 i stabilizator napięcia. Druga płytka zawierała całą logikę, a trzecia czujniki. Wszystkie płytki łączyło się za pomocą goldpinów. Niestety, ale jeśli coś jest do wszystkiego, to jest też i do niczego. Tak właśnie było w tym przypadku. Całość nigdy nie działała prawidłowo. Po przerwie, która trwała ok. półtora roku postanowiłem podjąć się jeszcze raz zadania stworzenia swojego pierwszego robota, którym miał być line follower.

Całość podzieliłem na dwie płytki. Płytka główna na pokładzie posiada mikrokontroler Atmega8, który jest taktowany zewnętrznym kwarcem o częstotliwości 16MHz. Silnikami steruje popularny mostek H - L293, który pozwala na obciążenie ciągłe jednego kanału do 0.6A oraz chwilowe do 1.2A. Mostek H jest podłączony w taki sposób, że można wykorzystać wszystkie jego możliwości: obroty lewo i prawo oraz regulacja obrotów za pomocą PWM. Dodatkowo dodałem dwie czerwone diody LED 3mm, którymi można sterować za pomocą mikrokontrolera - są umieszczone z przodu. Na tyle umieściłem wyłącznik główny oraz dwa przyciski typu tackswitch, które jak będzie można zauważyć na schemacie zostały podłączone do portów którymi programuje się mikrokontroler. Polecam takie podłączenie przycisków, ponieważ w żaden sposób nie kolidują z programowaniem, no chyba, że zostały wciśnięte podczas programowania :) Na dodatek dodałem jeszcze odbiornik podczerwieni, który umożliwia sterowanie robotem za pomocą pilota do telewizora oraz umieściłem na zewnątrz wyjście UART wraz z pinami zasilnia 5V. Głównym założeniem poru UART było debugowanie programu, bo jak widać podłączenie do niego odbiornika bluetooth byłoby dość uciążliwe, przeszkadza w tym płytka z akumulatorkami. Na płytce tej znalazło się też miejsce na zieloną diodę LED, która informuje o zasilaniu płytki.
Projekt płytki line follower-a (wielkości podane w mm)

Istnieje również możliwość pomiaru napięcia akumulatorka - dzielnik napięcia składa się z dwóch rezystorów, które są podłączone do mikrokontrolera za pomocą portu C6. Pozwala to na odcięcie obciążenia jeśli napięcie pakietu spadnie niebezpiecznie nisko. Stabilizator napięcia znajduje się od strony ścieżek.  Za pomocą złącza kanada - 10 pin realizowane jest połączenie płyty głównej z płytką czujników. Czujniki zostały podłączone do poru C mikrokontrolera, co pozwala również na pomiar analogowy.
Projekt płytki z czujnikami odbiciowymi  (wielkości podane w mm)

Płytka z czujnikami składa się z pięciu czujników typu CNY70. Dwa czujniki końcowe zostały przesunięte trochę w tył. Odległość tych czujników od siebie jest również mniejsza niż pozostałych. Czujniki zostały zamontowane od strony ścieżek. Rezystory podciągające linie danych mają wartość 10K i są podłączone do +5V. Jeśli czujnik wykryje białą powierzchnię (odbije się światło z diody emitującej światło podczerwone, które następnie trafi do fototranzystora) to stan na mikrokontrolerze jest odczytywany jako GND, jeśli czujnik nie wykryje białej linii, wówczas na pinie mikrokontrolera pojawia się +5V. Czujniki znajdują się ok. 2mm nad powierzchnią. Obie płytki są połączone ze sobą za pomocą przewodu z dwoma wtyczkami typu kanada 10pin - te same, które służą do programowania mikrokontrolera ;)
Robot line follower
Do połączenia mechanicznego obu płytek użyłem kawałku plastiku, o ładnym, niebieskim kolorze ;), który został przymocowany za pomocą śrubek 3mm.
Do napędu użyłem wcześniej przerobionych już przeze mnie serwomechanizmów modelarskich TowerPro SG-90 micro, które zostały przymocowane za pomocą paska blaszki o grubości ok. 0.8mm i przytwierdzone do płyty głównej za pomocą śrubek 3mm. Koła napędowe zostały zrobione z teflonu. Jako, że ten materiał jest ślizgi zostały wyżłobione rowki, w których zostały umieszczone gumowe uszczelki. Koła napędowe mają wielkość 4cm. Koło przednie zostało zrobione z koła dociskającego taśmę kasety od magnetofonu ;) Kółko jest gumowe, a jego wielkość to ok. 12mm. Ramię kółka ma przesunięty środek ciężkości do przodu, dzięki czemu kółko podąża za kierunkiem jazdy. Kółko to jest zamocowane do niebieskiego plastiku, łączącego dwie płytki - blisko płytki z czujnikami.
Dla potrzeb tego projektu stworzyłem również pakiet akumulatorków. Składa się z płytki PCB oraz dwóch gniazd dl akumulatorków typu CR123.
Projekt płytki z akumulatorkami CR123  (wielkości podane w mm)

 Zdecydowałem się na taki wybór, ponieważ każdy akumulatorek ma napięcie 3.7V, co w przypadku połączenia ich szeregowo daje nam napięcie 7.4V.  Oba te napięcia są wyprowadzone na złączu. Dodałem również zieloną diodę LED informującą o napięciu oraz dwa złącza goldpin, za pomocą których można wyłączyć pakiet. Oba akumulatorki posiadają również zabezpieczenie przed rozładowaniem, przeładowaniem i zwarciem.
Ukończony line follower
Płytka z akumulatorkami została przytwierdzona do płyty głównej za pomocą śruby 3mm. Na chwilę obecną algorytm robota jest bardzo prosty - każdy czujnik ma przypisany wartość wypełnienia PWM dla poszczególnego silnika. Myślę, że algorytmem zajmę się w zimę, jak będzie trochę więcej czasu ;) Robot ma całkowitą długość ok. 18.5cm, szerokość w najszerszym miejscu z kółkami: 14cm i wysokość ok. 4.5cm - wraz z akumulatorami.
Robot oczywiście nie osiąga jakiś super prędkości, ale na początek przerobione serwomechanizmy są wystarczające.
Schematy:
Schemat płyty głównej line follower-a

Schemat czujników line follower-a

Części elektroniczne:
Płyta główna: mikrokontroler Atmega8, mostek H L293D, stabilizator napięcia LM7805DT, rezystory: 100R, 2x 330R, 1K, 15K, 47K, 2x 10K, kondensatory: 100uF, 47uF, 2x 10uF, 22uF, 4,7uF, 7x 100nF,  2x 22pF, 3 diody LED 3mm, odbiornik podczerwieni TSOP2236, 2x GN. IDC 10pin. kwarc 16Mhz, 2x tact switch, dławik 10uH,  wtyki goldpin. 
Płytka z czujnikami: 5 czujników CNY70, rezystory: 5x 10K i 5x 220R, GN. IDC 10pin.

Wzór ścieżek przygotowanych do naniesienia na płytkę PCB, opis, schemat - dot. płyty głównej LF'a, płytki z czujnikami i koszyka dla aku. CR123.

1 komentarz:

Aby uniknąć spamu, komentarze na blogu pojawiają się po zatwierdzeniu.