Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 

Repository files navigation

Slambot motor controller

Dual Motor Control with DRV8833 and Quadrature Encoders. Arduino's PID library is used to track the desired speed. It can also receive commands for desired speeds from Serial2.

encoder-pid-jetson-uart-correctPIDs-2025-08-28_23.28.17.mp4

(Plot legend):

blue/green: Desired speeds in RPM for motors A and B

orange/yellow: Actual speeds in RPM of motors A and B

Tests

Tested on an ESP32-WROVER connected to a DRV8833 while receiving commands from a Jetson Nano.

Motor and encoder
motor-with-encoder-video.mp4
Test 1: Fixed target speed at 150 rpm
encoder-pid-2025-08-28_22.00.41.mp4
Test 2: Ki too high, causing overshoot (Ki=8)
encoder-pid-kp1-ki8-kd0-2025-08-28_22.03.26.mp4
Test 3: Linear changing target speeds
encoder-pid-zigzag-2025-08-28_22.07.25.mp4
Test 4: Sending commands from Jetson to ESP32
encoder-pid-jetson-uart-correctPIDs-2025-08-28_23.28.17.mp4

About

Controller for motors with encoders. Receives desired speed and translates it to PWM using arduino's PID library. This code is meant to be run in an ESP32

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages