Sterownik silników DC z enkoderami oparty o ESP32-S3



Smart Motor Driver to dwukanałowy sterownik silników prądu stałego z enkoderami, zaprojektowany z myślą o precyzyjnym sterowaniu ruchem w zastosowaniach takich jak automatyka domowa, robotyka, mechatronika i systemy pozycjonowania. Jego sercem jest ESP32-S3, wydajny mikrokontroler z łącznością Wi-Fi, który otwiera ogromne możliwości integracji z systemami sterowania, w tym z Home Assistant dzięki pełnej kompatybilności z ESPHome.
Najważniejsze cechy
- ⚙️ Obsługa dwóch silników DC z enkoderami kwadraturowymi
- ⚡ Zakres napięcia zasilania: 8–36 V
- 🔌 Prąd do 800 mA na kanał – idealny dla napędów typu JGA25-370
- 🧠 ESP32-S3 na pokładzie – pełna swoboda w zakresie firmware (ESPHome, Arduino, własne rozwiązania)
- 📐 Kompaktowy rozmiar: 56 × 50 mm
Zaawansowane sterowanie silnikami
Każdy z kanałów wyposażony jest w pełny mostek H zrealizowany w oparciu o układ DRV8801, który umożliwia:
- płynną regulację prędkości silnika za pomocą PWM,
- wybór kierunku obrotu,
- aktywne hamowanie,
- sprzętowe zabezpieczenia: przeciwzwarciowe, termiczne, nadnapięciowe i przeciążeniowe.
Obsługa krańcówek
Dla każdego kanału dostępne są dwa niezależne wejścia krańcówek, co umożliwia zabezpieczenie skrajnych pozycji napędu (góra/dół, lewo/prawo, otwarte/zamknięte). Wejścia mogą pracować w dwóch trybach:
- 🔘 Cyfrowym (ON/OFF) – klasyczne krańcówki mechaniczne lub optyczne,
- 📉 Analogowym z ustawialnym progiem – np. dla czujników magnetycznych z wyjściem napięciowym lub fototranzystorów.
To rozwiązanie pozwala na precyzyjne i elastyczne dopasowanie systemu krańcowego do różnych rodzajów napędów i środowisk pracy.
Zaawansowane sterowanie ruchem – gotowe oprogramowanie ESPHome
Smart Motor Driver dostarczany jest z oprogramowaniem dla ESPHome, które umożliwia pełną integrację z Home Assistant i realizuje funkcję inteligentnego serwomechanizmu:
- 🔁 Dwupętlowy regulator PID:
- Pętla pozycjonowania (zewnętrzna) – precyzyjne osiąganie pozycji
- Pętla prędkości (wewnętrzna) – stabilizacja i płynność ruchu
- 🧮 Planer trajektorii – dynamiczne generowanie ramp (przyspieszenie, prędkość maksymalna, czas trwania ruchu)
- 📡 Live odczyt pozycji z enkodera – rzeczywisty, nieestymowany pomiar
- 🔗 Synchronizacja ruchu kanałów – zsynchronizowane sterowanie dwoma silnikami (np. równoległe podnoszenie markizy)
Oprogramowanie dostępne na: https://github.com/IoTLabs-pl/Smart-Motor-Driver
Zastosowania
Podstawowym projektowanym zastosowaniem Smart Motor Driver jest sterowanie roletami, markizami i zasłonami, gdzie wymagana jest dokładna kontrola pozycji, synchronizacja ruchu i możliwość zdalnej integracji z systemem inteligentnego domu.
Dzięki odczytowi rzeczywistego położenia z enkoderów kwadraturowych, możliwe jest dokładne określenie pozycji napędu w czasie rzeczywistym – bez korzystania z estymacji opartej o czas. To znacznie zwiększa precyzję, powtarzalność i bezpieczeństwo działania systemu.
- 🪟 Automatyczne rolety, żaluzje, markizy, zasłony
- 🤖 Roboty mobilne i manipulatory
- 🏗️ Platformy obrotowe, prowadnice liniowe, systemy XY
- 🏠 Systemy inteligentnego domu (Home Assistant, ESPHome)
- 🎓 Projekty edukacyjne i prototypowanie w mechatronice i IoT