FIGURE 3. The SunBot II azimuth assembly is made from
VEX components, a recycled tin can, and the azimuth
geared stepper motor assembly.
the battery and damage it. There are solar power voltage
regulators commercially available for larger installations.
One nice feature of this implementation is that it will not
depend on using photocells or phototransistors to find the
brightest spot in the sky in order to keep the panel pointed
at the sun. Instead, I plan to use astronomical data found in
navigation tables of azimuth and elevation positions for a
given time interval, as mentioned previously.
The complete SunBot II azimuth assembly shown in
Figure 3 is made from VEX components, a sturdy recycled
tin can, and the azimuth geared stepper motor assembly.
The elevation frame support column and azimuth drive are
also shown. Since cylinders and pipes are not currently part
of the VEX structure inventory, I adapted a tin can to
support the solar panel assembly so that it could rotate 0 to
360 degrees. A VEX limit switch mounted on the elevation
axis is used to stop the rotation so that the wires don’t get
all wound up. The azimuth drive uses another geared
stepper motor mounted on a tin can. The tin can was
adapted by simply drilling two holes on the top to allow a
VEX bracket to be mounted using standard VEX nuts and
bolts. (See Figure 4.) Other household items such as steel
or PVC pipes, metal boxes, etc., can be adapted for use
with VEX components, as well.
Recall another VEX limit switch is mounted on the
azimuth axis to stop the rotation so that the wires don’t get
all wound up. The firmware running on the VEX
microcontroller is used to poll the limit switches and stop
the stepper motors if the travel limits are exceeded.
Sunbot II’s elevation drive shown in Figure 5 is used to
tilt the solar panel 0 to 90 degrees using a stepper motor
adapted to a VEX gear box. The VEX controller will drive
the stepper motor to position the panel. Notice how the
stepper motor gears meshed perfectly with the VEX
gears. Not all adaptations are this easy but sometimes
you find that hardware from various sources has the
same form factor. These same geared stepper motors
can be used for other robot applications including
odometry, dead reckoning, TurtleBots, and even 3D
plotters that require very precise motions.
SparkFun EasyDriver Stepper Motor Driver
to 30V supply to power the motor, and has an onboard
voltage regulator for the digital interface. Connect a four-wire stepper motor and a microcontroller, and you’ve got
precision motor control! EasyDriver drives bi-polar motors,
or motors wired as bi-polar, i.e., four, six, or eight wire
stepper motors. Note that the microstep select (MS1 and
MS2) pins of the A3967 are broken out allowing
adjustments to the microstepping resolution. The sleep and
enable pins are also broken out for further control.
Remember, I used the EasyDriver board to drive the
stepper motors from the VEX microcontroller. Each board
requires two of the VEX controller’s I/O pins. One pin is
used to toggle the step while the other pin is used to
change the direction (clockwise or counter-clockwise). A
one-step pulse moves the stepper motor one, 1/4, or 1/8 of
a step (micro-step), depending on how the EasyDriver is
configured using the MS1 and MS2 pins. I used the 1/8 of
a step since most low cost surplus stepper motors have a
The EasyDriver shown in Figure 6 is a simple to use
stepper motor driver, compatible with anything that can
output a digital 0V to 5V pulse. EasyDriver requires a 7V
FIGURE 4. Another view showing how we adapted
the tin can for the azimuth geared stepper motor
assembly. The tin can was adapted by simply drilling two
holes on the top to allow a VEX bracket to be mounted
using standard VEX nuts and bolts.
SERVO 12.2010 63