Page 277 - Hacking Roomba
P. 277
258 Part III — More Complex Interfacing
In the 1970s, when computers started to become small and cheap enough for everyday use,
engineers realized that the modular architecture of microprocessor computer systems was too
complex and cumbersome for designs that didn’t need all the processing power and input/out-
put of a normal computer. There were many tasks that needed computation but didn’t need a
powerful microprocessor, let alone a screen, keyboard, or printer. So smaller, less powerful
CPUs were joined with a few simple I/O devices onto a single chip. These new creations were
called microcontrollers.
Figure 13-1 is a diagrammatic view of the difference between a normal computer system and a
microcontroller system. In a standard computer setup, different physical chips provided different
functions: computation, memory, timing, input, and output. These separate devices were joined
together by a collection of wires called a bus. The modern PCI bus is a descendant of this com-
mon system bus. In a microcontroller, reduced-functionality versions of the distinct devices were
placed inside a single physical chip and connected by an internal bus that was usually not acces-
sible to the outside. The lack of this bus may seem like a limitation, but in fact it means getting a
microcontroller system working is much easier due to the so many fewer connections needed.
With a single small device containing everything needed to run algorithms, microcontrollers
were embedded in all sorts of devices. This practice has come to be called embedded systems, and
designing such systems is an engineering discipline in its own right. Embedded systems are
what is responsible for all the exciting advances in our everyday objects becoming smart objects.
Modern home computer systems are a kind of hybrid approach. The CPU is still separate, but
instead of many separate chips serving different functions, the functionality is consolidated into
one or two large bridge chips. Similarly, some microcontrollers are so advanced now as to be
able to run modern operating systems like Linux.
The best magazine about embedded systems is Circuit Cellar, available at http://
circuitcellar.com/. It is written by engineers for engineers and can get complex quickly
for the uninitiated. But if you want to learn about the newest developments in tiny computa-
tional devices, it is a great resource.
Parts and Tools
There are many microcontroller development kits available that can be used with Roomba. The
first shown here, the Basic Stamp, is a standard, easy-to-use, and well-known device. The sec-
ond, Arduino, is a newcomer to the scene, but is based on standard parts, is becoming as easy to
use as the Basic Stamp, and is much cheaper and more powerful than the Stamp. If you have
the time, try out both microcontroller styles.
For both styles of projects, you’ll need:
Mini-DIN 8-pin cable, Jameco part number 10604
Several 220-ohm resistors (red-red-brown color code), Jameco part number 107941
Jumper wire kit, Jameco part number 19289
Several LEDs, Jameco part number 156961 or similar