Angular position control (stepper motors, servos, encoders question)

Hey guys,

I am trying to build a 3-axis motorized gimbal, so I want one motor on each axis that can turn to whatever angle I specify, and I want each to be able to go to 360 degrees. Controlling servo angular position is easy, but these kinds of servos only go to 180 degrees. I have been reading these forums, and it seems what I need are stepper motors and encoders. I am still unclear on what exactly I need, and how to set it up.

Are there different kinds of encoders? How do I know what works with what stepper motor and what doesn't Someone in this thread: http://arduino.cc/forum/index.php/topic,37525.0.html suggested to use binary-coded decimal (BCD) encoders.

Can anyone recommend me a specific model or supplier? I usually look at Sparkfun, but they don't seem to have a great selection of encoders. What other complications do I have to worry about?

Thanks.

Hi,

I cannot really help you but I have the same kind of problem and this is how I would like to solve it:
(I want a 3 axis joint to position a robot head that I control with a helmet I put on my head, but I started with a 2 axis design/setup)
My 2 motors (no servos) have each a linear continuous rotation potentiometer on their axis and I use the same pots to control their angular position. So it is basically a one-on-one positioning problem. I use these (http://www.technobotsonline.com/resistors-and-pots/potentiometers-and-presets/special.html) pots as my ‘rotary encoder’. They give a precise values for about 350° (in 1023 steps so its good accuracy) and can rotate continuously. But it looks your really need those 360 degrees of measuring for a gimbal. I too was looking for 360 degree encoders but could not find cheap ones and my (robot) head cannot turn 360° so I got those pots which are good quality.
I use brushed DC motors (http://www.pololu.com/catalog/product/1107) and a motor driver (http://www.pololu.com/catalog/product/1213) from Pololu. But the positioning was not really accurate so I asked Pololu what I should do. They told me to use a PID feedback algorithm on my Arduino (so now I’m looking for a PID code).
An other option is to use Pololu’s JRK motor cotnrollers (http://www.pololu.com/catalog/product/1392). They offer very simple position feedback and control (see the video). If you can use a encoder with these than standard DC motors should do the trick. I use a Arduino Uno to control postioning so I would like to solve this without buying new jrk’s.

Sorry I am talking about my own problem but I hope I helped you and I am curious how you are going to solve your project because your solution might help my problem. And of course if I can help you any further no problem.

Stepper motors require no encoders to achieve accurate positioning. Hobby servos can be had with continuous rotation from Pololu or you can modify them yourself. Servos would be easier but steppers would be capable of driving a larger load and they are good for holding position (they develop the highest torque in the holding position).