Precise, rotational control over a motor

Hello Guys

I am very new to Arduino and its capabilities, so please forgive me my ignorance.

Iam looking for a way to use the arduino to control two motors in a very precise, rotational manner.
I would like to build some kind of robotic arm and to do so i do need a way to control/measure (and if necessary) correct the movement of the different motors to as little as >0.3° (at least that is my goal).

I used small servo-motors from the arduino starter kit, but sadly they do not have enough torque for my tasks (and or are too expensive or to unprecise(or both)).

While doing my research i found this kind of brushless DC motors like they are now used in all this " drone camera gimbal"

See : Radio Control Planes, Drones, Cars, FPV, Quadcopters and more - Hobbyking

But sadly i havnt found any good homepages where i get a reasonable idea how to approach the controll of these motors and if they are motors precise enough for my project.

So tl:dr
How to control motors like the one linked above with an arduino and does anybody has another idea how to generate such a precise controlled movement?

Sincerely

Max

Broadly speaking you have two options. Use a motor with a feedback system or use a stepper motor.

Hobby servos have feedback systems built into them, and some of them are very powerful, but they may not be sufficiently precise.

You can buy DC motors with rotary encoders, or add an encoder to a motor. The encoders produce pulses as the motor rotates and the Arduino can detect the pulses and know where the motor is. However it is not so simple to stop and hold a motor at a specific position.

A stepper motor moves one step (most do 200 steps per revolution) for every pulse it receives and it will hold its position.

You can also get expensive industrial servos which use DC motors with their own complex drivers that make them behave more or less like a high-performance stepper motor.

...R
Stepper Motor Basics

Encoder + PID loop = servo motor driver. Conceptually its very simple - the difference
between desired and actual position is the position-error. That is the input to a PID loop driving the
motor. The feedback locks the motor position to the desired position, but the PID has to be tuned
to the particular motor, mechanics and encoder resolution.

I used small servo-motors from the arduino starter kit, but sadly they do not have enough torque for my tasks (and or are too expensive or to unprecise(or both)).

The arm in the below discussion may have the precision you need. The down side is that you seem to be on a budget that may not fit the cost requirements of the components needed for precision operation.

http://forum.arduino.cc/index.php?topic=353693.0

0.3 degrees implies using an encoder with several thousand counts per revolution (expect
jitter of a few counts), which means spending some money (no way round this), fortunately
these days there are budget encoder modules like this:

http://www.avagotech.com/docs/AV02-3823EN

So you don't have to spend anything like the rate for industrial encoders ($300 +)

1 Like

Hello Again

Thank you so far for your answers.

Luckily i am on a self chosen budget, but since i am new i am reluctant to "just buy" motors or encoders, not knowing if i can handle them properly.

I thought about stepper motors as well, but like always the ones which seemed to be useful (regarding size etc.) only have 200 steps per resolution.

@Robin2
Thanks for the stepper motors basics !i will look into that later today!

I am a aware that i i will most likely need rotational encoders ( i would even prefer absolute ones) but up until now i have not been able to find these "budget" versions.

@Mark

Thank you for the PDF file, Do you know if they sell to "private" customers as well ? Or only big quantities etc.?

Look for them at you favorite high-volume electronic supplier - which if you
don't have one, you will need to rectify. Places like Element 14 / Farnell, Digikey, Mouser...
I don't know if Avago have a webstore themselves. Worth checking on eBay too, there
are bargains to be had.

Absolute encoders are harder to interface too, and even incremental ones can have the
issue of datarate at high rpm values.

Hello Mark

I checked again and it looks like they have a webshop available for private customers.

Well the "datarate with high rpm" might not bother me since i would put the encoders directly on the drive shafts which wont be moving faster then 1 rpm. How much more difficult it might be to work with an absolute decoder... well i have no idea of knowing besides trying :smiley:

Right now i wouldnt say that i have a "favorite hig-volume electronic supplier" since iam so new to the whole topic ( have some experience with dealextreme but thats it).

Thank you so far for all the good input!

Sincerely

Max