One of the simplest bots
you can make is made by converting a couple of servos to free running mode.
You get a small motor, gearbox and speed controller all in one package.
First lets talk a bit
about how a servo works.
Most servos are
controlled by a series of pulses. The width of the high state pulse is
what determines the actual position of the servo.
Generally a pulse of 1ms
will place the servo at one end of its rotation (see figure 1) and 2ms will
place it on the other end (see figure 2)

Figure 1

Figure 2
I say generally because
I found that the range can be any where from .2ms to 3ms depending on the
servo manufacture and model. Again generally when the pulse width is
1.5ms the servo will reach the half way point in its swing.
There is a small
potentiometer inside the servo that rotates with the main shaft. This
is what tells the electronics in the servo where it is at any given time.
When we convert a servo to free running mode we disconnect the potentiometer
from the shaft and set it at its center position. We also remove any
mechanical stops that may keep the servo from turning completely around.
Once the servo can
rotate freely we can find the center spot by slowly adjusting the pulse
width. I call this the neutral position. Now by adjusting the pulse
width greater than the neutral position we can move the shaft in one
direction. By adjusting the pulse width less than the neutral position
we can move the shaft in the opposite direction.
Most servos were
designed so that when it gets closer to its allocated position it slows
down. This will allow us to adjust the speed of the shaft by
varying the amount that deviates from the neutral position.
Modifying the Servo
Note that the following
modifications will void your servo warranty.
| Step 1
Remove the 4 screws on the back of
the servo.
Note that its not necessary to
remove the back of the servo. |
 |
| Step 2
Remove the top of the servo by
lifting.
Note that the two pins shown
may stay attached to the top of the servo. If they do remove
them and insert into position as shown. |
 |
| Step 3
Remove the intermediate gear by
just lifting. |
 |
| Step 4
Remove the main shaft by lifting. |
 |
| Step 5
With your fingers or some small
pliers place the potentiometer shaft into the center position as
shown. |
 |
|
Update
Step 5b
Using a thin blade of a razor
saw or a cutting disk on a rotary tool place a small slot in the main
shaft of the servo as shown. This will allow you to
calibrate the servo later. |
 |
| Step 6
There is a small stop that must be
removed from the main shaft. I found that using small wire
cutters and then cleaning up with and exact knife works the best. |
  |
|
Update
Step 6b
Use a 5/64" Drill bit and drill
through the top of the main gear as shown. You are making
an access for you micro screw driver to adjust the main shaft
(potentiometer).
|
 |
| Step 7
Insert the shaft into the top of
the servo case as shown and test that you can rotate the shaft
completely. |
 |
| Step 8
It is now necessary to remove the
small catch located on the underside of the main shaft. You can
remove it by simply placing a small screw driver into the shaft and
prying out. The bushing will also pop out. Just place it
back in place once the catch has been removed. |
 |
| Step 9
A: Place the main shaft back in
place.
B: Place the intermediate gear
back in place.
C: Replace the servo top.
D: Reattach the 4 rear screws.
|
 |
|
Update
Step 10
To calibrate the servo just set
it to a neutral (center position) 1500us. Use a small screw
driver to adjust the main shaft as shown. Adjust until the drive
shaft stops moving. You
can use the following program calibrate the servo's neutral position. func
main()
SERVOinit(1)
SERVO1us 1500
endfunc
include \lib\DiosHSServo.lib |
 |
| |
|