Notice: This page contains information for the legacy Phidget21 Library. Phidget21 is out of support. Bugfixes may be considered on a case by case basis. Phidget21 does not support VINT Phidgets, or new USB Phidgets released after 2020. We maintain a selection of legacy devices for sale that are supported in Phidget21. We recommend that new projects be developed against the Phidget22 Library.
|
Servo Motor and Controller Primer
Introduction
The broad definition of a servo motor is an automatic device with some sensing mechanism to correct its performance. This primer refers specifically to RC servos.
RC Servos are used for positioning applications. They were originally designed to control Remote Control airplanes and their low cost and high torque makes them very useful as an actuator in prototyping applications. An RC Servo can be instructed to move to a desired position by the controller. Internally, it monitors the current position, and drives the motor as fast as it can until it reaches the desired position. This is a very cheap and simple way to control a motor. It has some limitations - there is no way for the controller to know the current position and speed of the motor. Applications that want smooth movement suffer from the aggressive acceleration.
How it Works
A typical servo motor consists of a small DC motor driving a gearbox. A potentiometer is connected to the output shaft and through the use of some simple electronics, a closed-loop control system is created to monitor and command the motor to move to a specific position. Servos run on a pulse-width modulation (PWM) signal which is a series of square waves where the width of the wave is altered from pulse to pulse. For example:
The width of each pulse corresponds to a specific rotational position, and different servo motors are mapped differently depending on their range of motion and resolution. For example, the 1 ms pulse in the diagram above might map to a position -45° from the starting position, while the 2 ms pulse might map to the +90° position. This differs slightly from conventional pulse-width modulation because the modulation serves only as an encoded command, and is not used to power the device (The servo motor is powered via the +5V line, not the PWM data line).
This is not to be confused with pulse-code modulation, pulse-position modulation, or other types of modulation used to transmit wireless commands to the servo controller. The transmission discussed in this section only refers to the wired communication between the servo controller and servo motors.
Choosing a Servo Motor
Servos have 3 main attributes that must be taken into account when choosing what servo is correct for your application:
- What range of motion do you need? Servos' range of motion can be shortened programmatically without issue. But to get a larger range, you will need to get a servo that can reach it out of the box. Servos commonly come with 180º range or more.
- How accurate do you need the position control to be? The larger a servo's range of motion is, the less resolution you will have for position accuracy (depending on the quality of the servo).
- How much torque do you need? Some servos provide more torque than others and depending on your application you might need high torque, or low torque.
Choosing a Servo Controller
Servo controllers are all generally the same. They have 3 pins per motor, +5V, Ground, and Data. They all produce a PWM (pulse width modulation) signal to control the motors.
The main difference comes in when you need to control multiple motors. Controllers can support different numbers of servos, with the more expensive controllers typically allowing a larger number.
Types of Servo Motors
Servo
The average servo is the most common type of RC (radio control) servo on the market. They work exactly as expected and typically have a range of motion somewhere between 180º and 360º.
Continuous Rotation Servo
These are a subset of servos that do not track position. They have been modified to always report a current position of 0 so when they rotate they keep turning until the target position is set to 0.
Linear Actuator Servo
Linear servos behave like pistons, extending and contracting. This is achieved by using a screw thread at the end of the gearbox, changing the rotational motion to linear motion. Other than that, it behaves the same as any other servo motor.
Digital Servo
Digital servos behave in the same way as traditional servos except their internals are different. Normally, a servo motor consists of a DC motor, a potentiometer, and a small analog circuit which acts as a controller to keep the motor in position. In the case of digital servos, the analog circuit is replaced with a microprocessor which performs the same function. This allows digital servos to have faster response times, more accurate control of position and velocity, and more torque per size. However, digital servos use substantially more power than their analog counterparts. This means that for the same power supply you will be able to operate fewer digital servos than analog.
Products that fall under this category
- 3000 - Hitec HS-422 Deluxe Servo
- 3200 - Hitec HS-815BB Mega Sail Servo
- 3201 - Hitec HS-785HB Winch Servo
- 3202 - Hitec HS-1425CR Continuous Rotation Servo
- 3203 - Hitec HS-485HB Deluxe Servo
- 3204 - Hitec HS-645MG Super Torque Servo
- 3205 - Towerpro MG90 Micro Servo
- 3206 - SpringRC Micro Servo (SM-S2313M)
- 3207 - SpringRC Small Servo (SM-S3317M)
- 3208 - SpringRC Standard Servo - High Torque (SM-S4315M)
- 3209 - SpringRC Standard Servo Motor (SM-S4505B)
- 3210 - SpringRC Small Servo Continuous Rotation (SM-S3317SR)
- 3211 - SpringRC Standard Servo Continuous Rotation (SM-S4303R)
- 3212 - SpringRC High Torque Servo Continuour Rotation (SM-S4315R)
- 3540 - Linear Actuator L12-100-100-06-R
- 3541 - Linear Actuator L12-50-100-06-R
- 1061 - PhidgetAdvancedServo 8-Motor
- 1066 - PhidgetAdvancedServo 1-Motor