Using passive components is both cheaper and simpler
than using level translator chips or MOSFETs.
The fly in the ointment, however, is what resistor values
work best for both input and output?
Initially, I grabbed a 15K SIP and eight 8.2K resistors. It
worked well for the servos and reading the simple digital
inputs. Little did I know the problems I'd run into later ...
I ended up using a 4.7K SIP (RN1) and 2.4K resistors
(R1-R8) for the voltage dividers, with a 470 ohm resistor
(R9) for the LED. I also added a 100 µF electrolytic
You may need to change these values depending on
your application. For example, if you want to drive LEDs,
using a 910 ohm SIP with 470 ohm discrete resistors would
be a good choice.
Decision #2: Choosing
between servo, gear, and
I ended up using some generic continous rotation
servos I had in my lab — Futaba, Parallax, and GWS are also
good readily available choices. I added a standard Parallax
servo for panning the range sensor.
There is a wide range of servos on the market — just
make sure whichever continous rotation servo you buy has
a "centering" potentiometer so you can set the center
position of the servo. You can compensate for servos
without centering potentiometers in software, but it is
simpler if you don't do it this way.
While servos are slightly more expensive than gear
motors, we avoid having to build or buy a motor driver
which is important in order to minimize the assembly work
required before being able to use a functioning robot.
Stepper motors would require an external controller or
more I/Os and a driver chip. I wanted to avoid the
complexity that using stepper motors would introduce.
I used yellow Solarbotics wheels with the drive servos,
so in the future I can add my SirMorph sensors as wheel
encoders. Besides, I like how the yellow wheels look with
the blue chassis.
Decision #3: Power sources
for the Raspberry Pi and
The Pi needs a regulated 5V power supply; one that
can deliver at least 1.5A if you are not using a powered
58 SERVO 01.2014
Figure 1: SPRITE
Photo 2: Panning servo for the range sensor.