RoboticsTutorials

What is a Servo Motor – How a Servo Motor Works (Control)

What is a Servo Motor, How a Servo Motor Works and How to Control it

Robotics and Artificial intelligence are taking the lead in the evolution of technology. Big tech companies like Amazon, Google, Tesla, Microsoft, Samsung, etc, are investing immensely in robotics and AI research and development. The design of robots involves the use of a special motor called “SERVO MOTOR”. In this tutorial, we shall discuss the following:

  • What is a servo motor?
  • What servo motors are used for
  • Types of servo motors
  • Classification of servo motors
  • Parts of a servo motor
  • Internal Connection of a servo
  • Intuitive explanation of how a servo motor works
  • How to control a servo motor

What is a Servo Motor?

A servo motor is a self-contained sophisticated electromechanical device that rotates parts of a machine or robot with high efficiency and great accuracy. A servo motor can move slowly and at the same time deliver large torque with great precision and accuracy. This is the reason why it is utilized in robot design, industrial automation, control surface positioning in remote control vehicles, etc.

What servo motors are used for

Above, we stated that servo motors are utilized in robot design, industrial automation, etc. a servo motor is utilized in so many devices and systems, and the list is as follows:

  • Radio-controlled model car, airplane, or helicopter,
  • Rotating a shaft connected to the engine throttle.
  • Regulates the speed of a fuel-powered car or aircraft.
  • Electronic devices such as DVD and Blu-ray Disc players use servos to extend or retract the disc trays.
  • In autonomous cars, servos manage the car’s speed. The list goes on. In robots servo motor is an indispensible component.
RC car built with servo motors
Figure 1: RC car built with servo motors

Types of servo motor

Servo motors come in different sizes and shapes.

Servo motor samples
Servo motor samples (courtesy of sparkfun)

Three main types of servo motor are:

  • Positional rotation servo motor
  • Continuous rotation servo motor
  • Linear servo motor

Positional rotation servo motor:

It is called a position rotation servo because, the shaft of the motor rotates and stops at a certain position that it must not exceed.  This type of servo motor can rotate between 0º and 180º. Although there are some positional servos that can rotate up to 270º, a good example is the DSS M15S Servo, see image below.

270 º DSS M15S Servo
Figure 3: 270 º DSS M15S Servo

Positional rotation servo motors contain physical rotation stopping mechanism that stops the motor in the servo from rotating further when the rotating sensor (like the potentiometer) has reached its limit, to avoid damaging it. The potentiometer is the sensor used as a feedback sensor in some servo motors. It serves as a voltage base analog, distance and direction sensor often referred to as “Resolver”. When a digital rotary sensor is used, it is “Encoder

SG90 servo motor (positional rotation servo motor)
Figure 4: SG90 servo motor (positional rotation servo motor)

Continuous rotation servo motor:

This type of servo motor goes as the name implies, it is a type of servo motor that can rotate beyond 360º. Now here is a point to note, in the positional rotation servo motor, in order to control the servo motor to move to a certain position, we send a PWM signal with a period of 20mS.

Three angular positions we can move the positional rotation servo motor with ON times and OFF times of the PWM signal are summarized in the table below:

Table 1: PWM information for controlling a servo motor

PMW ON time (mS) PMW OFF time (mS) Angle (Degrees)
1.0 19.0 0
1.5 18.5 90
2.0 18.0 180

But in a continuous rotation servo motor, this pulse information do a different thing, instead of the pulses moving the servo shaft to a certain position, it controls the speed and the direction of the servo motor. Here is how the control operates, when the ON time of the servo is 1.5mS, if it was a positional rotation servo motor, the shaft will move to the 90º position, which is half way position of the servo motor, however in continuous rotation servo motor, this PWM signal of 1.5mS will keep the servo steady. But sending a pulse with ON time of 1.0mS will turn the servo clockwise at full speed. Sending a pulse with ON time of 2.0mS will turn the servo counterclockwise at full speed. So to reduce the speed in either direction, we adjust the ON times with reference to 1.0mS for clockwise motion and 2.0mS for anticlockwise motion.

Below is a tabular representation of the various input pulse times and their corresponding speed (in %) and direction.

Figure 5: PWM ON times and corresponding servo rotation speed and direction.
Figure 5: PWM ON times and corresponding servo rotation speed and direction.
Figure 6: Continuous rotation servo motor
Figure 6: Continuous rotation Servo Motor

Continuous rotation servo is mostly used in radar dish or a drive motor on mobile robots

Linear servo motor:

This type of servo motor has special gear system that converts circular motion to linear motion, it is sometimes called a linear actuator. As the name implies, it’s a type of servo motor that moves in a translational manner. It’s likened to the positional rotation servo motor in that, it has limits it cannot move beyond. It can move back and forth within these limits. This type of motor mostly found in jacks, industrial manipulators, robot actuators, automated door locks, etc.

Linear servo motor
Figure 7: Linear servo motor

Classification of Servo Motors

Servo motors can be classified either as:

  • AC driven
  • DC driven

AC driven Servo Motors

The speed of AC driven servo motors is determined by the frequency and number of magnetic poles created by the stator. At the other hand, the speed of the DC motor depends on the DC voltage applied to the motor.

AC driven servo motors are classified either as:

  • Synchronous
  • Asynchronous

Synchronous AC driven servo motors have their rotors rotate with the same speed as the stators’ rotating magnetic fields.

Asynchronous AC driven servo motors have their rotors rotate slower than the stators’ rotating magnetic fields.

DC driven Servo Motors

DC driven servo motors can be classified either as:

  • Brushed
  • Brushless

Brushless DC servo motors are more expensive than their brushed counterparts.

A servo motor can as well be classified either as:

  • Having plastic gear
  • Having metal gear

Parts of a Servo Motor

The internal parts of a typical hubby DC servo motor is shown below:

Virtual view of the internal parts of a typical DC servo motor.
Figure 8: Virtual view of the internal parts of a typical DC servo motor.
Real view of the internal parts of a typical DC servo motor
Figure 9: Real view of the internal parts of a typical DC servo motor
SG90 positional servo motor showing all parts of the servo motor
Figure 10: SG90 positional servo motor showing all parts of the servo motor

Internal Connection of a Servo Motor

From the figures above, we see that the power supply and signal wires are connected to the control circuit, the control circuit in turn is connected to the DC motor and the position feedback sensor, the position feedback sensor and the DC motor are connected to the rotating shaft via the gear. The servo motor is a closed loop mechanism that uses sensor for positional and directional feedback to ensure a control loop.

Intuitive explanation of how a servo motor works

When the servo is powered and electric pulse is sent to the signal wire, this signal enters the control circuit. The control circuit electronics interprets the signal in terms of voltage; it then compares this voltage with the voltage already presented to it by the position feedback sensor which in this case is a potentiometer. If the difference in the voltages is zero, it means that the pulse signal that was sent to it is telling it to move to the same position that the servo motor rotating shaft has been. This will make the control circuit not signal the DC motor to move. However, if the difference is a positive or negative value, the control circuit will signal the DC motor to move to the right or to the left respectively in other to correct this difference. This process is called Error correction and error amplification. The speed of the motion depends on the size of the voltage error value, the greater the voltage, the higher the speed, this is called proportional control. As the motor moves, it turns the gears which convert the DC motor high RPM low torque motion to a low RPM high torque motion at the rotating shaft. As the shaft turns, it also turns the potentiometer, the turning potentiometer is connected to the control circuit, as the potentiometer turns, it induces voltage variation at the control circuit, and the control circuit uses this voltage to monitor when the error correction voltage is attained and equal to zero. When this happens, the control circuit signals the DC motor to stop rotating.

This is a very sophisticated process, but the control circuit makes the whole process easy. See the feedback control system block diagram below:

Feedback control system block diagram
Figure 11: Feedback control system block diagram

How to Control a Servo Motor

To control a servo motor, like the SG90, we send PWM signal with a period of 20mS (50Hz). The duty cycle of the pulse determines the direction and position the servo should move. Typical angles the servo can move are 0º, 90º and 180º. The respective ON and OFF times of the signal that will produce these motions are tabulated below:

Table 1: PWM information for controlling a servo motor

PMW ON time (mS) PMW OFF time (mS) Angle (Degrees)
1.0 19.0 0
1.5 18.5 90
2.0 18.0 180

This is the same table as table one. To turn the servo motor to other angles we chose the PWM that fall in between 1.0 and 2.0 milliseconds.

The best way to generate these pulses is by using a microcontroller. However, controlling servos this way will be very challenging, hence, the use of arduino and servo library has simplified the process, all you need to do is include the servo library in your arduino programming and use the simple servo functions to control your servo motor. The arduino servo library supports up to 12 servo motors on arduino uno and up to 48 motors on arduino mega.

We shall be designing and constructing various robots using this sophisticated servo motor.

I know you now have an intuitive understanding of what a servo motor is all about and how to control a servo motor. If there is anything you think I missed out, or any topic you want me to write on, state it the comment section below.

Tags
Show More

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button
Close