Universal motor controller for DC gear motors with encoder

Hello all!

I am a student and I am working at my University on a test bench for moon tires.
My predecessor at this project ordered a 12V DC motor with encoder to control the testbed. The plan is to quickly build the test bench with a raspberry pi and a self-programmed GUI to specify the velocity. Unfortunately I am sure that programming the motor controller inside the raspberry pi will not be the best choice and will take too much time, that we don’t have.
The manufacturer does not offer motor controllers themselves so I would like to ask you, what properties I need to really look at. The motor should just move with maximum 150 RPM and has a nominal current of 0.3A. Because we want to use a Raspberry Pi, the possible control may be I2C, UART, PWM or something similar.

The motor E192-12-625: http://www.micromotors.eu/planetary_gear_motor_e192.html

So my questions are:

  1. Are there components of the shelf that can control the velocity (given by a computer) that are not only limited to the motors of the manufacturer?
  2. Can the motor controllers control the velocity precisely and fast, even though the load may vary?

Possible motor drivers I found where for example:


Thank you so much in advance for your help!
Simon_s

EDIT: It would be nice, if the encoder signal can be used for the closed loop control.
Encoder: http://www.micromotors.eu/encoder_technical_data.html

Hi,

First, we strongly suggest you to take a look at this blog post : https://community.robotshop.com/tutorials/show/how-to-make-a-robot-lesson-5-choosing-a-motor-controller

  1. Both of the motor controllers you listed will control any DC Motors within their voltage and current specs. The RB-Bat-47 is probably overkill for a 0.3A nominal current motor and the RB-Cyt-153 supports only PWM control.
    The Dimension Engineering Sabertooth Dual 5A Regenerative Motor Driver with Self-tuning Kangaroo X2 Motion Controller would be a good option for your application
  2. If your motor driver has an encoder feedback and your a speed control/PID is implemented into your controller (Raspberry Pi, computer, Arduino, etc) then yes, the motor would adjust its velocity to meet the target velocity even if the load varies.
1 Like

Hey, thank you for your detailed answer bdaouas.
I read the post, but they don’t write about the closed-loop control.

  1. Did I get it right, that the Kangaroo X2 uses the feedback of the encoder and drives the motor through the Sabertooth?
  2. The motor has a hall-encoder integrated, and I want to outsource the closed-loop control into a motor controller, with parameters given by the raspberry pi.

I also found other controllers:Faulhaber SC1801S
and
Phidgets 1065

Do you know what of these four controllers i named in this thread is the easiest to integrate/calibrate?
Again, thank you for your response.

  1. Correct
  2. This can be done with the Kangaroo X2 and the Sabertooth Controller. Please take a look at the Serial Input Section of the Kangaroo X2 User Manual
    The Faulhaber SC1801S is intended to control BLDC motors, therefore, it won’t work for your application. The Phidgets 1065 5A, 9-28V Brushed DC Motor Controller would also work.
    The advantage of using the Phidgets 1065 is that Phidgets provides the API for this controller so with some basic Python knowledge you can interface it with Raspberry Pi.
    Also, Sabertooth is pretty popular in the makers/hobbyist community, therefore, you can easily find Raspberry Pi examples online.
1 Like