Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Computer ControlsComputer Controls
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Sterownik silników DC do czterokołowego robota mobilnego

themin 07 Mar 2016 03:48 5253 2
  • Sterownik silników DC do czterokołowego robota mobilnego

    Chciałbym przedstawić projekt sterownika silników DC, który wykonałem kilka lat temu i używałem przez długi czas wraz z programowym driverem w systemie ROS. Sterownik został dokładnie przetestowany, a występujące błędy poprawione.
    Wydaje mi się, że jest to dobry czas, aby umieścić tutaj ten opis, ponieważ wykonałem nową wersję sterownika, a ta nie będzie już dłużej używana.

    Sterownik został zaprojektowany z przeznaczeniem do opisanego wcześniej mobilnego robota czterokołowego.
    Konstrukcja robota oparta na czterech niezależnie sterowanych kołach wymusiła zastosowanie stosunkowo rozbudowanego układu. Spowodowane jest to między innymi wymaganiem synchronizacji prędkości kół robota, szczególnie tych położonych po jednej stronie ramy, aby zminimalizować niepotrzebne poślizgi i straty energii. Dodatkowo, moduł musi obsługiwać cztery enkodery inkrementalne.
    Bazując na zmierzonych wartościach z enkoderów obliczane jest położenie i orientacja robota (odometria).
    Na poniższym rysunku przedstawiono schemat blokowy modułu.

    Sterownik silników DC do czterokołowego robota mobilnego


    W skład modułu sterowania silnikami wchodzą następujące bloki:
    - blok mikrokontrolera,
    - stopień mocy oparty na mostkach H,
    - blok pomiaru prądu silników,
    - blok enkoderów magnetycznych.

    Warto zauważyć, że moduł został oparty na mikrokontrolerze MKL15Z32VLH4 firmy Freescale, należącym do rodziny Kinetis L. Posiada on rdzeń ARM Cortex M0+ i umożliwia taktowanie z częstotliwością 48 MHz. Szereg układów peryferyjnych mikrokontrolera znacznie ułatwił implementację sterownika silników. Oprogramowanie mikrokontrolera napisane zostało w języku C. Wykorzystano środowisko programistyczne Freescale CodeWarrior v10.4 w edycji specjalnej. Dodatkowo wraz ze środowiskiem CodeWarrior, używano narzędzia Processor Expert, które umożliwia częściowe generowanie kodu mikrokontrolera na podstawie dość czytelnych dla człowieka opcji konfiguracyjnych poszczególnych bloków. Projekt elektroniczny modułu wykonano w studenckiej wersji oprogramowania Altium Designer.

    Jako mostki H (H-Bridge) wykorzystano układy TB6569FG produkowane przez firmę Toshiba. Charakteryzują się one szczytowymi prądami obciążenia na poziomie 4,5 A, przy czym średnie prądy nie powinny przekraczać 1,5 A. Zachowują prawidłowe działanie dla napięć w granicach od 10 V do 50 V. Dodatkowo, układy posiadają wiele przydatnych zabezpieczeń, między innymi:

    - zabezpieczenie termiczne,
    - zabezpieczenie nadprądowe (z możliwością zmiany parametrów wykrywania zbyt wysokich prądów),
    - zabezpieczenie przed zbyt wysokim napięciem zasilającym,
    - zabezpieczenie przed zbyt niskim napięciem zasilającym.

    W przypadku aktywacji któregoś z zabezpieczeń wyjście układu typu otwarty-dren (Open-drain), oznaczone jako ALERT przechodzi w stan wysokiej impedancji. W omawianym module, ze względu na przekroczenie dopuszczalnych prądów mostków H przez użyte w robocie silniki Pololu 37D, zdecydowano się wykorzystać po dwa mostki połączone równolegle na każdy silnik.

    Pomiar prędkości obrotowej kół

    Pomiar prędkości obrotowej kół robota zrealizowano z wykorzystaniem enkodera magnetycznego AS5306 produkcji Austria Microsystems. W celu obliczenia prędkości obrotowej wymagana jest znajomość częstotliwości sygnału kwadraturowego. Zdecydowano się na metodę pomiaru, w której zlicza się impulsy wejściowe w ustalonym okresie czasu. Związane jest to ze stosunkowo dużą rozdzielczością enkodera magnetycznego, który współpracuje z pierścieniem posiadającym 36 par magnesów. Rozdzielczość enkodera można obliczyć wykorzystując wzór podany w nocie katalogowej AS5306.

    Rozdzielczość [krok] = [współczynnik interpolacji] x [liczba par biegunów],

    przy czym współczynnik interpolacji zależy od konstrukcji matrycy hallotronów i dla układu AS5306 wynosi 160 kroków na jedną parę biegunów magnetycznych. Można więc otrzymać rozdzielczość enkodera równą 5760 kroków na jeden obrót koła.


    Układ regulacji prędkości koła

    W celu zapewnienia osiągnięcia zadanej prędkości obrotowej przez dany silnik robota, zaimplementowano dyskretny regulator PID. Wyjściem regulatora jest wartość wypełnienia sygnału PWM (Pulse-Width Modulation) sterującego kluczami. Natomiast wejściem jest wartość prędkości obrotowej silnika uzyskiwana na podstawie pomiaru sygnału kwadraturowego z enkodera magnetycznego AS5306. Na poniższym rysunku przedstawiono układ regulacji prędkości koła robota. W implementacji regulatora PID pomocna okazała się nota aplikacyjna Atmel AVR221.

    Sterownik silników DC do czterokołowego robota mobilnego

    Podsumowanie

    Tak, jak pisałem na wstępie sterownik był używany przez długi czas i w zasadzie sprawdził się. Nowsza wersja sterownika została zaprojektowana, aby poprawić niektóre błędy i zmienić sposób komunikacji z I2C na USB, a także zwiększyć dopuszczalne prądy silników. Postaram się ją opisać w przyszłości.

    Schematy ideowe

    motors_con...cheme1.png Download (492.79 kB)Points: 0.5 for user motors_con...cheme2.png Download (210.22 kB)Points: 0.5 for user motors_con...cheme3.png Download (204.7 kB)Points: 0.5 for user


    Więcej informacji można znaleźć na mojej stronie www.mdrwiega.com.

    Cool! Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    themin
    Level 11  
    Offline 
    Has specialization in: robotyka mobilna
    themin wrote 55 posts with rating 158, helped 0 times. Live in city Wrocław. Been with us since 2006 year.
  • Computer ControlsComputer Controls
  • #3
    themin
    Level 11  
    Lechito wrote:
    Jeśli można wiedzieć, w jakim programie były wykonane schematy blokowe?

    Schematy blokowe zostały wykonane w programie Dia, aczkolwiek jeżeli chodzi o darmowe programy do diagramów polecam yEd, ze względu na większe możliwości.