By John Blankenship & Samuel Mishal
The Propeller chip from Parallax, Inc., is an innovative invention and a significant
advancement in the microcontroller arena. It incorporates eight parallel processors
(called cogs), and with its very easy to learn and powerful language called Spin, you
can implement amazing projects that would be beyond the abilities of most controllers
in its price range.
A while back, we implemented a project to experiment
with PID attitude control of a space station model (Figure 1).
The overall system was quite complex and constituted many
intricate subsystems. The quadrature encoder aspect of the
project was the subject of an article in the February ‘09 issue
of SERVO Magazine. You can also see a video of the system
in action on You Tube (search for RobotBASIC Control
The project required parallel processing and was originally
implemented using three individual processors. Recently, we
began experimenting with the Propeller chip and decided to
redo the project using it in order to study how it would
perform. The result was a much more stable and responsive
system, as well as a much simpler one as far as hardware.
Moreover, we were pleasantly surprised at how easy it was to
implement the required software using the Propeller’s native
language (Spin) which was readily learnable and powerful, as
well as a pleasure to use.
FIGURE 1. Space station model.
The Need For Parallel Processing
Using any of the many microcontrollers available on the
market these days (e.g., BS2, SX, PIC etc.), one can
accomplish projects that two decades ago would have been
beyond the skill level and budgets of the average electronics
enthusiast. However, in most projects (e.g., robotics), one
has to also use numerous (what we call) “helper modules”
that take care of tasks that would otherwise require the
prohibitive continuous attention of the microcontroller.
For example, robotics projects often require a pulse-width modulation (PWM) system for efficient speed control
of DC motors, or for positional control of servo motors.
Stepper motors require the microcontroller to continuously
change the excitation of the coils to drive the motor from
one step to the other. Infrared and ultrasonic distance
70 SERVO 12.2010
measuring systems also require the controller to stop other
tasks in order to make accurate measurements.
To relieve the microcontroller from having to spend an
inordinate amount of time taking care of repetitive tasks, it
has become common practice to use various helper
modules. These helper modules in themselves are often
microcontrollers fully dedicated to taking care of the work
for which they were designed.
This, in effect, achieves a parallel processing, multi-tasking system with a microcontroller like the BS2 becoming
an overall manager and coordinator of the system.
Searching the web (e.g., www.Parallax.com), you will find
such helper modules as the BiStep motor controller, HB- 25
motor controller, PWMPAL, ServoPAL, and PING))) ultrasonic
distance sensor to mention just a few.
Most of these modules carry out the continuous