contained within a single board. Microcontrollers become
daughterboards and parallel processors rather than a
primary controller, a simple webcam becomes a machine
vision solution, and a speaker and microphone become
voice synthesis and recognition. There is also a plethora
of readily-available bridgeware such as Phidgets or the
Robotics Connection Serializer product line, which allows
easy access to various types of I/O ports, sensors, and
motor controllers through a comprehensive .NET library API.
Lastly, it is a surprisingly low cost solution to
implement. Why spend $300-$500 for a high-end
development microcontroller when you can spend the same
or less for an onboard PC solution? You’re not limited by
the programming languages that a controller supports,
program space and memory, nor processing capability. You
can select the programming language of your choice, write
as much code as you could possibly imagine, and virtually
never hit a limit as far as processing capability.
Welcome to the world of PC-based robotics! The
technology is there and readily available, and the positives
vastly outweigh the negatives. Microcontrollers as the end
all for robotics control are a thing of the past — they should be
looked at as complimentary electronics rather than primary
controllers. We have the capability of adding much more
powerful computing solutions to our robots — it’s just a matter
of doing it. I hope to shed some light on just how easy it is.
Robot PC Hardware
The concept behind the hardware is simple: Build a
self-contained computer and interface it to your robot’s
hardware through the use of bridgeware (servo controllers,
I/O boards, etc.) using the computer’s available serial ports,
network ports, and/or USB host. Software then runs on the
PC and issues commands to the hardware components
through the bridgeware.
Picking a motherboard CPU is the first order of business
and really depends upon your budget and the size of your
robot. I highly suggest staying within the ITX form factor of
motherboard CPUs as they focus on compact size and low
power consumption, whereas the ATX form factor is primarily intended for full size desktops and as a result has higher
power consumption and larger footprints. Alternatively, if
your robot’s base is big enough, laptops and handheld PCs
make excellent choices, as well. You do tend to pay a bit
more the smaller you go, but the feature set is fairly
consistent and more than enough for robotics applications.
I prefer the Pico-ITX platform because of the small footprint
and low power consumption (approximately 15W under
load), and thus I’ll focus on the implementation of that
model — although the same practices can be applied to any
model. Figure 2 shows a close-up of the Pico-ITX board.
When I first purchased the board for my project, only
the bare OEM version was available. Wiring the front panel
switches and LEDs, building a suitable mount or enclosure,
and finding a suitable power supply was left up to me.
Now you can purchase a starter kit such as the Artigo,
which provides a power supply, front panel, and a nicely
designed enclosure, however this does add some size. If
you’re going for ultra-compact, your best bet is to build
your own mount or enclosure.
The Pico-ITX board comes with three stand-offs and #4
mounting holes at each corner of the board. Referencing
the spec sheet provided by VIA, I found measurements for
the exact spacing and diameter of these mounting holes. A
few minutes in Autodesk and I had a very simple mounting
frame that would suffice (shown in Figure 3). A generous
friend with a Sherman CNC cut out the mounting frame for
me from Sintra plastic.
I removed the three stand-offs and was left with 4-40
screws mounted on the heatsink sticking out of the bottom
of the board where the stand-offs used to be. I attached
three 3/4” long 4-40 hex stand-offs to these screws and a
single 1/4” long 4-40 socket head screw for the remaining
hole to mount the fourth hex stand-off. The other ends
were attached to the mounting frame using other four 4-40
socket head screws. This raised the Pico-ITX board off of
the mounting frame by 3/4”, allowing enough clearance for
power cables and other various wires to run underneath it.
It also provided a nice place to mount two microswitches
for the power and reset buttons; the pinout for the front
SERVO 10.2008 53