Brak komentarzy »

Spis treści

  1. Wstęp
  2. Założenia projektowe
  3. Program sterujący – SCARA Control
  4. Interpolator ruchu
  5. Interfejs użytkownika
  6. Języka programowania robota
  7. Program SCARA Control w działaniu
  8. Układ sterowania
  9. Program sterujący
  10. Płytka sterująca
  11. Sterownik silnika DC
  12. Interfejs wejść/wyjść
  13. Gotowy sterownik
  14. Układ sterowanie podczas pracy


Wstęp

Ponieważ studiowałem na wydziale Mechanicznym Politechniki Łódzkiej w trakcie studiów zrobiłem wiele projektów związanych z konstrukcjami mechanicznymi. Stojąc przed wyborem tematu na pracę dyplomową wiedziałem, że sprowadzi się on do projektu jakiegoś elementu obrabiarki lub robota. Na szczęście za sprawą mojego promotora oraz zainteresowań programowaniem jak i elektroniką dostałem propozycję zbudowania od podstaw nowego układu sterowania do znajdującego się na uczelni modelu zrobotyzowanego stanowiska pomiarowego. Ponieważ nie jestem zwolennikiem robienia odtwórczej pracy która później idzie w niepamięć i leży latami w teczce, podjąłem się tego wyzwania. Jak się później okazało nie był to łatwy projekt ale po dwóch latach ciężkiej pracy, zakończył się pełnym sukcesem przynosząc wiele doświadczenia.

Założenia projektowe

Opracowany system programowania służy do obsługi zrobotyzowanego gniazda pomiarowego IVAX-SCARA. Opiera się o robota przemysłowego SCARA, trzy podajniki taśmowe oraz stanowisko pomiarowe. Obiektem manipulacji jest komplet tulejek o średnicy Ø 24 wykonanych z tolerancją ujemną oraz dodatnią. Zadaniem pierwszego i drugiego podajnika jest doprowadzanie badanych elementów w obszar pracy robota, następnie za pomocą manipulatora są one umieszczane na stanowiskach pomiarowych. Na podstawie średnicy kwalifikowane są jako elementy „dobre” lub o zbyt małej lub dużej średnicy. Detale zakwalifikowane jako „dobre” przemieszczane są na trzeci podajnik, który odprowadza je poza obszar pracy manipulatora.

Robot IVAX-SCARA wraz z podajnikami i stanowiskiem pomiarowym zamodelowany w programie Solid Works.


Ponieważ pierwotny układ sterowania robota był nieodwracalnie uszkodzony, został on zastąpiony nowym układem wykorzystujący nowoczesną technologię mikroprocesorową i komputerową. Składa się on z programu sterującego dla komputera PC który umożliwia symulowanie pracy robota, napisanie, przetestowanie i uruchomienie programu

Obiekt manipulacji robota.


sterującego robotem, oraz ręczne sterowanie zarówno w oknie symulacji jak i samym robotem. Ponadto komunikuje się on ze sterownikiem robota. Jest on oparty o mikrokontrolerze Stellaris® LM3S2965. Do jego zadań należy odbieranie i rozdzielanie

Ogólna struktura układu sterowania.


zadań dostarczonych z programu na komputerze PC, tj. przemieszczanie poszczególnych napędów, załączanie podajników, odczyt informacji z czujników itd. Nowy układ sterowania korzysta enkoderów oryginalnie zainstalowanych w robocie.

Program sterujący – SCARA Control

Program SCARA Control to program służący do sterowania, symulacji i programowania off-line robota IVAX-SCARA. Powstał on specjalnie na potrzeby tego robota w języku Borland C++. Jego główne cechy to:

  • Model przestrzenny robota wraz z współpracującymi z nim urządzeniami.
  • Symulacja pracy robota.
  • Programowanie robota off-line z wykorzystaniem środowiska 3D.
  • Testowanie programów do sterowania automatycznego w środowisku 3D.
  • Sterowanie robotem ręczne i automatyczne w trybie symulacji.
  • Sterowanie robotem ręczne i automatyczne w trybie pracy z robotem.
  • Komunikacja z urządzeniami współpracującymi z robotem.


Ogólny widok interfejsu użytkownika programu „SCARA Control”.


Ponadto program przystosowany jest do współpracy z nowym układem sterowania robotem. Za pomocą interfejsu USB do sterownika robota wysyłane są informacje dotyczące kolejnych pozycji napędów, sterujące pracą robota jak i urządzeniami współpracującymi. Również za pomocą interfejsu USB, równolegle podczas wysyłania, odbierane są ze sterownika informacje z czujników zainstalowanych w robocie, na podajnikach i czujnikach rozmiaru.

Praca w trybach: „Symulacja” i „Robot + Symulacja”:

  • Symulacja – podczas której, sam robot jest nieaktywny, a jego pracę możemy obserwować jedynie na ekranie monitora.
  • Robot + Symulacja – w trybie tym każda komenda wydana w programie powoduje zarówno ruch robota w symulacji jak i samego robota.


Praca w trybach sterowania: „Ręczny” i „Automatyczny”:

  • Sterowanie ręczne dostępne jest zarówno w trybach „Symulacja” jak i „Symulacja + Robot”, umożliwia przemieszczanie manipulatora w przestrzeni zarówno przy sterowaniu kątowym jak i współrzędnościowym z prędkościami od 25% do 200% (w trybie Symulacja + Robot maksymalnie 100%). Tryb ten umożliwia też na pobieranie aktualnych wartości położenia poszczególnych osi robota prosto do okna programowania. Tryb ten pozwala też na załączanie podajników taśmowych.
  • Sterowanie automatyczne, pozwala na wykonanie wcześniej napisanego programu sterującego. Program można uruchomić w trybie automatycznym, krok po kroku, a także zatrzymać w dowolnym momencie pracy a następnie kontynuować lub uruchomić od początku.


Programowanie robota odbywa się za pomocą okna „Edytor programu”. Język programowania obsługuje szereg komend pozwalających na sterowanie robotem, tworzenie logiki programu, odczyt wartości z czujników zewnętrznych jak i sterowanie urządzeniami współpracującymi z robotem.

Strukturę program SCARA Control można podzielić na pięć podstawowych modułów:

  • Główne okno programu SCARA Control.
  • Pętla główna.
  • Edytor programu wraz z analizatorem składani.
  • Panel sterowania.
  • Okno symulacji.


Główne okno programu jest elementem wiążącym wszystkie pozostałe moduły. Znajdują się w nim wszystkie podstawowe elementy programu takie jak menu główne, pasek stanu. W oknie tym znajdują się algorytmy odpowiedzialne za wczytywanie i zapis plików w edytorze programu, a także obsługa wydruku napisanego programu.

Najważniejszym elementem całego programu jest pętla główna (moduł niewidoczny dla użytkownika), znajdują się w niej najważniejsze algorytmy odpowiedzialne za sterowanie robotem. Za pomocą powiązanego z pętlą główną timer’a, wszystkie znajdujące się wewnątrz funkcje realizowane są sto razy na sekundę. Tyczy się to zarówno interpolatorów jak i komunikacji programu ze sterownikiem. Rozwiązanie takie pozwala na płynne i nieprzerwane generowanie trajektorii ruchu.

Struktura programu „SCARA Control”.


Program sterujący dla robota po napisaniu w module edytora i wciśnięciu przycisku test zostaje przesłany do analizatora składni. Po analizie zostaje przetworzony na język zrozumiały dla programu SCARA Control, a następnie zostaje przekazany do pętli głównej w celu jego realizacji.
Za pomocą modułu panelu sterowania istnieje możliwość komunikacji użytkownika z robotem. Wszystkie przyciski znajdujące się na nim po załączeniu przekazują odpowiednią informację do pętli głównej gdzie są realizowane i wysyłane w odpowiedniej formie do sterownika. Moduł ten pełni też rolę informacyjną, informuje o błędach oraz pokazuje aktualne położenie chwytaka manipulatora.

Okno symulacji wyświetla na ekranie monitora model robota wraz z jego sceną. Wyświetlanie obiektów zrealizowane jest przy wykorzystaniu bibliotek OpenGL. Dane o położeniach poszczególnych elementów robota przekazywane są z interpolatora i rysowane w oknie symulacji. Na podstawie tych samych danych porusza się rzeczywisty robot.

Interpolator ruchu

Na potrzeby sterowania robota IVAX-SCARA program sterujący SCARA Control posiada cztery interpolatory, które generują przemieszczenia dla każdego z napędów sto razy na sekundę. Zastosowany interpolator typu PTP z trapezoidalną zmianą prędkości ruchu generuje trajektorię ze stanu początkowego gdzie przyspieszenie i prędkość są równe zero, do stanu końcowego, który osiągany jest również z zerową prędkością i przyspieszeniem.

W każdym przemieszczeniu można wyodrębnić trzy fazy określane przez przyspieszenie w nich występujące:

  1. Maksymalne przyspieszenie, liniowo narastająca prędkość, czas trwania od t0 do t1.
  2. Przyspieszenie równe zero, stałą prędkość, czas trwania od t1 do t2.
  3. Maksymalne opóźnienie, liniowo malejąca prędkość, czas trwania od t2 do t3.


Wykres przebiegu prędkości i przyspieszenia.


Istnieje sytuacja gdy droga do przebycia jest na tyle krótka, że nie ma możliwości osiągnięcia żądanej prędkości ruchu. W tej sytuacji zostaje wyliczona nowa prędkość maksymalna mniejsza od zadanej, a czas trwania drugiej fazy jest równy zero (t1 = t2).

Wykres prędkości i przyspieszenia (przypadek szczególny).


Przedstawiony powyżej algorytm interpolacji został zastosowany do przemieszczenia zarówno liniowego jak i kątowego. W przypadku przemieszczenia liniowego interpolacja odbywa się w trzech osiach x, y, z. W ruchu kątowym przemieszczenie dla każdego napędu liczone jest osobno.

Interfejs użytkownika

W programie SCARA Control można wyróżnić następujące elementy interfejsu użytkownika:

  • Menu główne.
  • Okno „Edytor programu”.
  • Okno „Widok 3d”.
  • Okno „Panel sterowania”.
  • Pasek statusu.


Menu główne, znajdują się w nim wszystkie główne opcje i funkcje ułatwiające pisanie programów jak i sterowanie samego robota.

Menu główne.


Poniżej przedstawiono poszczególne komendy menu.

Menu „Plik”:

  • Nowy Program – czyści aktualne okno „Edytora programu”.
  • Otwórz program – wczytanie wcześniej zapisanego programu.
  • Zapisz program – zapisuje aktualnie napisany program do pliku.
  • Drukuj program – drukuje napisany program.
  • Zakończ – zamyka program SCARA Control.


Menu „Edycja”:

  • Cofnij – cofa ostania operacje w oknie edytora.
  • Wytnij – wycina zaznaczony fragment programu do schowka.
  • Kopiuj – kopiuje zaznaczony fragment programu do schowka.
  • Wklej – wkleja zawartość schowka.
  • Zaznacz wszystko – zaznacza cala program.


Menu „Tryb pracy”:

  • Ręczny – ręczne sterowanie robotem.
  • Automatyczny – automatyczne sterowanie robotem.
  • Symulacja – praca w trybie symulacji.
  • Symulacja + robot – praca w trybie sterowania robotem wraz z symulacją.


Menu „Widok 3d”:

  • Pole pracy – wyświetla pole pracy robota.
  • Układ współrzędnych – wyświetla układ współrzędnych dla robota.
  • Punkty referencyjne – wyświetla punkty referencyjne w symulacji.


Menu „SCARA uControl”

  • Połącz – nawiązuje połączenie z układem sterowania.
  • Port COM – wybór wirtualnego portu COM którego podłączony jest układ sterowania.


Menu „Robot”

  • Bazuj – bazowanie robota (symulacji i manipulatora).


Menu „Okno”

  • Domyślne ustawienia – przywraca oryginalne ustawienia wielkości i pozycji okien.


Menu „Pomoc”

  • SCARA Control pomoc – pomoc programu SCARA Control.
  • O programie SCARA – Informacje o programie.


Okno „Edytor programu”, służy do wprowadzania i edycji programu sterującego.

Edytor programu.


  1. Okno do edycji programu – wprowadzania i edycji programu.
  2. Przycisk „Test programu” – sprawdzenia poprawności programu.
  3. Selektor poboru współrzędnych – Pozwala na wybór formatu pobieranych współrzędnych (kątowych T1, T2, T3, z lub liniowych x, y, z, T3).
  4. Przycisk „Pobierz pozycję” – Pobiera ustaloną pozycję do okna edycji programu.
  5. Numer linii – informacja w której linii znajduje się kursor.
  6. Informacje o programie w edytorze.


Okno „Widok 3d”, przedstawia model robota wraz z jego sceną.

Widok 3d.


Okno to przedstawia przygotowaną scenę zawierającą model robota IVAX-SCARA wraz z innymi obiektami współpracującymi z robotem. Obsługa „Okna widok 3d”:

  • Lewy przycisk myszy wciśnięty na oknie – ruch myszy góra/dół lewo/prawo obrót sceny.
  • Prawy przycisk myszy wciśnięty na oknie – ruch myszy góra/dół powiększenie/pomniejszenie sceny, ruch lewo/prawo przesunięcie sceny.


Okno „Panel sterowania” , pozwala na sterowanie ruchami robota.

Panel sterowania.


Poniżej przedstawiono wszystkie funkcje panelu sterowania.

Sterowanie ręczne:

  • Tryb sterowania
    • Kątowe – wybór trybu sterowania kątowego.
    • Współrzędnościowe – wybór sterowania współrzędnościowego.
  • Teta 1 / X – sterowanie kątek T1 lub w osi X w zależności od trybu.
  • Teta 2 / Y – sterowanie kątek T2 lub w osi Y w zależności od trybu.
  • Teta 3 – sterowanie kątek T3.
  • Z – sterowanie w osi Z.
  • Chwytak: Otwarty – otwarcie lub zamknięcie chwytaka.
  • Prędkość 25% – 200% – ustawienie prędkości ruchu od 25% do 200% (do 100% w trybie Symulacja + Robot).
  • Podajnik
    • Podajnik 1 – uruchomienie/zatrzymanie podajnika 1.
    • Podajnik 2 – uruchomienie/zatrzymanie podajnika 2.
    • Podajnik 3 – uruchomienie/zatrzymanie podajnika 3.


Sterowanie automatyczne:

  • Uruchomienie programu – uruchomienie programu.
  • Uruchomienie programu krok po kroku – uruchomienie programu w trybie krok po kroku.
  • Krok w przód – wykonanie jednej komendy z programu.
  • Przerwij programu – zatrzymanie wykonywania programu.
  • Wczytaj program – wczytanie programu z edytora.
  • Aktualna komenda – aktualnie realizowana komenda.
  • Aktualny krok – aktualny krok programu.
  • Ilość kroków – ilość wszystkich kroków w programie.


Symulacja (dostępne tylko w trybie symulacji):

  • CPI – załączenie czujnika 1 na podajniku.
  • CPII – załączenie czujnika 2 na podajniku.
  • CPIII – załączenie czujnika 3 na podajniku.
  • CPIV – załączenie czujnika 4 na podajniku.
  • CRI – załączenie czujnika rozmiaru 1.
  • CRII – załączenie czujnika rozmiaru 2.


Aktualne położenie:

  • Wyświetla informację o kątach i współrzędnych chwytaka w przestrzeni.


Wejścia/wyjścia:

  • Wyświetla informację o stanach wejść i wyjść układu sterowania.


Status:

  • Zielone światło – informuje o gotowości robota do pracy.
  • Czerwone światło – informuje o błędzie.


Zatrzymanie awaryjne

  • STOP – zatrzymanie pracy układu sterowania (Aby przywrócić działanie należy uruchomić ponownie program).


Pasek statusu.

Pasek stanu.


Pasek stanu pełni role informacyjną, wyświetlane są na nim informacje o aktualnym trybie pracy, status programu SCARA Control oraz informacje o połączeniu z układem sterowania.

Języka programowania robota

Na potrzeby nowego układu sterowania robota IVAX-SCARA powstał język programowania oparty o strukturę języka C. Umożliwia on zaprogramowanie kolejnych ruchów robota, realizację instrukcji warunkowych oraz zapewnia obsługę wejść i wyjść znajdujących się w układzie sterowania. Program sterujący wprowadzany jest w oknie programu na komputerze PC, może być również napisany np. w notatniku systemu Windows. Każda wprowadzona komenda musi być zakończona znakiem średnika, komendy mogą być wpisywane w jednej linii. Poniżej przedstawiona jest cała składnia języka programowania:

// – znak komentarza, po wprowadzeniu tego znaku wszystkie znajdujące się za nim informacje (aż do znaku nowej lini) nie zostaną uwzględnione w programie.
     //to jest komentarz w programie
     //vmax(100); ta funkcja nie zostanie zrealizowana
     vmax(120); //ta funkcja zostanie zrealizowana komentarz zostanie pominięty


vmax (zmienna); – komenda ustala maksymalną prędkość dla każdego ruchu znajdującego się poniżej niej. Dla ruchu liniowego prędkość wyrażona jest w mm/s a dla ruchu kątowego stopniach/s.
     vmax(100) //ustalenie prędkości;
     lmove (0,100, 0, 15); //wykonanie przemieszczenia
     vmax(50); //ustalenie nowej prędkości
     dmove (30,0, 0, 0); //wykonanie przemieszczenia z nowa prędkością


gripper(zmienna); – polecenie zamyka chwytaka dla zmiennej = 1 a otwiera dla 0.
     gripper(1); //zamknięcie chwytaka

feeder(zmienna_1,zmienna_2); – komenda służy do załączania podajników taśmowych. Zmienna_1 przyjmuje wartości od 1 do 3 i służy do wyboru podajnika, a zmienna_2 uruchamia napęd podajnika dla zmienna_2 = 1 a zatrzymuje dla 0.
     fedder(1,1); //załącz podajnik 1
     fedder(2,0); //zatrzymaj podajnik 2


wait(zmienna); – polecenie czekaj, w zależności od wartości zmiennej następuje zatrzymanie programu na podany czas, dla zmiennej = 1 jest to 10 milisekund.
     gripper(1); //zamknij chwytak
     wait(100); //odczekaj 1 sekundę
     gripper(0); //otwórz chwytak


etykieta: – Język programowania przewiduje umieszczanie w programie etykiet, które są znacznikami skoku, tzn. określają miejsce w programie do którego ma być wykonany skok. Nazwy etykiet w programie nie mogą się powtarzać.
     start: //definicja etykiety start
     lmove(10,0,0,5); //wykonanie ruchu
     koniec: //definicja etykiety koniec
     dmove(0,0,30,0); //wykonanie ruchu


goto etykieta; – funkcja skoku do etykiety, umieszczenie tej funkcji w programie powoduje przeskok do podanej nazwy etykiety i kontynuacja wykonywanego programu od danej etykiety. W programie może być więcej niż jedno odwołanie do danej etykiety.
     start: //definicja etykiety start
     lmove(10,0,0,5); //wykonanie ruchu
     goto start; //skok do etykiety start i realizacja programu od następnej komendy, w tym wypadku lmove


if (zmienna); – funkcja warunkowa, w zależności od wartości zmiennej następuje spełnienie dla zmiennej = 1 lub pominięcie warunku dla 0. Język programowania przewiduje cztery rodzaje zmiennych dostępnych dla funkcji if, które w zależności od stanów czujników robota przyjmują odpowiednio wartości 1 lub 0, są to:

  • CTI – sygnał z czujnika na pierwszym podajniku taśmowym.
  • CTII – sygnał z czujnika na drugim podajniku taśmowym.
  • CRI – sygnał z pierwszego czujnika rozmiaru.
  • CRII – sygnał z drugiego czujnika rozmiaru.

     if(CTI) //jeśli wartość CT1 jest równa zero, wykonaj
     { //komendy pomiędzy klamrami
          lmove(100,0,-5,0);
          gripper(1);
     }


lmove (x, y, z, T3); – komenda ta realizuje przemieszczenie liniowe w układzie przyrostowym w osiach x, y i z oraz obrót chwytaka o kąt T3.
     lmove(100,0,0,5); //przemieść chwytak robota z aktualnej pozycji o 100mm osi x i obróć chwytak o 5 º

lmovea (x, y, z, T3); – komenda ta realizuje przemieszczenie liniowe w układzie absolutnym w osiach x, y i z oraz obrót chwytaka o kąt T3.
     lmovea(0,-30,0,0); //przemieść chwytak robota do pozycji 0, 30,0 i obróć chwytak do pozycji 0 º

dmove (T1, T2, T3, z); – komenda ta realizuje przemieszczenie kątowe w układzie przyrostowym o kąty T1, T2 i T3 oraz przemieszczenie w osi z.
     dmove(0,60,0,0); //zmień kąt T2 o 60 º z aktualnej wartości

dmovea (T1, T2, T3, z); – komenda ta realizuje przemieszczenie kątowe w układzie absolutnym o kąty T1, T2 i T3 oraz przemieszczenie w osi z.
     dmovea(10,30,0,0); //ustaw kąty tak jak w komendzie

Program SCARA Control w działaniu

(Polecam oglądać w wersji 720p HD)


Układ sterowania

Pierwotnie układ sterowania robota IVAX-SCARA oparty był o mikroprocesor Zilog Z80. Jedną z głównych przyczyn jego awarii była utrata zawartości pamięci EPROM, w której zapisany był program sterujący. Brak możliwości jego odtworzenia, oraz przestarzała konstrukcja spowodowała iż konieczne było opracowanie nowego układu sterowania. W wyniku analizy współczesnych mikroprocesorowych układów sterowania użyty został mikrokontroler z rdzeniem ARM. Wybrany układ to mikrokontroler Stellaris® LM3S2965 wraz z płytką testową. Wyposażony jest on w sześć modułów PWM do sterowania silnikami, ponadto umożliwia sprzętowy odczyt położenia z dwóch enkoderów. Były to kluczowe parametry które zadecydowały o wyborze tego układu. Pozostałe jego parametry:

  • 32bitowa architektura RISC.
  • Zegar 50Mhz.
  • 256kb pamięci flash.
  • 64kb pamięci SRAM.
  • Sześć modułów PWM.
  • Sprzętowa obsługa dwóch enkoderów.
  • Sprzętowa obsługa protokołu RS-232.
  • 56 dowolnie konfigurowalnych portów I/O.


Mikrokontroler Stellaris® LM3S2965 wraz z płytką testową.


Ponadto płytka testowa na której umieszczony jest mikrokontroler wyposażona w:

  • Wyświetlacz graficzny OLED.
  • Konwerter RS-232 do USB.
  • Cztery przyciski kierunkowe.
  • Jeden przycisk Selekt
  • Przycisk Reset.
  • Diodę LED sygnalizującą zasilanie.
  • Diodę LED o dowolnym przeznaczeniu.
  • Piezoelektryczny głośnik.
  • Złącze CAN.
  • Złącze JTAG.


Program sterujący

Na potrzeby mikrokontrolera, który jest sercem układu sterowania powstał program SCARA uControl napisany w języku C. Służy on do przetwarzania informacji odebranych z programu SCARA Control znajdującego się na komputerze PC. Informacje te wykorzystywane są do sterowania napędami robota jak i załączaniem urządzeń współpracujących. Ponad to program zbiera informacje z czujników zewnętrznych i przesyła je do komputera PC. Główne funkcje programu SCARA uControl to:

  • Dwukierunkowa komunikacja z komputerem PC.
  • Obliczanie algorytmów sterujących PI.
  • Generowanie sygnałów sterujących dla napędów.
  • Załączanie urządzeń dwustanowych.
  • Zbieranie informacji z czujników zewnętrznych.
  • Bazowanie robota.
  • Wyświetlanie informacji na ekranie znajdującym się na płytce testowej.

Wszystkie funkcje sterowania napędami realizowane są z pomocą timera. Wywoływane są one z częstotliwością 500hz, gwarantuje to poprawną reakcję na informacje odebrane z programy SCARA Control. Informacje o stanie czujników odsyłane są z częstotliwością 100hz. Bazowanie robota realizowane jest bezpośrednio za pomocą programu sterującego. Z programu na komputerze PC wysłana jest informacja o konieczności bazowania. Ponieważ robot nie posiada czujników bazowych, bazowanie każdej osi odbywa się poprzez ciągłe zwiększanie pozycji zadanej i monitorowanie uchybu regulacji. Jeśli uchyb przekracza ustalony próg oznacza to, że dana oś robota osiągnęła maksymalne położenie. Po zabazowaniu wszystkich czterech osi robota, do komputera PC odsyłana jest informacja o zakończeniu operacji.

Płytka sterująca

Mikrokontroler umieszczony na płytce testowej nie może bezpośrednio sterować wszystkimi peryferiami ze względu na różnicę napięć i prądów. Aby było to możliwe podłączony jest on do płytki sterującej, a dopiero do niej podłączone są wszystkie sygnały. Można je podzielić na dwie grupy, dotyczące robota (sygnały PWM, kierunki obrotu silników, enkodery, czujniki krańcowe) i urządzeń zewnętrznych (czujniki na podajnikach, czujniki rozmiaru, elektrozawór sterujący chwytakiem).

Aby wyeliminować problem różnicy poziomów napięć pomiędzy mikrokontrolerem (3.3v) a pozostałymi komponentami (5v), oraz w celu zabezpieczenia mikrokontrolera przed ewentualnym uszkodzeniem, płytka sterująca wyposażona została w układy optoizolacyjne ADUM1400.

Układ ADUM1400.


Układ posiada cztery izolowane pary wejść-wyjść, wraz z translacją poziomów napięć. Wejścia (Via, Vib, Vic, Vid) operują z napięciem Vdd1, natomiast wyjścia (Voa, Vob, Voc, Vod) z napięciem Vdd2. Układ do pracy wymaga jedynie kondensatorów do filtracji zasilania, bardzo upraszcza to jego aplikację oraz redukuje ilość dodatkowych elementów.

Gotowa płytka sterująca z wlutowanymi elementami (spód).


Gotowa płytka sterująca z wlutowanymi elementami (góra).


Sterownik silnika DC

Poza płytka sterująca powstały również cztery sterowniki silników szczotkowych prądu stałego. Służą one do sterowania silnikami znajdującymi się w robocie. Każdy ze sterowników oparty będzie o układ scalony firmy Allegro A3953. Układ ten jest sterownikiem silnika szczotkowego o napięciu do 50v i maksymalnym prądzie do 1,3A.

Gotowy sterownik silnika DC.



Interfejs wejść/wyjść

Elementem łączącym płytkę sterującą z robotem jak i z komputerem PC jest interfejs wejść/wyjść. Składają się na niego dwie płytki drukowane z szeregiem złączy. Na podstawie informacji o wyprowadzeniach połączeń w robocie, do obu płytek powstały schematy elektryczne. Ponieważ główne zasilanie robota nie może zostać doprowadzone do układu sterowania przed zasileniem mikrontrolera, interfejs wejść/wyjść został wyposażony w dwa optotranzystory mocy PVN012. Załączają one główne zasilanie dopiero po podłączeniu układu sterowania z komputerem PC.

Dolna płytka interfejsu wejść/wyjść(spód).


Dolna płytka interfejsu wejść/wyjść(góra).


Górna płytka interfejsu wejść/wyjść(spód).


Górna płytka interfejsu wejść/wyjść(góra).


Gotowy sterownik

Wszystkie elementy sterownika zostały zamknięte w plastikowej obudowie. W tylnej jej części znajdują się złącza: USB (komunikacja rs232), silników robota, enkoderów, czujników bazowych, zasilania oraz płytki z przyłączami czujniki zewnętrznych. W górnej część obudowy znajduje się wyświetlacz LCD pokazujący podstawowe informacje o robocie.

Sterownik SCARA uControl (widok na mikrokontroler).


Sterownik SCARA uControl (widok na mikrokontroler, jeden z sterowników silnika oraz interfejs wejść/wyjść).


Sterownik SCARA uControl (widok z góry).


Sterownik SCARA uControl w obudowie (tył). 1 – zasilanie +5, +15 z zasilacza od starego układu sterowania, 2 – złącze USB do komunikacji z komputerem PC, 3 – wejście czujników krańcowych (opcjonalnie), 4 – wejście/wyjście płytki z przyłączami czujników zewnętrznych, 5 – wejście sygnałów z enkoderów robota, 6 – wyjście zasilające silników.


Płytka testowa z mikrokontrolerem zawiera ekran LCD. Podczas pracy sterownika wyświetlają się na nim informacje o aktualnym położeniu ramion robota, stany poszczególnych portów oraz informacje o stanie pracy:

  • Połączono z SC – oznacza połączenie z komputerem PC z programem SCARA Control.
  • Brak połączenia – braku połączenia z komputerem PC z programem SCARA Control.
  • Bazowanie – Bazowanie robota.


Aby umożliwić dostęp do ekranu na górze obudowy wycięte zostało okienko pozwalające obserwować ekran LCD wraz z mikrokontrolerem i płytka testową.

Do układem sterowanie połączona jest płytka z przyłączami czujników (z pierwotnego układu sterowania). Podłączone są do niej czujniki na podajnikach, rozmiaru oraz sygnały załączające podajniki.

Płytka z przyłączami czujników zewnętrznych.


Układ sterowanie podczas pracy