Skocz do zawartości

Pomocna odpowiedź

Napisano (edytowany)

W każdym projekcie „jeżdżącym” pojawia się potrzeba efektywnego sterowania silnikami. Na początku próbowałem szybko zbudować sterownik na „pajęczynę” przewodów na płytce uniwersalnej. Niestety efekt był dalece niezadowalający. Postanowiłem więc podejść do tematu bardziej systematycznie, integrując kilka gotowych modułów w jeden spójny układ, który będzie trwały i funkcjonalny.

Założenia projektu

  • sterowanie czterema silnikami przy użyciu PWM,
  • odczyt sygnałów z enkoderów,
  • sterowanie dodatkowymi urządzeniami ON/OFF,
  • sygnalizację stanów za pomocą diod LED,
  • kompatybilność z poziomami logicznymi 3,3 V i 5 V,
  • wykorzystanie gotowych modułów w celu przyspieszenia realizacji;
  • komunikacja z jednostką nadrzędną za pomocą I2C. 

 

Jednostka główna

Jako główną jednostkę sterującą wybrałem klona Arduino opartego na mikrokontrolerze ATmega2560. Wybór ten wynikał z bogatego wyposażenia układu oraz dużej liczby dostępnych wejść/wyjść, co ułatwiało integrację wszystkich funkcjonalności. 

2FB97C23-3416-472E-84DF-C141FDB80DBB.thumb.png.a1b263be4674d4f125abf450e726f84c.png

Moduły wspomagające

Do sterowania silnikami wykorzystałem gotowe moduły oparte na układach TB6612FNG, natomiast do konwersji poziomów logicznych między 3,3 V a 5 V zastosowałem moduł oparty na układzie TXS0108E. Dzięki temu układ jest kompatybilny z różnymi komponentami oraz stabilny w działaniu.

 

Płytka integrująca wszystkie moduły

Zaprojektowałem płytkę PCB łączącą wszystkie moduły w jeden spójny układ, co zwiększyło niezawodność w porównaniu do wcześniejszych prób na płytce uniwersalnej.

EA143AF7-B2EF-43C2-9E2F-8D03A9168E9B.thumb.png.e57cdd1962e94af59cf0cc344107041c.png

 

Wizualizacja 3D

ViDrv1.thumb.png.0f7d6c3137968381c8cc88c7c938599a.png

 

Wygląd układu po zmontowaniu i uruchomieniu

IMG-20251115-WA0015.thumb.png.9ef119b8f6343564687eb1e713eb1bef.png

 

Wnioski

Układ działa poprawnie i spełnia założone funkcje, choć podczas testów pojawiły się drobne błędy wymagające korekty. Największe wyzwanie stanowi jeszcze dopracowanie algorytmu PID dla sterowania silnikami.

Dodatkowo ograniczeniem jest fakt, że używam procesora 8-bitowego, podczas gdy większość obliczeń wykonuję w 32 bitach, co obciąża jednostkę. Gdybym realizował projekt ponownie, prawdopodobnie wybrałbym mikrokontroler z rodziny STM, co pozwoliłoby na większą wydajność i elastyczność w oprogramowaniu.

Edytowano przez RomekAtomek

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...