Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
100% found this document useful (1 vote)
380 views

Servo2008 10

Meet Pete Lewis, lead vocalist for the band Storytyme. Pete recently created the RS1000, a new personal monitor system. Sparkfun's tutorials, products and PCB service helped him take his idea to market.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
380 views

Servo2008 10

Meet Pete Lewis, lead vocalist for the band Storytyme. Pete recently created the RS1000, a new personal monitor system. Sparkfun's tutorials, products and PCB service helped him take his idea to market.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 84

V

o
l
.

6

N
o
.

1
0
S
E
R
V
O
M
A
G
A
Z
I
N
E
H
U
M
A
N
O
I
D

R
O
B
O
T
S

P
R
O
P
E
L
L
E
R

S
T
A
R
T
E
R

M
O
T
O
R
S

D
I
G
I
T
A
L

R
F

D
A
T
A
L
I
N
K
Cover.qxd 9/4/2008 8:43 AM Page 1
Let your geek shine.
Meet Pete Lewis, lead vocalist for the band
Storytyme. Pete recently created the RS1000,
a new personal monitor system for performing
musicians. It was SparkFuns tutorials, products
and PCB service that enabled him to take his idea
to market in less than a year.
The tools are out there. Find the resources you
need to let your geek shine too.
2008 SparkFun Electronics, Inc. All rights reserved.
Hear music from Storytyme at www.storytymeband.com, or check
out Petes RS1000 at www.rockonaudio.com.
Sharing Ingenuity
W W W. S P A R K F U N. C OM
Full Page.qxd 7/9/2008 9:57 AM Page 2
email: sales@crustcrawler.com
Full Page.qxd 9/3/2008 12:24 PM Page 3
Features
22 BUILD REPORT:
Savage Part 1
24 MANUFACTURING:
Combat Robot Drive Systems
27 Building Battery Packs Fit for Combat
31 PARTS IS PARTS:
Electronize Speed Controllers
Events
26 Results and Upcoming Competitions
32 Event Report:
Roaming Robots Goes to Qatar
Robot Profile
30 K2
SERVO Magazine (ISSN 1546-0592/CDN Pub Agree#40702530) is published
monthly for $24.95 per year by T & L Publications, Inc., 430 Princeland Court, Corona,
CA 92879. PERIODICALS POSTAGE PAID AT CORONA, CA AND AT ADDITION-
AL ENTRY MAILING OFFICES. POSTMASTER: Send address changes to SERVO
Magazine, P.O. Box 15277, North Hollywood, CA 91615 or Station
A, P.O. Box 54, Windsor ON N9A 6J5; cpcreturns@servomagazine.com
06 Mind/Iron
18 New Products
19 Robotics Showcase
20 Events Calendar
66 Robo-Links
67 SERVO Webstore
81 Advertisers Index
Columns
08
Robytes
by Jeff Eckert
Stimulating Robot Tidbits
10
GeerHead
by David Geer
Robot250 Features BigBots
13
Ask Mr. Roboto
by Dennis Clark
Your Problems Solved Here
70
BasicBoard Robotics
by William Smith
Hardware Serial Port Adapter
73
Robotics Resources
by Gordon McComb
Getting Kids into Robotics
76
Appetizer
by Camp Peavy
RoboMagellan
78
Then and Now
by Tom Carroll
Robots From Humanoid to Human Status
PAGE 78
PAGE 26
PAGE 10
4 SERVO 10.2008
THE COMBAT ZONE ...
Departments
TOC Oct08.qxd 9/3/2008 1:40 PM Page 4
10.2008
VOL. 6 NO. 10
SERVO 10.2008 5
34 A Digital RF Datalink
by Fred Eady
When your robots need to
communicate, but cant see each
other, short-distance signaling using
low-power RF solves the problem.
40 Getting Control With the
Propeller: Part 2
by David Carrier
Controlling servos.
44 Get a Starter Motor
Runnin in Your Robot
by Steven Schmitt
Auto starter motors are often
overlooked for use in robot building.
However, they make a good choice
for power since they are almost
always series wound, inexpensive,
and readily available.
49 Counting on the Tried and
True Schmitt Trigger
by Margaret Toebes
See how one team at the North
Carolina Science Olympiad put this
classic circuit to work.
52 The Pico ITX Johnny 5
Project
by Andrew Alter
Part 2 covers the concept and
implementation of PC-based robotics.
56 RoboGames 2008
by Samuel Coniglio
This world class event continues to
not disappoint year after year.
60 External Interface for the
NXT Robotic Brick
by Dennis Bogden
Using Robot C software and
integrated circuits, you can interface
your own sensors and actuators to
the NXT brick.
PAGE 56
Features & Projects
Due to extraterrestrial activity, the Build the Ultimate
Robot series by Michael Simpson will continue in the
November issue. We apologize for any inconvenience.
TOC Oct08.qxd 9/3/2008 1:42 PM Page 5
Published Monthly By
T & L Publications, Inc.
430 Princeland Ct., Corona, CA 92879-1300
(951) 371-8497
FAX (951) 371-3052
Webstore Only 1-800-783-4624
www.servomagazine.com
Subscriptions
Toll Free 1-877-525-2539
Outside US 1-818-487-4545
P.O. Box 15277, N. Hollywood, CA 91615
PUBLISHER
Larry Lemieux
publisher@servomagazine.com
ASSOCIATE PUBLISHER/
VP OF SALES/MARKETING
Robin Lemieux
display@servomagazine.com
EDITOR
Bryan Bergeron
techedit-servo@yahoo.com
TECHNICAL EDITOR
Dan Danknick
dan@teamdelta.com
CONTRIBUTING EDITORS
Jeff Eckert Tom Carroll
Gordon McComb David Geer
Dennis Clark R. Steven Rainwater
Fred Eady Kevin Berry
Andrew Alter Dennis Bogden
Sam Coniglio Margaret Toebes
Steven Schmitt David Carrier
James Baker Mike Jeffries
Robert Wilburn Paul Reese
William Smith Camp Peavy
CIRCULATION DIRECTOR
Tracy Kerley
subscribe@servomagazine.com
MARKETING COORDINATOR
WEBSTORE
Brian Kirkpatrick
sales@servomagazine.com
WEB CONTENT
Michael Kaudze
website@servomagazine.com
PRODUCTION/GRAPHICS
Shannon Lemieux
Joe Keungmanivong
ADMINISTRATIVE ASSISTANT
Debbie Stauffacher
Copyright 2008 by
T & L Publications, Inc.
All Rights Reserved
All advertising is subject to publishers approval.
We are not responsible for mistakes, misprints,
or typographical errors. SERVO Magazine assumes
no responsibility for the availability or condition of
advertised items or for the honesty of the
advertiser. The publisher makes no claims for the
legality of any item advertised in SERVO. This is the
sole responsibility of the advertiser.Advertisers and
their agencies agree to indemnify and protect the
publisher from any and all claims, action, or expense
arising from advertising placed in SERVO. Please
send all editorial correspondence, UPS, overnight
mail, and artwork to: 430 Princeland Court,
Corona, CA 92879.
Size Matters
W
hen Parallax announced their
new 12 VDC motors with
mount, wheels, and position
controller, I couldnt resist picking up
a kit ($280). Finally, a standard drive
system designed for medium-sized
mobile robots from the company
behind the BASIC Stamp and the
Boe-Bot.
The verdict? In short, the kit is
first-class. Not only are the aluminum
components beautifully machined
and professionally finished, but the
two 12 VDC motors are powerful
and the gearing is aggressive
expect about 150 RPM at 1.5A and
no load. Furthermore, assembly
instructions and example Stamp
source code are straightforward
and easy to follow. It took me
all of 20 minutes for basic
assembly, including mounting
the quadrature encoder
assembly and inflating the
pneumatic tires.
I paired my motor kit with a
pair of the recommended HB-25
controllers ($50 each) from
Parallax. The controllers are
hefty, with built-in heatsinks and
cooling fans, and at less than three
ounces, add little to the overall
weight of about six pounds for the
pair of motors.
Is the kit perfect for every
robotics application? Of course not
no general-purpose kit could be. For
example, the pneumatic 6 tires;
while well executed, are overkill for
my needs (an indoor balancing bot
platform) given their relatively small
diameter and inherent stiffness. I
replaced the inner tubes with zero
maintenance foam tubing. Its a trick
I picked up from working with Traxx
wheels. Want a stiffer, more
supportive ride? Simply use denser
foam inserts in the tires.
Another consideration is ground
clearance for the motor and motor
mount. Theres only about an inch of
clearance from the rectangular motor
mount to the contact surface. This
shouldnt be a problem if your robot
is going to be working on pavement,
carpet, or even a mowed lawn.
However, if youre thinking of
running your robot down gravel
roads and rough terrain, you might
want to consider protecting the
Mind / Iron
by Bryan Bergeron, Editor
Mind/Iron Continued
6 SERVO 10.2008
Mind-IronOCT08.qxd 9/3/2008 2:58 PM Page 6
motors from accidental impact with a sheet of plastic or
even a layer of electrical tape.
If youre thinking of moving from a Boe-Bot or other
small mobile robot platform to something based on the
Parallax wheel kit, take a moment to consider whats
involved. Youre not simply replacing small, inexpensive,
lightweight servos with a heftier, more powerful (and
more expensive) drive system; youll have to upgrade your
entire development infrastructure.
For starters, youll have to stock up on heavy duty
aluminum stock sheet metal, brackets, and fasteners. Im
not talking about the solid chassis designs used to create
heavy-duty battle bots, but stock thats significantly more
substantial than the easily workable aluminum and plastic
used with a typical carpet roamer.
Then theres the issue of power. Forget about using a
AA battery pack. Instead, think 12V gell cell or better
yet a pair of six-cell, 7.2V NiMh battery packs sold for
R/C vehicles. Ive had great results with the Dura Trax
six-cell, 7.2V, 4.2 Ah pack ($43 each) available from Tower
Hobbies (www.towerhobbies.com). While youre on the
Tower Hobbies website, pick up a few sets of two-pin Ultra
Plugs by W.S. Deans ($3/set). Try these quick connect, low
resistance plugs for your battery connections and youll
never want to use a Molex connector again.
Because of the mixed voltages required 12 VDC for
the Parallax motors or HB-25 motor controllers and 5V/3V
for the microcontroller and sensors you should consider
a high-efficiency DC-DC converter. My favorite is
the programmable, three-channel RGi Power
Commander (($200), available from CrustCrawler
(www.crustcrawler.com). I use it to convert the 14.4
VDC from a pair of NiMh battery packs to 12V, 5V, and
3V, to power the motors, sensors, and Parallax Propeller
chip, respectively. Alternatively, you can use separate
battery packs and dedicated voltage regulators for each
voltage but this wouldnt be my first choice because of
the additional weight and space requirements.
Youll also have to consider your tools. As noted
above, you wont be working exclusively with easily
bendable aluminum, but youll have to learn to handle
heavy-duty stock. And this means youll probably have to
upgrade to heavy-duty tools no more bending the
aluminum chassis with needle-nose pliers. Think bench
vise and rubber hammer.
Given the added expense of a medium-sized robot
over something that can fit in your hand, why make the
move? For one, you can create something practical a
robot to fetch the paper, move a tray of food from one
room to another, or bring your medicines when theyre
prescribed, for example. You can also drop a laptop or
even a computer motherboard on a medium-sized platform
and have carrying capacity to spare. If you do decide to
make the move with or without the Parallax motors
drop me a line and a photo to share with your fellow
readers. SV
ISP
programming
connector
push-on/push-off
power button
reset
button
piezo buzzer
30:1 micro
metal
gearmotors
user pushbuttons
removable 8x2
character LCD
battery charger
connector
optional
power LED
5 reflectance sensors on underside
4 AAA
batteries
(not included)
* High-traction silicone tires
* Speeds exceeding 3 ft/sec
using innovative constant-
voltage motor supply
robot diameter is 3 cm (~3.7 inches)
Item #975
$99.95
The Pololu 3pi robot is a high-performance, compact
mobile platform featuring:

* Two metal gearmotors
* Five reflectance sensors
* 82 character LCD
* Three user pushbuttons
* Buzzer and LEDs

All peripherals are connected to an ATmega168
microcontroller running at 20 MHz, with free C-programming
tools, libraries, and support for the Arduino environment.
Find out more at www.pololu.com/3pi or by calling 1-877-7-POLOLU.
SERVO 10.2008 7
Mind-IronOCT08.qxd 9/3/2008 2:59 PM Page 7
8 SERVO 10.2008
Fecundity Begets Rotundity
If you tip over the average robot,
all it can do is thrash around helplessly
until someone picks it up. But being
round and without external appendages,
the Groundbot from Rotundus
(www.rotundus.se) is always upright.
It also can move through mud, snow,
and sand without getting stuck, and,
being hermetically sealed, is pretty
much impervious to environmental
threats. Its also tough enough to
survive drops of up to 10 ft (3 m).
Originally designed to explore the
surface of Mercury, Groundbot has
been modified for terrestrial chores
such as large-area patrol, explosive
gas monitoring, and remote
inspection. It can be fitted with up
to four cameras (up to 360 field of
vision), various sensors, night-vision
systems, microphones, and speakers.
Probably the most interesting
feature is the drive mechanism, which
basically relies on gravity. A controlled
pendulum is held close to the ground
when the bot is motionless. By lifting
the pendulum, it can be made to roll
in any direction. This produces speeds
of up to 6 mph (10 kph) and the
ability to handle inclines up to 20.
In case youre interested in the
details, Groundbot is 2 ft (0.6 m) in
diameter, weighs 55 lb (25 kg), and
normally runs six to eight hours on a
charge. Its operating temperature
range is -22 to 104F (-30 to 40C).
Bot Can Toot Your Flute
Proving that no idea is too silly to
endure if it draws government fund-
ing, the Anthromorphic Flutist Robot,
created by Atsuo Takanishi at Japans
Waseda University (www.waseda.jp),
is now in its fourth incarnation and
18th year of existence. Model WF-4RIV
(Waseda Flutist no. 4 Refined IV),
features 41 degrees of freedom that
have enhanced its performance with
more natural notes and smoother
transitions between notes. Specifically,
the lips and tonguing mechanisms
have been redesigned to be more like
the corresponding human organs. Oh,
sure, there are the usual academic
rationalizations: Clarifying the
human motor control while playing
the flute from an engineering point
of view ... Enabling the communica-
tion with humans at the emotional
level of perception ... Proposing novel
applications of humanoid robots ...
and so on. But imagine spending 18
years of your life on this thing. For a
demonstration, see www.youtube.
com/watch?v=lYDW2A5-Cbw.
Reportedly, work has begun on a
saxophone-playing version, so maybe
by 2026 Takanishi will come up
with something as amazing as, for
example, the Welte Orchestrion. First
demonstrated in 1862, it weighs in at
1,500 lb, operates from music rolls,
and drives 50+ pipes, bass, and snare
drums, and a triangle. To hear one,
visit www.asapackermansion.com/
orchestrion.html.
Saved by the Bear
At the other end of the utility
spectrum is the Battlefield Extraction-
Assist Robot (BEAR), developed by
Vecna Technologies (www.vecna.com),
a self-funded company created in
1998 and operated by alumni from
MIT, Harvard, Stanford, Yale,
Princeton, Berkeley, CMU, and other
assorted institutions.
Still in the prototype stage, BEAR
is envisioned as a marriage of three
elements: a powerful hydraulic upper
body, an agile mobility platform with
independent sets of tracked legs, and
The Waseda Flutist No. 4 vs. the Welte Orchestrion.
by Jeff Eckert
The Groundbot mobile robot,
revamped for security duties.
Photo courtesy of Rotundus.
Robytes.qxd 9/2/2008 3:37 PM Page 8
dynamic balancing behavior (DBB).
DBB is how the robot hopes to balance
itself on the balls of its ankles. In
fact, the production model should be
able to remain upright whether bal-
ancing on its ankles, knees, or hips.
It has already demonstrated the
ability to pick up a realistically weighted
human dummy and carry it around for
50 minutes without a break. According
to Vecna, the purpose of the bear head
is to comfort soldiers who might be
put off by the otherwise grotesque
appearance of the machine.
New Robotics Conference
If youre working on robotics at
the design level, you may be interested
in the upcoming IEEE International
Conference on Technologies for Practical
Robot Applications (TePRA). Its a new
conference aimed at catalyzing the
development of enabling technologies
and encouraging their adoption by robot
designers. Its intended to be a cross
between a dry academic conference
and an industrial trade show, so you
get an emphasis on practical
applications coupled with technical
presentations aimed at future
applications. The stated goals are
to expose robot designers to new
enabling tools, techniques, and
technologies and to expose tool,
technique, and technology developers
to the needs of robot designers.
The event is scheduled for
November 10th and 11th at the
Holiday Inn Select Hotel, Woburn,
MA. For details, visit www.ieee
robot-tepra.org.
Dragonfly V. 3
In July, the Delft University of
Technology (www.tudelft.nl) intro-
duced the third version of its artificial
dragonfly, the DelFly Micro micro air
vehicle (MAV). Weighing only 3 g and
with a wingspan of only 10 cm, it
flies by flapping its wings like an
insect. The remote-controlled device is
intended to be used someday for
observation flights in dangerous or
difficult to reach areas, and it already
can be equipped with a tiny 0.5 g
camera that transmits TV-quality
images to a ground station. Given
that it can fly continuously for only
about 3 min (at 5 m/s), it obviously
isnt ready for commercial production.
But Micro is just a stepping stone to
the planned DelFly Nano (5 cm, 1 g),
which will be able to move independ-
ently using image recognition
software, hover like a hummingbird,
and even fly backwards. SV
Robyt es
SERVO 10.2008 9
Vecnas BEAR robot as employed on the
battlefield. Photo courtesy of US Army.
The DelFly Micro MAV.
Photo courtesy of Delft U.
Heavy Metal Robot Kit
Announcing
the Gears
Designed for Students and Professionals
L Heavy Metal is engineered for rigors of daily use in classrooms,
summer camps, workshops, labs . . . even combat robots!
L Assembles quickly using fasteners of same size/pitch and
threaded inserts. 10" wheel base, heavy gauge aluminum,
4-wheel drive, 3" rubber wheels, 3/8" axles, anged
bronze bearings, #25 pitch steel chain and sprockets.
All drive components are keyed and broached.
L Competition all-metal gearhead motors, gearbox
rated at 500 oz-in of continuous torque. Heavy Metal
accepts off-the-shelf engineering parts, plus
components and control systems from GEARS IDS,
FIRST* and VEX Robotics* kits.
Contact Mark Newby
mnewby@gearseds.com
781.878.1512 www.gearseds.com
Lb for Lb
the World's
Toughest Robot
Chassis
Supports 200 lbs of
standing weight!
Heavy Metal 1 Kit includes chassis, motors, drive system, and wheels for $499.00.
*VEX Robotics is a mark of Innovation First, Inc. and FIRST refers to US FIRST (Foundation for the Inspiration and Recognition of Science and Technology)
Robytes.qxd 9/3/2008 1:06 PM Page 9
10 SERVO 10.2008
Youre No. 1 ... Really!
Ian Ingram, BigBot curator and
creator of the Youre No. 1 robotic
foam hand and finger interpretation
atop the Andy Warhol Museum spoke
about the BigBots, beginning with his
own work (at my request).
The nearly seven yards of
Pittsburgh black and yellow foam
hand and index finger spread the love
by reaching out to visitors to say they
were no. 1. The hand moved, posi-
tioned itself, and pointed at various
visitor outposts miles away and
throughout the city using dual-axis
hydraulics. One axis was a hydraulic
motor and one was a hydraulic actuator.
The hydraulics gave the hand
two degrees of freedom (DOF) of
movement. The first DOF held the
hand straight up and twisted it
around while the second moved it
downward to point it at the outposts
or to wave at people. All the action
was automated by a small microcon-
troller, though the original plan was to
have kiosks at the outposts with
remote triggers to activate the hand
and point it in the specific direction of
the kiosk that triggered the response.
The robotic hand made use of
sensing and a limiting switch a
gross encoder which told the
robot when to stop and start its
movements. The hand was fitted
with a camera that lined up in varying
positions equal to a straight line to the
different outposts.
The PIC microcontroller was
brought to life using software created
in C programming. The software looks
for limit switch hits, making plans
for movement between where the
hand is and where it needs to go to
perform the pointing and waving,
according to Ingram.
The robot uses a motor to pump
fluid to create pressure to activate
and manipulate the hydraulics. The
hydraulic valves use solenoids and are
pushed by external signals from the
microcontroller. The structure of the
hand is steel weldments with
polyurethane foam similar to the
hands that people take to sports
games.
Semi-autonomous
Percussive Devices
Communicate Like
Crickets
The Crickets installation uses a
number of interconnected robotic
sculptures to imitate the action and
reaction of group communication
among packs of animals such as dogs
or insects. The robots are equipped
with wooden knockers controlled by
solenoids to tap out their noises.
Contact the author at geercom@alltel.net by David Geer
Robot250 Features BigBots
Robotic Artwork that Interacts and Responds
Robot250 is a city-wide extravaganza of large scale interactive robot art projects, workshops,
festivities, events, and film held July 11-27 in Pittsburgh, PA. Sponsored by Carnegie Mellon
University, the University of Pittsburgh, and a number of local community groups like the
Heinz Endowments, the program features BigBots interactive robot displays with artistic themes.
Photos and caption information are
courtesy of Carnegie Mellon University.
The Youre No. 1 BigBots
robotic installation by Ian Ingram
is a 20-foot tall robotic black
and yellow foam hand and finger
like the ones worn by fans of
Pittsburghs most famous sports
team. The maneuvering hydraulic
hand appeared on the roof of
the Andy Warhol Museum in
Pittsburgh as part of the
Robot250 Festival, which ran
July 11-27, 2008. Ingram, BigBot
curator, senior research
associate, and artist-in-residence
at Carnegie Mellon University,
built the big hand, which pointed
at passers-by around the city.
Geerhead.qxd 9/3/2008 9:31 AM Page 10
Connected by thin wires,
each robot communicates to
its closest neighbor whether it
is silent or drumming up a
storm. So, throughout the
group the robots set each
other off until the whole
colony is chirping away or they
turn each other off until they
are all quiet.
Each cricket is controlled by a
BASIC Stamp microcontroller and has
its own unique sound. Software
programming sets the action and
reaction in motion. The programming
uses a specific set of rules called The
Game of Life that says when a robot
starts knocking, the signal to its
neighbor is to start knocking, but
when all robots are knocking, one
robot must become silent and then
the others react in kind one by one
until all are silent.
Green Roof Roller
Coaster
Roof top plants and gardening
generally serve the building and
environment by providing an added
layer of insulation or contributing
oxygen. Serving the plants themselves
is a matter left unaccounted for,
until now.
The idea behind the Green Roof
Roller Coaster is to set the plants on a
continual ride up, around,
and down for their own
stimulation and amuse-
ment. In an attempt to
measure their pleasure,
the installation uses
sensors near the plants
to gauge humidity, CO
2
,
vibration, and leaf conduc-
tance. While these sensors
interpret the health of the small trees
environment, this is only loosely and
perhaps humorously translated to the
degree of entertainment the plants
find from their constant motion.
The Look-See Tree
A mobile installation that looks
like a fallen tree houses five groups of
visible robotic animals that move and
interact with people as they sense
them coming near. The robots are
electrically powered and animated
using servo motors. They are connect-
ed via frameworks of gears and
linkage systems and are powered by
a hand-cranked electric generator.
One robot simulates a fox that
paws at the ground. Another group
of robots are birds whose chirping
resembles cell phones ringing or car
alarms sounding off. Still another
group are animals collecting garbage
from around the city to construct
their nests.
The Reach Robot
Sculpture
The Reach robot senses peoples
movements and gestures throughout
SERVO 10.2008 11
GEERHEAD
The Green Roof Roller Coaster BigBots
installation is a roller coaster that takes a
variety of grasses and other plants for a
wild ride above the Childrens Museum
of Pittsburgh. The installation uses
sensors to measure humidity, CO
2
,
vibration, and leaf conductance in an
attempt to determine how the plants
respond to riding on a roller coaster.
These robotic wood blocks
called Crickets tap with
wooden knockers in response
to neighboring bots that are
doing likewise.
The Look-See Tree is a
mobile tree sculpture
haven for robotic animals
and cell phones that
behave like animals.
The Reach robotic installation in the
PPG Place plaza interprets pedestrian
movement with a musical response. The
creation of artists Grisha Coleman and
Frank Broz, Reach consists of strands of
fiberglass that create a web across the
plaza, a plane in which a LIDAR (LIght
Detection And Ranging) system senses
movement and triggers musical
compositions from famed area African
American Jazz composers.
Geerhead.qxd 9/3/2008 9:34 AM Page 11
the PPG Place plaza using two LIDAR
(LIght Detection And Ranging)
technology systems that scan and
find ranges or distances between the
place of emission of laser light and
the position of the person sweeping
through.
One system aims its lasers across
the whole plaza and one scans down
from up high, creating a plane they
scan across to determine distance and
movement. It tracks objects (people)
as they move through that plane,
says Ingram.
The lasers determine peoples
positions relative to strands of fiber-
glass webbing strewn in criss cross
fashion across the plaza and 10 feet
above it. People who may be
reaching toward the strands to
stroke them as if they were strings on
an instrument will note an audible
response.
When peoples positions relative
to the strings are tracked and
captured by the lasers and pressure
sensors, this sets off musical
compositions reminiscent of famed
Pittsburgh area composers,
particularly African American Jazz
musicians.
While the installation and its
purpose may be confusing to some,
others will realize its purpose as their
actions set off the music. Patrons may
not only start the music with their
gesturing, but also conduct the
music by interacting repeatedly
with the webbing, and so with the
laser field.
People in different locations in the
plaza will activate different musical
effects and interludes.
Conclusion
Robots 250 and the BigBots
installations stir the curious soul to
investigate. Its amazing how robotics
have become so much a part of our
lives and how closely they intertwine
themselves with the most expressive
of art forms. It is interesting to see
the skill level in robotics assumed by
those whose primary endeavor of
study is the arts. SV
12 SERVO 10.2008
GEERHEAD
Robot250 home page
http://robot250.org
Robot250 events and exhibits
http://robot250.org/festival/
index.php
Robot250 types of events
http://robot250.org/festival/
types/index.php
Robot250 BigBots
http://robot250.org/festival/
bigbots
Robot250 photo gallery
http://robot250.org/media/gallery
RESOURCES
Geerhead.qxd 9/3/2008 9:35 AM Page 12
Q
. (In this case, not so much a question, but a
request. It was worded so well and completely
I felt that it would be disingenuous to simply
paraphrase, so Ill quote and add comments later. I believe
in giving credit where credit is due.)
I enjoyed your column in the August issue of SERVO. I
really like the AVR microcontrollers and the gcc-avr compiler.
I wish you would mention a readily available and really
pretty simple IDE for the Atmel Arduino. Theyre at
http://arduino.cc/.
Ive used this environment in several Introductory
Programming classes and its been a big hit. It meets
several of the criteria that your questioner brought up and
it has some cool features that, to me, contrast favorably
with the complexity of Eclipse.
1) The Arduino software Integrated Development
Environment is portable, and is available for Mac, Linux,
and Win32. Basically, its a small Java application that
allows editing and compiling C/C++ programs and that
launches gcc-avr in the background to do the actual
cross-compilation.
2) Its simple and while that means putting up with
some limitations, such as no real debugging a lack of
complexity is also a big plus for beginners. Source code files
are easily assembled into sketches, which are held in
folders on your system. The look is very simple and clean,
with no makefiles or projects needed, and without the
cascade of panes, options, menus, and buttons that are an
unfortunate side effect of Eclipses power.
3) Theres a nice library built in. It has functions for easy
digital and analog I/O, along with most of the standard
C library. Its all documented on the site.
4) You dont need a programmer because it can directly
upload the compiled program into the chip. This is
possible because the chips come with a small bootloader
pre-installed. So when you press the appropriate button in
the Arduino IDE, a serial or USB to serial cable carries the
generated code into the chip. Then you just press reset and
go. Very easy, and this is a feature I appreciate as someone
who works a lot with beginning programming students.
5) A number of inexpensive boards are available. Some
examples can be found at http://moderndevice.com/
and http://wulfden.org/TheShoppe.shtml.
6) Theres a ton of software and hardware already available
for the basic hardware. As an example, www.freeduino.
org/ lists hundreds of projects and reusable hardware and
software ideas.
Anyway, sorry for the long mail, and keep up the good
work, I enjoy your column.
Jerry Reed
Adjunct Professor of Computer
Programming and Applications,
Valencia Community College
A
. Thanks Jerry for the kudos and the lead. I had heard
of Arduino but thought of it (initially) as only another
interpreter chip for a token-based compiler. Little did
I realize just how WRONG I was! The Arduino is an open
source language built on top of C++ that simplifies the task
of writing code for an embedded processor. The Arduino
project abstracts the embedded processor to make it a
hardware object that can be run on its own or interfaced
to the computer to talk to other programs. The obvious
computer interface is the Processing language upon which
the Arduino language is built. This hardware-oriented
language is called Wiring; it simplifies many of the tasks
that a beginner would like to do with an embedded
processor. Of course, this act of simplifying that
programming means that some of the capability of the
processor (an Atmel ATMEGA8 or ATMEGA168) is reduced
or lost (no interrupts or PWM capability), but for many
Tap into the sum of all human knowledge and get your questions answered here!
From software algorithms to material selection, Mr. Roboto strives to meet you
where you are and what more would you expect from a complex service droid?
by
Dennis Clark
Our resident expert on all things
robotic is merely an email away.
roboto@servomagazine.com
SERVO 10.2008 13
MrRoboto.qxd 9/2/2008 11:16 AM Page 13
14 SERVO 10.2008
just looking for learning embedded programming this is a
VERY painless way to learn. Arduino boards (or other
independent offshoots) are fairly cheap and capable, so the
introductory price is also low. Because Arduino is open
sourced, you arent locked into anyones boards at all. Part
of the Wiring environments IDE includes the ability to turn
any ATMEGA8 or ATMEGA168 into an Arduino target; as
long as you have a programmer and downloader software
that can directly program the ATMEGA part. After you
have the bootloader installed, all you need is a serial port
connection (Bluetooth, ZigBee, or any other wireless
connection will work, as well!) and youre off and running.
The Arduino site mentioned above is a good start
to learn this environment which is Java based
and runs on any platform that has Java installed.
There is even a little interface driver/program
named serproxy that comes with the install on
the Mac OS X operating system to simplify the
interface to another computer program to talk to
the Arduino board over a serial port. For more
information on the Processing language and
Wiring language, see the links http://processing
.org/ and http://wiring.org.co/. Im going to
be looking into these resources in the future!
Q
. I have inherited a pile of parts. Among
these are five pairs of ultrasonic sensors.
At least, that is what I think they are.
One is marked on the back with a 40R and the
other with a T. I am assuming these are transmitters
(T) and receivers (R). There was a slip of paper
in the container with 40TR12B written on it.
I notice that ultrasonics are usually purchased
on circuit boards. Can you help me with a circuit design and
some software tips for making these work? Thanks.
Anonymous
A
. The ultrasonic transducers that you have are from
Jameco, part number 139492. They are 40 kHz trans-
ducers which means that they resonate at 40 kHz,
and require a 40 kHz signal to make them work. There are
many, MANY sites on the Internet that detail various folks
circuits to drive these devices. Here are a couple that I like.
The one shown in Figure 1 is located at www.e-arsenal.
net/robotics/sonar.html and seems a custom fit to your
transducers. It uses a
MAX232 serial port
driver to deliver a higher
voltage to the transducer
to increase the power
of the output signal
and a common op-amp
to sense the returning
echo. This circuit,
however, requires that
you send a 40 kHz
signal to the circuit;
typically you would use
a PWM output to do
this and wait for a
return echo on the pong
line. This circuit details
using a PIC16F628 to
handle all of the SONAR
details and uses a
similar but simpler
circuit to send and
receive SONAR signals
(see Figure 2). This
Figure 2. A PIC controlled SONAR circuit. Used with permission by GenerExe IT.
Figure 1. SONAR circuit 1.
MrRoboto.qxd 9/2/2008 11:16 AM Page 14
design comes from application note AN101 on the www.
generexe.com/id129.htm site and includes a very good
description of how to write the code that gets the range
data from a SONAR module. You can use their tools (they
have a free download trial) and their PIC compiler IDE is
shareware, free for personal use; or get your hints from
the state machine graphic in the app note document.
The key to getting a good SONAR reading which
comes up again and again in these discussions is to wait
until the transmitter stops sending pulses and stops ringing,
which the transducer will for some
certain period of time after the
transmission signal has stopped
being sent to the transducer. If
you dont have an oscilloscope
to see when the transducer has
stopped ringing, then you will have
to experiment with your read delay
until you get correct data back.
There are lots of examples on
the web of SONAR circuits, and
some of them are really simple.
Experiment and have fun!
Q
. I would like to control an
H-bridge using the PWM
signal from an R/C receiver.
Can you give me any info about this?
Anonymous
A
. The R/C receiver used in
radio controlled aircraft, cars,
and such is not really a PWM
signal since the duty cycle of the
signal isnt important; the pulse
width is, so it is more of a pulse
width encoded signal. Regardless,
each channel of the receiver will
output a pulse of between (about)
1 ms and 2 ms every 20 ms. You
cant use this to directly control your
H-bridge, but you can use the width
to determine your H-bridge PWM
percentage with a little math.
The 1.5 ms spot is the neutral
or motor off position typically if
you have both forward and reverse
directions on your motor. You can
choose if less than 1.5 ms is forward
or backwards. You would then read
the pulse width and convert that
width to a (lets say) plus or minus
number from 0 to 255. Then you
would feed this value to your H-
bridge driver code to set the PWM
and direction signals to your H-bridge.
In the code example shown in
Listing 1, I used a PIC18F252 processor to read two R/C
channels and convert them into direction and speed values for
two motors. I used tank steering so that one channel
controlled one motor and the other channel controlled the
second motor. Rather than use the Input Capture hardware
which I didnt have available to me I used a 10 s interrupt
to look at the signal lines and record the most recent R/C
channel pulse width. Then, a little math was done to
convert this value to a direction and PWM speed value for
each motor. This 10 s interrupt gave me a resolution of
SERVO 10.2008 15
void ISR_High()
/*
The generic high priority fast interrupt, first we have to set registers to
get high priority; CCS does not handle this well. (See Init code). This
operates as a state machine that will ONLY look at one edge of one signal each
Time the interrupt occurs. This keeps things moving along fast, and since each
Interrupt is 10us later; it takes a total of 40us to read both channels.
*/
{
switch (chanState)
{
case SET_C1: //Channel A count
if (input(PIN_A2) == 1)
{
TMR0L = 0;
chanState++;
}
break;
case READ_C1:
if (input(PIN_A2) == 0)
{
ChanA = TMR0L;
chanState++;
}
break;
case SET_C2: //Channel B count
if (input(PIN_A3) == 1)
{
TMR0L = 0;
chanState++;
}
break;
case READ_C2:
if (input(PIN_A3) == 0)
{
ChanB = TMR0L;;
chanState = SET_C1;;
}
break;
}
//What follows here is just a background clock that I use to handle delays.
PIR1bits.TMR1IF = 0; //clear interrupt bit
set_timer1(S_10us); //reset timer clock for next interrupt
if(PIR2bits.TMR3IF) //This is a simple 52ms clock fo
{ //background timekeeping
t_52ms++; //inc counter and clear the timer
TMR3L=0;
TMR3H=0;
PIR2bits.TMR3IF=0;
}
#asm
retfie 1
#endasm
}
LISTING 1
MrRoboto.qxd 9/2/2008 11:17 AM Page 15
1 ms/10 s = 100 counts, which is 50 counts in each
direction. I use 1 ms and not 2 ms because the pulse width
is actually from 1 ms to 2 ms, which is only a 1 ms pulse
range. The actual range is somewhat less because I have a
dead zone around the center point so that I can have a stable
off point event though the pulse width may wander a
little when nothing is being moved at the transmitter. This
program is written in CCS PCH, for the PIC 16 bit cores
like the PIC18F252 micro. Listing 1 is one suggestion for
reading R/C receiver pulses accurately even when you arent
using the pulse capture hardware on your microcontroller.
Some explanation may be in order here. For those of
you that use the CCS compilers, you may find my interrupt
routines unique. I like my interrupt service routines (ISR) to
be lean with no baggage. For that reason, I did not use CCSs
interrupt defaults and I set bits and defined ISR locations
manually. This is why there is the assembly retfie at the
end of the ISR function. Look in the source code files which
can be found on the SERVO website at www.servo
magazine.com named zombie.zip. The essential
information is that the ISR is called every 10 s and looks
for the start of an R/C servo pulse. If it sees one, then it
turns on TMR0 to time the width of the pulse and then the
next pass through the ISR looks for the fall of that pulse
and records the pulse width. Then, the next pulse is timed.
Of course, there is a 10 s uncertainty about the value, but
in practice Ive found this works just fine. If you look closely
at the code, you will see that what I have implemented is a
state machine that handles only one pulse at a time this
is the most efficient way to handle arbitrary timing issues if
you dont have hardware that will do it for you.
Okay, so how do we translate these newly acquired pulses
into PWM and direction values for an H-bridge? Listing 2 shows
how it is done for a single motor. The source code has both
motors handled, of course, but since both sides are done
the same there is no reason to show both as examples. The
code in Listing 2 will translate the pulse width from the RC
receiver into a PWM and direction for the H-bridge. There
are some things you should look for, however. I limit the
endpoints of the pulse to eliminate the inherent inequality
of the potentiometers in my
transmitter where the center
may not be the same for each
stick and the endpoints also
may not be the same. This
keeps my motors going straight.
Also, I set a dead band at the
center of the joystick so that
some drift in the sticks wont
cause motors to creep on. This
guarantees that the vehicle will
stop when you tell it to! The
values 112 to 116 represent the
center, or 1.5 ms pulse width
more or less. One last bit of
coding trivia: My H-bridge
needs only one bit to set the
direction, yours may need two
bits. Just add the other bit into
the part of the code that sets
the direction based upon the
sign of the speed value.
I hope that youve learned
something here or at least
enjoyed what you have read.
I, too, have learned something
this month, and because of
that Im going to be checking
out a couple of new program-
ming environments the ones
Ive mentioned above, of
course. As usual, if you have
any questions about things
robotic, please drop me a line
at roboto@servomagazine.com
and Ill be happy to work on
it! Until next time, keep on
building those robots! SV
16 SERVO 10.2008
void MotorA(int chanA)
/*
Deals with setting PWM for PWM1
*/
{
signed int speed;
unsigned int pwm;
unsigned int chan;
chan = chanA;
if (chan > 154) //Limit my endpoints to be the same for
//both sticks
chan = 154;
else if (chan < 74)
chan = 74;
if (chan == lastChanA)
return;
speed = 114 - chan; // positive for forward, negative for reverse
if (chan > 112 && chan < 116) // create our deadband
{
pwm=0;
}
else
{
if ((lastChanA > 114 && chan < 114) || (lastChanA < 114 && chan > 114))
{
setup_ccp1(CCP_OFF); //Here we coast a bit rather than suddenly
delay_ms(50); //change motor directions to save wear and
} //tear on the gear train!
if (speed < 0)
output_bit(DIR_1,1);
else
output_bit(DIR_1,0);
// pwm = (abs(speed)*5)+25; //For 2.44KHz 10% to 90%
pwm = (abs(speed)*3); //19KHz 5% to 95%
}
setup_ccp1(CCP_PWM);
set_pwm1_duty(pwm);
lastChanA = chan;
}
LISTING 2
MrRoboto.qxd 9/2/2008 11:17 AM Page 16
Full Page.qxd 9/3/2008 12:26 PM Page 17
Movn Up
M
ovn Up
a new
book from Square
1 Electronics
shows assembly
language pro-
grammers how to
easily migrate
from Microchips 16 series eight-bit microcontrollers to
the 18 series devices.
The 18 series devices have some features that make
them easier to use. Program memory paging is gone,
so tables may be of any length and may be located
anywhere. Data memory bank selection is simplified.
Compare, bit toggle, and set file instructions make
writing programs easier. Context saving on interrupt is
automatic (sometimes).
The newer application peripherals (CAN bus, etc.) are
included in the 18 series devices.
Movn Up will save readers time by providing an
explanation of the fundamental differences (vs. 16 series)
along with programming examples to make the transition
easier.
Movn Up is available from the publisher ($24.95 plus
s&h).
For further information, please contact:
Powerful, Popular Servo
Controller Just
Got a Whole
Lot Better!
L
ynxmotion has
released the new
SSC-32 V2 servo
controller. The SSC-32 V2
now uses the Atmel
Mega168 processor and
includes a 24LC256 EEPROM chip. This new processor
makes several new features possible, however, the price
has remained at $39.95!
Anyone who has used hobby servos in a robot
project knows no two servos have the exact same
centered position. The V2 has the ability to store servo
offsets in its EEPROM. This means after the offsets are
entered, the servos will be perfectly aligned when
commanded to center. Because the offsets are stored in
EEPROM, they will not be lost when power is removed.
This standardization makes it easy to share programs
with others who have built similar robots.
The servo controller now has the ability to store
initial startup positions. Whenever the SSC-32 is
powered up, the affected servos will be commanded
to their own unique initial startup position. Think of
this as a Home Position for the robot. A special startup
command string (up to 255 characters) can also be
stored. The servo controller will execute the stored
command on power-up, just as if it had received it from
the serial port.
The SSC-32 still retains all of the powerful features
as before: 32 rock solid servo outputs with 1 S
resolution and 500 S to 2,500 S range servo pulses;
speed, time, and coordinated (group) servo moves; the
ability to read four analog or digital inputs; real time
servo position feedback; an ultra slick built-in 12 servo
hexapod sequencer; and the ability to utilize spare
outputs as high or low drivers.
In addition to the new features which are stored on
the processors EEPROM, the SSC-32 V2 can store 32
Kbytes of Project Sequences on the 24LC256 EEPROM
chip. This does require a free firmware update with the
general-purpose (GP) firmware. The GP firmware replaces
the 12 servo hexapod sequencer with two general-
purpose sequencer engines. Each one can play stored
sequences with different speeds and directions. The
easiest way to populate the EEPROM chip is to use the
Lynxmotion Visual Sequencer program. After the robot is
taught its movement sequences, they are exported into
the EEPROM chip.
As the number of servos grows in a robot
project, it only makes sense to offload all of the
precise timing and complex algorithms to a
dedicated servo controller. The SSC-32 can be
instrumental with that.
For further information, please contact:
New Products
BOOKS
CONTROLLERS & PROCESSORS
N
N
E
E
W
W
P
P
R
R
O
O
D
D
U
U
C
C
T
T
S
S
18 SERVO 10.2008
Web: www.sq-1.com
Square 1 Electronics
Web: www.lynxmotion.com Lynxmotion
OCT08NewProd.qxd 9/3/2008 3:20 PM Page 18
Prototype Tool for
Double-Sided Surface-
Mount Assemblies
I
ntegrated Ideas & Technologies,
Inc., has announced a new
prototype assembly tool that allows
manufacturers to assemble double-
sided surface-mount assemblies right
at their desks. Recognizing the need
for a complete solution for prototype
assembly of these types of boards,
IIT has developed the AssemblyPro
Fixture.
Designed as a tool to comple-
ment the IIT Desktop stencil, the
AssemblyPro Fixture enables the user
to assemble double-sided surface-
mount boards without a screen
printer. Machined from durable, high
density polyethelyne, the AssemblyPro
Fixture features a nested area that
holds the board and cutouts in the
fixture to accommodate the parts that
have been placed on the bottom side.
For further information, please
contact:
Is your product innovative, less
expensive, more functional, or just plain
cool? If you have a new product that
you would like us to run in our
New Products section, please email
a short description (300-500 words)
and a photo of your product to:
newproducts@servomagazine.com
Show Us What Youve Got!
TT
The Escape
Robot`s built-in
microprocessor
enables it to
'think on its own.
(KSR4) $29.95
20 second voice recorder/playback
module. The electret microphone is on the
board. One button records, the other button is
momentarily pressed to replay the message.
(pre-assembled) (A96010) $6.60
5mm White
water clear
LED 3.5V
10,000 mcd
(AB287)
$0.56
The Velleman Personal Scope
is not a graphical multimeter
but a complete portable
oscilloscope at the size and
cost oI a good multimeter.
(HPS10)
The robot Irog moves Iorward
when it detects sound and
repeats: start (move Iorward) -~
stop -~ leIt turn -~ stop -~ right
turn -~ stop. (KSR2) $19.95
S
o
l
d
e
r
i
n
g

r
e
q
u
i
r
e
d
Thousands
m
ore item
s on
our w
eb site!
$146.
Ask for our FREE 96 page catalog
VISIT OUR ONLINE STORE AT
www.allelectronics.com
WALL TRANSFORMERS, ALARMS,
FUSES, CABLE TIES, RELAYS, OPTO
ELECTRONICS, KNOBS, VIDEO
ACCESSORIES, SIRENS, SOLDER
ACCESSORIES, MOTORS, DIODES,
HEAT SINKS, CAPACITORS, CHOKES,
TOOLS, FASTENERS, TERMINAL
STRIPS, CRIMP CONNECTORS,
L.E.D.S., DISPLAYS, FANS, BREAD-
BOARDS, RESISTORS, SOLAR CELLS,
BUZZERS, BATTERIES, MAGNETS,
CAMERAS, DC-DC CONVERTERS,
HEADPHONES, LAMPS, PANEL
METERS, SWITCHES, SPEAKERS,
PELTIER DEVICES, and much more....
ORDER TOLL FREE
1 - 8 0 0 - 8 2 6 - 5 4 3 2
THOUSANDS OF ELECTRONIC
PA RT S A N D S U P P L I E S
Robotics Showcase Robotics Showcase
SERVO 10.2008 19
TOOLS & TEST
EQUIPMENT
Website:
www.integrated
ideas.com
Integrated Ideas
& Technology, Inc.
OCT08NewProd.qxd 9/3/2008 3:22 PM Page 19
Know of any robot competitions Ive missed? Is your
local school or robot group planning a contest? Send an
email to steve@ncc.com and tell me about it. Be sure to
include the date and location of your contest. If you have a
website with contest info, send along the URL as well, so we
can tell everyone else about it.
For last-minute updates and changes, you can always
find the most recent version of the Robot Competition FAQ
at Robots.net: http://robots.net/rcfaq.html
R. Steven Rainwater
O Oc c t to ob be er r
2-4 MindSpark
College of Engineering, Pune, India
MindSpark includes a standard Micromouse event
and a competitive pick-and-place event called
Dogfight. Theres also a Photoroller event for solar
powered bots.
www.robotics.mind-spark.org
11-12 The Franklin Cup
The Franklin Institute, Philadelphia, PA
Remote-control vehicles destroy each other
in Philly.
www.nerc.us/events/events.html
18-19 Chibotica
iHobby Expo, Rosemont, IL
Includes a variety of events for autonomous
robots such as line following, maze solving, mini
Sumo, and more.
www.chibots.org/
21-24 Russian Olympiad of Robots
Moscow, Russia
This competition has something for everyone
including autonomous events such as Sumo, fire
fighting, line following, and cross country. There
are also remote control combat type events.
http://intronics.bogorodsk.ru/
24-26 Critter Crunch
Hyatt Regency Tech Center, Denver, CO
Robot combat 2 lb and 20 lb event categories.
Autonomous and remote control. Starting size of
12 x 12 x 12. Expansion during event okay.
Weight limit of 20 lbs. Power source must meet
OSHA requirements for indoor use. Awards for
1st, 2nd, and 3rd place, as well as amusing and
arbitrary accomplishments.
www.milehicon.org/critrule.htm
TBA Cal Games
Woodside High School, Woodside, CA
Rack and Roll (same as 2007 FIRST event).
www.wrrf.org/Events/index.php
TBA ROBOMO Maze Solving Competition
Winfield VFW, St. Louis, MO
Maze solving.
www.robomo.com
N No ov ve em mb be er r
22 Roaming Robots Grand Final
Kent, UK
Robots (RC vehicles) attempt to destroy
each other.
www.roamingrobots.co.uk/events_
calendar.htm
24 Hawaii Underwater Robot Challenge
Kahanamoku Pool, UoH at Manoa, Honolulu, HI
Timed, multitasking tethered mission.
www.marinetech.org/rov_competition
TBA ROBOEXOTICA
Museumsquartier, Vienna, Austria
Robots are tested on serving cocktails, mixing
cocktails, bartending conversation, lighting
cigarettes/cigars, and other achievements in
electronic cocktail culture.
www.roboexotica.org/en/acra.htm
TBA Canadian National Robot Games
Ontario Science Centre, Toronto, Ontario, Canada
Mini Sumo (novice, advanced, master), full-size
Sumo (autonomous and RC), fire fighting, line
following, walker race, photovore, search and
rescue, art and innovation.
www.robotgames.ca
Send updates, new listings, corrections, complaints, and suggestions to: steve@ncc.com or FAX 972-404-0269
20 SERVO 10.2008
Events.qxd 9/3/2008 10:24 AM Page 20
SERVO 10.2008 21
Full Page.qxd 9/3/2008 12:30 PM Page 21
Featured This Month:
Features
22 BUILD REPORT:
Savage Part 1
by James Baker
24 MANUFACTURING:
Combat Robot Drive
Systems by Mike Jeffries
27 Building Battery Packs
Fit For Combat
by Robert Wilburn and Paul Reese
31 PARTS IS PARTS:
Electronize Speed
Controllers by James Baker
Events
26 Jul/Aug 2008 Results and
Oct/Nov 2008 Upcoming
Events
32 EVENT REPORT:
Roaming Robots Goes to
Qatar as told by Kevin Berry
ROBOT PROFILE Top
Ranked Robot This Month:
30 K2 by Kevin Berry
22 SERVO 10.2008
O
ver the last five years or so,
I have built more robots for
other people than for myself,
which is really saying something
as I have a sizable fleet. When
building a robot for someone
else, I always listen to their
design brief, put together a
concept, and build to that design.
The robot was never mine in any
sense, but a realization of
somebody elses plans. So,
oftentimes things fall short of
my own engineering ambitions.
I am currently building a robot
that is very different.
Some time ago, I was
contacted by a young man
named Tom Armitage. He was
building his own 30 lb robot and
doing really well, but wanted my
help with his flipping mechanism.
It was not long after our first
conversation that he
commissioned me to build him
a bolt-in, four bar linkage flipper
device. I had not gotten much
further than the proof of concept
test rig when we again discussed
the design, and before I knew it
I was providing the pneumatics
solution, as well. A few weeks
later, Tom bought a speed
controller from me and was
talking about chassis design.
Several more conversation later,
and I am now building a
complete robot minus the drive
system on quite a reasonable
budget. Time passed quickly, and
by James Baker
Savage Part 1
BUILD REP RT
All main
pneumatic
components
weigh in at
just 2.2 lbs.
CombatZone.qxd 9/3/2008 6:41 AM Page 22
SERVO 10.2008 23
the development of the
robot concept was
refined over and over.
Upgrades and improve-
ments were undertaken,
often pre-emptively. The
original concept of a
simple, low cost robot
was all but gone, and the
highly advanced design
was starting to look like a
30 lb version of a very
successful larger robot.
Hmmm ... this got us thinking. More
upgrades and design changes were
authorized, and the four cheap drill
motors originally planned for the
drive system were replaced with six
Team Whyachi TWR15 gear motors
and wheels.
This, of course, resulted in a
controller upgrade and new
batteries as we planned to over-volt
the motors. Since this well known,
heavier robot was now the basis
for my robot (named Savage), the
owner was contacted and he was
kind enough to offer his blessing.
Now the project continues with
renewed enthusiasm to do
everybody proud. A number of
features in this robot were inspired
by other awesome machines. The
pneumatics system, for example, is
based on a liquid draw CO
2
system
as used successfully in many robots
on the British Robot Wars TV show.
My own heavyweight robot Wheely
Big Cheese uses an almost identical
concept on a larger scale. I was also
inspired by the old British warship,
HMS Warrior. This ship made
everything else on the water
obsolete when it entered service
in the 1860s.
The ships design feature I was
most interested in using for the
robot was its armored citadel
principle. On HMS Warrior, the
center of the ship including gun
deck and steam engines were
enclosed in a thick iron box of
armor an internal chassis that
formed the core strength of the
entire ships structure. The rest
of the ship basically bolted to this
inner box. For Savage, I wanted to
try out this same idea, so I used a
chassis milled from a solid billet of
2L97 aluminium alloy from which
everything would be mounted. To
compliment this high core strength,
the armor covering the robot is 8
mm titanium, with some 4 mm
titanium and 4 mm Hardox 400
wear plate in strategic places. All
the aluminium used for supports,
flipping arm, etc., is the same 2L97
alloy used in the main citadel.
If we think of Savage as a ship,
the upper deck is fully enclosed
within the chassis citadel and houses
the pneumatic system, flipping arm,
batteries, speed controller, and radio
system. Below this (beneath the
waterline, if you will), sit the six
Whyachi gear motors upon which
the robot runs. The titanium armor
extends downwards from the
chassis to the floor, protecting the
motors and wheels.
When designing the flipper,
I wanted to ensure that the
mechanism was mechanically
strong, effective, and an integrated
part of the armor of the robot. The
pneumatic system that powers it
is also very powerful, but I felt I
needed to leave options to upgrade
later. I built a test rig system with a
custom made, aluminium manifold
to allow me to experiment with
different configurations and
components. The ram currently used
is a custom design that was of a
size specifically chosen to allow the
body to be tapped at its base to
1/2 BSP thread. This can then
be screwed directly into the
solenoid valve, negating the need
for fittings.
I tested an identical design
tapped to 3/4 BSP (as the manifold
was made to accept either size)
which was significantly more
600 g CO
2
bottle, pressure relief valve, dump
valve, 1/2 solenoid valve, and custom-made ram.
Custom-made ram
for liquid CO
2
use.
The test rig with
the planned parts.
Lots of machine work
has gone into every part.
Aluminium flipper
arm components.
CombatZone.qxd 9/3/2008 6:42 AM Page 23
24 SERVO 10.2008
powerful, but heavier. I also
experimented with and without
buffer tanks and with gaseous CO
2
,
but saw no real increase in
performance over the simpler direct
liquid injection. This may prove to
be different in the arena, but the
robot will be completed with the
lighter, smaller ram and no buffer
tank for now. It will be up to Tom
as to how it develops.
See if you can guess what robot
inspired us so much with this near
replica. You may be able to tell
from the photos, or maybe you see
possible inspiration from several
machines. You will have to wait
until Part 2 for the reveal, and a full
review and performance assessment
of the finished machine. I truly hope
it does justice to the robot that
inspired it. SV
T
here are many ways to move
your robot around the arena
floor. From the simplistic two wheel
drive robot to the precision crafted
complexity of a true walking robot,
there are always different methods
of movement to consider. When
you are choosing a drive system,
you have to consider the pros and
cons of each system that makes
sense for your design and determine
which one is the best fit.
Remember, with proper
planning there is no wrong answer.
Two Wheel Drive
Two wheel drive robots are as
simple as it gets. Youve got one
power source attached to one wheel
per side. With only two
wheels, there is very little
turning resistance which
results in a very responsive
robot. One problem with
two wheel drive robots is
that if you dont have the
two sides of the drive system
well balanced, it will have
some difficulty driving in a
straight line at high speeds.
Another issue with two
wheel drive is that more
often than not, part of the
weight of the robot will be balanced
over a non-powered component,
reducing the robots ability to push
and accelerate. Two wheel drive
robots risk being hung up on
uneven floors or arena debris due
to the low number of powered
contact points.
Many two wheel drive robots
will have more than two wheels,
using the extra wheel or wheels like
casters to keep the chassis from
dragging on the ground and to help
with driving in a straight line. You
should choose two wheel drive if:
your design needs to have minimal
weight in the drive system; it needs
one part of the chassis dragging on
the ground; or it doesnt need a lot
of pushing power.
Four Wheel Drive
Four wheel drive systems are
very common in robot combat. All
MANUFACTURING:
Combat Rob t Drive Systems
by Mike Jeffries
Apollyon is the classic two wheeled wedge
design. It uses the dragging front wedge to
get under opponents.
Aluminium flipper
arm components.
The rear armor plate
is missing, showing off
the thick titanium armor on
top and on the flipper arm.
An inspirational ship.
Some of the design
features are used in
this robot.
CombatZone.qxd 9/3/2008 6:44 AM Page 24
or most of the
weight of the robot
will be on powered
wheels, maximizing
the pushing power
and acceleration of
the robot. Four wheel
drive robots will have
a bit more trouble
turning than two
wheel drive robots
due to the wheels
skidding sideways
while the body of the robot turns. A
wider wheelbase reduces the effect
and makes it behave more like a
two wheel drive robot. The difficulty
turning, however, is balanced by its
increased ablity to drive in a straight
line. You should choose four wheel
drive if: your design needs to use
the entire weight of your robot for
traction; needs to have powered
ground contact at all corners; or
doesnt need to be as light as
possible.
Six Plus Wheel Drive
Robots with six or more wheels
behave much like four wheel drive
robots. They have the same issues
with turning and the same benefit
to driving in straight lines. One
common variation is to have the
central wheels lower than the front
or rear wheels by 1/8-1/4 which
causes the body to rock back and
forth, essentially becoming a four
wheel drive robot with a relatively
wide wheelbase. Six wheel drive
increases the number of contact
points with the arena floor, making
it even harder to be high centered in
a match. The increased number of
wheels also allows the use of
wheels with softer treads as each
wheel will not wear as fast due to
the reduced forces on the tread.
You should choose six or more
wheel drive if your design needs
more ground contact than a four
wheel drive robot or if you need
more than four wheels to
properly transmit the power from
your motors to the ground.
Tracked Drive
Tracked drives are not very
common in robot combat due to
the increased weight and fragility of
the system. Tracks are a large target
on any robot with them. They either
have to be well protected or built to
handle direct weapon blows to sur-
vive well. Track systems have a huge
contact patch and are much less
likely to get hung up on anything in
the arena. Well-built tracks can be
very effective, but are difficult to
make and often very complex com-
pared to wheeled drive systems. You
should choose tracked drive if your
design needs maximum ground con-
tact or if you are placing style over
efficiency in your drive train design.
Omni Drive
Omni drives are a simple way
to allow your robot to strafe.
Strafing is when the robot is able
to move to the left or the right,
essentially driving sideways.
Depending on the number of
wheels typically either three or
four they are normally placed 90
or 120 degrees apart to keep
the spacing between them even.
The wheels themselves have rollers
built into them. This provides friction
in the direction the wheel spins
while having almost no friction
when moving side to side. Different
combinations of speed controller
commands will allow the robot to
move in all the normal directions,
as well as side to side and at odd
angles. The main disadvantage of
this is that the robot will not be able
to push as well as if it had solid
wheels and that the movement
speed is reduced due to wheels
being so heavily angled. You will
likely need a specialized electrical
control mixer or to learn how to
program the mixing into your
transmitter to drive an omni wheeled
robot effectively. You should choose
omni drive if your design needs to
strafe but you dont want to pay for
or make mecanum wheels.
Mecanum Drive
Mecanum drive is a variant on
the standard omni wheel. Instead of
the wheels being at angles, the
rollers inside the wheel are angled
SERVO 10.2008 25
Doom On You uses its four driven wheels to put a lot
of power on the ground and allow it to move around
the arena quickly, choosing when and where it hits
its opponents.
Shovelhead uses all six wheels to get
the incredible drive power it has on the
ground, allowing it to use both its bulk
and wedge as weapons.
Jawbreaker Jr.
uses the tracks to
put as much pushing
power behind its low
wedge as possible.
Phantasm uses the strafing ability
its wheels provide to maneuver
quickly in any direction while still
being able to keep the flipping arm
pointed at its opponent.
CombatZone.qxd 9/3/2008 6:45 AM Page 25
at 45 degrees. The pushing power
losses are similar, and the system
works best with four wheels.
Beyond the wheels which are
often custom made this system is
a very simple way to take a normal
four wheel drive robot and give it
the ability to strafe.
Strafing with mecanum wheels
can either be done on the
transmitter or with a custom
mixing circuit which will need at
least three channels to function.
You should choose mecanum drive
if you want strafing ability while still
having your wheels mounted inline.
Cam Walker
Cam walkers have their contact
surfaces mounted to cams, which
result in the contact surfaces rising
and falling as the shaft rotates.
Early in the history of robot
combat, this system was allowed to
have the full weight bonus given to
walking robots, but after a few
robots exploited the low weight
and high efficiency possible in a
system like this, they were ruled to
be essentially wheels making them
an unpopular choice for drive
systems as they are heavier and
less efficient than wheels in most
applications.
You should choose a cam
walker if you want form over
function, or if the event you are
attending gives a weight bonus
for cam walkers.
True Walker
True walking robots are not
allowed to have a part in continuous
rotation resulting in the movement
of the robot. With the way the rules
are written, walking robots need to
have the components starting and
stopping during movement to be
given the weight bonus.
The high complexity of a system
like this at the scale of most fighting
robots makes them very difficult to
build, let alone win with.
You should choose a true
walker if you care more about
making something cool than you
do about making something
competitive.
Driving the Points
Home
Each drive system has a good
and bad side. In the end, youre
best off choosing the drive system
you want and working to minimize
the negatives that come with it.
Efficiency and power are
wonderful things, but the best
drive system always has been and
always will be the one you want
to build. SV
Photos courtesy of BuildersDB
(www.buildersdb.com) and the Robot
Marketplace (www.robotcombat.com).
EVENTS
Results and Upcoming Events
Results Jul 13
Aug 11, 2008
R
oaming
Robots
held events
on July 18th
and 19th at
Reading and Farnborough, UK.
H
ouse of Benson Barnyard
Brawl was held by North
East Robotics Club on July 26th.
Twenty-eight bots were registered.
P
ennsylvania Bot
Blast 2008 was
held by D.W. Robots on July 12th.
Thirty-six bots were registered.
Upcoming: Oct-Nov 2008
R
oaming Robots will hold events at
Portsmouth on October 4th, and
Alcoholic Stepfather uses its strafing ability
to keep both the flamethrower and thick
steel wedge pointed at its opponents.
Kung Fu Cow took advantage of the cam
walker bonus weight at some events to put a
much heavier and more powerful weapon into
the arena than would otherwise be possible.
Mechadon was more a piece of art than a
fighting robot, but still was able to use its
massive weight and sharp feet to crash
down on opponents back in the
early days of BattleBots.
26 SERVO 10.2008
CombatZone.qxd 9/3/2008 6:46 AM Page 26
Nottingham,
UK on
October 25th.
Go to www.
roamingrob
ots.co.uk for more details.
F
ranklin Institute Robot Weekend
will be held on October 11th
in Philadelphia, PA. Go to
www.nerc.us for more details.
M
echa-Mayhem 2008 will be
held on October 16th in
Rosemont, IL. Go to www.the
crca.org for more details.
2
008 Halloween Robot Terror
will be held on October 25th in
Gilroy, CA. Go to www.calbugs.
com for more details.
R
obots Live will hold events at
Reading on October 11th,
London on October 25th,
Chester on November 15, and
Birmingham on November 22nd.
Go to www.robotslive.co.uk for
more details.
A
ntweight
Benelux
Championship
will be held
by Dutch
Robot Games
in the Netherlands on November
1st. SV
I
n the early days of combat robot-
ics, builders were often forced to
assemble their own battery packs if
they wanted something robust that
would tolerate conditions filled with
shock, vibration, heavy G-loads, and
constant flexing all while operating
at very high temperatures. This is no
longer the case with numerous
venders offering proven off-the-shelf
solutions. As vender packs became
the norm, we continued to build our
own packs using techniques we had
learned through trial and error.
These techniques can be applied to
pack assembly for many uses
outside of combat robotics. This
guide will cover some of the
advantages and disadvantages of
existing battery chemistries, as well
as describe the step-by-step process
we used for pack construction.
Following these simple techniques
will ensure you make battery packs
that are fit for combat!
Before we get started, lets talk
about SAFETY. First, realize that a
battery is a form of stored energy.
Typically, this energy is used in small
quantities over long periods of time.
However, if this energy is consumed
in a very short period of time say
from a short circuit conditions
may occur that pose a serious
safety hazard.
A shorted battery may produce
enough heat to cause severe burns,
may explode, or possibly combust.
Before attempting any steps in this
process, take the time to familiarize
yourself with your tools, work surface,
environment, and the fundamentals
of battery operation. Extreme care
should be taken to never short the
cells. This is a fairly simple process
and one that just about anyone
with the required materials can
accomplish (see Parts List).
Nickel-metal Hydride
(NiMH) and
Nickel-cadmium
(NiCd) Chemistries
The debate over which of these
chemistries is better has endured
more than a decade, but suffice it
to say each has its advantages and
disadvantages. The choice should be
based on your application and your
research. Factors such as maximum
discharge current, series resistance,
cycle life, and self discharge are
specifications to consider. Generally
speaking, NiMH are the better choice
these days. The high current drain
advantage NiCds once had has been
diminished with advances in NiMH
design. Both chemistries have a
nominal 1.2V/cell under load. Either
chemistry could be used in the
following guide. The key here is to
do your research before choosing!
Lithium-ion and
Lithium Polymer
Chemistries
Lithium-ion and lithium polymer
are much newer and superior
battery technologies in terms of
SERVO 10.2008 27
by Robert Wilburn and Paul Reese (Team O-Town Robotics; teamotown.com)
BUILDING BATTERY
PACKS FIT FOR C MBAT!
Parts List
Individual cells
Bus bars
Solder and soldering iron with
large tip
Shrink tube high temp variety
A tube of Shoe Goo
Stranded copper wire black
and red
Dremel type tool with a small
carbide grinding tip
Shrink wrap
Heat gun
CombatZone.qxd 9/3/2008 6:48 AM Page 27
28 SERVO 10.2008
their density, volume, and capacity
when compared to NiMH and NiCds.
However, neither are readily available
in cell form making building your
own packs a greater challenge and
one this article will not touch on.
Selecting Your Cells
Once you have selected your
chemistry (NiMH or NiCd), you will
need to choose a specific cell size
(AA, Sub-C, C, etc.) based on your
application. As a rule of thumb, you
will want to get the highest (mAh)
capacity cells you can afford.
The terms mAh and Ah stand for
milliamp hour and amp hour,
respectively. A higher mAh rating
means more capacity and longer
runtime. The number preceding
mAh indicates how much DC
current a charged cell will source
for one hour.
For example, the cells depicted
in this article are Sanyo 3600 mAh
NiCd C cells. This means that when
fully charged, they will source 3,600
milliamps or 3.6 amps for one
hour before dropping below
1.0 VDC per cell. They will
produce much higher current
for shorter periods based on
their discharge curve specs.
Cells vary greatly so discharge
curves, as well as other specifi-
cations, should be consulted in
the manufacturers datasheet.
Note: The desired pack voltage
divided by 1.2 will determine
the number of cells needed in
your pack. For example, a 12
VDC pack would require 10 cells.
Pack Construction
Lets Begin!
Roughing Up the Cell Terminals
The first step is a light
roughing up of the cell terminals
which allows for a better solder
connection when the bus bars are
installed. While this step is optional,
it is recommended if your pack(s)
will be subject to rough conditions.
A Dremel tool with a small carbide
bit (see Figure 1) makes quick work
of this task. A second option for
those without a Dremel is to score
a series of crisscrosses into the
terminals with the tip of a razor.
Installing Cell Isolation Rings
Next, remove the factory cell
covers with a razor blade. Factory
covers cannot withstand high
temperatures and will shrink and
split exposing the cells in a pack
to possible short circuit. To prevent
short circuiting, we will install shrink
tube isolation rings which act as
physical separators preventing the
cells from touching even under
rough flexing conditions. Note: The
temperature ratings of shrink tube
vary, so be sure to investigate
before you purchase. You can cut
individual rings and shrink them
with a heat gun or install a single
piece the length of the cell and use
a razor to remove the center leaving
the two rings (see Figures 2 and 3).
Cell Layout
The cells need to be arranged
in a manner that allows one cells
(+) terminal to be connected to
the next cells (-) terminal. These
connections are made with bus bars
and create a continuous series path
from one cell to the next. Each cell
in the series string will add 1.2V.
The most common shape for packs
is two rows with an equal number
of cells in each row. Take your time
figuring this out before continuing.
Highly customized cell layouts can
be another advantage of building
packs yourself!
Bonding the Cells Together
Once the cell layout is
determined, we are ready to bond
the cells together. Bonding adds
needed mechanical stability to the
pack. A flexible adhesive that is able
to withstand high temperatures is
needed here. After experimenting
with various types, we felt Shoe
Goo had the best properties
followed by silicone caulk. Shoe-Goo
has simply incredible adhesion
properties. You will
need a fixture to hold
the cells. We use a
simple jig that clamps
the cells between
wooden 1x1s screwed
to a workbench (see
Figure 3). Apply
adhesive between the
cells and allow to dry,
flip the cells and
repeat. Now apply
adhesive to the two
halves to form the
FIGURE 1
FIGURE 2
FIGURE 3
CombatZone.qxd 9/3/2008 6:49 AM Page 28
SERVO 10.2008 29
packs final shape and allow to dry.
Bus Bar Installation
Now that we have our pack
shape, we are ready to solder on
the bus bars to form a series path
from one cell to the next (see Figure
4). Solder flux can help here. Care
must be taken to avoid applying
heat for too long or else the cell(s)
may be damaged. The battery will
act as a heatsink drawing heat out
of the iron once the solder starts to
flow, so use an iron with a large tip.
The key is to get the solder flowing
and remove the iron as quickly as
possible. Lay the bus bar across the
terminals and secure it as required
to prevent movement. Again,
solder quickly!
Stranded Wire Basics and
Lead Attachment
With the bus bars installed,
solder the (+) and (-) leads. Consult
an American Wire Gauge (AWG)
table for the correct size wire based
on your system current. Choose
black for negative (-) and red for
positive (+) connections. (Note that
these images show white for
positive which is not recommended.
At the time of assembly, we ran out
of red so the white was later made
red with a large sharpie!)
Wire types vary but generally
speaking the more strands, the
more flexible the wire. Deans Wet
Noodle and Astroflight wire are
favorites among robot builders.
Flexible wire can be important if
routing through tight
spots. Wire usually
comes jacketed in PVC
or silicone. PVC is
tougher and resists
cuts and abrasions
better while silicone
withstands heat and
harsh environments
better. To install the
leads, strip approx
0.25 of insulation back
and unwind the exposed strands.
Flatten the exposed strands out to
form a V-shape as this will increase
the surface area allowing for a
stronger solder connection.
Pre-tinning the wire is a good idea.
Solder leads using the same method
as the bus bars.
Shrink Wrapping the Pack
Once the leads are attached,
the pack is ready to be shrink-
wrapped. Before this is
accomplished, secondary insulation
such as thin sheets of
Teflon (see Figure 5)
or high temperature
fiberglass tape may
be added for extra
insulation, if desired.
Shrink wrap has a
neat ability in that it
shrinks radially but not
axially. Cut a piece of
heat shrink just long
enough that it can be
folded to cover the
ends of the pack. Cut
two holes for the leads
to pass through. Slide the pack
inside and leads through the holes.
Using the heat gun, carefully begin
passing the heat over the wrap.
Dont allow the heat to remain in
one area too long or you may melt a
hole in the wrap (Figure 6). Once the
wrap is finished shrinking, you can
reheat the ends to soften them and
carefully fold them over the ends of
the pack with a small block of wood
or a plastic spatula. Crimp on your
desired connectors and your pack is
fit for combat! SV
FIGURE 4 FIGURE 6
FIGURE 5
Some assembly
required!
CombatZone.qxd 9/3/2008 6:52 AM Page 29
30 SERVO 10.2008
K
2 has competed at RoboGames
2007 and 2008. Details are:
Overall configuration: Dual
vertical disc spinner.
Drive: Two Team Delta 18V
DeWalt motors in low gear;
rear wheels are driven and
front wheels are slaved via
timing belts.
Wheels: 4 Colsons.
Drive ESC: Two Victor 883s.
Drive batteries: Two 5,000 mAh,
6S lithium-polymer.
Weapon type: 8 dual spinning
discs, with .33 thick titanium
hinged wedge.
Weapon power: Same as drive.
Weapon motor: S28-150
Magmotor.
Weapon controller: Team
Whyachi C1 contactor.
Armor: 1/8 polycarbonate top
and 1/8 aluminum base.
Radio system: Spektrum DX6i.
Future plans: Not many upgrades are
necessary after RoboGames; the bot
functioned quite well. I am working
on a solution to keep the brushes
from falling out of the drive motors.
Design philosophy: Wedge scoops
under opponents and lines them
up to be launched by the discs.
Builders bragging opportunity:
I installed a unique data
collection system that I used
at the last competition. The
EagleTree eLogger and assorted
sensors allowed me to monitor
the bots battery current, voltage,
rpm of the spinner, and several
temperature sources. This data
can help diagnose how the bot
is performing, for instance, I
noticed the current spikes
dropped significantly later in the
competition due to the weapon
belt being stretched out. SV
Photos and information are courtesy of Team
Velocity (www.teamvelocityrobotics.com).
All fight statistics are courtesy of BotRank
(www.botrank.com) as of August 10, 2008.
Event attendance data is courtesy of BotRank
and The Builders Database (www.builders
db.com) as of August 10, 2008.
ROBOT PR FILE
by Kevin Berry
TOP RANKED ROBOT THIS MONTH
Weight
Class
Bot Win/Loss Weight Class Bot Win/Loss
150 grams VD 26/7 150 grams Micro Drive 10/3
1 pound Dark Pounder 44/5 1 pound Dark Pounder 23/3
1 kg Roadbug 27/10 1 kg Roadbug 11/4
3 pounds 3pd 48/21 3 pounds Limblifter 12/1
6 pounds G.I.R. 17/2 6 pounds G.I.R. 11/2
12 pounds Solaris 42/12 12 pounds Surgical Strike 19/7
15 pounds Humdinger 2 29/2 15 pounds Humdinger 2 29/2
30 pounds Helios 31/6 30 pounds Billy Bob 12/4
30 (sport) Bounty Hunter 9/1 30 (sport) Bounty Hunter 9/1
60 pounds
Wedge of
Doom
43/5 60 pounds K2 14/2
120 pounds Devil's Plunger 53/15 120 pounds Touro 14/2
220 pounds Sewer Snake 46/13 220 pounds Original Sin 12/5
340 pounds SHOVELHEAD 39/15 340 pounds Ziggy 6/0
390 pounds MidEvil 28/9 390 pounds MidEvil 3/0
Top Ranked Combat Bots
Rankings as of August 10, 2008
History Score is calculated by
perfomance at all events known to
BotRank
Current Ranking is calculated by
performance at all known events,
using data from the last 18 months
History Score Ranking
K2 Currently Ranked #1
Historical Ranking: #5
Team: Team Velocity
Builder(s): Kevin Barker
Location: Enumclaw, WA
BotRank Data Total Fights Wins Losses
Lifetime History 16 14 2
Current Record 16 14 2
Events 2
CombatZone.qxd 9/3/2008 6:53 AM Page 30
W
hen first venturing into
combat robot building, I, like
most, began with RC car speed
controllers. It quickly became
apparent that even the most highly
rated controllers were not robust
enough to handle the power
demands of the 30 lb class. Several
240 amp race controllers billowed
smoke before I finally gave up on
RC car technology, and tried out RC
boat controllers. Available then in
several versions, I took the kit forms
and the ready-built forms of several
products and began experimenting.
Before long, I had a winner. The
Electronize brand of speed
controllers was by far the most
reliable and capable of those tested,
and thus began my seven-year
relationship with the company.
Based in Tamworth, Great
Britain, Electronize produces a
range of speed controllers for radio
controlled use, as well as electronic
switchers.
I have used several versions of
the Electronize speed controller;
from the 10 amp self builds, to the
40 amp CPU controlled type. My
most common purchase was the
FR15 unit. I have bought
almost 50 of these in the last
five years, and had only two
fail under unusually heavy
load which was way over the
rated specification.
Most electronic speed
controllers work in basically
the same way, with a pulse
wave modulation output
controlling motors via
MOSFET chips. The
Electronize is the same,
but does have some features I have
not found on other controllers.
Firstly, it has a variable frequency
selector that allows pulsing of
output from 100 Hz to 2,000 Hz,
giving the user a choice of running
more torque at low speed or
greater efficiency a high speed. I
make a lot of use of this feature on
my corporate robots to aid battery
longevity.
Secondly, the Electronize
controller has a variable output
speed selector, which is a fantasti-
cally useful tool. For my corporate
robots, I often carry 24-volt batteries
on board, but set the controller
output to seven volts. Using 9.6 volt
drill motors for drive, they are still
quite impressive in terms of speed
and power, but the run time of my
robots can be as much as four
hours. Should I wish to speed up my
robots, a precision screwdriver is all
that is needed, and 10 seconds later
I can have my bots zooming around
at close to 30 mph, easily coping
with 40 amp peak currents. No
other controller I have found allows
me to do this so easily.
Seven years after buying my
first Electronize speed controller (in
2001), I still use them extensively.
Despite most of my combat bots now
running the latest in speed controller
technology from other manufacturers,
my corporate robots will always run
the Electronize FR15, as they offer
everything I need in terms of voltage
and efficiency management, reliabili-
ty, and value for money. I have run
these controllers reliably at up to
90 amps with minimal modification,
and have over 800 hours runtime on
one corporate robot in particular,
having changed out the motors
twice, batteries twice, and receiver
once, the speed controllers are still
the original ones from 2002. SV
Visit www.electronize.co.uk for more
information.
by James Baker
PARTS IS PARTS:
Electronize Speed
C ntrollers
SERVO 10.2008 31
Electronize
controller.
30 lb bar spinner
tantrum used the
FR15 until 2007.
Radio-controlled,
full size R2-D2
performed really
well on FR15
controllers.
CombatZone.qxd 9/3/2008 6:55 AM Page 31
J
ohn Findlay head honcho of
the United Kingdoms Roaming
Robots was commissioned to do a
show in the Middle Eastern country
of Qatar. He graciously provided
details and photos to Combat Zone
for this article.
Roaming Robots after two
years of preparation hauled a
planeload of bots to Doha, the
capital of Qatar. Besides their
biological support staff, heavy-
weights Ripper, Envy, Tilly Ewe2,
Scorpion, DTK, Mighty Mouse,
Velocirippa, and Hammertime went
on this jaunt, along with feather-
weights Pain in the Asp, Pillow
Torque, Mini Mighty Mouse, Iron
Side, and Rip.
The venue was a major
shopping center, basically one of
the ubiquitous malls similar to those
in any country, world-wide.
After two continuous days of
setup, the arena and display area
was ready. Over the next seven
nights, between 5 pm and 10 pm
the shopping center was echoing
with the sound of robots battling!
The first night was a bit hectic,
John explained. The unrehearsed
format not only had featherweights
and heavyweights, but there were
12 roboteers to drive robots and
run two robot building workshops
during each night. As the week
continued with slight changes
to the format it was clear that
the robots were a hit with the
locals. They hadnt seen anything
like it before, and were blown
away with the excitement of the
event. Despite being in a tourist
mecca, it was a typical life for an
event organizer. Apart from a quick
morning swim, most time was
spent in the shopping center
preparing for the show each night.
After the event, the workers did
find time for some R & R when they
headed to a lovely resort by the
sea for swimming, jet skis, and
quad biking!
John specifically
mentioned Fahad and
Rabi, their two drivers
and helpers who were
fantastic throughout
the week. Whether
obtaining more CO
2
or taking the crew to
a bar for a few drinks,
they were always
available. John also
raved about Marwan,
their host and
sponsor. Roaming
Robots just signed a
five year deal for
educational work in
Singapore, and is in
final negotiations for
a five-day event
early next year in
Kuwait. SV
32 SERVO 10.2008
as told by Kevin Berry
ROAMING ROB TS
GOES TO QATAR
The Doha crew.
The Doha robots.
The Doha arena.
The Doha pits.
CombatZone.qxd 9/3/2008 6:59 AM Page 32
CONFERENCE&EXPO
,
08
NOV. 18-19, 2008
SANTA CLARA, CA
SANTA CLARA CONVENTION CENTER
Join the International Technical Design and Development
Event for the Personal, Service, & Mobile Robotics Industry
JOIN THESE LEADING
COMPANIES AT 2008
ROBODEVELOPMENT
Analyst, Association &
Academic Co-Sponsors
Silver Sponsors
Media Co-Sponsors
Gold Sponsor
BOSTON
ENGINEERING

BOSTON
ENGINEERING

Listing as of August 30, 2008.


For a current list of participating
companies, please visit
www.robodevelopment.com.
Founding Sponsor
Corporate Sponsors
Q The industrys most comprehensive
conference program covering these
critical topics:
- Systems & Systems Engineering
- Tools & Platforms
- Enabling Technology
- Achieving Autonomy
- Design & Development
Q Valuable networking opportunities
that put you in touch with peers,
industry experts and up-and-coming
talent:
- Evening Welcome Reception
- Speaker Meet & Greet
- Birds-of-a-Feather Discussions
Q Exposition oor featuring whats
new and whats next in robotics
design and development
WWW.ROBODEVELOPMENT.COM Q 800-305-0634
USE PRIORITY CODE RDSRV AND
SAVE $300ON A CONFERENCE PASS
EXCLUSIVE OFFER:
Q Learn from exclusive keynote
presentations delivered by
world-renowned robotics
industry experts:
Sebastian Thrun, Winner of the
DARPA Grand Challenge; Director,
Articial Intelligence Laboratory,
Stanford University
Maja J. Mataric, Founding Director,
USC Center for Robotics and
Embedded Systems; Director, USC
Robotics Research Lab
Jeanne Dietsch, CEO,
MobileRobots Inc
Michael Bruch, Section Head,
Space and Naval Warfare (SPAWAR)
Systems Center
FOR COMPLETE EVENT DETAILS
VISIT WWW.ROBODEVELOPMENT.COM
For Information on Sponsorship and Exhibiting Opportunities, contact
Ellen Cotton at ecotton@ehpub.com or 508-663-1500 x240
Full Page.qxd 9/3/2008 12:35 PM Page 33
34 SERVO 10.2008
W
ire is a wonderful thing. Theres not much that
is more reliable than a short piece of stranded
or solid copper wire between the ends of an
electrical connection. However, there are situations where
electrically tying devices together with long runs of wire is
impractical. Light does a good job of replacing copper
when the conditions are right, but if one needs to move
electrons reliably over a relatively long distance theres no
better conductor than the Earths magnetic field.
Odds are that if youre not using copper wire to
supply power to a device, youre using that wire to
convey a signal. If your signaling environment allows the
communicating devices to place their sensors in plain sight
of each other and if the signaling environment can bounce
light around between the sensors with a minimum of
spectral loss, a beam of modulated light is as good as a
signal-carrying piece of copper wire.
On the other hand, if the devices that wish to
communicate cant visibly see each other or the distance
between the devices is large, light may not be the most
reliable means of carrying a signal from one device to
the other. In this case, short-distance signaling using
low-power RF is a better bet.
A Smart Data Radio
What do you get when you mix a Microchip
PIC16F690 microcontroller with a Texas Instruments
CC1100 1 GHz transceiver IC and a fingertip full of 0402
SMT components? The itty-bitty EmbedRF data radio you
see in Photo 1. The EmbedRF can replace up to 80 50-foot
copper signal wires as it is pinned for four 16-bit analog-to-
digital (A-to-D) inputs, a digital output, and a digital input.
Alternately, you can program the EmbedRF to present two
A-to-D inputs, one digital input, and two digital outputs.
The EmbedRFs A-to-D input voltage levels and digital I/O
logic levels can be included in the RF transmit stream or
completely ignored and replaced with user-defined data.
The digital input and one of the digital outputs can be
optionally configured as part of a three-wire EUSART-based
serial interface (RXD, TXD, and GND).
The EmbedRFs CC1100 transceiver IC dominating the
view in Photo 2 is hard-coded to run at 915 MHz in point-
to-point or point-to-multipoint modes. All of the A-to-D
inputs and the serial interface (RXD and TXD) are tied to
the on-board PIC. Data communications between the PIC
and the CC1100 is performed using a SPI (Serial Peripheral
Interface) data link.
The EmbedRF has the ability to transmit a 17-byte
packet in intervals of 0.25 to 12.75 seconds. The interval
granularity is 50 milliseconds per interval bit. Only 11 of
the 17 bytes in the packet are loaded with data that the
user can access as the first six bytes of the packet contain
the network ID and transmitting device ID. The network ID
is hidden during transmission to provide network security.
Of the 11 transmitted data bytes, only 10 of the 11 data
bytes are user customizable via the EmbedRFs EUSART-
based serial interface. The last byte in the 17-byte packet
is a packet counter byte that is incremented each time a
new RF packet is transmitted by a transmit-enabled
EmbedRF device.
A minimum of two EmbedRF devices are required
to form a network. Each EmbedRF network node has
the capability of transmitting only, receiving only, or
transmitting and receiving. A set of unique device and
network IDs allows EmbedRF nodes to selectively
communicate with each other. An EmbedRF network node
can have a unique transmit device ID and a separate
unique receive device ID. Device IDs can range from zero
(0x000000) to 16,777,215 (0xFFFFFF). The same 24-bit ID
PHOTO 1. R3 and R4 are SMT jumpers that determine the baud
rate which is set for 19200 bps in this shot. From what I can
match up with the PICs pinout, R2 and C14 are the MCLR reset
circuit, while R5, C11, C12, and X1 form the PICs system clock
oscillator. Bulk capacitor C1 is guarding the input voltage.
PHOTO 2. The unmarked termination to the right of VDD
is the RSET pin, which is tied to the junction of MCLR
components R2 and C14 in Photo 1. The antenna is
covered by the SN000189 label.
by Fred Eady
Eady.qxd 9/3/2008 9:06 PM Page 34
range that applies to the device ID also applies to the
network ID.
To make establishing communications between
nodes easier, the EmbedRF firmware can be
commanded to perform an intelligent search. A
receiving EmbedRF node can establish a session with
the nearest transmitting node or the first transmitting
node it hears. The concept of the first transmitting
node session is obvious. The EmbedRF nearest
transmitting node function is made possible by use
of the receiving EmbedRF nodes RSSI (Receive Signal
Strength Indicator) value. The larger the RSSI value,
the closer the transmitter. The RSSI is presented to the
EmbedRF programmer as a byte-wide digital value.
Since the PIC16F690 is in charge of the EmbedRFs
operating logic and the data packets are relatively small,
its only natural that the EmbedRF designers would take
advantage of the PICs SRAM to buffer data traversing
between the PIC and the CC1100. By buffering the
transmit and receive packet data, a very useful notification
feature is added to the EmbedRF. The EmbedRF can be
commanded to notify the external microcontroller when a
packet is received into its receive data buffer. Conversely,
the EmbedRF provides positive notification feedback to the
external microcontroller when a packet is transmitted from
its transmit buffer. If receive notification is not required,
the EmbedRF can be polled for received packet
information. The transmit packet notification is always
presented to the external microcontroller. Its up to the
external microcontrollers firmware to sense and use the
transmit notification. When the EmbedRF notify mode is
active, received data in the EmbedRFs receive buffer is
immediately transferred to the PICs EUSART and
transmitted over the EmbedRFs serial interface.
A very nice Windows application called EmbedRF
DesktopPro is available from the EmbedRF website. This
program is designed to interface an EmbedRF to a PC
using an optional USB interface module. This USB interface
module captured in Photo 3 is part of the development kit.
The EmbedRF is designed to be programmed via its
serial interface and put to work as a stand-alone data
radio. To that end, the kit also comes with a battery board
that plugs into and powers a stand-alone radio module. I
just happened to have one of the battery boards and I put
the macro lens to it in Photo 4.
Unless your mechanical animal has the ability to run
Windows and manipulate a PC keyboard, or you simply
want to program an EmbedRF module, stick it out there
somewhere and never change the configuration. Youll
want to forego the DesktopPro application in favor of a
PIC running the home-brewed EmbedRF API (Application
Programming Interface) were about to code up.
Well compile our API source code using the HI-TECH
PICC C compiler. This compiler allows you to port the
EmbedRF API source code to any PIC that you desire. The
API code well be assembling is based on the PIC18LF2620
and was constructed using the HI-TECH compiler package.
EmbedRF API Lab Layout
The hardware setup is very simple. All you need to
do is connect the EmbedRFs TXD line to your PICs
USART/EUSART RX pin. The PICs TX pin should be tied
to the EmbedRFs RXD line. Since the EmbedRF module
comes jumpered for a 19200 bps serial interface, you must
set the same baud rate on the PIC. If you must, you can
move the EmbedRFs baud rate jumpers to obtain a
different baud rate. The serial interface can alternately be
jumpered for 9600, 2400, and 1200 bps. Power your PIC
and the EmbedRF with a power supply voltage between
2.0 and 3.6 volts. I powered mine with 3.3 volts.
For the purposes of demonstration, Ill use a second
EmbedRF and an EmbedRF USB interface board that are
tied to my laptop as the second node in a two-node
network. A Microchip REAL ICE (In-Circuit Emulator) will be
attached to the PIC18LF2620-controlled EmbedRF module.
Using the DesktopPro application on one node and the
Microchip REAL ICE on the other node allows for easy,
on-the-fly reconfiguration of each of the EmbedRF
network nodes.
So that youll know if Im talking about the EmbedRF
module or the PIC18LF2620, I will always refer to the
EmbedRF module and its on-board PIC16F690 as the
EmbedRF. Thus, we have one EmbedRF tied to my laptop
via the USB interface board and a second EmbedRF tied to
the PIC18LF2620 via a EUSART-to-EUSART three-wire serial
interface. In the text that follows, the PIC18LF2620 and its
associated circuitry will be referred to simply as the PIC.
The API code we are about to write runs on the PIC. We
will not write any code that runs on the EmbedRFs
PIC16F690 microcontroller.
Coding the EmbedRF API
The EmbedRF API code package that you will have
access to via the SERVO website (www.servomagazine
.com) includes all of the functionality that is necessary to
support the EmbedRF API function calls. For instance, an
interrupt-driven EUSART interface and an interrupt-driven
millisecond-interval clock are part of the API package. Keep
SERVO 10.2008 35
PHOTO 3. This EmbedRF USB interface supplies power to
the EmbedRF module and provides a virtual serial interface
to the EmbedRF DesktopPro application.
Eady.qxd 9/3/2008 9:14 PM Page 35
36 SERVO 10.2008
this in mind as we will only cover the EmbedRF API
functionality in this discussion.
There are certain supporting functions that are
common to each API call. Each EmbedRF command
consists of a single byte that may be followed by any
number of command arguments. Commands and their
associated arguments are all transmitted to the EmbedRF
module using the API sendchar function, which is part of
the APIs interrupt-driven EUSART support code. When a
command is transmitted via the EUSART serial interface
from the PIC to the EmbedRF, the EmbedRF will process
the incoming command byte and its arguments, and
return a reply message to the originator of the command.
The command originator in our network can be the PIC or
the laptop. The EmbedRF command reply will always begin
with a byte which has the value of the original command
byte value plus 0x20. For instance, to query the EmbedRF
firmware version we would issue a command byte of 0x56
over the EUSART serial interface to the EmbedRF. It will
reply with 0x76 followed by two bytes of firmware
version data.
Each API function checks for a valid command reply.
If the EmbedRF command reply must be validated by the
application, a function return code (frc) is returned to the
API function caller. An frc return value of zero indicates
that all is well. If an internal API call validation fails, the
API function will return a one to the caller.
The EmbedRFs command reply is picked up by the API
support codes interrupt-driven EUSART receive routines.
Well-placed calls to the APIs CharInQueue function allows
us to determine when valid data is in the APIs receive
queue. When the CharInQueue function returns a Boolean
TRUE, the recvchar support function is used to retrieve the
data from the API receive queue. Each EmbedRF API call
takes advantage of the CharInQueue and recvchar API
support functions.
The EmbedRF API code package contains a packet_rx
array to hold the received packet data and a packet_tx array
to buffer data that is to be sent to the EmbedRF for
transmission. Heres the layout for the receive array:
char packet_rx[15];
#define xid_hi 0x00 //transmit device ID
#define xid_mid 0x01
#define xid_lo 0x02
#define rx_0 0x03
#define rx_1 0x04
#define rx_2 0x05
#define rx_3 0x06
#define rx_4 0x07
#define rx_5 0x08
#define rx_6 0x09
#define rx_7 0x0A
#define rx_8 0x0B
#define rx_9 0x0C
#define rx_rssi 0x0D //received signal strength indicator
#define rx_ctr 0x0E //packet counter
#define rx_end 0x0F
The ID of the device that sent the packet is contained
in the first three bytes of the receive packet array. The
rx_end byte is not part of the receive packet array and is
used to indicate the end of the arrays extent. The best
way to explain the use of the rx_end definition is to
examine the EmbedRF API call that retrieves a packet from
the EmbedRFs receive buffer:
//******************************************************
//* GET RECEIVED DATA FROM EmbedRF
//*
//* ENTRY - NONE
//*
//* RETURN - 15 BYTES - RECEIVED DATA IN packet_rx
//******************************************************
void get_embedrf_data(void)
{
char i,embedrf_reply;
sendchar(0x47);
while(!(CharInQueue()));
if(CharInQueue())
embedrf_reply = recvchar();
if(embedrf_reply == 0x67)
{
for(i=0;i<rx_end;++i)
{
while(!(CharInQueue()));
if(CharInQueue())
packet_rx[i] = recvchar();
}
}
delay_ms(10);
}
The get_embedrf_data API call is issued in a polling
sequence when the notify feature is disabled. Note the
command byte (0x47) and the command reply byte (0x67).
Once the command reply is validated, data is transferred
from the API receive buffer into the packet_rx array
as long as the if statement counter variable i is less
than rx_end and the CharInQueue function returns a
Boolean TRUE.
During the course of testing the API code, I found that
I had to pace the issuance of commands to the EmbedRF.
The delay_ms function is part of the interrupt-driven clock
code that supports the API function calls. Youll find a 10
PHOTO 4. When depressed, the pushbutton allows three
volts to flow to the AN1 analog-to-digital input. The idea is to
provide some instant gratification when using the EmbedRF
DesktopPro application to manipulate an EmbedRF network.
Eady.qxd 9/3/2008 9:15 PM Page 36
millisecond delay_ms pacing call at the end of every API
function call.
Since transmitting and receiving data is the main
objective, lets look at the APIs transmit buffer array:
char packet_tx[11];
#define ad0_hi 0x00
#define tx_0 0x00
#define ad0_lo 0x01
#define tx_1 0x01
#define ad1_hi 0x02
#define tx_2 0x02
#define ad1_lo 0x03
#define tx_3 0x03
#define ad2_hi 0x04
#define tx_4 0x04
#define ad2_lo 0x05
#define tx_5 0x05
#define ad3_hi 0x06
#define tx_6 0x06
#define ad3_lo 0x07
#define tx_7 0x07
#define tx_8 0x08
#define tx_9 0x09
#define tx_cmd 0x0A
#define tx_end 0x0B
Note that Ive defined both the user data bytes and
the EmbedRFs native A-to-D inputs in the API transmit
packet array. The value of the tx_cmd byte determines
if the buffered transmit data should be transmitted
immediately by the EmbedRF, buffered for scheduled
transmission, or transmitted before receiving. The tx_end
serves the same purpose as the rx_end definition. Like
rx_end, tx_end is not part of the array data.
I found it very helpful to be able to see the device IDs,
network ID, version information, intervals, modes, and
A-to-D settings while writing and testing the EmbedRF API
code. Heres the data structure I used to get an overall
view of the operational parameters:
typedef struct {
char ver_maj:8; //firmware version
char ver_min:8;
char tx_interval:8; //transmit interval
char tx_mode:8; //transmit-receive mode
char tx_pwr_lvl:8; //transmit power level
char device_id_aa:8; //device id - transmit
//or receive
char device_id_bb:8;
char device_id_cc:8;
char ad_setting_ww:8; //analog-to-digital port
//settings
char ad_setting_xx:8;
char ad_setting_yy:8;
char ad_setting_zz:8;
char find_tx_xx:8; //foundtransmitter ID
char find_tx_yy:8;
char find_tx_zz:8;
char rid_xx:8; //pseudo-random device ID
char rid_yy:8;
char rid_zz:8;
char network_mode:8; //network mode
} RReply;
RReply reply;
These values show up very nicely in the MPLAB IDE
Watch window. Heres a code snippet that is designed to
fill in some of the reply data structures byte-wide fields:
char rc;
#define err_led LATA5
#define ON 0x00
#define OFF 0x01
//Notify Mode Options
#define notify_off 0x00
#define notify_on 0x01
//Transmit/Receive Mode Configuration Options
#define tr_off 0x00 //off - no transmit or
//receive
#define tr_rcv 0x01 //receive only
#define tr_xmit 0x02 //transmit only
#define tr_rx 0x03 //receive then transmit
#define tr_xr 0x04 //transmit then receive
//Network Mode Options
#define p_to_p 0x00 //point to point
#define p_to_m 0x01 //point to multipoint
//Transmit Power Level Configuration Options
#define dbm_minus10 0x00 //-10 dbm
#define dbm_minus5 0x01 //-5 dbm
#define dbm_0 0x02 //0 dbm
#define dbm_plus5 0x03 //5 dbm
//Analog/Digital Options
#define ad_disabled 0x00 //disabled
#define ad_enabled 0x01 //analog active
#define dig_1 0x02 //digital active logic 1
#define dig_0 0x03 //digital active logic 0
//this code located in main function
err_led = OFF;
if(rc = set_notify_mode(notify_on))
err_led = ON;
if(rc = set_tx_interval(0x28))
err_led = ON;
if(rc = set_tx_rx_mode(tr_rcv))
err_led = ON;
if(rc = set_device_id(0x00, 0x00, 0x01, id_rcv))
err_led = ON;
if(rc = set_network_id(0x00,0x01,0x02))
err_led = ON;
if(rc = set_ad_settings(0x00,0x01,0x02,0x03))
err_led = ON;
if(rc = set_network_mode(p_to_p))
err_led = ON;
if(rc = set_tx_pwr_lvl(dbm_plus5))
err_led = ON;
get_firmware_version();
get_tx_interval();
get_tx_mode();
get_device_id(rx_device);
get_ad_settings();
get_network_mode();
get_tx_pwr_lvl();
The reply structure byte-filling code is typical of what
your EmbedRF control application will look like. I attached
an LED to PORTA5 on my PIC18LF2620 to act as a debug
indicator. The variable rc (short for return code) is a global
SERVO 10.2008 37
Eady.qxd 9/3/2008 9:15 PM Page 37
variable that is defined within the API support code. Each
if statement in the code snippet is an API function call. If
the return code (rc) is equal to zero, there are no detected
command entry or reply errors and the err_led = ON
statements dont get executed. The get API calls retrieve
the results of the if statement API calls and stuff them into
the reply data structure. The tasks performed by the API
function calls are pretty obvious as they are named for the
EmbedRF commands they represent. The only thing you
cant really figure out with what you see in the code
snippet is the transmit interval (tx_interval) delay window.
However, I did tell you earlier how the transmit interval
argument works. Recall that each transmit interval bit
represents 50 milliseconds of delay. So, 0x28 equates to
40 decimal, which results in 40 * 50 milliseconds or a two
second delay window between transmissions. The MPLAB
IDE Watch window shown in Screenshot 1 reveals the
results of the EmbedRF API code snippet get calls.
Receiving Data Using the
EmbedRF API
Ive taken the liberty to use the EmbedRF DesktopPro
application to put the EmbedRF attached to the laptop
USB interface into transmit-only mode with a transmit
device ID of 0xAABBCC (11,189,196 decimal). The
network mode is point-to-point and the network ID is
0x000000. Consider this EmbedRF API application receive
code snippet:
//Find Transmitter Options
#define find first 0x00 //find first
#define prox_find 0x01 //proximity find
err_led = OFF;
if(rc = set_notify_mode(notify_on))
err_led = ON;
if(rc = set_tx_rx_mode(tr_rcv))
err_led = ON;
if(rc = set_device_id(0x00, 0x00, 0x01, id_rcv))
err_led = ON;
if(rc = set_network_id(0x00,0x00,0x00))
err_led = ON;
if(rc = set_network_mode(p_to_p))
err_led = ON;
find_xmitr(0x00);
while(!(CharInQueue()));
for(i=0;i<rx_end;++i)
{
while(!(CharInQueue()));
if(CharInQueue())
packet_rx[i] = recvchar();
}
After matching up the PICs EmbedRF module receive
parameters with those of the laptops transmit parameters,
the find transmitter API call is invoked. The find transmitter
API call will establish a receiving session with the first
transmitter it can hear. In our case, that will be the
laptops EmbedRF. With the notify option active in the
PICs EmbedRF, as soon as the PICs receive buffer is
loaded with a valid packet, the EmbedRF will dump the
received packet onto the PIC-to-EmbedRF serial interface.
The API codes interrupt-driven EUSART support code will
see the incoming data and load it into the API receive
buffer. We then transfer the data packet from the API
receive buffer to the packet_rx array using the
CharInQueue function as a buffer-to-array regulator.
Lets see if the data we received from the laptops
EmbedRF in Screenshot 2 makes any sense.
Recall that the laptops EmbedRF was programmed
with a device transmit ID of 0xAABBCC. According to
Screenshot 2, we captured the transmit devices ID
correctly in the first three bytes of the received data
packet. The EmbedRF DesktopPRO application has an
option that allows the first data byte to be incremented
over time. In our case, I commanded it to increment the
first data byte of the packet every four seconds. Thus, the
laptop EmbedRF had been transmitting 4 * 0x4D (308)
seconds when this data packet was captured by the PICs
EmbedRF module. The remaining data bytes in the packet
are set in sequential fashion as shown in Screenshot 2. The
signal strength is represented in byte 13 and the laptops
EmbedRF packet counter is set for 246 decimal (0xF6). The
packet counter value can be used by the application to
detect a dropped packet at the receiving end.
Transmitting Data Using the
EmbedRF API
After using the EmbedRF DesktopPRO application to
flip the laptops EmbedRF module into a dedicated receiver
mode with active notify, I whipped up this transmit
38 SERVO 10.2008
SCREENSHOT 1. Lets see if things match up here. The firmware
version is 2.0, which is backed up by the silkscreen legend in
Photo 1. The tx_interval value of 0x28 matches our set_tx_interval
API call argument. Youll find every entry in the Watch window
to be accurate. Wondering why the network ID value is
missing? Two reasons: there is no command to read the
network ID and the network ID is hidden for security reasons.
SCREENSHOT 2. You can convey plenty of control and monitor
information with 10 bytes. And, you can count on the data you
see in this shot as being accurate as the EmbedRF performs an
automatic CRC check on each data packet.
Eady.qxd 9/3/2008 9:16 PM Page 38
application code snippet:
for(i=0;i<tx_end;++i) //load the transmit packet array
packet_tx[i] = i+2;
err_led = OFF;
if(rc = set_tx_interval(0x28))
err_led = ON;
if(rc = set_tx_rx_mode(tr_xmit))
err_led = ON;
if(rc = set_device_id(0x11, 0x22, 0x33, id_xmit))
err_led = ON;
if(rc = set_network_id(0x00,0x00,0x00))
err_led = ON;
if(rc = set_ad_settings(0x00,0x00,0x00,0x00))
err_led = ON;
if(rc = set_network_mode(p_to_p))
err_led = ON;
if(rc = set_tx_pwr_lvl(dbm_plus5))
err_led = ON;
if(rc = send_data_buffer(no_xmit))
err_led = ON;
Before running the API transmit application, I
commanded the laptop EmbedRF to search for the first
transmitter it could hear. Kicking off the API transmit
application resulted in the EmbedRF DesktopPRO hearing
the PICs EmbedRF and establishing a session with it. The
results of the communications session can be picked
out of the EmbedRF DesktopPRO window you see in
Screenshot 3.
According to the API transmit application code
snippet, the PICs EmbedRF transmit device ID is 0x112233
or 1,122,867 decimal. The PICs transmit device ID is
verified in Screenshot 3. The 10-byte data packet
transmitted by the PICs EmbedRF begins with 2 and ends
with 11. This is also backed up by the Raw Data Received
view in Screenshot 3. We disabled all of the EmbedRFs
A-to-D inputs, so you can ignore the
Analog Data Received numbers as
they are just the hex values of the
data we entered into the data
packet. For instance, A/D 0 says it
sees 515 counts. Thats because its
calculating 0x0203 (515 decimal) as
an A-to-D reading. The same goes
for A/D 1, which is a result of
0x0405 or 1029 decimal.
The Hard Work is Done
Take a look at the EmbedRF datasheet and youll see
that there are many more commands than we have
discussed here. The good news is that every EmbedRF
command has a corresponding API function call; Ive
tested all of them. So, all you have to do is put them
together to form your own unique EmbedRF application.
To ease your learning curve, I went to great lengths to
make sure that the API call arguments closely matched
the EmbedRF command descriptions in the EmbedRF
datasheet. Integrating the EmbedRF hardware is a no-
brainer and with the availability of our home-brewed
EmbedRF API, bringing an EmbedRF network online is a
walk in the park. Im sure that you wont have any trouble
coming up with an application for the EmbedRF data
radios. See you next time! SV
Sources
Saelig www.saelig.com
EmbedRF;
EmbedRF Development Kit
HI-TECH Software
www.htsoft.com
HI-TECH PICC-18 PRO
Microchip www.microchip.com
PIC18LF2620; MPLAB IDE;
MPLAB REAL ICE
Make your product wireless - quickly, conveniently, and affordably. EmbedRF is
a rapidly-deployed, turn-key, networkable wireless solution for low data rate,
ultra low-power analog or digital applications. Avoid lengthy RF development
time by using EmbedRF short-range low-power wireless modules in your product
design. Notable features: RSSI output ideal for finding nearest module or position
tracking; current levels are CR2032 coin-cell friendly (average current to <12uA
Tx/Rx); >0.25s periodicity; unique IDs avoids cross-talk; < 6mS link latency;
buffered receive data allows for other system priorities.
Full details at www.EmbedRF.com
Available from Saelig Company
www.saelig.com
info@saelig.com
SERVO 10.2008 39
SCREENSHOT 3.
Eady.qxd 9/3/2008 9:45 PM Page 39
W
hen designing a product that will sell millions of
units, every cent counts, so engineers will often
use very creative methods to program a single
microcontroller to handle multiple tasks. These tricks can be
difficult to comprehend, let alone implement. For one-time
projects especially for hobbyists programming a second
inexpensive microcontroller to perform the task achieves the
same results but requires significantly less time. To simplify
programming even more, many manufacturers sell
controller boards based on micro-
controllers that are preprogrammed
to perform a single task. Even
though the cost of creating an
entire circuit board is much higher
than the cost of an extra micro-
controller, these boards are quicker
to set up, are reusable for other
projects, and more than pay for
themselves in saved time. If multi-
ple controller boards are needed
for a single project though, the
costs really do add up, so the best option would be to have
one board that performs multiple functions.
Controlling a Servo
In last months article, Chris Savage discussed the
hardware design for the multipurpose controller board
shown in Figure 1. The board, based on the Parallax
Propeller chip, will perform the functions of an R/C
servo controller, a stepper motor
controller, and a PWM controller.
All three motor control signals have
specific timing needs, so with a
traditional interrupt-based micro-
controller it would be difficult to get
the timing correct. Because there
are eight processors or cogs in
the Propeller, these tasks can easily
40 SERVO 10.2008
by DAVID CARRIER
GETTING CONTROL
WITH THE
Propeller
PART 2:
Controlling Servos
FIGURE 1. The Propeller
multi-controller board, built by
Chris Savage last month.
Carrier.qxd 9/2/2008 3:34 PM Page 40
be performed at the same time. The Propeller allows
objects or programs designed to perform a specific task to
be run in parallel, each occupying its own cog. I will be
implementing the first task: R/C servo control.
Rarely a month goes by without an article in SERVO
Magazine describing the communications needed to control
an analog R/C servo, so I will keep the review short. There
are no official standards on R/C servos, so many aspects of
their operation vary from manufacturer to manufacturer,
or even for different product lines from the same
manufacturer. R/C servos have three lines: power, ground,
and signal. Most servos will run between 4.8 and 6 volts,
but it is best to check the specifications before powering
an R/C servo; some have a more limited voltage range.
R/C servos are controlled by pulses read by the signal line.
If the voltage on the line is greater than half of the voltage
that is powering the servo, the signal is considered to be
a logic high; otherwise, it is a logic low. To control an R/C
servo, the signal line starts low, is held to a logic high
for one to two milliseconds (ms), and then it is returned
low. This process is repeated 40 to 50 times per second.
The duration of the pulse determines the position that
the servo will try to hold. Generally, a 1 ms pulse moves
it to a 90-degree clockwise position, a 1.5 ms pulse
centers it, and a 2 ms pulse moves it to 90 degrees
counterclockwise.
What is more interesting though, is how an R/C servo
works. When an R/C servo receives a pulse, it compares
the position of its output shaft to the position the pulse
indicates. If the shaft is not at the position it should be, it
is rotated toward it. The further the shaft needs to rotate,
the faster it moves. The position sensor physically limits the
range the output shaft can rotate; usually to a total of
180 degrees. By removing an R/C servos feedback system
and hard-wiring it to think it is always centered, it can also
be modified for continuous rotation. By
sending a center pulse, the modified servo
will think it is where it needs to be, and it
will not move. When the pulse deviates
from center, the servo will try to follow, but
without a feedback system, it will never
know it moved; it will just keep spinning.
The further off-center the pulse indicates,
the further away the servo will think it is,
and the faster it will go. The direction the
modified servo moves will also follow the
direction indicated by the servo pulse.
Because R/C analog servos only move
when they receive a pulse, they will not
move when pulses are not being sent.
Without a stream of pulses, they are
effectively disabled. There are also digital
servos that have internal microcontrollers
that process the incoming pulses and
directly control the motor. Digital servos
have more output power than analog ones,
because analog servos do not power the
motor between pulses. Because they do not
rely on the stream of pulses, digital servos
cannot as easily be disabled.
Open Source
My employer (Parallax, Inc.), has been selling a servo
controller: the Parallax Servo Controller or PSC. I could have
written an article about how to use it, published the
schematic (even though it is freely distributed in the
documentation on the Parallax website) and a through-hole
version of the circuit board layout, then sold the processor
preprogrammed with a proprietary servo controller
program at three times the retail price. This has been
done before, but it is a practice I find rather irritating. I did
not know programmable microcontrollers existed until as
a student in junior high school I was building a project
described in a magazine to try and teach myself electronics.
My parents were nice enough to drive me to all of the local
electronics stores to pick up the components, but there was
one chip I could not find. The owner of the local surplus
electronics store kindly explained to me that the author had
custom programmed a microcontroller and I would have to
order it. Several years later, I learned how to program
them myself, and I eventually built my career around
programming microcontrollers, but I think there is a better
way to introduce others to these devices.
Instead of advertising a preprogrammed chip, I would
like to use this article to propose an open-source project
based on the Propeller Multi-Controller board that Chris
Savage introduced last month. The design will be more
powerful than any off-the-shelf servo controllers I have
seen, but it will be easy to use and hobbyists will be able to
build it themselves at a low cost. I will post the source code
and documentation online, and for the remainder of this
article Ill discuss the features that will make it unique.
Parallax hosts a website called the Propeller Object
Exchange where people can post code they have written
and have it freely distributed under the MIT License. Like
SERVO 10.2008 41
90
90
0
0
-90
-90
Shoulder servo
0 sec.
0 sec.
5 sec.
5 sec.
Elbow servo
90
90
0
0
-90
-90
Shoulder servo
0 sec.
0 sec.
5 sec.
5 sec.
Elbow servo
FIGURE 2. The simplest control method
moving one servo at a time is
slower and may place the robotic arm
in positions that it should not be in.
FIGURE 3. Moving more than
one servo at a time is not only
quicker, it also creates a more
professional look.
Carrier.qxd 9/2/2008 3:34 PM Page 41
the GNU General Public License that is used to distribute
Linux, the MIT License is an open-source license, but the
MIT License does not place any restrictions on when or
how software is used, as long as the license is included
with it.
A New Design
The most basic servo controllers do no more than
generate the pulses that control the servos; they have no
memory of where a servo has been or where it is going.
There are more advanced servo controllers that can move
servos from one position to another at a specified speed,
or over a specified time, but many advanced movements
especially when servos start and stop while others are
moving are still difficult.
The servo controller design I am proposing allows
commands to be queued, so that servos can be
commanded to begin movement either immediately, after
a set pause, or after a specific servo has arrived at its
destination. This way, some servos can switch directions
while other servos are still moving.
For example, lets consider a robotic arm. The simplest
method to control it is to move one servo, poll the servo
controller until the movement is completed, then move
another servo, as shown in Figure 2. While simple, this
method is slow, and it can place the robotic arm in
positions that it should not be in. A better method is to
move multiple servos simultaneously (shown in Figure 3).
This produces smoother-looking movements and the arm
will get to its destination sooner.
In industrial manufacturing, equipment time can be
very expensive so many companies have process engineers
that try to create programs to get their products through
the manufacturing line as quickly as possible. When a
robotic arm is in use, the most efficient program can
involve different axes (controlled by large-scale servomotors)
traveling at different speeds and switching directions at
different times. Although hobbyists generally build their
robotic arms for entertainment instead of manufacturing,
these complex movements create more entertaining
demonstrations.
In order to create these more advanced servo
movements but still be easy to control, the servo controller
can process the following commands:
Move a servo to a position and arrive at a specified time.
Move a servo to a position and travel at a specified speed.
Delay for a specified amount of time.
Wait for a specified servo to arrive at its destination.
The first two commands are essentially the same; if a
move command is specified, the program will always use
the arrival time. If the speed is given, it will be internally
converted to the arrival time.
A series of commands begins with a start byte,
contains a series of one or more commands with their
respective data, and then ends with a stop byte. To keep
the servos in sync, the servo controller will wait until it
receives a stop byte, a wait command, or a delay command
before it begins moving the servos. The delay command will
delay all remaining commands until a specified period of
time after the first servo has begun moving. The wait com-
mand will delay all remaining commands until a specified
servo has reached its destination. There are also commands
to enable and disable servos, trim servo positions, read
back servo positions, and perform other minor functions.
So for our example, we want to have the robotic arm
perform a dance by rotating from one side to another while
moving up and down and rotating its wrist back and forth.
To create a more interesting look, the wrist and the arm will
not switch directions at the same time. The servos will start
in the following positions:
Waist (servo 0): -90
Shoulder (servo 1): -67.5
Elbow (servo 2): -22.5
Wrist (servo 3): 0
To create the movements as graphed out in Figure 4,
the following commands must be sent to the servo controller:
Move servo 0 to +90 over six seconds
Move servo 1 to -67.5 over two seconds
Move servo 2 to -22.5 over two seconds
Move servo 3 to -90 over one second
If we stopped here, the waist would start rotating,
the arm would lift up, and the wrist would turn to one
side. But after one second, the wrist would stop rotating,
then a second later, the arm would stop lifting, but it
would be another four seconds until the waist finished
rotating. To keep the wrist rotating, we need to issue
42 SERVO 10.2008
0 sec.
0 sec.
0 sec.
0 sec.
6 sec.
6 sec.
6 sec.
6 sec.
90
90
90
90
0
0
0
0
-90
-90
-90
-90
Servo 0 (waist)
Servo ( 2 elbow)
S 1 shoulder) ervo (
Servo ( 3 wrist)
FIGURE 4. Complex servo sequences can be
performed with a single set of commands.
Carrier.qxd 9/2/2008 3:34 PM Page 42
the following commands:
Wait for servo 3 to finish movement
Move servo 3 to +90 over two seconds
This will rotate the wrist back as soon as it stops, but
the arm will still stop lifting in another second, so we need
to tell it to lower as soon as it finishes rising:
Wait for servo 1 to finish movement
Move servo 1 to -22.5 over two seconds
Move servo 2 to -67.5 over two seconds
We can then repeat these back and forth movements
until the waist reaches its destination:
Wait for servo 3 to finish movement
Move servo 3 to -90 over one second
Wait for servo 1 to finish movement
Move servo 1 to -67.5 over one
second
Move servo 2 to -22.5 over one
second
Wait for servo 3 to finish movement
Move servo 3 to 0 over one second
By programming the servo con-
troller to postpone some commands
until others have been completed, all
of the timing can be performed
internally. As an added benefit,
the microcontroller sending the
commands does not need to send
them as often, and as long as the
queue is not depleted, the timing of
the servos does not need to be based
on when commands are sent.
The servo controller firmware,
its source code, and a more detailed
description of the commands are
available from Parallaxs website at
www.parallax.com/tabid/666/
Default.aspx. I will also post related
objects on the Propeller Object Exchange at http://obex.
parallax.com/. If you have any questions, ideas, or other
points to discuss, please post them in the Propeller Chip
forum at http://forums.parallax.com/forums/default.
aspx?f=25.
With eight processors on the Propeller, there is still
plenty of power left for other tasks. Next month, Kevin
McCullough will add stepper motor control, and after that
Chris Savage will be back with PWM control. This will only
be the work of three people, but the best part about open-
source projects is that the work is done by the community
as a whole. I have more features that I would like to add,
but my question is what will you make it do? Post your
ideas and additions, and lets see what develops. SV
SERVO 10.2008 43
Resources
Project Page
www.parallax.com/tabid/666/
Default.aspx
Parallax, Inc. www.parallax.com/
Propeller Object Exchange
http://obex.parallax.com/
Robotics Discussion Forum
http://forums.parallax.com/
forums/default.aspx?f=10
Propeller Support/Discussion
Forums http://forums.parallax.
com/forums/default.aspx?f=25
Buying electronic components can be
difficult with hundreds of thousands of
products to choose from. Jameco
solves the problem of finding the
products you need with the industry's
first and only web-enabled catalog.
The Jameco Catalog... Presents our
most popular products in a way that
makes it easy to compare
everything from franchise sourced
brands to house brands and
factory overruns.
The Jameco Website...
Once you've found the section you like
in the catalog, just use the product
category web code found on each
page to continue your search at
Jameco.com where youll find more
information, more choices, the latest
pricing and availability with none of the
complications that other websites have.
Jameco has everything you
would expect from a components
distributor, plus a few surprises.
Reach for Jameco first.
Order Your Web-Enabled
Catalog Today!
For More Information
Call 1-800-731-4242 or
Visit www.Jameco.com/News
Carrier.qxd 9/2/2008 3:35 PM Page 43
PHOTO 1 PHOTO 2
Get a Starter Motor
Runnin in Your Robot
Get a Starter Motor
Runnin in Your Robot
by Steven Schmitt
44 SERVO 10.2008
A
uto starter motors are often overlooked for use in robot building. Typically,
a starter motor can draw 50 to 150 amps with no load and over 1,000 amps
under heavy load so they may appear to be difficult to use. Since nearly all are
series wound (SW), they can be as good as or better than permanent magnet (PM)
motors for powering combat robots. Plus, they are inexpensive and readily available.
Schmitt.qxd 9/3/2008 10:12 AM Page 44
The torque of an SW motor is proportional to the
current squared whereas the torque of a PM motor is only
proportional to the current. The torque and horsepower
curves for the two different types of motors are shown in
Figure 1. The torque vs. RPM curve for the PM motor is very
linear and the peak horsepower occurs at the midpoint. The
torque vs. RPM curve for the SW motor is very non-linear
making the horsepower curve nearly flat over a large RPM
range. While the PM motor lacks power at both low and
high RPM, the SW motor creates high torque at low RPM
and has a nearly unlimited
high end. PM motors are very
compact and have high
efficiencies, but only over a
small RPM range. For
applications where operation
is needed over a large RPM
range, the SW motor is both
more efficient and compact
(as long as you have unlimited
current for free! -Ed.)
A good example of
where SW motors dominate
is the National Electric Drag
Racing Association (NEDRA).
Most if not all electric
powered drag race cars use
SW motors. Maniac Mazda
does wheelies and over
100 mph in a quarter mile
drag race.
Starter motors require a
battery pack with a rating on
the order of 500 cold cranking amps or (to be more
accurate) the ability to source 500 amps at 10 volts.
The Panasonic 1220 SLA battery can power a small starter
motor for two or three minutes.
The compact starter motors used in autos cannot
be over volted in any way. Basically, they are designed
for very short duty and after a few minutes of use, get
very hot. Running them for five minute matches is the
extreme limit.
The power output of starters range from 1 to 2 kW.
Get a Starter Motor Runnin in Your Robot
Torque
HP
HP
Torque
Torque, HP
RPM
RPM
Torque, HP
FIGURE 1
Series Wound Motor Permanet Magnet Motor
SERVO 10.2008 45
FIGURE 2
Schmitt.qxd 9/3/2008 10:01 AM Page 45
It is normal to find similar starters used on different brands
of autos. Photo 1 shows a few typical starter motors. The
two motors in the upper right side are from late 1980s
Hondas. The larger motor was used in cars like the Accord,
while the smaller one came from a Civic. The large motor
on the bottom is a Denso starter used on many Toyota
models. The two starters on the left are newer style Denso
starters from a Toyota and a Corvette.
Auto salvage yards can be a good source for used
starters. They typically have a core pile waiting to be sold
to a buyer for remanufacturing and are usually worth only
a few dollars. In my experience, few starters ever wear
out. Most often the solenoid goes bad and the relay
inside it quits working. For robot use, starter cores are the
best value.
All starters have the same basic parts: a motor, gear
reduction, starter solenoid, and something that is generally
called a Bendix. Most of these parts have to be modified or
discarded before the starter can be used in a robot.
One necessary modification is to make the SW motor
reversible. It cannot be reversed by changing the polarity of
the input voltage. Instead, the polarity of the field winding
has to be inverted relative to the armature winding. This
modification will be covered later.
Since the Bendix is an over-running clutch that only
drives in one direction, it has to be modified to drive in
both directions. The final challenge is to attach a drive
sprocket of some sort to the starter. For some uses, it may
be easier to use the gear that came with the starter and
find a flywheel to match it. There are only a few standard
gear pitches used for most autos making it easier to find
a flywheel or ring gear to match the starter. These
modifications will also be addressed later.
A starter motor can be modified in a few hours with
great results. Driving a robot with PM motors is okay but a
robot with SW motors is a totally different experience. The
robot will have an awesome hole shot and will feel like it
can accelerate forever.
I use a simple relay control system and have never
investigated using an electronic speed controller (ESC) to
control a starter motor. One problem with using an ESC is
that only the field winding is controlled by the H-bridge.
The simplest solution would be to use relays for the H-
bridge and use the ESC to control the current to the motor.
The relay control circuit is shown in Figure 2 with a possible
PWM modification.
Rewiring the Motor to Make it
Reversible
Since most starters are similar, these modifications
will apply to almost all of them. Photo 2 shows the
disassembled Honda starter motor and Photo 3 shows the
parts that have to be modified. Starters are four-pole
motors equivalent to having two motors in parallel. There
are two sets of field windings and two sets of brushes.
The power input goes to the two sets of field windings.
The fields are connected to two brushes which power the
armature. Finally, there are two more brushes connected to
ground to complete the circuit. Photos 4 and 5 show the
PHOTO 6 PHOTO 7 PHOTO 8
PHOTO 3 PHOTO 4 PHOTO 5
46 SERVO 10.2008
Get a Starter Motor Runnin in Your Robot
Schmitt.qxd 9/3/2008 10:02 AM Page 46
field and armature and how the two brushes are welded
to the field. Note the complete lack of wear on this 1989
starter motor that was removed from a junk car.
The modification requires that the field be isolated
from the armature so its polarity can be reversed. Photos 6
and 7 show a close-up of the spot welds connecting the
field to the brushes and how the welds can be pulled apart.
The welds are made by wrapping the stranded wires with
copper foil and applying heat and pressure to finish it.
The welds are not very strong and the foil can be
unwrapped as shown.
The next step is to attach wires to the field so that
both ends of the field windings are outside the case. Since
there is very little room in the case, the connections have to
be very compact and neat. Also, solder connections will not
hold up to the heat and vibration of the motor. Therefore,
only a spot weld or crimp connection will work. For the
crimp connection, brass rings made for 3/16 compression
fittings can be purchased at any plumbing store.
While in use, the motor will get very hot and any
plastic tape or plastic wire insulation will fail. High
temperature automotive wire with rubber insulation and
cloth electrical tape are needed to make the modification.
Since the tape has little adhesion, it needs to be secured.
Cotton thread works well.
Photo 8 shows the wires spliced to the field and routed
out of the case. At the top center is the finished connection
while the bottom center shows an exposed connection.
The 3/16 compression sleeve accommodates the field wire
and 8 gauge wire.
The next step is to splice wires to the brushes so they
can be connected to the H-bridge. Photos 9 and 10 are 8
gauge wires spot-welded to the brushes and the brush
holder with all four brushes. The connections to the brushes
can be either spot welds or crimps with the 3/16 compres-
sion sleeves. In Photo 9, the red wire had plastic insulation
which melted during welding, while the black wire was
rubber insulated. Once again, the wires are insulated with
cloth electrical tape and held in place with thread.
Photo 11 demonstrates how the field and brush holder
go together and the challenge of fitting it into the tiny
space. The end cap for the motor is modified with several
deep slots so the new wires can be routed out of the case
in the least amount of space as shown in Photo 12.
After these electrical modifications are completed, the
one-way clutch from the Bendix needs to be disabled.
Photo 13 is the Bendix unit and Photo 14 is the Bendix unit
disassembled. The one-way clutch has five rollers that lock
in one direction and release in the other direction. The
modification is to replace the five rollers with five much
larger rollers and then grind five slots in the inner shaft to
accept the larger rollers.
Photos 15, 16, and 17 show the ring gear with three of
the five small rollers; the ring gear and shaft with five slots
ground into it; and the ring gear with the five large rollers
and inner shaft all assembled. (The third photo was taken
from the top so the shaft is not very clear.)
The completed motor in Photo 18 has two leads from
the field windings and one lead from the armature. The
case ground is the other connection to the armature. A few
unneeded parts have been sawed off the case to make the
motor more compact.
PHOTO 9 PHOTO 10 PHOTO 11
PHOTO 12 PHOTO 13 PHOTO 14
SERVO 10.2008 47
Get a Starter Motor Runnin in Your Robot
Schmitt.qxd 9/3/2008 10:17 AM Page 47
To attach a sprocket to this motor,
set screws can be used successfully,
however, special care is needed. Four flat
spots are ground onto the shaft to
accommodate four set screws that are
equally placed around the sprocket. To
prevent even microscopic movement,
everything needs to be epoxied together.
This includes the sprocket to the shaft
and the set screws to the sprocket. A
hose clamp epoxied around the whole
assembly provides further support to
keep the set screws from loosening. The
sprocket collar should be thick enough to
allow six or more threads for the set
screws. Any less and the set screws will
shift around and work loose.
Wrap-Up
A few hours of work will turn a
junk starter motor into a powerful and
compact drive motor for a combat robot.
Series wound starter motors with modifi-
cations to make them reversible and drive
in both directions provide excellent low
end torque and high speed. SV
PHOTO 16
Get a Starter Motor Runnin in Your Robot
PHOTO 15
48 SERVO 10.2008
PHOTO 18 PHOTO 17
EX-106
Encoder
164
EX-106 14.8
84 106
155
0.182 0.143
NEW
Visual Studio
Microsoft
C/C++
Visual Basic
C#
Dyyn namix xeel SDK
Schmitt.qxd 9/3/2008 10:15 AM Page 48
F
or this year's Science Olympiad competition held in my
home state of North Carolina (www.sciencenc.com), my
team was challenged to build an electric vehicle that would
go a given distance and then stop. Our first car used a 555
timer circuit, but it did not give u s the accuracy we wanted.
To be effective in the state competition, we needed a much
better way to actually measure the distance the car went.
Since we had built the car using the Vex Robotics kit from
Innovation First (www.vexrobotics.com), we decided to use
the shaft encoder that was part of the
kit. With every revolution of the
wheel, the shaft encoder sends
90 pulses which we could
count to measure the
distance. Next, we designed
a counting circuit that would
connect to the shaft
encoder. For every pulse
emitted by the shaft encoder,
the counting circuit would
count down one from its
loaded value. We connected
that to a JK flip-flop so that
when the counting circuit hit
zero it would put out a
pulse to the flip-flop causing
the circuit to stop, giving
power to the motors.
While the design was
flawless in our own minds,
when we tested it out by
rotating the shaft encoder
it did not count down by one
but rather descended by
random amounts. After some discussion and tests, we
concluded the problem originated with the shaft encoder.
We hooked it up to an oscilloscope and observed that the
signal it was putting out was not a digital wave like we
expected but was an analog one. Because the shaft encoder
operates by shining a light through a disk with slits in it
(Figure 1), we thought that the output would be binary;
one for when light was shining through and another for
when it wasn't. What we didn't anticipate was that as the
disk rotated there would be points at which some light was
shining through but not at the maximum amount, resulting
in somewhat of a sine wave.
Because our counting circuit was constructed with TTL
logic, it did not take kindly to these in-between signals and
behaved erratically. To address this problem, we tried several
options including a debounce circuit using a 555 timer but
Dr. Otto H. Schmitt
FIGURE 2. LM339 Schmitt Trigger Schematic.
by MARGARET TOEBES
(AGE 16)
SERVO 10.2008 49
FIGURE 1.
Disassembled Vex
Shaft Encoder.
ToebesF.qxd 9/3/2008 3:12 PM Page 49
50 SERVO 10.2008
ultimately went with the tried and true Schmitt trigger circuit.
Designing the Schmitt Trigger
The Schmitt trigger shown in Figure 2 works by
comparing the input voltage to a feedback loop from the
output so that once it goes high, it stays there until the input
falls below the threshold. There are a number of good
references for determining the resistor values and
http://hyperphysics.phyastr.gsu.edu/hbase/electronic/
schmitt.html#c2 even provides an interactive web page to
calculate the resistor values.
There are two equations that determine the V
2
: the
voltage it triggers; and V'
2
the voltage at which it will
un-trigger. By having the V'
2
and not just a trigger voltage,
you reduce rapid cycling at the trigger voltage. First, you
want to pick your V
2
and V'
2
and then use the equations to
calculate the required value of each resistor. Also, you can go
to the website mentioned above and use the resistor and
voltage calculator they provide. The catch is it only works if
you already know the resistors you want to use and then finds
the V
2
and V'
2
values.
Parts You Will Need
With the exception of the Vex parts, all the components
required for the Schmitt trigger were easily found at our local
RadioShack.
The Schmitt trigger does not have many
pieces to it and is very easy to assemble after you
have worked the equations. Figure 3 shows how
we put the Schmitt trigger on a circuit board,
leaving room for other circuits. You can just as
easily plug the parts on to a protoboard.
Plugging the encoder into the board presented
an obstacle. Since we didn't want to damage the
shaft encoder, we used an extension cable which
we customized by cutting off the male plug end,
stripping the ends of the wires, and soldering them to the
protoboard. This left the shaft encoder completely unharmed
and detachable. Also, the newer shaft encoders in the Vex
Robotics kit have two outputs, so it doesn't matter which one
you connect to the board.
FIGURE 3. Board Layout.
Part # Description Source
276-170 Circuit board RadioShack
276-1712 LM339 quad comparator (14-pin DIP) RadioShack
271-1335 10K ohm 1/4 watt carbon film resistor RadioShack
(five pack)
271-1325 2.2K ohm 1/4 watt carbon film resistor RadioShack
(five pack)
Project Parts List
V
2
= (R
123
/R
2
) V
ref
+ (R
123
/R
3
)V
cc
V
2
= (R
123
/R
2
) V
ref
- (R
123
/R
3
)V
cc
R1, R2, and R3 represent the three resistors
used for the Schmitt trigger. In the equation
above, R
123
= R
1
||R
2
||R
3
which really means R
1
* R
2
* R
3
/ ( ( R
1
*R
2
) + (R
1
* R
3
) + (R
2
* R
3
)).
We wanted a V
2
trigger voltage around 3V
and a V
2
' of2V. So we plugged that into the
equations:
VRef=5V
V
2
=3V
V'
2
=2V
V
2
-V'
2
=1V
V
2
+V'
2
=5V
V
2
= 5 (R123) (1/R2+1/R3)
V'
2
= 5 (R123) (1/R2-1/R3)
V
2
-V'
2
=10(R
123
/R
3
)
R
3
=10(R
123
)
V
2
+V'2=10(R123/R2)
R
2
=2 (R123)
1/R
123
=1/R
1
+ 1/(2R
123
) + 1/(10R
123
)
R
1
= 2.5(R
123
)
We found that we needed 2.5K, 2.0K, and
10K resistors. Given that, the closest one we
had was a 2.2K. We used that for R1 and R2,
which gave us a V
2
and V'
2
of 2.75V and
1.76V.
Enough with this boring math, lets build
it already!
Formulas
ToebesF.qxd 9/3/2008 3:14 PM Page 50
Testing
The best way to see that the circuit is working is to hook it
up to an oscilloscope and watch both
the output of the shaft encoder and
the output of the Schmitt trigger.
Youll want to connect to the test
points Input and Output in the circuit
in Figure 3. As you can see in Figure 4
where we have hooked up the scope
to the car, the output from the shaft
encoder is on the bottom and is
mostly a sine wave while the signal
above shows the nicely cleaned up
square wave. The only other difference
is the square wave is inverted.
Ideas for Future
Expansion
There is not much to improve
on the particular application the
Schmitt trigger does what you want
and is simple. You could build two
circuits for the quadrature version of the shaft encoder
and then combine the outputs so that you can tell which
direction it is turning ... but thats a task for another day. SV
FIGURE 4. Scoping the Output.
HE8EJIFH;<;H>?J;9)0'
The results of an informal poll taken recently at the First
Annual World Domination Symposium are now in. Robots
prefer Hitec servos 3:1 over other servo brands. They know the wide
selection of Hitec analog and digital servos provide them with the power and depend-
ability needed to eventually take over the World. Make your robot happy, use Hitec servos.
12115 Paine Street | Poway | California | 92064 | 858-748-6948 | www.hitecrcd.com
>_j[Y
Ej^[h8hWdZ
.EW2OBOT3ERVOS
HSR-5980SG
Speed: 0.14 sec
Torque: 417 oz/in
Steel Gears
HSR-5498SG
Speed: 0.19 sec
Torque: 187 oz/in
Steel Gears
HSR-5990TG
Speed: 0.14 sec
Torque: 417 oz/in
Titanium
ALL SPECFCATONS AT 7.4 VOLTS
SERVO 10.2008 51
ToebesF.qxd 9/3/2008 3:19 PM Page 51
52 SERVO 10.2008
While I used the Lynxmotion
Johnny 5 kit as a platform for my
project, the principles, concepts, and
even components of this project can
be applied to almost any robotics
project. This is especially true of
this article, as the rapidly shrinking
size of ITX-based motherboards and
CPUs prove to be perfect controllers
for todays robotics projects.
Welcome to the World
of PC-based Robotics
At first glance, some people
might think that only larger robots
are capable of housing a fully
unctioning onboard PC. The ITX platform proves this is a
misconception, as complete PC solutions can be as small as
the size of a pack of cigarettes and will soon be smaller
than a business card. Depending upon the size of your
robot, you can choose from the Mini-ITX (17 x 17 cm), the
Nano-ITX (12 x 12 cm), the Pico-ITX (10 x 7.2 cm), and the
soon to be released Mobile-ITX (7.5 x 4.5 cm). Figure 1
shows the different models of the
ITX motherboard CPUs and a
comparison of their sizes. While
these computers are quite small,
they pack more than enough
horsepower for any modern
robotics application, as well as a
wealth of features at your disposal.
As my Johnny 5 platform is
a bit on the small-to-medium side
for rovers, I chose the VIA EPIA
PX10000G Pico-ITX platform to
conserve space and power
consumption. This motherboard
CPU packs a ton of features given
how tiny it is, boasting a 1 GHz
VIA C7 processor, 1 GB of DDR2
RAM, SATA, IDE, USB 2.0, sound, video, and Ethernet.
You might be wondering why you would need that kind of
processing power and features on a personal robot, when
many times a small microcontroller does the job just fine.
First of all, because you can. Given that these computers
are getting so small and low in power consumption, even
if you wont use that much power to begin with youre
raising the ceiling almost limitlessly for future
expansion. Besides, how cool is it to be able to boast
that your robot runs Windows or Linux? Furthermore,
it allows one to run Microsofts Robotic Studio locally
on the robot, which has a growing development
community and a wealth of robust features.
Second, it opens up possibilities for your robot that
are usually out of the reach of even the most modern
microcontrollers. An onboard PC means you can have
vision processing, networking, data logging, speech
output and recognition, USB host, multiple com ports,
LCD display, and remote telepresence capabilities all
Part 2: PC-based Robotics
I
n this series of articles, we will explore
my Pico-ITX based Johnny 5 project.
In the first article, I detailed the work
that went into upgrading and expanding
the original kit to make it a more viable
research platform. In this article, I will dive
into the concept and implementation of
PC-based robotics. Not only will we
show how easy an onboard PC is to
integrate, but we will begin to explore
the many advantages of having that
much horsepower locally on your robot.
FIGURE 1
Alter2.qxd 9/3/2008 6:34 AM Page 52
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? Youre 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 its 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 robots
hardware through the use of bridgeware (servo controllers,
I/O boards, etc.) using the computers 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 prima-
rily intended for full size desktops and as a result has higher
power consumption and larger footprints. Alternatively, if
your robots 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 Ill 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
youre 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
FIGURE 2
FIGURE 3
Alter2.qxd 9/3/2008 6:37 AM Page 53
54 SERVO 10.2008
panel header was found in the board manual. Figures 4 and
5 show the mounting frame attached to the board.
Powering an ITX board is made incredibly simple with
the PicoPSU product line. Refer to Figure 6 for a look at this
unit. These are tiny ATX power supplies built specifically for
the enthusiast, in that they take a DC input rather than your
standard desktop power supply which runs off of AC. There
are a few different flavors which vary in the amount of
wattage supplied, as well as their operating DC voltage.
All of them end up supplying the standard 20 pin PC PSU
power plug, as well as three four-pin Molex connectors for
peripherals. I selected the PicoPSU-60-WI 6-26V model, as
this gives me some room to play with as far as what types
of batteries I can use. I chose a 9.6V 4,200 mAh NiMH
rechargeable battery pack for the power source.
Powering my Pico-ITX board was as simple as plugging
in the PicoPSU, splicing my battery leads into the DC input,
and hitting the power button. Given that the Pico-ITX only
draws about 15W under load, this should give me almost
three hours of run time, not factoring in the hard drive and
additional peripherals. Ive found that with all peripherals
and hard drives running, I get about 90 minutes total using
my chosen battery.
Selecting a hard drive was pretty straightforward. Even
the smallest modern drives are around 60-80 gigabytes, which
would be more than enough for my application. I chose a
120 GB 2.5 Serial ATA laptop hard drive for its compact
size and light weight, and because the interface cable is
easy to route at only about .5 wide. Alternatively, there are
solid-state hard drives, USB Flash drives, and various Flash
media adapters that can be used, though usually these
solutions are higher in cost.
Mounting, Wiring,
and Peripherals
To mount everything, I did
what I always do: very carefully
place things completely
randomly wherever they
seemed to best fit. The 9.6V
battery fit perfectly right down
the center channel of Johnny
5s base, and I used hook-and-
loop tape to mount the PicoPSU right on top of that. The
hard drive slid on top of the 9.6V battery and was secured
quite nicely by the vertical base stand-offs on either side.
Liberal use of some more hook-and-loop did the trick for
attaching the mounting frame of the Pico-ITX to the rear of
the base. Figure 7 shows the battery and PicoPSU mounted
in preparation for installation of the Pico-ITX board. Im no
stranger to wire management I just prefer the raw look.
(Thats my story and Im sticking to it.)
With the power supply and hard drive taken care of,
were left with a few supporting peripherals to wire in order
to have everything needed for a mobile PC solution. I used
three USB devices on this robot, which consist of two web
cams mounted in the head (explained in the first part of this
series), as well as an 802.11g WiFi adapter to allow wireless
networking capability. A four port USB dongle comes with
the Pico-ITX board, which I mounted towards the front of
the base as I was running low on real estate in the back.
The board also has a serial port which I used to interface
with the SSC-32 servo controller. As the stock dongle supplied
with the board was too short and bulky, I decided to make
my own. Referencing the manual that came with the board, I
made a minimalist cable to connect the three pins (TX, RX,
and Ground) from the SSC-32s serial port to the correspon-
ding serial port headers on the Pico-ITX board. Figure 8
shows the board mounted with everything plugged in.
Conclusion
That covers the relatively simple installation of a fully
functioning PC to the base of my robot. Previously, the
Parts List
ITEM SUPPLIER
VIA EPIA PX10000G Pico ITX Motherboard CPU www.logicsupply.com
1 GB DDR2 667 So-Dimm RAM www.logicsupply.com
60W PicoPSU 6-26V DC-DC www.logicsupply.com
120 GB 2.5 Serial ATA Laptop Hard Drive www.amazon.com
802.11g USB WiFi Adapter www.amazon.com
9.6V 4,200 mAh NiMH Battery http://batteryspace.com
Four 3/4 4-40 Nylon Hex Stand-offs www.lynxmotion.com
Five 1/4 4-40 Socket Head Screws www.lynxmotion.com
Black 1/8 Sintra Sheet Plastic www.huvrobotics.com
Various 22 gauge Electrical Wire www.digikey.com
Two Momentary Pushbutton Switches www.digikey.com
FIGURE 4 FIGURE 5
FIGURE 6
Alter2.qxd 9/3/2008 6:37 AM Page 54
biggest obstacle to overcome with PC-based robotics was
the size of the motherboard, the power draw, and providing
the necessary power supply to run it all. With the ITX series
of low power consumption motherboards and the miniscule
PicoPSU line of power supplies, these obstacles are gone.
In next months article, I will conclude this series by
covering the software that ties all of this hardware together,
taking advantage of having the power of an onboard PC at
our disposal. Well cover installation and trimming of a
Windows install for use in robotics, SEQ servo control
software, implementing onboard machine vision through
Roborealm, wireless networking and remote desktop protocol,
and finally conversational AI implementation through text-to-
speech and voice recognition. Catch you next month. SV
SERVO 10.2008 55
References
VIA Pico-ITX Page
www.via.com.tw/en/initiatives/spearhead/pico-itx/
Robotics Connection
www.roboticsconnection.com
Microsoft MSRS
http://msdn.microsoft.com/en-us/robotics/default.aspx
FIGURE 7
FIGURE 8
Alter2.qxd 9/3/2008 6:38 AM Page 55
56 SERVO 10.2008
Under the shadow of the
Golden Gate bridge, jutting out
into the beautiful San Francisco
Bay, the warehouse piers of the
former Fort Mason Army base
were converted years ago to host
events (www.fortmason.org).
For the last five years, the eastern-
most pier has been transformed
into a robo-mecca, a celebration
of all that is robot.
This years RoboGames
introduced the brand new
COMBOTS arena. Designed like a
polycarbonate glass house, this
new battle arena has a truss-
>> by Samuel Coniglio
very year I go to RoboGames
(www.robogames.net),
I am impressed with the
quality and diversity of the
robot events and even more
impressed by the people who
participate. This is the
largest event of its kind on
the west coast. Located in
San Francisco, CA, this is the
perfect place for engineering
talent and artistic creativity
to merge.
>> COMBOTS arena.
<< 2008 RoboGames
group shot.
Coniglio.qxd 9/2/2008 3:30 PM Page 56
reinforced roof to avoid sagging, a ventilation system to
remove nasty fumes, and some metal I-beam bumpers with
teeth! The hinged bumpers at the entrances require an air
compressor to lift and open the 100 pound doorways. As
promised, double one inch polycarbonate sheets ring the
lower half of the arena for extra protection. This house of
pain will take on lots of flying shrapnel over the next few
years. Also notable is the power of a noisy robot. When
Curt Meyers cranks up the lawnmower engine on the Jaws
of Death a 340 pound class crab-like behemoth kids
from all over the cavernous Ft. Mason Festival Pavillion stop
what they are doing and run to the COMBOT arena. Even
from inside the arena, the sound of Jaws of Death excites
and thrills the entire crowd.
A confluence of energies power this event: close proximity
to the technical prowess of Silicon Valley, a truly international
participation, frank and open collaboration between builders,
and energetic volunteer support of the local community ...
especially from the radical Burning Man art scene
(www.burningman.com). Where else would you see
T-shirt wearing geeks mingle with the leather and fur clad
burners? It ends up that a lot of burners are closet geeks,
and more than a few of them bring their bots to the show.
Case in point: the Orb Swarm (http://orbswarm.com).
Three beautiful spheres, each about three feet in diameter,
rolled around the games in a seemingly random manner,
thrilling children and adults. In reality, the bots created by
Michael Prados and a team of robo-burners are very sophis-
ticated, as well as beautiful moving works of art. Looking
through the metal weave pattern of the sphere, you can see
a heavy battery pack acting as a reactive ballast. A drive motor
spins the shell against the ballast, causing the orb to roll. A
steering motor tilts the ballast, allowing the orb to steer. The
brains are a 200 MIPS Linux ARM processor with GPS and
MEMS accelerometers and yaw rate gyros for navigation and
steering. Multi-color LED lights appear to flicker as the orb
rolls. Over a dozen random sounds play from speakers attached
to the top of the motor. At RoboGames, the swarm was
>> Jaws of Death.
>> Baby and mom watching
the Orb Swarm.
>> Last Rites vs R2-D2.
Photo courtesy of Chris James.
>> A family
stopping to
watch R2-D2.
SERVO 10.2008 57
Coniglio.qxd 9/2/2008 3:30 PM Page 57
58 SERVO 10.2008
quietly run by Bluetooth enhanced game controllers, but I
was told the goal is to make them run autonomously during
this years Burning Man Festival, in Black Rock City, NV.
In Japan, bot builders are inspired by Astro Boy; in the
US, kids are inspired by R2-D2. It was fun to see not one
but two artoo units roving around RoboGames. Built by
Chris James (www.artoo-detoo.net/) and Gerard Fajardo
(www.astromech.net/). They put some serious effort into
making the most accurate work on the droids, and the
results are beautiful. Complete with sound effects (and a
mister?!?), these droids look like they came out of the
Lucasfilm warehouse in Marin county, just a few miles
away. This is a pure hobby, and Chris just cannot make a
cent when he does shows and demonstrations. Although I
missed the Friday events, I heard there was a confrontation
between Artoo and a couple of combat robots in the
COMBOTS arena. Fortunately, the droid escaped unscathed.
A new vendor at RoboGames, Robotis, was showcasing
not only its Bioloid humanoid robot, but also the new OLLO
robots for children. An entire OLLO carnival was on display.
These tiny bots are made of bright plastic blocks not
unlike LEGO and use a new micro-actuator called the
Dynamixel BX-2. One green-carpeted section was turned
into a playground for kids and adults building the OLLO
family of bugs and critters.
Outside, the Robo-Magellan teams were getting better
at making bots that can find their way around. Using a
combination of GPS receivers and sonar, the bots use
autonomous navigation and obstacle avoidance over the
varied, outdoor terrain of Ft. Mason Park. Robots have
three opportunities to navigate from a starting point to an
ending point and are scored on time required to complete
the course with opportunities to lower the score based on
contacting intermediate points. Returning from last year,
>> Children playing with the OLLO robots.
>> Bioloid humanoid.
>> Team USA playing
Robo Soccer. >> Robo Soccer goal!
Coniglio.qxd 9/2/2008 3:32 PM Page 58
the Intrepid made quick work of getting
to its destination. Rival team Zippy also did
surprisingly well and shared the gold
medal. There was a strange incident when
one of the bots suddenly veered off
course and chased after an unsuspecting
dog. After much barking and jumping
around, the dog seemed to scare off the
bot as it resumed on its way.
Robo Soccer was back this year with
a large number of Robo-One entries.
Contestants came from South Korea,
Taiwan, Russia, the UK, Japan, India,
Austria, and the US. One notable match
was between the US and Austria. The
HiTec team, led by RoboGames founder David Calkins,
fought hard to hold off advances from the Austrian team.
Much of the time was spent picking up fallen robots. (Why
do they insist on using astroturf?) A last minute maneuver,
and suddenly the orange ball was kicked into the US goal.
Up in the mezzanine area overlooking the games are
the art bot displays. Art bots add a unique quality to
RoboGames. Creativity and fun added to an otherwise dry
technology boost the possibilities of new ideas. Plus, they
look cool. For artist Liz Mamorsky, this was her first robot
event. Using circuit boards as her canvas, she creates little
bot people. In the kinetic arts
category, Marko Galts
Mechanical Woman Walking
is a beautifully crafted brass
sculpture that uses a counter weight to tighten a spring
that causes the arms and legs to run in mid air.
A powerful aspect of the RoboGames event is its
all-volunteer crew. These dedicated people some of
whom also participate with their own bots help make
these games a powerful and cohesive force. Five years is a
long time to keep the same group together, and they do it
for the love of the robot. SV
>> Artist Liz Mamorsky.
>> Mechanical
Woman Walking.
>> Red Dwarf vs. Dog.
>> Titanium sparks.
>> Texas Heat.
For complete RoboGame
results/winners, go to
www.servomagazine.com and
click on the Table of Contents for
October to find the link.
SERVO 10.2008 59
>> Red Dwarf team.
Coniglio.qxd 9/2/2008 3:33 PM Page 59
A
dditional sensors can be purchased for your NXT
including a compass, GPS, and temperature sensor.
However, if the application being designed is to use
a different type or brand of sensor or actuator, the NXT
interface is not readily apparent.
This article describes an interface using RobotC
software and integrated circuits with the Inter-IC Bus
(I
2
C) that enable you to interface your own sensors and
actuators to the NXT brick. Examples of device interfaces
are R/C servos, shape memory alloy wire, relays, stepper
motors, compasses and so on.
HARDWARE INTERFACE AND
SOFTWARE PROGRAM
I purchased some additional NXT interface cables from
LEGO and built breadboarded some circuits to make a
cable-breadboard adapter (Photo 1.) The pin numbers and
wire colors correspond to the following signals:
Pin 1 (White) = Switch input
Pin 2 (Black) = Switch ground [VSS]
Pin 3 (Red) = Digital ground [VSS]
Pin 4 (Green) = + 4 to 5 volts [VCC]
Pin 5 (Yellow) = I
2
C SCL
Pin 6 (Blue) = I
2
C SDA
60 SERVO 10.2008
External
Interface
for the NXT
Robotic Brick
A stock NXT can get pretty
boring pretty quickly. Want to
soup up this Honda Civic and
turn it into a Lotus Esprit?
Well then keep reading!
PHOTO 1
by DENNIS BOGDEN
Bogden.qxd 9/3/2008 8:01 AM Page 60
NOTE: Be careful! You
can damage your NXT Brick
if you apply the wrong
signals to the wrong pins!
The interface provides a
standard I
2
C expansion bus.
For the discussion that
follows, you must connect
pull-up resistors between
VCC (pin 4) and both SCL
(pin 5) and SDA (pin 6).
Only one set of resistors is
needed for multiple ICs, but
each diagram shows the
resistor connections for
completeness.
RobotC programming
software for the NXT
The software to
control the interfaces is
written in RobotC, the programming language for the
NXT. RobotC was developed and is sold by Robomatter,
Inc., in conjunction with the Carnegie Mellon University
Robotics Academy.
I wont describe the attributes of RobotC (which are
many) in detail but it is worth mentioning that it comes
with debugger tools including an I
2
C test debugger.
DEVANTECH R117
ELECTRONIC COMPASS
The Devantech R117 electronic compass by
Acroname has many ways of obtaining its current reading.
There is a PWM output and an I
2
C interface, which is
shown in Schematic 1. When using the I
2
C interface, the
resolution of the output can be selected by the user.
A 0-255, eight bit value from register 1 can be obtained
which gives a 360/256 = 1.4 degree resolution (not
accounting for other errors). Also, a 16 bit value can be
obtained from registers 2 and 3 with a raw value of 0-3599.
(In this article, we will use the 0-255 raw value, eight
bit output.)
The software communicates with the selected NXT
port, configures the compass output (in this case, eight bit),
communicates with the compass over the I
2
C bus, converts
the output of the compass to 0-359 degrees, and the
displays the value on the NXT display.
The I
2
C addresses for this device are 0xC0 and 0xC1.
Address 0xC0 is used to initiate a read of the compass
and 0xC1 is the return value. If this is confusing, you
have to remember that the LSB of the I
2
C address encodes
the type of access: 0 to send/write a command, 1 to read
a value. Program flow is explained through Flowchart 1.
A partial listing of the software code in RobotC is
shown in Program Listing 1. The program listing shows the
I2C subroutine and calls.
A summary of steps in the flowchart are:
Set NXT port S4 and connect the cable into this port.
Define in the software the hardware address and other
variables used in the program.
Build the I
2
C message to wake up the compass.
Send the wake up message over the I
2
C link.
Build the I
2
C return data from the compass message.
Send the I
2
C message and capture the compass reading.
Use transfer functions to get the compass reading to be
0-359 degrees.
Display the compass reading on the NXT display.
Loop again.
FLOWCHART 1READ AND DISPLAY
COMPASS VALUE ON NXT DISPLAY
Heres how the program works:
The first section of code shows how to define the NXT
port to be used which is S4, and to define the compass
wake-up address as 0xC0.
The next section of code is the I
2
C subroutine which
manages inserting or retrieving a message from the I
2
C bus.
The next section of code is the Main program. In RobotC,
tasks are listed before the main() function.
The I
2
C compass wake-up message is assembled and sent.
The I
2
C message to receive the compass data is built
and sent.
SERVO 10.2008 61
Green C4 of
NXT cable
9 VSS
1 VCC
Black C2 of
NXT cable
3 SDA
2 SCL
Blue C6 of NXT
cable
Yellow C5 of NXT
cable
Devantech R117-
Compass
R-SCL
R-SDA
NOTE: R-SCL and R-SDA
are 75K to 82K values
SCHEMATIC 1.
Connections for the
Devantech R117
compass operating
with an I
2
C interface.
Bogden.qxd 9/3/2008 8:02 AM Page 61
The rest of the program that is
not shown scales the retrieved
compass data and then displays
it on the NXT display.
The program repeats forever!
PCA9551 PWM
(LED DRIVER)
INTEGRATED CIRCUIT
The PCA9551 is used to
control devices through pulse
width modulation (PWM) control
via the I
2
C link. With this integrated
circuit and the appropriate
interface hardware, other devices
can be controlled by the NXT using
a PWM signal. These include
control signals to sensors or other
ICs, R/C servos, DC motor control,
lights, shape memory alloy (SMA),
and so on.
The I
2
C address for this device
is 0xC4. The C is pre-established
and the 4 is set by tying pins A0,
A1 to VSS, and A2 to VCC.
This IC has two PWM control
channels: PSC0 and PSC1. PSCO
controls outputs LED 0-3 and PSC1
controls outputs LED 4-7. The
period, duty cycle, and the output
enables are controlled through
internal registers in the IC. The
control bytes to communicate to
the registers are shown next. For
the RobotC software, the
I
2
C configuration is
nine bytes.
PCF8591 ANALOG-
TO-DIGITAL AND
DIGITAL-TO-
ANALOG
CONVERTER
INTEGRATED
CIRCUIT
The PCF8591 is used to
read analog input signals via
the I
2
C link. (Later, the
RobotC software for the
NXT Robot will be listed that
will communicate with the
PCF8591.)
With this expanded
interface and the appropriate
hardware to the PCF8591,
62 SERVO 10.2008
FLOWCHART 1
Green C4 of
NXT cable
2 A2
1 A0
3 A1
8 VSS
16 VCC
Black C2 of
NXT cable
15 SDA
14 SCL
11 Led6
Blue C6 of NXT
cable
Yellow C5 of NXT
cable
LED
Schematic 2 PWM---IC PCA9551
Pin 11 (Led6) to Pulse Width Modulate an LED
PCA9551 Outputs
are Led0 Led7
PCA9551
220 ohm
To VCC
13 reset
100
ohm
R-SDA
R-SCL
NOTE: R-SCL and R-SDA
are 75K to 82K values
SCHEMATIC 2
Bogden.qxd 9/3/2008 8:03 AM Page 62
const tSensors port = S4; // NXT port compass is
// connected
const byte ICADDRESS = 0xC0; // Address for R117 to
// initiate read of the
// compass
// Wait for I2C Bus to Be Ready
void waitForI2CBus()
{
TI2CStatus nStatus;
nStatus = nI2CStatus[port];
while (true)
{
nStatus = nI2CStatus[port];
switch (nStatus)
{
case NO_ERR:
return;
case STAT_COMM_PENDING:
nxtDisplayTextLine(2, "I2C Pending");
break;
}
}
}
// Main Task
task main()
{
// I2C message configuration
byte i2cconfg[3];
const short Size = 0;
const short Address = 1;
const short Controlreg = 2;
// In RobotC, under Motors and Sensors,
// the port S4 is defined as I2C
SensorType[port] = sensorI2CCustom;
Read_Compass_loop:
// Loop or repeat the program
ControlIn = 0xC1;
//Address to read back data from compass
{
waitForI2CBus();
// Build outgoing message and send to activate the IC
i2cconfg[Size] = 2; // Two bytes in msg
// The compass initiate address (0xC0)
i2cconfg[Address] = ICADDRESS;
i2cconfg[Controlreg] = ControlIn;
// The user declares where to read compass value
// INITIALIZE Compass
sendI2CMsg(port, i2cconfg[0] ,0);
waitForI2CBus();
// Build outgoing message and send
// One bytes in the message
byte replyMessage[1];
i2cconfg[Size] = 1;
i2cconfg[Address] = ICADDRESS;
sendI2CMsg(port, i2cconfg[0], 1);
waitForI2CBus();
//READ THE RETURN VALUE FROM THE IC
readI2CReply(port, replyMessage[0], 1);
//DISPLAY VALUE ON NXT DISPLAY
O
O
O
LISTING 1 - Devantech compass operation; display 0-355 degrees on NXT display; 1
2
C communication portion is shown.
The other three I
2
C integrated circuits to interface with the NXT are described in the text. The same I
2
C subroutine
call is used with the address, size of message sent, and return value being unique for each part.
SERVO 10.2008 63
byte i2cconfg[9];
const short Size = 0; // Will be sending 8 bytes in the message after this one
const short Address = 1; // Part address (0xC4)
const short PSC = 2; // Control register-select which register to access below
const short PSC0_period = 3; // Channel 0 PWM period
const short PWM0_DC = 4; // Channel 0 PWM duty cycle
const short PSC1_period = 5; // Channel 1 PWM period
const short PWM1_DC = 6; // Channel 1 PWM duty cycle
const short LED0_3 = 7; // Outputs to enable 0-3
const short LED4_7 = 8; // Outputs to enable 4-7
// For our example the values for these control bytes are:
control_reg =0x11; // select channel 1
channel 0_period =0x00; // don't care
channel 0 PWM =0x00; // don't care
channel 1_period =0x09; // blink frequency= (channel 1 period +1)/38
channel 1 PWM =0xd4; // duty cycle=(256-PWM)/256
LED_zero_three =0x00; // 0-3 are not enabled
LED_four_seven =0xFA; // enable channel 6
After selecting the address, send the I
2
C message built in Listing 1 with the following code:
sendI2CMsg(port, i2cconfg[0] ,1);
waitForI2CBus();
Bogden.qxd 9/3/2008 8:03 AM Page 63
other sensors can be read by
the NXT. These include
temperature, pressure,
chemical, light, resistive
feedback, switches, and so
on. The I
2
C address for this
device is 0x90. The 9 is
pre-established and the 0
is set by tying pins A0, A1,
and A2 to VSS.
Note that the internal
analog-to-digital converter
(ADC) reference needs to
be connected to reference
voltages. In this example,
the ADC high voltage
reference (pin 14) is tied
to VCC and the ADC low
voltage reference (pin 13)
is tied to VSS.
There are four ADC
channels that can be set up
individually as single ended
or differential inputs. There
is also a digital-to-analog channel (DAC). Two bytes are
sent over the I
2
C link: the address of the part (0x90) and
the control register values for the IC. The control register
bits are described in the part specification sheet. In our
example, the control is set to (0x03) to read channel 3.
PCF8574 A DIGITAL EXPANDER I/O
INTEGRATED CIRCUIT
The PCF8574A is used to control on/off devices via
the I
2
C link. (Later, the RobotC software for the NXT robot
will be listed that will communicate with the PCF8574A.)
With this expanded interface and the appropriate
interface hardware to the PCF8574A, other devices
can be controlled by the NXT. These include control
signals to sensors or other ICs, DC and stepper motors,
lights, SMA, and so on.
The I
2
C address for this device is 0x70. The 7 is
pre-established and the 0 is set by tying pins A0, A1,
and A2 to VSS.
The eight pins can be configured as inputs or
outputs. The pin control byte is:
Bit 0 = P0
Bit 1 = P1
Bit 2 = P2
and so on. When a bit is zero, then the output is off and
can be read as an input. When the bit is one, the output
is on. In this example, Port 0 is Bit 0 so writing a 0xFF will
Parts List
ITEM SUPPLIER PART#
RobotC Robomatter, Inc.
Devantech Acroname Robotics
R117 Compass
PCF 8591 ADC Digi-Key LD-1431
PCF 8574A Digi-Key LF-207
Digital I/O
PCA 9551D Jameco 1350758
PWM
SOURCES
www.robotc.net
www.acroname.com
www.digikey.com
www.jameco.com
NOTE: The other 'glue' components can be purchased
through Digi-Key, Jameco, and other electronic suppliers.
64 SERVO 10.2008
Green C4 of
NXT cable
5 A0
6 A1
7 A2
8 VSS
16 VCC
Black C2 of
NXT cable
9 SDA
10 SCL
Blue C6 of NXT
cable
Yellow C5 of NXT
cable
NOTE: R-SCL and R-
SDA are 75K to 82K
values
Schematic 3 ADC Integrated Circuit PCF8591
Read Pot position and display on NXT display
PCF8591
14 ADref
13 AD ground
12 Ext
3 ADIN3
10K Pot
Note: ADC
inputs are Pins
1-4; I &2 have
internal pull up
R-SCL
R-SDA
SCHEMATIC 3
Bogden.qxd 9/3/2008 8:04 AM Page 64
have all the pins turned off; writing a 0xFE will turn port 0
on leaving all the other ports off. Therefore, two bytes are
sent over the I
2
C link: the address of the part (0x70) and a
byte which represents which I/O pin to enable as an output
or input. The RobotC programs are available on the Servo
Magazine website at (www.servomagazine.com).
CONCLUSION
The RobotC programming software
and the use of the I
2
C bus expands the usage of the NXT
Brick to design more advanced robot controls, and opens
the door to non-robotic control functions as well. This
article has provided the means to expand the I/O of the
NXT. The integrated circuits weve used have additional
functions that werent mentioned but their specs can be
downloaded online just Google for them.
With these expansion tools I now leave it to your
imagination to create more powerful NXT applications! SV
Green C4 of
NXT cable
1 A0
2 A1
3 A2
8 VSS
16 VCC
Black C2 of
NXT cable
15 SDA
14 SCL
4 P0
Blue C6 of NXT
cable
Yellow C5 of NXT
cable
LED
Schematic 4 Digital I/O---IC PCF8574A
Pin 4 (P0) to turn on/off an LED
PCF8574A
Outputs are P0-P7
PCF8574A
220 ohm
R-SCL
R-SDA
NOTE: R-SCL and R-SDA
are 75K to 82K values
SERVO 10.2008 65
SCHEMATIC 4
P
erform proportional speed, direction, and steering with
only two Radio/Control channels for vehicles using two
separate brush-type electric motors mounted right and left
with our mixing RDFR dual speed control. Used in many
successful competitive robots. Single joystick operation: up
goes straight ahead, down is reverse. Pure right or left twirls
vehicle as motors turn opposite directions. In between stick
positions completely proportional. Plugs in like a servo to
your Futaba, JR, Hitec, or similar radio. Compatible with gyro
steering stabilization. Various volt and amp sizes available.
The RDFR47E 55V 75A per motor unit pictured above.
www.vantec.com
STEER WINNING ROBOTS
WITHOUT SERVOS!
Order at
(888) 929-5055
Bogden.qxd 9/3/2008 8:05 AM Page 65
Electronic Parts & Supplies
Since 1967
www.c-stamp.com
L
O
W

C
O
S
T
!
CONTROLLERS & ROBOT KITS SENSORS DISPLAYS
Free
Expert
Technical
Support
1 (800) 985-AWIT
E
a
s
y

t
o

C
o
n
n
e
c
t
L
O
W

C
O
S
T
!
LOW COST
Professional SW Dev. Tools

For the finest in robots, parts, and
services, go to www.servomagazine.com
and click on Robo-Links.
66 SERVO 10.2008
RoboLinksOCT08.qxd 9/3/2008 5:46 PM Page 66
FIRST Robots: Rack 'N' Roll
Behind the Design
by Vince Wilczynski /
Stephanie Slezycki
The second annual
book highlighting the
creativity and process
behind 30 winning
robot designs from
the 18th annual
international FIRST
Robotics Competition.
The FIRST organization, founded by Dean
Kamen (inventor of the Segway), promotes
education in the sciences, technology, and
engineering in collaboration with sponsors
including Motorola, Xerox, NASA, Delphi,
General Motors, and other companies
invested in science education. $39.95
Build Your Own
Humanoid Robots
by Karl Williams
GREAT 'DROIDS, INDEED!
This unique guide to
sophisticated robotics
projects brings
humanoid robot
construction home to
the hobbyist. Written
by a well-known figure
in the robotics
community,
Build Your Own Humanoid Robots provides
step-by-step directions for six exciting proj-
ects, each
costing less than $300. Together, they form
the essential ingredients for making your
own humanoid robot. $24.95*
We accept VISA, MC, AMEX,
and DISCOVER
Prices do not include shipping and
may be subject to change.
The SERVO Webstore
Attention Subscribers ask about your discount on prices marked with an *
L
o
o
k
L
o
o
k
W W
h
a
t
h
a
t

s s
N
e
N
e
w w
Forbidden LEGO
by Ulrik Pilegaard / Mike Dooley
Build the Models
Your Parents
Warned You
Against.
Forbidden LEGO
introduces you to
the type of free-
style building that
LEGOs master
builders do for fun in the back room.
Using LEGO bricks in combination with
common household materials (from rub-
ber bands and glue to plastic spoons
and ping-pong balls) along with some
very unorthodox building techniques,
youll learn to create working models that
LEGO would never endorse. $24.95
SERVO 10.2008 67
SERVO Magazine
Bundles
Published by T & L Publications, Inc.
$57
per bundle
Save $10
off the
normal
price!!
Now you can get one years worth of all
your favorite articles from SERVO Magazine
in a convenient bundle of print copies.
Available for years 04, 05, 06, and 07.
Robotics Demystified
by Edwin Wise
YOU DON'T NEED ARTIFICIAL INTELLIGENCE
TO LEARN ROBOTICS!
Now anyone with an
interest in robotics can
gain a deeper under-
standing without for-
mal training, unlimited
time, or a genius IQ. In
Robotics Demystified,
expert robot builder
and author Edwin Wise
provides an effective and totally painless
way to learn about the technologies used to
build robots! $19.95
Robot Programmer's Bonanza
by
John Blankenship, Samuel Mishal
The first hands-on
programming guide
for today's robot hob-
byist!
Get ready to reach into
your programming tool-
box and control a robot
like never before! Robot
Programmer's Bonanza
is the one-stop guide for
everyone from robot novices to advanced
hobbyists who are ready to go beyond just
building robots and start
programming them to perform useful tasks.
$29.95
EDITORS PICKS
ROBOTICS
Getting Started in
Electronics
by
Forrest Mims
The title says it all. I grew up reading
books on electronics by the author, Forrest
Mims, and they're still the best learning
about and reviewing the basics. If
you're new to electronics, this is a must-
have for your bookshelf.
$19.95
Editor Bryan Bergerons recommended reads.
Find these and many more great titles in the SERVO Magazine Webstore!
Circuitbuilding Do-It-Yourself
For Dummies
by H. Ward Silver
Here's the fun and
easy way to start
building circuits for
your projects. As
you accomplish the
tasks throughout the
book, you'll con-
struct many projects
while learning the
key circuitbuilding
principles and techniques. Find out about
measuring and testing, maintenance and
troubleshooting, cables, connectors, how to
test your stuff, and more. $24.95
Mechanisms and Mechanical Devices
Sourcebook, Fourth Edition
If youre serious about designing and
building your own robot, you shouldnt
be without this book.
Each of the over 2,000 illustrations is
worth at least 1,024 words.
$89.95
WebstoreOct08.qxd 9/3/2008 3:27 PM Page 67
Im glad oil
prices are
showing signs of
coming down!
WOO HOO!
visit m visit my online stor y online store @ e @
www www.ser .ser v vomagazine omagazine.com .com
To order call 1-800-783-4624
Robot Builders Sourcebook
by Gordon McComb
Fascinated by the
world of robotics but
dont know how to
tap into the incredible
amount of informa-
tion available on the
subject? Clueless as
to locating specific
information on robot-
ics? Want the names,
addresses, phone
numbers, and websites of companies that
can supply the exact part, plan, kit, building
material, programming language, operating
system, computer system, or publication
youve been searching for? Turn to Robot
Builders Sourcebook a unique clearing-
house of information that will open 2,500+
new doors and spark almost as many new
ideas. $24.95
The Amateur Scientist 3.0
The Complete Collection
by Bright Science, LLC
There are 1,000
projects on this CD, not
to mention the
additional technical
info and bonus
features. It
doesnt matter if youre
a complete novice
looking to do their first
science fair project or a
super tech-head gadget
freak; there are enough projects on the
single CD-ROM to keep you and 50 of your
friends busy for a lifetime! $26.99
CNC Robotics
by Geoff Williams
CNC Robotics gives you
step-by-step, illustrated
directions for designing,
constructing, and testing
a fully functional CNC
robot that saves you 80
percent of the price of an
off-the-shelf bot and
that can be customized
to suit your purposes exactly, because you
designed it. Written by an accomplished
workshop bot designer/builder, this book
gives you everything you need. $34.95
MEMS & Nanotechnology
for Kids
by Marlene Bourne
Small is cool! What is
nanotechnology?
What are MEMS? And
what makes them so
special? Welcome to
the wonderful world
of really small stuff.
Things so tiny, you
need special
microscopes to even
see them.
Winner of a 2008 IPPY
Award (bronze medal) for best
juvenile/young adult non-fiction, MEMS &
Nanotechnology for Kids explores what you
can find at the micro- and nano-scale; where
you'll discover all sorts of amazingly small
sensors, structures, and materials.
Reg $24.95 Sale 18.95
68 SERVO 10.2008
Linux Robotics
by D. Jay Newman
If you want your robot
to have more brains than
microcontrollers can
deliver if you want
a truly intelligent,
high-capability robot
everything you need
is right here. Linux
Robotics gives you step-
by-step directions for
Zeppo, a super-smart, single-board-
powered robot that can be built by any
hobbyist. You also get complete instructions
for incorporating Linux single boards into
your own unique robotic designs. No
programming experience is required. This
book includes access to all the
downloadable programs you need.
$34.95
WebstoreOct08.qxd 9/3/2008 3:29 PM Page 68
PROJECTS
BACK ROOM SPECIALS
Or order online www.servomagazine.com
SERVO 10.2008 69
Get your very own limited-edition SERVO Magazine T-shirt. Shirts come
in sizes S, M, L, and are available in either black or white.
All shirts are 100% preshrunk cotton.
Limited time offer. Call 1-800-783-4624.
From HomoSapien to RoboSapien Before R2D2 there was R1D1
The Definitive Guide to
Building Java Robots
by Scott Preston
The Definitive Guide to Building Java Robots
is for educators,
students, hobbyists,
and startups looking
for Java/hardware
interaction. This book
shows you how to use
your PC to build
robots, and how you
can interface with a
microcontroller to do
the basics. Youll learn
to design your robot to navigate, see, speak,
recognize your face, listen to you, and build
maps. $55.95 Sale Price $ 47.95
The SERVO Buddy
Kit
An inexpensive circuit you
can build to control a servo
without a microcontroller!
For more information,
please check out your
May 2008 issue
or go to our website @
www.servomagazine.com
Subscribers Price $39.55
Non-Subscribers Price $43.95
PCB includes article reprint.
Tankbot Kit & Alpha Brain Kit
Buy both these books
together in the month
of October 2008
and
and save 10% off the list price. Plus get free shipping in the US!!
Call 800 783-4624 or order online @ www.servomagazine.com
List Price $29.95 Sale Price $ 26.95 List Price $40.95 Sale Price $35.95
Building Robots with
LEGO Mindstorms NXT
Programming Lego
Mindstorms NXT
S SA AVE 10% plus VE 10% plus
GET FREE GET FREE US US
SHIPPING! SHIPPING!
F
R
E
E
!
F
R
E
E
!
w
ith
a
n
y
w
ith
a
n
y
p
u
rc
h
a
s
e
p
u
rc
h
a
s
e
o
v
e
r $
1
0
0
o
v
e
r $
1
0
0
Phone-in
orders only!
SERVO
Magazine
T-Shirts
Robot Builders Cookbook
by Owen Bishop
This is a book for
first-time robot
builders, advanced
builders wanting to
know more about
programming robots,
and students in
further and higher
education tackling
microcontroller-
based practical
work. They will all
find this book a unique and exciting source
of projects, ideas, and techniques to be
combined into a wide range of fascinating
robots. $29.95 Sale Price $ 24.95
N N
E E
W
!
W
!
As seen in the
Sept. issue
Tankbot/
Brain Alpha
by Ron Hackett
A bi-monthly series
filled with projects and
experiments to challenge
you through your
learning process while
you grow your fully
expandable
Brain Alpha PCB!
The Alpha Brain kit is an excellent way to
get started in robotics. The brain a
PICAXE-14A is easily programmed in a
dialect of Basic that includes many powerful
commands. At the end of each of Rons
articles, he will include programming for that
months project. The kit also includes a 400
point breadboard which allows for
considerable expansion and experimentation.
For more info & pictures, visit the SERVO
Webstore at www.servomagazine.com.
$99.95 Sale Price $ 85.95
The TankBot gives you everything you
need to start building your own sturdy
servo-motor robotic tracked vehicle.
Powered by two modified R/C servos
(44 oz-in torque). The assembled Tankbot
measures 7 inches long, 4.75 inches wide,
and 3.5 inches high. The top deck is
drilled ready for the Alpha Brain. For more
info & pictures, visit the SERVO Webstore
at www.servomagazine.com.
$59.95 Sale Price $ 56.95
Combo Price $ 138.95
WebstoreOct08.qxd 9/3/2008 3:31 PM Page 69
70 SERVO 10.2008
T
he BasicBoard has a built-in serial port for
programming while this second serial port is a
four-pin header connected to the hardware serial port
peripheral pins of the Atom PIC16F877A chip. I tested this
port by making it talk to a PC running a terminal program.
This article will describe the simple example of how to use
the HSERIN and HSEROUT commands in Atom Basic to
control the hardware serial peripheral within the Atom
interpreter chip. The main advantage to these commands
and the hardware serial peripheral is the ability to send
and receive information in the background while the
BasicBoards main program is running.
The 40-pin Atom interpreter chip used in the BasicBoard
is actually a PIC16F877A with custom bootloader
programming software inside. The BasicBoard connects to
the programming pins of the Atom chip through the nine
pin DB-9 connector at the top of the BasicBoard. You can
send messages out this port, but I wanted to use the
hardware serial port connections which are tied to the C6
and C7 pins of the PIC16F877A. These are brought out to
a four-pin connector on the side of the board. The pins are
5V, ground, transmit (Tx), and receive (Rx). The hardware
serial port transmits in true RS-232 mode which means the
port needs an RS-232 inverter chip to convert the signal to
+12V and -12V signalling. There are many of those types of
adapters available but I wanted a nice cable version. I created
one as shown in Figure 2 to connect to the serial port pins.
I built this adapter from some off-the-shelf parts. The
case is a simple DB-9 shell that you can get at Jameco.com
or even some RadioShack stores. I put a four pin connecter
at the end of the wires but the key component is inside the
case. Its a small circuit board with an RS-232 inverter chip
designed in that I purchased from HVWTECH.com. All the
components are surface mount, so the board is very small.
I had to modify the case a little to make the board fit but it
didnt take much work. The screw holes ended up being
blocked by the circuit board so I had to use a piece of tape
on the sides to hold the case together. The circuit board is
shown in Figure 3.
The RS-232 board is advertised as
a TTL to RS-232 converter that allows
any Transistor Transistor Logic (0-5
volt) device such as a microcontroller
to communicate with true RS-232
(12V) devices such as a PC. Its
capable of speeds up to 115K baud
and is reported to be able to
communicate at distances of up to
several hundred feet. The module
costs under $10, which I found to be
Im working on a new robot application for the BasicBoard from Beginner
Electronics.com. I chose one of the tractor type bases from budgetrobotics.com
as seen in Figure 1. This is a great little base to build a robot from. In the process
of doing this, though, I wanted to get the expansion serial port on the BasicBoard
working for future add-on sensors and other future ideas. That extra serial port
connection ends up pointing to the front of the robot so this could be really handy.
Hardware Serial Port Adapter
by William Smith
Figure 1.
BasicBoard
Tractor
Robot.
Figure 2.
Serial Adapter.
Figure 3.
HVWTECH.com
RS-232 Board.
BasicBoardRobotics.qxd 9/2/2008 3:26 PM Page 70
quite inexpensive for such a custom built
module. The RS-232 Driver Module is available
in two configurations: modems (DCE); and
things that connect to modems (DTE). Im
using the DCE version since I want to connect
to the PC serial port (just like a modem
would). For the connection to the PC, I used a
nine pin straight-thru cable. The completed
adapter is shown connected to the BasicBoard
in Figure 4. The BasicBoard supplies the power
to the module so its a simple connection
between the serial port adapter module on the
BasicBoard and the PC serial port.
Software
To demonstrate how to use the adapter,
I now have to show the software to control
it. The application will create a simple
communication connection between the
BasicBoard and the Atom development
softwares built-in terminal window. The program will have
the BasicBoard send out a statement requesting which LED
the user would like to light up (0 through 7). The user then
enters the LED number in the terminal window and presses
the enter key on the PC. The ASCII value of the number is
sent through the serial adapter and when the BasicBoard
receives that value, it turns on the LED. It will also display
the value chosen on the BasicBoards LCD display. The
program runs over and over again, asking for and receiving
the LED information.
The BasicBoards Atom programming software screen
with terminal window after the BasicBoard has sent the
information is shown in Figure 5. This is how it should look
when you get your hardware serial port adapter working.
Now, onto the code listing for
the BasicBoard. It is fairly simple but
the key lines are the HSEROUT and
HSERIN commands. These are
specially written to control the
hardware serial port. Before we can
use these commands, we first have
to set up the hardware serial
port and that is done with the
SETHSERIAL command:
sethserial H57600
This sets the BasicBoard hard-
ware serial port to 57,600 baud at
eight data bits, no parity, and one
stop bit. You can check the various
options for this setup in the Atom
command manual. The program
then establishes the variables the
program will use and also sets up
the BasicBoard LCD similar to the
LCD project in the BasicBoard manual.
temp var byte
old var byte
pause 500
lcdwrite
17\16,outc,[initlcd1,initlcd2,twoline,scrblk,clear,home]
Finally, the main program is written that sends out
the statements to be displayed in the PC terminal window.
Each line is sent with a separate HSEROUT command. The
HSEROUT sends the ASCII codes 10 and 13 which represent
the line feed and carriage return.
hserout [Hello I am the Basic Board]
hserout [10,13]
hserout [Which LED would you like me to light]
hserout [10,13]
Figure 4.
Completed
Setup.
Figure 5. Atom
Screen Capture.
SERVO 10.2008 71
BasicBoardRobotics.qxd 9/2/2008 3:27 PM Page 71
After this, the program sends the statement: PC says
lite LED number : on the two LCD lines.
lcdwrite 17\16,outc,[clear,home,PC says lite LED,scr
ram+$40,number: , dec temp]
The program then uses the HSERIN command to
receive the LED choice from the PC. The program does
not use the optional timeout function available for this
command so the program will wait here until a value is
received. The value received will be an ASCII value so the
DEC modifier is placed in front of it to convert the ASCII
value to the numeric value. This makes it easier to control
the LED with the High and Low commands. The previous
LED choice is stored in the old variable so it can be shut
off when the new LED is lit.
The example program is:
sethserial H57600
temp var byte
old var byte
pause 500
lcdwrite
17\16,outc,[initlcd1,initlcd2,twoline,scrblk,clear,home]
main
hserout [Hello I am the Basic Board]
hserout [10,13]
hserout [Which LED would you like me to light]
hserout [10,13]
lcdwrite 17\16,outc,[clear,home,PC says lite LED,scr
ram+$40,number: , dec temp]
old = temp
HSERIN [dec temp]
high temp
low old
goto main
Conclusion
If you dont have a BasicBoard, this may be a little
difficult to follow but any PIC board with the C6 and C7
pins can use the BasicAtom interpreter chip and the RS-232
adapter to create a similar setup. I want to control other
modules that require a RS-232 connection. This setup
should allow the robot platform to communicate with the
extra modules via the hardware serial port while the main
loop of code controls other items.
This simple example shows some of the power of the
Basic Atom language but this type of command is available
in other compilers such as PICBASIC PRO and other Basic
compilers. I hope to cover some of those in my next column
as I have had requests from people to control the
BasicBoard with something other than Atom software.
There are a lot of options to do that, so I will get to work.
If you have questions, email us at BeginnerElectronics
@gmail.com. See you next time. SV
72 SERVO 10.2008
BasicBoardRobotics.qxd 9/2/2008 3:28 PM Page 72
R
obots and kids go together like
bacon and eggs, peaches and
cream, resistors and capacitors.
Thanks to low-cost construction kits
and not to mention popular
movies that glamorize automatons
more and more children are
exploring the world of robots.
And thats not a bad thing.
Robotics encompasses multiple
disciplines, including mechanical
engineering, software
programming, electronics, even
human psychology. In all, its a
great field to be interested in,
because there are so many options
for further study and exploration.
In this column, well review
some of the kits, books, and other
material available that are either
expressly designed to motivate
children in learning about robotics,
or are readily adaptable to a
child-age audience because of their
design, support documentation,
or other features.
Lets Make a Robot!
Building a robot can be a time-
consuming affair, requiring hours of
sawing, drilling, grinding, soldering,
and programming. Many kids simply
dont have the attention span to
wait that long before seeing results,
so for the typical child a ready-to-go
kit is the best option. Ideally, the kit
should include all the mechanical
and electronic components to make
a functional robot capable of at least
rudimentary actions, such as reacting
to light or following a black line on a
white piece of paper. Fortunately,
there are many such kits available, at
prices starting at about $20. Of
course, the more sophisticated the
robot and its abilities, the more the
robot will cost.
At the lower end of the scale is
the single-function kit, requiring at
least mechanical assembly. By
single-function, it means just that.
These bots are made to do
one thing and encompass no
intelligence or programming. For
example, the robot may merely
react to sound, or follow a line.
The OWI-9910 Weasel is an
example. Two photo detectors on
the underside of the robot detect a
line drawn on the ground and two
touch switches on its body give it
a simple obstacle avoidance
mechanism.
Some robot kits are designed for
remote control by a human. The
least expensive of this breed uses a
wired tether. You steer the robot by
flicking a set of switches. For
instance, theres the OWI-9280
Soccer Pro kit. Its a simple wheel-
based vehicle with a two switch
wired remote. With a couple of
these, your child and a friend can
play miniature robotic soccer,
pushing a ball around a small field.
There are many other single-
function robot kits, and the OWI
product line is perhaps the most
complete in this category. The kits
are available from several retailers
(a couple of the main online stores
are listed in the Sources), and are
grouped by skill level. These basic
mechanical-only kits comprise the
least expensive of the lot. Next, are
the kits that require electronics of
some kind come with complete and
ready-to-go circuit boards, though a
few models are available with the
electronics also in kit form. These are
handy for learning about soldering
and electronics construction.
For purely mechanical
construction, theres the robotics
and educational products from
Tamiya. Most of these are not
found in local area hobby stores,
but are common enough online,
especially from robotics-specific
retailers. We provide a short list of
sources for these, as well.
Next up the ladder are fully
programmable kits (typical price
range is $120-$175), where you
develop and download a script for
the robots action from a personal
computer. Once programmed, the
robot is self-sufficient and
autonomous. Probably the most
well-known kit of this type is the
Parallax BOE-Bot ($160), which
consists of a metal chassis and
hardware, twin servo motors and
wheels, and an already-assembled
electronics board (the BOE Board),
complete with the Parallax BASIC
Stamp microcontroller.
The BOE Board is connected to
a host computer via serial or USB.
Getting Kids
into Robotics
Tune in each month for a heads-up on
where to get all of your robotics
resources for the best prices!
SERVO 10.2008 73
RoboResourcesF.qxd 9/3/2008 3:03 PM Page 73
74 SERVO 10.2008
The programming environment is
included free of charge, and there
are plenty of coding examples to get
you started. The BOE-Bot documen-
tation is extensive, and the nature of
the programming language used by
the BASIC Stamp makes it well-suited
for middle school and higher students.
Other options exist, of course.
A relative newcomer is the OOBug,
from the makers of the OOPic
microcontroller. The OOBug ($160)
consists of an assembled circuit board
upon which motors and a clear plastic
body are mounted. Assembly time is
under 15 minutes. Whereas optical
sensors for such tasks as line
following or object detection are
often extra on other programmable
kits, theyre standard on the OOBug,
and ready for use.
Like the BOE-Bot, the OOBug is
programmed via a computer link
(specifically a USB cable), and the
programming environment is
included free of charge. The OOBug
further differentiates itself by
supporting music, sound, and speech
effects, as well as social robotics,
where robots may be programmed
to interact with one another, as well
as the environment.
Finally, for lack of a better term,
learning system kits encompass
those that provide more than one
possible robot design. The LEGO
Mindstorms NXT and Vex kits are
excellent examples. At the core of the
kit is a self-contained microcontroller
module, which provides for program-
ming the robot. Connection to a host
PC is done via serial, USB, and in
the case of older model Mindstorms
kits infrared link. Motors and sen-
sors connect to the microcontroller
module in various arrangements,
giving flexibility in design.
Then, using plastic or metal
parts, you build the robot chassis,
either by snapping pieces together
(as with LEGO) or assembling the
parts using metal or plastic
fasteners. In either case, you can
completely disassemble your
creation so you can reuse all the
components again. Learning system
kits encourage a greater degree of
design experimentation, and are
particularly well-suited for kids who
are mechanically inclined.
Other learning system kits
include Fischertechnik, K-NEX,
Capsela, and Erector.
Sources
Construction Toys
www.constructiontoys.com
Online and local retailer of
construction toys. These toys are
available both online and in the retail
store: Capsela; Eitech; Erector;
Fischertechnik; Geofix; Geomag;
KNEX; LEGO Dacta; Rogers
Connection; Rhomblocks; Rokenbok;
Zome System.
e-Hobbyland
e-hobbyland.com
Well-established retail and online
seller of all types of toys.
Elenco Electronics
www.elenco.com
Offers a line of educational
electronics and robotics products,
including novel snap-together kits
ideal for younger children.
Fischertechnik
www.fischertechnik.com
Company website for
Fischertechnik in North America.
Check out the Retail Outlets links.
Hobby Engineering
www.hobbyengineering.com
General source for robot parts,
as well as a lengthy list of Erector set
kits of all shapes and sizes.
HVW Tech
www.hvwtech.com
Hobby electronics retailer in
Canada also resells a number of
popular robot kits, including products
from Parallax.
Jameco Robot Store
www.robotstore.com
Reseller of a number of robot
kits, including the Tamiya remote
controlled robot construction set.
KBtoys.com
www.kbtoys.com
Online mail order. Check often
for deep discounts on LEGO,
The Jameco Robot Store sells a number of ready-to-go and
kit products ideal for student use.
RoboResourcesF.qxd 9/3/2008 3:04 PM Page 74
KNEX, and other brands.
LEGO Shop-at-Home
shop.lego.com
Online outlet for LEGO
products, including spare parts
(when available).
LEGO Mindstorms
mindstorms.lego.com
Informational page for the LEGO
Mindstorms sets. Be sure to check out
the user-to-user forums to see what
other LEGO builders are up to.
Junun.org
www.junun.org/MarkIII/
Resellers of the Mark III mini
Sumo robot kit, originally designed
by the Portland Area Robotics
Society (PARTS) for mini Sumo
competitions. The kit includes all
hardware, motors, wheels, and
electronics. The website also sells
low-cost sensors, such as the Sharp
IR proximity modules, and various
support electronics common in
amateur robotics.
Machine Science
www.machinescience.com
Offers an expandable metal robot
base, which includes motors, wheels,
microcontroller, and other electronics.
Norland Research
www.smallrobot.com
Kit of parts for turning a Texas
Instruments scientific calculator into
a robot.
OOBug
www.oobug.com
Entry-level deskpet robot kit.
The OOBug differentiates itself
in that it is designed to build
cooperative or social robots, able to
communicate and share information
between each other.
Only Toys
www.onlytoys.com
Only Toys carries metal Erector
sets; most are for building
vehicles, and some (like the Steam
Engine) are quite elaborate. The
company also sells Rokenbok radio
controlled toys.
OWI Robots
www.owirobots.com
Importer of the OWI robot line of
educational robotics.
Parallax
www.parallax.com
In addition to microcontrollers
such as the BASIC Stamp, Parallax
offers numerous robot kits,
including the BOE-Bot (wheeled)
and Penguin (walking). Also offers
robot components, such as wheels,
servos, and sensors.
Pololu
www.pololu.com
Makers of small plastic robot
bases designed for use with Tamiya
motors. Also sells servos, wheels,
and treads and sprockets for
building tracked robots, as well as
sensors, microcontrollers, and other
electronics.
qfix
qfix-shop.de
German-based manufacturer and
seller of small robot kits for education.
Website is in Deutsch and English.
RB Robotics
www.rbrobotics.com
New owners of the RB5X educa-
tional robot. As noted on the website,
The RB5X robot has been produced
for over 20 years. With a proven
track record and a developed set of
teaching aids, it is a great choice
for any classroom. Full kits and
individual parts available.
Robix
www.robix.com
Aluminum robot kits, primarily
designed for educational use. The
aluminum pieces and servos can be
constructed in numerous ways to
make a variety of robotic forms.
Robotis
www.robotis.com
Manufacturers site for the
Robotis line of robot construction sets
and parts. Check out the dealer
pages to find a reseller near you.
Robotshop
www.robotshop.ca
www.robotshop.com
Resellers of Fischertechnik and
other robot construction sets.
Robot Kits Direct
robotikitsdirect.com
Plastic robot kits in various skill
levels, from beginner to advanced.
An example is the OWI-9910 Weasel,
which combines touch sensing and a
basic wall hugging behavior.
Solarbotics
www.solarbotics.com
Primary retailer of BEAM robots
a simple is better approach to
design. Products include various
light-attracted bugs and walking
robot kits, motors, solar cells, and
electronics.
Tamiya
www.tamiya.com
Home page for Tamiya. Check
out their Educational Construction
Series line of kits, such as the remote
controlled robot construction set. No
online ordering, but you can use the
product listing to see whats available.
Timberdoodle
www.timberdoodle.com
Timberdoodle specializes in home
education products. They offer a
good selection of Fischertechnik kits
at good prices. Also sells KNEX and
electronics learning labs. Be sure to
check their swan gong closeout
deals.
VexLabs Vex Robotics Kits
www.vexlabs.com
Makers of the VEX Robotics
Design System. Use their online
ordering system. SV
SERVO 10.2008 75
Gordon McComb can be reached via
email at robots@robotoid.com
CONTACT THE AUTHOR
RoboResourcesF.qxd 9/3/2008 3:05 PM Page 75
I
t was a chilly June day above the
Ft. Mason Center, San Francisco at
the Great Meadow: 14 teams entered;
eight took the field; five touched the
goal; three touched the goal plus two
bonus cones. Zippy and Intrepid
traversing over 500 feet touched both
bonus cones and the goal in exactly
five minutes: 28 seconds ... a tie for
the gold medal.
RoboMagellan robots usually take
a long time to build. One generally
starts in the fall building for
RoboGames in June. June arrives
and its a series of frantic all-nighters
focused on software, overall behavior,
and fixing blown circuits. Many times,
the first year is a bust (14 entered)
but after a year or two the robot
comes together. This year there was
an exception in a robot named
Zippy created in a few short weeks
by FIRST alumni Ben Filippenko and
Sergiy Nesterenko. In the end, Zippy
and Intrepid (built by RoboMagellan
veteran Mark Curry) tied for gold with
a goal-plus-two-bonus-cone run of five
minutes and 28 seconds exactly
<shaking head>. The rules currently
have no procedure for breaking a tie
... who would think with a total
distance of 550 feet there would ever
be a tie? In the future, I think using
ones previous fastest time should be
used as the tie-breaker.
For the uninitiated, RoboMagellan
is an outdoor contest where one is
given the GPS coordinates for a goal
and an 18 inch orange traffic cone is
placed at that coordinate. The starting
point is no less than 300 foot away;
the length of a football field. Bonus
cones are placed which give a
fractional multiplier (between 0.9 and
0.1). One may elect not to go for the
bonus cones but you must touch the
goal for a score.
We handed out the course map
in front of the Ft. Mason Center at
noon and agreed to meet at the park
at 12:30. This years map was basically
last years map turned upside down.
The start became the goal and the
goal became the start ... bonus cone
#1 became bonus cone #2 and vice-
versa. The fractional multipliers were
increased from x .25 and x .5 to x
.1 and x .25 because last year the
bonus multipliers werent enough.
First up, WolfNav after a few
minutes of stopping and starting
called it quits; total distance eight
feet. The second run wasnt much
better. It was a gallant attempt but
as mentioned these robots are
challenging to build; Cody and John
still needed considerable troubleshoot-
ing to navigate the entire course so
they elected not to try a third run.
Our second contestant was Zippy.
True to his name, Zippy zipped from
bonus cone to bonus cone to the goal
in less than six minutes. On its second
run Zippy improved to the five minutes
28 seconds which would tie Intrepid
for the gold medal.
Beaver One from Pasadena, CA
headed by Tony Wu managed an 85
foot run the first time in four minutes
11 seconds. The second run got closer
but still could not make it to the first
bonus cone. On the third run they did
touch the first bonus cone at three
minutes five seconds.
Intrepid was the only robot to
touch the goal and both bonus cones
on all three runs.
A3 by Jim McGuffin and Doug
Coral were up next. On the first run,
they had trouble getting out of the
crater. After a series of wheelies and
almost falling over, A3 recovered nicely
and went 300 feet in six minutes 15
seconds. The second run didnt go as
well, but the third run was the charm ...
five minutes 39 seconds ... both bonus
cones plus the goal ... good for silver.
Next up was GURU, an RC car
based robot built by a group of aero-
space engineers known as the Robot
Doctors. After one attempt to reach
the bonus cone they went straight for
the goal on their second and hit it
with a one minute 23 second straight-
shot run; good enough for bronze.
Red Dwarf, an RC car-based
rover, had three good runs but could
never make it to the goal.
The last competitor was a track-
based entry from the University of
Waterloo named Marauder. On the
first run our northern neighbors
touched the goal but no bonus cones
(close) in five minutes and 23 seconds.
We are at the dawn of a new age
... an age with machines as different
as plants are from animals. The future
has begun and you are watching it
unfold before your very eyes. If youve
finished a table-top robot and are
looking for that next project, consider
a RoboMagellan robot. A robot that
can get from one place to another in
a cluttered environment is a useful
device and a lot of fun. SV
RoboGames: RoboMagellan 2008
by Camp Peavy
Photos by Tim Craig
76 SERVO 10.2008
Zippy tied with
Intrepid for
gold with a goal-
plus-two-bonus-
cone run of
five minutes and
28 seconds.
Mark Currys
Intrepid
was the only
robot to
touch both
bonus cones
and the goal
on all three
runs. On its
third run, it
tied for gold
with a real
time of five
minutes 28
seconds.
Appetizer.qxd 9/3/2008 5:34 PM Page 76
Brought to you by MAKE: and CRAFT: magazines
A twoday, famiIyfriendIy event that ceIebrates arts, crafts, food, music,
engineering, and science projects and the DoitYourseIf {DlY) mindset.
FEATURlNG 300+ MAKERS, lNCLUDlNG:
N
Edible Austin Food Maker Favilion
N
Fire Arts
N
Eepy Bird Diet Coke & Mentos Fountains
N
Tesla Coils
N
Austin Bike Zoo
N
ArtOoll Course
N
Lile8ized Mousetrap
N
The Robot Oroup
N
Austin Children's Museun
N
Funpkin Flay Day
N
Alternative Energy Vehicles
N
Live Music
N
ArcAttackl
N
King ol Fling Catapult
N
Bazaar Bizarre Cralt Fair
N
RoboOanes
N
Art Cars
Znd AnnuaI Austin MAKE Austin Weird
Oct IS & I9
Travis County
Expo Center
Saturday I0am-I0pm
Sunday I0am-6pm
SO MUCH
TO SEE, YOU
NEED TWO
DAYS TO SEE
lT ALLl
MakerFaire.com
JGFEJFIJ1
=I<<8;LCK;8PG8JJ
{SZ5 vaIue) when you subscribe
to D8B< or :I8=K. Subscribe
to both and get two passesl
nnn%dXb\i]X`i\k`Zb\kj%Zfd
N
Austinist
N
Austin Children's Museun
N
Austin Chronicle
N
Austin Oreen Art
N
Edible Austin
N
Ecology Action ol Texas
N
Ooodwill ndustries
N
JFO Magazine
D<;@8:FDDLE@KPJGFEJFIJ1
BUY
TlCKETS
ONLlNEl
Full Page.qxd 9/3/2008 12:37 PM Page 77
78 SERVO 10.2008
I
take a lot of technical magazines,
more than my postman or wife care to
see. Many of them have very interesting
viewpoints on technology and robotics.
One is Managing Automation a
magazine concerned mostly with
implementation of factory automation
and robotics. MA has a monthly
e-newsletter that covers many
automation subjects. The August 1st
issue had an interesting article entitled
More Human than Humans by
MA Editor-in-Chief, David R. Brousell.
He wrote the following:
If you havent seen the new Pixar
animation movie, Wall-E, go see it
soon. Its a story of a garbage
compactor robot named Wall-E who
finds love and humanity on a desolate
and abandoned planet earth.
The film is both poignant and funny,
apocalyptic and hopeful. It also has, in
addition to the good robots like Wall-E,
evil robots that want to control and
subjugate human beings. One of these
evil robots recalls HAL, the murderous
computer in the 1969 film 2001: A Space
Odyssey. Certain stereotypes die hard.
Being a technology journalist, one
of the things that struck me most about
Wall-E was, of course, the human qualities
assigned to the robots. They sense,
they feel, they can be happy or sad.
Is all this really science fiction?
Will the day come when we will be able
to program robots with such sensibilities?
And what happens to us in the mean-
time? As the movie Wall-E depicts, the
remaining human beings, if you want
to call them that, are barely more than
overstuffed blobs living in a sensory
and climate-controlled space station.
Wall-E and his female robot companion
act more human than the humans.
But hope remains eternal, even
for the blobs. Perhaps robots of the
future will end up showing us the way
if indeed we do forget what we are.
That was a great article and it made
me think. It brought back memories
when I was young and saw the anima-
tronic Abraham Lincoln at Disneyland. I
thought, Wow! In a few years, well be
seeing robots on the street that are
indistinguishable from humans. Well,
that was many years ago and were still
not there, but many people are hard at
work making that day a reality. A year
ago, I wrote about humanoid robots
in this column. Humanoids are cool as
they are as close to us as anything we
can build. The vain creatures that we
are, we humans seem to be in love with
anything that resembles even a likeness
to ourselves. Sometimes that goes a
bit too far, in my humble opinion.
In the past several months, Ive seen
articles in the news about fake babies.
In several cases, police have been called
to break into locked cars in order to
rescue a seemingly live baby on the
seat of the car. The embarrassed
police were then introduced to what
is known as a reborn baby.
The technique called reborning
has grown quite a bit since 2000 as
doll collectors and hobbyists have so
refined the process of creating a life-like
baby doll that the result is very spooky,
to say the least. For centuries, artists
also have so refined art on a canvass
to create portraits that seem as real as
photographs. No tiny detail is missed.
The reborn doll creators usually start
with a vinyl toy doll, remove the factory
paint and carefully apply soft skin-tone
colorants to simulate real skin. Quite
often, customers may order a reborn
that resembles them. These might include
simulated veins under the skin, milk spots
for a newborn, special shading, and
finger/toe nails are added. The reborns
hair is usually premium mohair, but
sometimes real babys hair is used.
Figure 1 from Bushel and a Peck
a site for reborns shows a very
lifelike baby. Later models have used
vinyl-silicone polymers for a very realistic
skin, with rubber-covered glass pellets
in the body for realistic weight and a
squishy, baby-like feel. Heartbeat and
breathing simulators add realistic life-
likeness to the baby, and even a crying
box rounds out the robot baby.
As a robotics enthusiast and sci-fi
reader, my mind seemed to venture
towards an evil creature like Chucky,
rather than a lovable baby. eBay has
thousands of reborns listed, from less
than $100 to thousands of dollars to
satisfy the needs of those who desire an
Then NOW
a
n
d
ROBOTS FROM HUMANOID
TO HUMAN STATUS
b y T o m C a r r o l l
FIGURE 1. Reborn Sarah.
Then&Now.qxd 9/3/2008 9:05 AM Page 78
extremely life-like humanoid, albeit a baby
humanoid. Reborn doll kits, special tools
such as hair insertion needles, and many
other reborn supplies are also available.
If a baby is too much for you, Ive seen
robot cats and dogs that seemingly lie
asleep in a basket with a breathing
motion that youd swear was real.
Robot Humanoids
Getting past the eerie part of simu-
lated robot babies and pets, lets ask
the question just what is a humanoid?
As an experimenter, the term humanoid
merely describes a robot that has
human appearances. So, what does the
rest of the world think a humanoid is?
Any of the earliest ancestors of
modern man.
A creature resembling man, as one
of mans early ancestors.
Nearly human, as in appearance or
behavior.
A being having human form.
A robot or creature resembling a
human being.
In sci-fi, an alien from outer space
or a robot that physically resembles
a human being.
An automaton that resembles a
human being.
Notice that all of these various
descriptions describe appearances and
characteristics of some sort of creature
that is not an actual human. They start
out with an anthropologists view and
progress to a science fiction description
and on to a robotics experimenters idea
of what a humanoid is. It seems to me
that a description of a humanoid is
even more vague than that of a robot.
A human being is far more than
the above definitions. A mechanical
creation can have the appearance of a
human, and yet, not have the many axes
of motion or degrees of freedom of it
arms, legs, body, and head. Even a robot
with 40 or 50 axes of motion still will
not approximate a human with its
capability of subtle motions. Add in
voice nuances, subtle eye movements,
facial expressions, body motions, and
other human characteristics and a
person desiring to produce a life-like
humanoid robot is faced with an
uphill battle. A humanoid adult robot
certainly is more complex to construct
than a rebuilt baby doll toy, even with
mechanical extremity motions added.
Certainly, we have to start at some
basic point and progress through many
levels of development before a believable
humanoid robot is produced. None of
the above descriptions mention intelli-
gence, capabilities, or finite features.
Looking at basics, for years, robot
builders have felt that a humanoid
robot does not need to be bi-pedal in
nature but feel that it should have the
general appearance of a human being.
Two arms and a swivel head at the top
of a torso might be considered basic
requirements, but some may argue
this point. Despite experimenters best
intentions, robots have yet to even
come close to approximating a human
being. Whether anyone would admit
it or not, the dream of many robot
experimenters would be to design
and build a robot that would be
indistinguishable from a human being.
A robot that looked like a Nestor
Class NS-5 (Figure 2) from the movie
i-Robot would be great, but a machine
like the Stepford Wives shown in Figure
3 could possibly be the dream of a few
people today. If you recall either of the
two versions of the movie, a mens club
in a generic New England town fabricated
look-alike humanoid replicas of each of
the members wives, and somehow
disposed of the flawed real wives. In the
film Bicentennial Man, Andrew the
character played by Robin Williams
desired to be recognized as a real human
being. Figure 4 shows Williams character,
and a bimbo robot companion
overlooking a roboticist building him a
new face. It took Andrew 200 years to
achieve the goal of becoming a human.
Maybe you consider one of the
Replicants from Blade Runner as a
lot closer to reality. Many people have
decided that such a machine is
absolutely impossible with todays
technology but one never knows.
The Turing Test
The Turing Test for computer
intelligence has puzzled humans in
recent years: Is it a human on a key-
board hidden out of sight answering my
questions or is it a computer trying to act
like a human? For those readers who
are not familiar with this famous exam,
Alan Turing proposed the following test
of computer intelligence in his 1950
FIGURE 2. iRobots NS-5.
FIGURE 3. The latest version of
the Stepford Wives.
SERVO 10.2008 79
FIGURE 5. A famous New Yorker cartoon.
FIGURE 4. Bicentennial Man.
Then&Now.qxd 9/4/2008 7:59 AM Page 79
80 SERVO 10.2008
paper entitled: Computing Machinery
and Intelligence. It basically stated: A
human judge engages in a natural lan-
guage conversation with one human
and one machine, each of which tries
to appear human; if the judge cannot
reliably tell which is which, then the
machine is said to pass the test. In
order to test the machines intelli-
gence rather than its ability to render
words into audio, the conversation is
limited to a text-only channel such as
a computer keyboard and screen.
It was his way of determining if a
machine (computer) could think a
basic attribute of a human being.
Figure 5 shows a popular cartoon
of two dogs at a computer by Peter
Steiner from the New Yorker Magazine
which depicts a very valid argument
about intelligence and whose it may be
on the Internet. It is both humorous and
frightening. With todays instant messag-
ing on the Internet and on cell phones,
the sometimes cryptic sentences and
responses could easily be generated by
a computer. A person with an evil bent
could easily turn their computers IM
session over to a carefully-crafted pro-
gram and drive the person
on the other end crazy.
From Intelligent
Computers to
Intelligent
Robots
We think of the creators
of 20th-21st century science
as the only people who have thought
of machines as being human.
Seventeenth century French philoso-
pher, Rene Descartes famous
Discourse on the Method of Rightly
Conducting the Reason and Seeking
Truth in the Sciences had an interesting
viewpoint on human machines.
Descartes known by many as the
Father of Modern Philosophy, and
much of subsequent Western philosophy,
wrote the following in his Discourse:
If there were machines which
bore a resemblance to our bodies and
imitated our actions as closely as
possible for all practical purposes, we
should still have two very certain
means of recognizing that they were
not real men. The first is that they
could never use words, or put together
signs, as we do in order to declare
our thoughts to others. For we can
certainly conceive of a machine so
constructed that it utters words, and
even utters words that correspond to
bodily actions causing a change in its
organs ... But it is not conceivable
that such a machine should
produce different arrangements
of words so as to give an appropri-
ately meaningful answer to
whatever is said in its presence, as
the dullest of men can do.
Secondly, even though some
machines might do some things as
well as we do them, or perhaps
even better, they would inevitably
fail in others, which would reveal
that they are acting not from
understanding, but only from the
disposition of their organs. For
whereas reason is a universal
instrument, which can be used in
all kinds of situations, these
organs need some particular
action; hence it is for all practical
purposes impossible for a machine
to have enough different organs to
make it act in all the contingencies of
life in the way in which our reason
makes us act.
Not bad for a thinker of 370 years
ago, long before any sort of true
humanoid robot. Turing based a lot of
his work on Descartes writings.
The amazing Nikola Tesla also a
follower of Descartes and a developer
of automata (there was no word,
robot at the time) wrote the
following: ... I have by every thought
and act of mine, demonstrated,
and does so daily, to my absolute
satisfaction that I am an automaton
endowed with power of movement,
which merely responds to external
stimuli beating upon my sense organs,
and thinks and moves accordingly ...
Obviously, to put into practice
this idea, it would be possible to
construct a machine that would have
the arms and legs, and which would
walk in an upright position, but this
would additionally complicate the
task and make it more complex.
Humanoids of Today
I believe that all of us who build
robots have come to the conclusion
that it is not necessarily our complex
communication process that sets us
apart from the animal world or even
the best humanoid robots in existence
today. It is probably our ability to
create very complex movements
and manipulate objects extremely
accurately, along with our incredible
brains. Our suite of sensors is second
to none if all attributes are gathered
together. Hawks may have keener
vision and can see a mouse scurrying
a mile away. A fox may hear the same
mouse under three feet of snow. A
dog may sense a smell that surpasses
our most sensitive instruments.
However, when our senses are
coupled to our brain, we blow the animal
world away. We can take a request to
locate a tool that weve never seen or
even heard of and find it in a pile of junk
in a drawer, just by a simple verbal
description. Tom, bring me the 3/8
wrench that is bent at a 45 degree
FIGURE 6. David Hanson
working on Einsteins head.
FIGURE 7. Harrison
Ford and Sean Young.
Photo courtesy of NBC.
FIGURE 8. Hubo Hansons
Einstein.
FIGURE 9.
Actroid-DER-01.
Then&Now.qxd 9/3/2008 9:06 AM Page 80
angle. Its in the drawer over there.
You or I should be able to look down
into the pile of miscellaneous tools, and
if part of this bent wrench is visible, be
able to retrieve it, no matter how it is
positioned. Could the most sophisticated
robot vision system do the same?
The Hanson Test
Will there be a Turing Test for
humanoid robots? Most certainly, but
not in my lifetime. The test itself may
be described and given a name,
probably named after a robotics
person who has contributed the most
to the art and science of the creation
of an extremely realistic humanoid
robot. For now, lets call it the Hanson
Test in honor of David Hansons work
in realistic humanoid faces (Figure 6).
So, how will this test be administered?
In addition to intelligent verbal
communication like the Turing Test,
additional human qualities and fea-
tures such as manipulative dexterity,
walking and running, examination of
facial features and subtle movements,
and possibly simple hand movement
tasks such as handwriting might be
included. Automatons such as the
Scribe, the Draughtsman, and the
Musician built by Henri Maillardet and
Jaquet-Droz that I wrote about in my
article on Power were constructed
hundreds of years ago, yet could
write. Many robots can walk on two
legs these days and Hanson has given
robots finite facial movements.
Do we have a panel of humans in
front of the prospective robot to be
tested? Do we develop some exotic
examination machine such as the
character Deckard used in the movie
Blade Runner to examine
the female replicant,
Rachel (Figure 7)?
Personally, I see the devel-
opment of such an instru-
ment as quite a bit into the
future. I think the first real
attempts will be to take a
reborn baby, give it plenty
of silent servos, use the
expertise of someone like
Hanson to place these
actuators in just the right place, and
use his patented silicone elastomer
(Frubber) for a realistic skin. Since
babies exhibit random movements
and babbling, maybe a super reborn
will be the first humanoid to fool a
panel of experts.
In The Uncanny Valley
Ive highlighted some of the very
realistic robot humanoids in my columns
that have achieved fairly humanistic
status. Robotics researchers from the
Korea Advanced Institute of Science and
Technology (KAIST) have taken a care-
fully crafted head of Einstein, produced
by David Hansons robotics company,
and placed it upon the humanoid body
of their HUBO body, creating what
they call Einsteins Return from Outer
Space (Figure 8). Well, the final result
is a bit creepy but the science and
technology involved in both parts is
phenomenal with 35 degrees of free-
dom for the body and 31 for the heads
movements. Each part is controlled by
a separate PC interconnected by an
RS-232 link and are externally controlled
by a wireless connection to a laptop
computer. Weve marveled at Hondas
Asimo and Sonys Aibos for years, but
Korea has made a major
splash with their KAIST
robot projects. The
Actroid from Japan made
its debut in 2003 at the
International Robot
Exposition in Tokyo. The
Repliees, as they are
called, are made in
several models and are
unique for their ability to
recognize a person and
speak to them with some human-like
reactions such as blinking, hand
motions, and breathing. The
humanoids motions are mostly
controlled by air cylinders with the air
and controls through the robots feet
that are permanently attached to the
floor. In 2006, a male version the
Geminoid HI-1 was formed after
its creator, Hiroshi Ishiguro. That
same year, Actroid-DER2 made an
appearance at NextFest 2006, and
later toured US cities (Figure 9).
In Finality
Are we even close to having a
true humanoid robot? Could a
humanoid pass some sort of Turing
Test for robots? Do we actually need
a robot among us that is human-like,
rather than humanoids similar to the
Nestor Class NS-5s depicted in i-
Robot? Will Unit Bob from The Spatial
Miscellany in Figure 10 actually have
to cram for such a test? It certainly is
exciting to me to see researchers and
robot developers around the world
working on creating a truely realistic
humanoid. Its exciting to think
about the possibilities of humanoids
indistinguishable from humans. SV
SERVO 10.2008 81
All Electronics Corp. ..........................19, 66
AP Circuits/e-pcb.com ............................55
AWIT ..........................................................66
Boca Bearings ....................................55, 66
Budget Robotics ......................................12
CipherLinx Technologies .........................66
CrustCrawler ...............................................3
Electronics123 ..........................................19
Futurlec .....................................................66
Gears Educational Systems, LLC ...............9
Hitec ..........................................................51
Jameco ......................................................43
Lorax Works ........................................19, 66
Lynxmotion, Inc. .......................................82
Maker Faire ...............................................77
Maxbotix ...................................................66
Net Media .................................................83
Parallax, Inc. ...............................Back Cover
PCB Pool .............................................66, 72
Pololu Robotics & Electronics .............7, 66
Robo Development .................................33
Robotis ......................................................48
RobotShop, Inc. .................................21, 66
Saelig Company .......................................39
Solarbotics/HVW .....................................12
SolderByNumbers.com ...........................17
Smiley Micros ...........................................72
Sparkfun Electronics ..................................2
Super Bright LEDs ....................................66
Technological Arts ...................................66
Vantec .......................................................65
Weird Stuff Warehouse ...........................19
Advertiser Index
FIGURE 10. A robot crams
for the Turing Test from
the Spatial Miscellany.
Then&Now.qxd 9/3/2008 9:08 AM Page 81
Full Page.qxd 9/3/2008 12:41 PM Page 82
Full Page.qxd 4/29/2008 4:05 PM Page 83
backcvr.qxd 9/3/2008 12:19 PM Page 84

You might also like