What is "feedback"? Think about driving a car, and wanting to keep your speed smack on 55 MPH. You are cruising along, and occasionally glance at the speedometer. If your speed is under 55, you press down harder on the gas pedal. If your speed is over 55, you lift your foot. The speedometer gives you feedback - information about how fast you really are going. The brain uses this to decide whether to press down or raise the foot. This is also known as "closed loop" control.
An automobile's "cruise control" is a closed loop system that works similar to the way that you do while driving. You establish a set point, and if the speed is below that, the cruise control presses down on the gas pedal.
The most common consumer-visible servo is that used to operate radio controlled (RC) model planes, boats, and other gadgets. These are small boxes that contain:
RC servos have a huge amount of haunt potential for precision animation. Just imagine a skull head with eyeballs that can track left to right, following guests as they walk by....
Here are a couple of Royal "Titan" servos.
The radio controlled model market is evidently a lucrative one - there are numerous companies making RC servos: Airtronics, Cirrus, FMA Direct, Futaba, Hitec, JR, Ko Propo, Multiplex, Tower Hobbies.
Although the array of manufacturers may seem daunting, it is only a good thing. It gives you lots of choices, and lowers the prices.
The bad news is that just about everybody formerly used a different connector layout for these same signals. If you are using an Airtronics, you can't just plug a Futaba in its place. Luckily, this silliness has been noticed - there is an entire industry that revolves around replacing the various connectors with a plug-compatible arrangement. And, as time marches on, the various brands slowly converge on a standard.
If you need to mix and match different types of servos, this connection information may help:
|brand||universal||positive wire||negative wire||signal wire|
|KO Propo||NO||Red, outside pin||Black, middle pin||Blue or White, inside pin|
|NO||Red||Black, middle pin||Black, White, or Blue|
|NO||Red, outside pin||Black, middle pin||White or Yellow, inside pin|
|Airtronics/Sanwa Z||YES||Red, middle pin||Black, outside pin||Blue or Yellow, inside pin|
|Futaba J||NO||Red, middle pin||Black, outside pin||White, inside pin|
|Hitec S||YES||Red, middle pin||Black, outside pin||Yellow, inside pin|
|Japan Radio (JR)||YES||Red, middle pin||Brown, outside pin||Orange, inside pin|
|Tower Hobbies||YES||Red, middle pin||Black, outside pin||White, inside pin|
The interesting part is the control signal. An RC servo motor doesn't just run when you give it power. It's an intelligent device, and you must tell it what you want it to do. You need something that drives the servo with that control signal.
Check the specifications before you buy. Example: the Hitec HS-50 Ultra-Micro "feather" runs only on 4.8 volts.
|0.6m Sec||-45 degrees||minimum pulse length|
|1.5m Sec||0 degrees||center position|
|2.4 mSec||-45 degrees||maximum pulse length|
So, the short story is, if you can make a series of electrical pulses, you can rotate the servo shaft through a range of 90 degrees. And that 90 degree range of rotation can open and close the jaw of a skull, move eyeballs left and right, point a finger, or do all sorts of creepy animation.
The driving pulse is usually specified as 3-5 Volt Peak to Peak, but I suspect that in many cases you can get by with whatever power the motor is getting. I would avoid using a drive pulse greater than the motor power.
This circuit is from Ron Woodward's web page at http://members.aol.com/_ht_a/RonOuul/electronicnotebook.html.
Ron describes it as follows...
This 555 circuit will provide the signal required to control an RC servo.
The output is a positive pulse between about 0.9 milliseconds and 2.1
milliseconds. The off period between pulses is about 40 milliseconds.
This can be shortened by reducing the value of the 3.3meg resistor.
The B+ voltage should be hooked to the same voltage as the servo.
Servo connections are: red=B+, black=ground, and white=input signal.
Here's another take on the 555 version from http://www.repairfaq.org/filipg/RC/F_Servos.html.
The 555 seems very popular in this application. The web is filthy with schematics for this kind of thing, all very similar. The web page "http://www.uoguelph.ca/~antoon/gadgets/gadgets.htm" has five of them! Just go to your favorite search engine and punch in "servo 555" to see some variations.
There is a common defect shared by all the single-timer circuits: as you change the pulse width, the frequency changes. Since servoes really only care about the pulse width, this probably isn't a big deal.
Fancier servo drivers use two timers: one counts off the basic pulse rate; the other generates the on pulse, setting the width. This is sometimes done with a pair of 555 chips; a 556; or a 555 driving some other monostable.
One elaborate servo driver is at http://www.electronic-engineering.ch/radiocontrol/circuits/servo-check/checker-fut.html.
It is described as follows...
This circuit shows a Servo-Checker for JR / Graupner / Futaba-Components (positive impulse).
The ZPD2.7 (Zener-Diode 2.7V) at the output limits the positive servo signal to a maximum amplitude of 2.7 Volts ( Futaba-Receiver-Output ).
The first Timer 555 creates a negative trigger signal of approximately 45 Hz (a trigger impulse every 22 ms, DO NOT exceed 50 Hz for proper servo function). The second
Timer 555 modulates a positive square signal from 0.9 ms to 2.1 ms every 22 ms (Pulse-Width-Modulation). This signal provides the full information for the exact servo
M is a trimmer for middle-position, P is the potentiometer.
For more information on 555 timing circuits, check out our 555 timer calculator.
Lazy digital haunters might want to give over this job to some sort of co-processor or servo driver chip. These are systems where the CPU sends a character string over a serial port, to the controller, who interprets the command, and generates the necessary pulses.
Here are some makers of such chips:
If you don't want to add another chip, remember that most single-chip microprocessors (such as 68HC11) have an on-chip PWM generator that can drive servos. We are not, technically, doing PWM. We are doing Pulse Width Position Servo (PWPS). But the microprocessor doesn't know or care - he is merely being asked to generate a train of pulses.
For $125, you get the Sync-It, a servo, power supply, and connective tissue.
TBD is also coming out with a fancier servo controller soon...
I won't go into details of how this is done, but I will outline the general principle.
You can see how handy this is to robot builders. Just bolt a couple of modified servos to the bottom of the robot, and put tires on the output shafts. Then just generate a stream of pulses to control speed and direction.
A few companies offer servos that are actually digital inside. Such servos contain a computer chip that measures the width of the incoming pulses, convert the current potentiometer position to digital (or measure position digitally), compute the difference, and drive the internal motor digitally.
For the sake of discussion, the theory of operation is the same. The signals are merely processed in another way.
|author||web site URL||content|
|Matt Verrochi||http://people.ne.mediaone.net/mverrochi/servoguide.htm||table that compares servo types and brands|
|email@example.com||http://www.repairfaq.org/filipg/RC/F_Servos.html||assorted servo info|
|firstname.lastname@example.org||http://www.repairfaq.org/filipg/RC/F_rc-offroad5.html||assorted servo info|
|Hank Hagquist||http://rcvehicles.about.com/hobbies/rcvehicles/library/eih/bleih_swiring.htm||nice chart of connector pins for various servo makers|
|Kevin Ross||http://www.rdrop.com/~marvin/explore/servhack.htm||some servo basics; how to modify a servo for continuous rotation|
Thank you for visiting. Your comments are welcome.
. . . . . .