Understanding motor controllers and example application

dc motormicrocontrollermotorsensor

I'm rather new to the world of motors and motor control circuits – about all I know is that you need one.

My intended application is to take a DC motor and create a "servo", which I understand to mean a motor that I can control via angular position commands.

The motor I intend to use is the following: http://www.robotshop.com/ca/en/banebots-rs-550-motor-12v-19300rpm.html From my torque requirements, I've calculated that I can gear it up to what's needed.

Here is a demo video showing what I think it is I want to do: make this motor control a load with precise position: https://www.youtube.com/watch?v=2FpRb-oOZ6c

My questions:

1) To achieve my goal, what type of electronics do I need to use? Why? Example products would be super helpful.

2) How is position feedback implemented (I assume this needs a sensor of some type), and what is an example product? What type of accuracy could one expect, and what would be the next steps for increasing it?

3) Do I need one "controller" electronics thing for each motor? I'm hoping not, trying to keep costs down =) Ideally I'd like to be able to control 5 of these motors as price-efficiently as possible.

For background, I started working in robotics on the software / algorithm side of things recently, and decided that I'd like to build my own hobby hardware on the side to better understand the discipline. Thanks for your help!

Best Answer

To drive a DC motor in a controllable manner you need:
1) Power stage, which is typically an H-bridge of some sort. You can build one yourself or buy an integrated solution.
2) A controller able to drive the power stage, typically using PWM signal. It can be a programmable microcontroller or a circuit based on a popular 555 chip for example.

For a position feedback you need a position sensor. It can be:
1) Shaft encoder
a) Optical
b) Magnetic
c) Potentiometer - not good for continuous rotation, only if the rotation range is limited. (a) and (b) can be either incremental or absolute. Absolute is good if you need to know the absolute position of the shaft without performing any homing operation. Incremental is good if only relative position is of concern.
2) Some kind of position sensor on the end effector - could be encoders as well. And you need something to connect the sensor to and implement the control loop. It is typically a microcontroller with dedicated program.
And yes, you will need all of these for each motor (well, they can share the same microcontroller if it is capable enough.