Servo motor or stepper?

Hi everyone,

I am new to Arduino so please bear with me if I have silly questions.

I am trying to build a motion controlled tripod head for my camera. I have read a lot of things on stepper and servo motor but I can't decide which one will be the more appropriate for my project.

I have seen a lot of guys using stepper motor for sliders or pan & tilt head but from what I understand they are maybe less reliable regarding their position.

I want to be able to record and recreate exactly the same motion with the head that's why I consider the servo as they are more precise?

That's the most important thing, I really need accuracy for this project. Basically I will need to shoot multiple videos, with always the same timing. It's not just about controlling the tripod head with motor, it's about doing it precisely, repeatedly.

It does not need to make a 360 degrees revolution so the limitation of 180 degrees for most of the servo motor is not a problem.

Thank you

What do you call "precise"? Exactly how accurate and repeatable does the position need to be? Within say 1 degree every time? 0.1 degrees? +/-5 degrees, 95% of the time? If you want precision you need to make your specification precise. Engineers are not good at working to woolly requirements.

Most hobby servos are easy to get to roughly the same position every time but not with any great accuracy. Generally stepper motors are more difficult to position because they don't have a fixed starting point but they are reasonably accurate in their movements. You can get servos that are very accurate and very repeatable but they also tend to be very expensive, what's your budget?

Steve

I agree with @slipstick.

if you want to use stepper motors you will need a startup procedure in which each motor moves to the ZERO or HOME position so the Arduino can accurately count from 0. The zero position is usually identified by the movement triggering a microswitch of optical detector. Once the zero position is established the stepper will be able to move very precisely unless the load on it is so great that it misses steps.

...R
Stepper Motor Basics
Simple Stepper Code

also look up the AccelStepper library

I would say the precision needs to be in the 0.1 degrees range.

Basically let's say I have to aim at something with the camera on the first position, do a specific motion and come back to the first position: I want to be able to come back to the first position as closely as possible.

Obviously, the precision will also depends on how close the object I am filming is from the camera or on the focal.

If a stepper can do that, then that's great :slight_smile:

Regarding the budget, I have not decided yet but I won't go for more than £100 by motor I think.

Thanks for the links!

Cheers

I would say the precision needs to be in the 0.1 degrees range.

That would be 3600 steps/revolution and cannot be achieved with a standard hobby servo. Possibly it could be, with a very expensive digital servo using precise position feedback and full duplex communications.

  1. You could use a gear drive in addition to a stepping motor. The gear drive introduces backlash problems.

  2. You could use microstepping, but that requires very careful adjustment of the stepping motor driver and correct motor/driver torque selection. In turn, that requires you to have constructed the positioner and to have accurately measured the torque required of the motor.

Ok, thanks for those information. I will think about it again re-evaluate what I need precisely :slight_smile:

Thanks

ludof:
Basically let's say I have to aim at something with the camera on the first position, do a specific motion and come back to the first position: I want to be able to come back to the first position as closely as possible.

I'm wondering if you could use some sort of re-positionable switch that would indicate to the Arduino that it has returned to the first position. Suppose you were able to slide a position block so that it clicks a switch on the camera mount and the lock the block in position. Then the mechanism moves the camera away from the block and when it later returns to the block it triggers the switch and the Arduino knows to stop and knows that it is back at the start of the movement. Something like that might give you the precision you need with the simplicity of a servo.

I know that is a poor description but my grey-cells seem to be at lunch-break.

...R