After a few observations and research, i still can't decide weather to choose either servo motor or Stepper motor. Both of this motor suits well in
this project.
Stepper motors:A
stepper motor's shaft has permanent magnets attached to it. Around the
body of the motor is a series of coils that create a magnetic field
that interacts with the permanent magnets. When these coils are turned
on and off the magnetic field causes the rotor to move. As the coils
are turned on and off in sequence the motor will rotate forward or
reverse. This sequence is called the phase pattern and there are
several types of patterns that will cause the motor to turn. Common
types are full-double phase, full-single phase, and half step.
To
make a stepper motor rotate, you must constantly turn on and off the
coils. If you simply energize one coil the motor will just jump to that
position and stay there resisting change. This energized coil pulls
full current even though the motor is not turning. The stepper motor
will generate a lot of heat at standstill. The ability to stay put at
one position rigidly is often an advantage of stepper motors. The
torque at standstill is called the holding torque.
Because
steppers can be controlled by turning coils on and off, they are easy to
control using digital circuitry and microcontroller chips. The
controller simply energizes the coils in a certain pattern and the motor
will move accordingly. At any given time the computer will know the
position of the motor since the number of steps given can be tracked.
This is true only if some outside force of greater strength than the
motor has not interfered with the motion.
An optical encoder
could be attached to the motor to verify its position but steppers are
usually used open-loop (without feedback). Most stepper motor control
systems will have a home switch associated with each motor that will
allow the software to determine the starting or reference "home"
position.
Servo motors:
There
are several types of servo motors but I'll just deal with a simple DC
type here. If you take a normal DC motor that can be bought at Radio
Shack it has one coil (2 wires). If you attach a battery to those wires
the motor will spin. See, very different from a stepper already!.
Reversing the polarity will reverse the direction. Attach that motor to
the wheel of a robot and watch the robot move noting the speed. Now
add a heavier payload to the robot, what happens? The robot will slow
down due to the increased load. The computer inside of the robot would
not know this happened unless there was an encoder on the motor keeping
track of its position.
So, in a DC motor, the speed and current
draw is a affected by the load. For applications that the exact
position of the motor must be known, a feedback device like an encoder
MUST be used (not optional like a stepper).
The control
circuitry to perform good serving of a DC motor is MUCH more complex
than the circuitry that controls a stepper motor.