newspaperEPMC Documentation

Easy PID Motor Controller (EPMC) User Documentation

Imagine sending actual angular speed commands (not PWM commands) to your DC motor and seeing it running at that commanded speed. This is exactly what the Easy PID Motor Controller (EPMC) helps you to accomplish.

It is an easy-to-use PID motor controller system for controlling the angular speed of geared DC motors with quadrature encoders via angular speed commands in rad/sec rather than the traditional PWM commands. It consists of a motor driver (i.e. L298N Driver IC or any other motor driver that can be controlled using the Arduino PWM), a microcontroller, and a GUI Application that enables one to control motors easily and set up motor PID parameters.

It also provides a USB serial and I2C communication interface with ROS2, Arduino, Python, and Cpp libraries for easy interfacing with one's preferred project.

circle-info

Custom EPMC Interface Board can also be made for other motor drivers (as long as they can control motor speed using the Arduino PWM). This may be due to the higher current requirement of the motor you intend to use for your project which the L298N (i.e. L298N EPMC Module) cannot provide. If you need a solution like that you can contact me: visit the robocrea8arrow-up-right

It can easily be used by robotics or ROS hobbyists, students, learners, researchers, engineers, etc.

The Common Motor Speed Control Problem (Traditional PWM Approach)

Whether you are a hobbyist, maker, engineer, student, or researcher, you usually would opt to control the speed of a DC Motor using PWM Commands from a microcontroller (e.g. Arduino UNO, etc.) using a motor driver like the L298N Driver Module (or any other motor driver module).

While this control method is simple and easy, the only drawback of this control style is that it is an open-loop control and does not allow you to command a desired angular speed easily. This generally poses a lot of limitations in their uses, especially in more advanced robotics (e.g. wheeled mobile robotics) projects requiring precise speed controls.

To achieve precise angular speed control with this traditional PWM control style, one would need to understand quite a bit of control theory and signal processing calculations, write more control and signal processing code, and possibly add an extra layer of circuitry, all of which can become cumbersome and might not be easy to integrate into one’s desired project. All these require a good level of control expertise.

The Easy PID Motor Controller (EPMC) easily solves and abstracts all these problems so you can focus more on building your projects with good controls being made readily available.

circle-info

In summary, the Easy PID Motor Controller (EPMC) provides the following:

circle-info

If you are using Ubuntu 22.04 LTS, you can download the EPMC executable application from here arrow-up-right

The EPMC Specification

  • Recommended Supply Voltage – 7v to 12v

  • Motor Output Supply Current (Max) – 2A (i.e. should be used with geared DC motors whose stall current is not greater than 2A or 2.5A)

  • Communication Interface - USB Serial and I2C

  • Easily integrates with ROS2 and Arduino (as well as Python and Cpp) projects.

  • Angular speed commands are in rad/sec.

  • Angular speed feedback in rad/sec.

  • Angular position feedback in radians.

EPMC Applications

  • Robotics (Arduino, ROS2, Python, and C++)

  • Precise Motor Speed Control

EPMC Tutorials (Usage Guide)

Checkout These Libraries that Made The EPMC Project a Success

Check out these Github repos of libraries that went a long way in developing the Easy PID Motor Controller ATmega328 microcontroller computational system. You can use them in your projects also (Ensure to star them).

Last updated