POWER BEYOND
THE SHIELD
By John Blankenship
and Samuel Mishal
www.servomagazine.com/index.php?/magazine/article/december2012_Blankenship
Discuss this article in the SERVO Magazine forums at http://forum.servomagazine.com
Bryan Bergeron’s editorial comments in the October 2012 Nuts & Volts
concerning Arduino shields were right on target. He explained that shields
provide a convenient and nearly limitless way to expand the hardware
capabilities of not only Arduino processors, but any processor offering the same
form factor. If you are willing to accept some limitations though, there are
expansion options that potentially can provide both convenience and power
beyond that of standard shields. This article examines one alternative and
provides insights that might inspire you to develop your own solutions.
Shields are basically stackable daughterboards that allow a microcontroller to connect to a wide variety of hardware options without having to breadboard a
solution. In fact, there are so many options available for the
Arduino that the pin assignments for one shield have a
reasonable chance of conflicting with other shields that you
might need for a large, multi-shield project. Even if no
hardware conflicts exist, it is generally up to the user to
solve software conflicts involving interrupts and other
timing constraints that may exist with code required for the
chosen shields.
An alternative solution is to create a complete
subsystem in the form of a super I/O chip capable of
providing not only the hardware interface for a fixed
number of peripheral devices, but also the related software
drivers. The requirement of a fixed number of peripherals is,
of course, a major limitation when compared to standard
shields. For many applications though, the lack of software
complications makes this limitation an acceptable
alternative.
38 SERVO 12.2012
If you have developed a number of robotic projects in
the past, you can bundle motor driver and sensory
subroutines from those projects to create your own self-contained super I/O chip, making it easy to reuse your work
in future projects. In order to give you a framework for how
this can be accomplished, we will use the RobotBASIC
Robot Operating System on a Chip (RROS) as a specific
example. Although the RROS chip is designed and intended
to be used over a wireless link with RobotBASIC (as
discussed in the September 2012 issue of SERVO
Magazine), it can also serve as a stand-alone system
allowing it to be used as a super I/O peripheral. At the end
of this article, we will carry this concept even further by
using a PCB (printed circuit board) to create a complete,
reusable I/O subsystem.
Basically, the RROS chip provides the physical interface
for a wide variety of motors and sensors. It also contains
driver routines for controlling the supported motors and
reading data from the supported sensors through a well-defined serial protocol. This means that the RROS chip