Elektronika – NRG Robotics


Elektronika – NRG Robotics

Tworzenie elektroniki do robota to skomplikowane zadanie. Szczególnie, jeśli jego ostateczna forma zmienia się z dnia na dzień. W początkowej fazie projektu założenia dotyczące tego działu NRG Robotics były bardzo ogólne. Zakładaliśmy wykorzystanie mocnej jednostki DSP jako głównego CPU, aby zapewnić maszynie pełną możliwość rozbudowy. W grę wchodziła analiza obrazu z kamery prowadzona w czasie rzeczywistym (z tej części pozostała tylko funkcja akwizycji obrazu). Myśleliśmy o skomplikowanej sieci czujników będących "oczami" naszego robota. Przez moment zastanawialiśmy się nawet, czy nie wyposażyć go w magistralę PCI i nie zintegrować z kieszonkową wersją komputera PC. Wraz z upływem czasu i postępem w pracy nad kształtowaniem ostatecznego wyglądu całości trzeba było podjąć ważkie decyzje. Gdy pojawiła się koncepcja robota sześcionożnego, zaczęliśmy wstępne prace.

1.Założenia

System ma być hierarchiczny:
– procesor główny (DSP) koordynujący algorytmy poruszania się i wszelkie procesy decyzyjne,
– układ podprocesorów (słabsze mikrokontrolery Atmela lub Motoroli) – prawdopodobnie jeden na całą nogę (docelowo 6) – każdy sterujący dwoma serwonapędami.

Mikrokontrolery Atmela posiadały istotną zaletę. Jeszcze blisko rok temu planowaliśmy rozwiązanie sterowania za pomocą serwonapędów. Wbudowany w te jednostki sterownik PWM (Puls Width Modulation – modulacja szerokości impulsu) pozwalał na dość proste rozwiązanie problemu pozycjonowania silników. Napędy, którymi się interesowaliśmy posiadały też wbudowane enkodery, co rozwiązywałoby problem sterowania w układzie zamkniętym.

Początkowo zastanawialiśmy się, czy tak podstawowy układ jak ATMega8 ma wystarczającą moc obliczeniową by sprostać naszym wymaganiom. Testy szybko jednak rozwiały nasze wątpliwości.

2. Pierwsze koncepcje

Gdy wstępnie dobraliśmy elementy sterujące, należało się zastanowić nad schematem całego układu. Konieczne było zastosowanie jednej ze standardowych magistral przemysłowych. Myślę, że nie muszę tłumaczyć, dlaczego. Uwagę skupialiśmy głównie na RS-232 i RS-485, ale padły też propozycje zastosowania CAN-a albo ISA. RS był nam dobrze znany, CAN byłby zgodny z najnowszymi trendami w robotyce i automatyce, a ISA dałaby łatwość w podłączeniu do PC. Co z tego wynikło? Wybraliśmy I2C. Standard przyjazny, stosunkowo prosty w obsłudze i niekłopotliwy elektrycznie. Możliwość obsługi dużej ilości masterów/slave’ów, wystarczająca przepustowość i wbudowana w ATMegę obsługa sprzętowa. Czego chcieć więcej?

Oto jak wyglądała pierwsza koncepcja elektroniki:

[rys.1]

Myślę, że nie wymaga dodatkowego komentarza. Uwagę może zwracać dość ogólne wyrażenie "układ mocy". Pod tą tajemniczą nazwą kryć się miał zaproponowany i wykonany przez nas sterownik korzystający z mostka H. W tym momencie podjęliśmy wysiłki właśnie w tym kierunku. Po blisko dwóch tygodniach intensywnej pracy pojawiły się pierwsze wątpliwości. Mechanicy zaczęli coś mówić o silnikach krokowych. Kolejne projekty sterownika okazywały się nieefektywne energetycznie lub zbyt skomplikowane. Po części musimy przyznać, że energoelektronika nie była i nie jest naszą pasją. Prace nad tym elementem zostały zawieszone. Jak się okazało, już na dobre.

Zaczęliśmy rozważać inne napędy. Hydraulika i pneumatyka wydawały się idealne do tego zadania. Niestety koszty całego przedsięwzięcia w przy takim rozwiązaniu stałyby się właściwie nierealne. Trzeba było zejść na ziemię. Przełomem okazała się decyzja o zastosowaniu silników krokowych. Właściwie same zalety:

– Pewność pozycjonowania – w znamionowych warunkach pracy
– Wysoka rozdzielczość – 1.8st na krok
– Małe wymiary oraz niewielka masa
– Odpowiedni stosunek pobieranej mocy do wyjściowego momentu
– Łatwość sterowania i duża dostępność
– Oszczędność finansowa!

3. Czas na decyzję!

Czas uciekał, trzeba było powoli zamykać część projektową. Po dość długich naradach i rozważeniu wszystkich "za" i "przeciw" zdecydowaliśmy, że nie będziemy sami tworzyć sterowników. W ofercie jednej z firm na polskim rynku znaleźliśmy sprzęt, który dokładnie odpowiadał naszym potrzebom. Bipolarne sterowniki silników krokowych w całej gamie obsługiwanych prądów. Wstępne założenia co do elektroniki były gotowe. Wiedzieliśmy, czym sterujemy i jak. Dobór konkretnych modeli był nieistotny. Idea sterowania nie zmieniała się. Finalny efekt naszej pracy przedstawiał się następująco:

[rys.2]

Sygnały CLK – zegarowy, EN -enable – sygnał zezwolenia i DIR – direction -kierunek ruchu to cyfrowe sygnały podawane na sterownik (SMC61/63).

Jednostka DSP to bardzo wydajny procesor firmy Texas Instruments umieszczony na płytce starter kit’a DSK6713. Sprzęt o ogromnych możliwościach, posiadający bogate wyposażenie peryferyjne. Dodatkowo łatwy dostęp do niego pomógł nam w podjęciu tej decyzji.

Jak widać, zrezygnowaliśmy z enkoderów. Przyczyn jest wiele, główna z nich to aspekt finansowy. Zwiększenie kosztów o blisko połowę nie wchodziło w grę. Dlaczego zdecydowaliśmy się na sterowanie w układzie otwartym? Zastosowanie enkoderów zwiększałoby masę nogi, co pociągnęłoby za sobą konieczność zwiększenia mocy silników odpowiadających za ruch postępowy. Dodatkowo, silniki krokowe w odpowiednich warunkach zapewniają pewność pozycjonowania. Aktuator udało się finalnie wyposażyć w krańcówkę, która będzie wykrywała dotknięcie stopy do podłoża. Czy to wystarczy? Wszystko okaże się w testach.

4. Płytka mikrokontrolera.

Kolejny etap to już praktyka. Wykonanie fizycznego egzemplarza płytki drukowanej dla układu ATMegi. Nie chcę was zanudzać szczegółami, przedstawiać kolejnych wersji i usprawnień. Dość powiedzieć, że finalny produkt naszych starań na dzień dzisiejszy przedstawia się następująco:

– Układem steruje mikrokontroler firmy Atmel Atmega8L TQFP32 – wersja energooszczędna, obudowa tiny quad flat package, 32 piny.

– Układ zasilany jest z zewnątrz napięciem 5V, ścieżki zasilania (VCC) i GND, (czyli masa) muszą być grubsze, gdyż płyną nimi dużo wyższe prądy niż przez zwykłe ścieżki sygnałowe.

– Kontroler dla wykorzystania wszystkich pinów wymaga podwójnego zasilania – analogowego i cyfrowego. Oba z nich zostały połączone i zasilone z jednego źródła. Niestety AVCC (analog) wymaga lepszej stabilności, stąd widoczny na rysunku dławik (cewka z zaledwie jednym zwojem – indukcyjność rzędu mikrohenrów), która "wygładza" ewentualne wahania napięcia.

– Wtyczka magistrali I2C – linie SDA i SCL, VCC i masa. Dodatkowo dwa rezystory pull-up wymagane w standardzie I2C.

– Wtyczki D_AKT i D_KROK – sygnały wyjściowe dekoderów obu silników i GND – elementy do zmiany

– Wtyczka interfejsu SPI, który posłużył nam do zaprogramowania całego układu (również określona w standardzie).

– Wtyczki SMC61 i SMC63 – wyjścia cyfrowych sygnałów sterujących driverami obu silników DIR – kierunek, EN -zezwolenie pracy (Enable), CLK -wyjście zegarowe, GND – masa.

– Oscylator i kondensatory C1 i C2 – układ zewnętrznego oscylatora (14Mhz).

– Wtyczka EXT – wyprowadzenie pinów odpowiedzialnych za przerwania zewnętrzne dla kontrolera i masa, dodatkowo PD4 – wolny pin kontrolera wyprowadzony dla możliwości debugowania.

– Kondensatory C3, C4, C5 – umieszczone pomiędzy linią zasilania (VCC/AVCC) i masy (GND) – pozwalają one na uniknięcie zakłóceń, które z pewnością mogłyby być sporym problemem w tym układzie.

– Przycisk S1, rezystor R1 – układ resetu całego układu mikrokontrolera.

– Rezystory R2, R3 – rezystory podciągające (pull-up) linie magistrali i2c do stanu wysokiego (+5V) – wymóg standardu.

– Rezystory R4-R7 – rezystory podciągające (pull-up) linie wyjść cyfrowych dla sterowników do stanu wysokiego (+5V) – zastosowane dla uniknięcia stanów nieokreślonych na wyjściu układu.

– PWR – dioda sygnalizująca obecność zasilania

– D1, D2 – diody kontrolne, służące do debugowania.

– Dławik – dławik o małej indukcyjności rzędu mikrohenrów filtrujący napięcie zasilania części analogowej.

Wykaz komponentów płytki:

IC1 Mikrokontroler Atmega8L TQFP32

Oscylator Oscylator kwarcowy 14 Mhz

C1 Kondensator ceramiczny 22 pF
C2 Kondensator ceramiczny 22 pF
C3 Kondensator ceramiczny 100 pF
C4 Kondensator elektrolityczny 100 pF
C5 Kondensator elektrolityczny 100 pF

R1 Rezystor SMD 10kOm
R2 Rezystor SMD 10kOm
R3 Rezystor SMD 10kOm
R4 Rezystor SMD 10kOm
R5 Rezystor SMD 10kOm
R6 Rezystor SMD 10kOm
R7 Rezystor SMD 10kOm

D1 Dioda SMD
D2 Dioda SMD
PWR Dioda SMD

Dławik Dławik

S1 Przycisk Reset Omron B3F-1020

D_AKT [nazwa do zmiany] goldpin 1 X 03
D_KROK [nazwa do zmiany] goldpin 1 X 03
EXT Przerwania zewnętrzne + debug goldpin 1 X 04
I2C Magistrala i2c (we/wy) goldpin 2 X 04
POWER Zasilanie goldpin 1 X 02
SMC61 Sygnały do sterownika SMC61 goldpin 1 X 04
SMC63 Sygnały do sterownika SMC63 goldpin 1 X 04
SPI Wejscie do programowania uC goldpin 1 X 08

Zdjecia dostępne tutaj

Autor: Maciej "Misha" Kubica

Źródło: NRG

Zobacz też:


Roboty coraz bliżej ludzi dzięki mięśniom inspirowanym naturą
ModuBot – elastyczna robotyka modułowa od MultiProjekt
Największe Targi Automatyki Przemysłowej i Robotyki w Polsce!
Czy roboty przewyższają koszty zatrudnienia?
Dlaczego pasta lutownicza często sprawia problemy techniczne?
Grupa RENEX na stoisku Yamaha podczas targów MOTEK 2024
Sztuczne oko zrewolucjonizuje widzenie robotów
Stwórz przedsiębiorstwo przyszłości z naszym audytem technologicznym – wywiad z MultiProjekt Automatyka