|
How to hack the "servo" out of "servomotor"...
PURPOSE
- This page describes converting a standard 3-wire hobby (e.g. Futaba)
servomotor to a simple 2-wire DC gearhead motor that is driven
by a pulsed or analog DC power source.
- For information on the more typical 3-wire hobby servomotor to
3-wire continuous rotation servomotor, see
Seattle Robotics Society: How to modify a servo.
|
[ NOTE: A MUCH BETTER reference is available
(PDF,
HTML,
LaTeX). HOWEVER, it does not have the quadrature encoder example that IS included here. ]
By Ted Pavlic
Most websites do not result
in DC gearhead motors; they result in modified servomotors.
There are plenty of websites available like
Hacking a Servo,
but these websites instruct users on how to turn a simple hobby servomotor,
like the Futaba S-148 or the Futaba S-3003, into a continuous rotation
hobby servomotor. In other words, the resulting motor
is not a simple DC motor. It still is a
servomotor, and it still requires a servomotor controller
to turn it. What the modifications do is convince the servomotor that
it never reaches its goal angle, and thus it continuously rotates trying
to achieve that goal. The motor still runs off of 5V, and it is still
controlled with a pulse-width modulated (PWM) [digital] signal.
Historically, this webpage was
for MIT HandyBoard users.
This webpage was originally created to help students using MIT HandyBoard
controllers onboard small autonomous robots. The HandyBoard is a nice
product, but only one servomotor can be controlled easily,
and it is nearly impossible to control more than two
servomotors. Students using the HandyBoard will often need two motors
as drive actuators and at least one more motor for some deposit or pick-up
mechanism. Often "unhacked" servomotors make great deposit, pick-up, or
steering actuators, so if a servomotor is to be used as a drive motor,
the HandyBoard runs out of servomotor control outputs very quickly.
This website is about
converting to a DC gearhead motor instead.
The reason why a student would want to use a servomotor as a drive motor
is that hobby servomotors often come with very nice nylon gear trains
that make for a fairly speedy but also fairly strong motor. So the ideal
situation would be to "hack" the servomotor to access its internal DC
motor directly, thus turning the servomotor into a
DC gearhead motor. An additional bonus of this is that
most hobby servomotors have DC motors which can be fairly safely operated
at upwards of 9V, which makes for a pretty powerful DC gearhead motor.
It's nicer to use DC
motors on the HandyBoard.
So now that the student has a DC gearhead motor with the
HandyBoard, the motors can be controlled with the motor outputs (four
H-bridge circuits) which frees up the one or two servomotor control
outputs.
I encourage you to read the
Hacking a Servo information to gain a better understanding about how a servomotor
works. It should also help you anticipate what needs to be done to turn the
unit into a true DC gearhead motor.
Simply, follow every step in that information, but STOP at the
"Now for the actual modifications" step.
That is, do:
- Open the case
by removing the four long screws at the bottom of the
unit. It should be easy to remove the bottom and the top of the housing.
- Remove the gear
assembly, but be careful to remember how they were originally arranged.
- The next step
will vary depending on what type of servomotor you have.
Look for small screws that attach the drive motor to the housing. Hopefully
there will be two small phillips-head screws going into the top of the
motor, but there are no guarantees.
- Remove the motor and circuit board from the housing. You may have to
apply a lot of force to the top of the potentiometer sticking out of the top
of the housing in order to pop the circuit board out. You don't have to
worry TOO much about breaking anything as we shall find out in a second that
the circuit board matters very little. Be sure not to break any of the gears
or the housing, however.
- At this point you should have a bunch of gears, a plastic housing,
and a circuit board with a DC motor attached.
|
Now that you have the motor apart, it's time for the new steps.
First, remove the control circuitry.
Regardless of your
objections, take some sort of cutting device (like some small diagonal
cutters, for example) and clip the circuit board in half. That is, get rid of
the important part of the circuit board next to the motor. The only thing we
care about is the motor. You can leave the half of the board mounted onto the
motor, but get rid of the stuff next to it. If you are uncomfortable
with clipping the board in half, then have someone help you and
apply a soldering iron to the leads coming out from the motor going into
that board. As the solder heats up, you should be able to pry the board
away from the motor. Then only a bare motor will be exposed. If you have
a difficult time doing this, just break off that unneeded circuitry.
Next, salvage the three wires from the control circuitry.
The control circuitry you just clipped off
should have three wires soldered to it. You probably want to use these wires,
so remove them from the control circuitry. It is not difficult to use a
soldering iron to heat up the existing solder to the point where you can slide
the wires right out.
Since you only need two wires, you can remove one
of the wires if you want.
Finally, attach the wires directly to the motor.
Now solder the two remaining wires to the two
leads coming from the bottom of the motor. If you clipped off the board,
these leads will be protruding
through the bottom of the circuit board remaining connected to the motor. To
each lead coming from the motor, solder one wire. These wires will provided
the PWM-regulated power from the Handy Board motor ports.
|
You can start
using the steps from the previous information at this point.
Start at the "Now, reassemble ..." step.
That is, do:
- Insert the motor (now without the control circuitry) back into the
housing. You should notice that now the potentiometer will NOT protrude out
the top because it is not there anymore :). Only the motor will protrude out
the top of the housing.
- Fasten the motor as necessary (that is, put the proper screws back or do
whatever steps are necessary to fasten the motor inside the housing).
- Before reassembling the gears, you will have to remove a little plastic
"stop." It's a small nub of plastic on one of the gears that should
obviously keep the gears from turning a full 360 degrees. Simply clip or cut
this stop off with diagonal cutters or some sort of knife. Make the gear
smooth so that there will be nothing keeping it from turning 360 degrees.
- Reassemble the gears and place them back onto the housing on top of the
motor.
- Put the housing back together. You now have a DC gearhead motor.
- Try turning the motor. It should be able to turn 360 degrees with only
the resistance of the motor. If there is any extra resistance, open it back
up and be sure you removed the mechanical stop all the way. Also be sure
that the motor leads aren't being shorted together.
|
It's safer to regulate the output voltage to the motor.
You may want to add some voltage regulation
in line with the two wires of this cable in order to ensure the proper
rated voltage goes to the DC motor. You will have to seek separate
documentation for this step.
If motor seems to be binding, check your wiring.
When soldering the wires onto the motor within the housing, be careful
not to let the wires touch. Because those wires are most likely
braided, it is very easy for some strands of the braid to reach
over and short against the other motor lead (or a strand from the other
wire).
Not only is this bad for the HandyBoard (shorting the motor ports will
reset the HandyBoard and may cause damage), but shorting the motor leads
together prevents the build up of any "back-EMF" from the motor, and
the motor will have an urge to stall. Because of the gear ratio on
the output of that motor, this effect will be very apparent, even when
the motor is disconnected from the HandyBoard and is being backdriven
manually.
After you assemble your modified motor, try to turn the
output manually. If the output gears appear to be binding and the gears
appear to be put back together correctly, then MOST LIKELY the
wires soldered to the motor leads are shorting somewhere. Check
your wiring inside the motor housing.
Use a capacitor close to the motor.
I am generally in favor of adding a relatively
large capacitor as close to the motor as possible with as short of leads as
possible. This will help protect the HandyBoard, help prevent conditions
which cause your HB to reset under higher loads, keep the battery voltage
fairly consistently high across all motor ports, and will help the motor be
able to respond to changes more effectively. On a DC motor, this capacitor
can be very large. None of the higher frequency information is important
for the motor's operation. As long as the motor isn't lagging when
turning on and off, that capacitor is not too large.
In the past, these servos have been pretty quiet motors already very
safe for HB usage like this; however, if you notice some weird problems
during normal running of the robot (make sure you have no mechanical
issues causing the motors to bind up and stall), you may think of adding
such a capacitor.
It's very often possible to run the hacked servomotors at the full
output voltage of the DC motor ports (9-11V).
FEH students
should feel free to ask for other TA's
experience with "hacked servo" drive trains, but with this particular hack
typically there is not often a problem simply running the motor "open." That
is, typically groups are able to run the DC gearhead motor produced here
directly off of the battery voltage with no voltage regulation. If you wish to
take the [relatively low] risk of burning out your motor and/or, drawing
enough current to reset the Handy Board during normal operation, simply modify
the cable to plug directly into the motor ports. Either by removing the female
header at the end of the existing servo wires and putting on an appropriate
male header, or by simply creating a male header which can be plugged into the
female header, modify the servo power cable so that it can be plugged into the
Handy Board motor ports. Remember that the motor ports provide voltage and
ground separated by one space. That is, the connector is three-wide.
|
There is a fairly simple interesting extension of this process that also adds
a quadrature encoder to the DC gearhead motor modified servomotor.
For more information about the use of quadrature encoders, see
Comments on Quadrature Encoders, which actually
uses the above page as an example of some general rules on how and when
to apply quadrature encoders.
|