I wrote a column on amateur robotics for Nuts & Volts magazine from 1992 to 1998. Many readers have written me to request back issues or copies of articles they missed, or for an entire set of columns to use for reference. This seemed like an excellent reason to do a roundup book, and in early 2000 I published a book with A. K. Peters containing about 60 of my favorite columns. Response has been very gratifying, and at one time I had shot to number 1374 on Amazon.com's best-seller list. :-)
My home page
Introduction to Build Your Own Robots!
Building a robot fascinates people. Seeing the mechanical fruits of your labor roll, slither, stalk, or lurch across the living room floor has fired the imagination of tinkers of all ages. Whether your ideal machine mows the lawn, explores Mars, fetches beer, or just looks way cool, the feeling is, if you can imagine it, you can build it. Or at least, you can try to build it.
But first-time 'bot builders quickly hit one of many walls, and often call it quits. Unlike other high-tech hobbies, robot-building requires a workable tool set in a wide range of fields. You need mechanical tools for building frames and mounts, electronics gear for wiring circuitry, and software to write the code that makes everything work together. Few people, starting out, have a strong enough tool set in all three areas to pull off a first robot.
Even having a well-stocked workroom and a hurking PC isn't enough, because you also need the skill set to use all of these tools well. A strong frame loaded with top-notch electronics just gathers dust without robust software to drive it. The best robotics program written is worthless unless you can load it onto a working microcontroller with good mechanics surrounding it.
These seemingly insurmountable walls face anyone trying to build their first robot. Some people scale down their ambitions, opting for a simpler, though perhaps less satisfying, first project. Others charge ahead, sometimes creating a masterpiece but more often making a mess. All too many give up, postponing and eventually abandoning the dream of watching their own mechanical creation chase the family cat.
But the walls aren't insurmountable, only tall, and any task can be made simpler if you follow in the footsteps of others. It was to break down these walls, or at least break a trail around them, that I began writing a column on amateur robotics in Nuts & Volts magazine, back in October of 1992. Each month, I tried to provide one more foothold for those dreaming the dream. Topics included how to write motor control software, how to wire up a microcontroller, or how to make a super wheel mount. Scattered through the hard-core robotics info was the occasional discussion of famous or fascinating machines built by others, and sometimes I would include full instructions on a complete robotics project. Each column was different and, I hope, useful. I know they were lots of fun to write.
Yet even writing about robots can become wearying, and after nearly 70 columns, I decided to call it quits, to change direction. But the calls from readers asking for a collection of my columns, and for copies of older columns missed or lost, was incessant and, finally, decisive. So I present here a selection of my past Amateur Robotics columns.
These are my favorites, written with the beginner and intermediate builders in mind. Those of you who have never seen a microcontroller should be able to pick up a working knowledge without too much effort. If you have already built a couple of large electronics projects, you will find useful information specific to making a robot run. And those readers with a 'bot or two behind them already will find ideas for new robotics projects.
These columns represent tools, built from my experience, to make the hobby of amateur robotics more fun and more rewarding. Most of the tools herein are my own design, the fruits of my own hours. Others are collaborative efforts, the results of projects I completed with fellow robot hackers. Regardless of the source, think of each column as one more tool that you can bring to bear on a large and intricate problem, that of building a robot to call your own.
Some of these columns show their age. Many appeared several years ago and deal with items no longer available. I doubt anyone will be able to find a Ready-Set-Go toy truck nowdays, and I'm sure all of the surplus bargains (and even some of the surplus outlets) have vanished by now. But the techniques I used for modifying or upgrading those items still have value, and you can learn a lot from the approaches I describe.
Other columns describe material that was novel at the time, but has since matured or even disappeared, replaced by newer and better. But the columns still contain useful information, and the recent history they provide helps illustrate how quickly this hobby is changing.
I tried to arrange these columns based on subject matter, but often an article covers multiple subjects. Thus, you might find a column that discusses IR sensor technology and how to write a 68hc11 interrupt handler. To help you sort out what column handles which subjects, I've provided short descriptions in the table of contents. You can also use the index at the back of the book for more help. But I encourage you to view this mixture of subject matter as an inducement to browse, to read through each column repeatedly, sifting it for information and for ideas on your next robotic project.
This hobby is as much about people as it is about hardware. The fun I've had building robots over the years has been multiplied tenfold by the joy of working with the brightest, most capable group of hackers I've ever known. The membership of the Seattle Robotics Society served as springboard, catalyst, cheerleader, critic, and incubator for all of the ideas you see here, and I owe them all more thanks than I can express.
Finally, my wife, Linda, deserves both praise and apologies for putting up with the long hacking sessions, the too-short deadlines, and the frustrations that come with the hobby. I know she enjoyed the successes, the fun of watching me finish another machine, but she also had to put up with the stress when that machine didn't work, and her patience and support helped make the column and this book possible.
Keep on keeping on...
Here is the book's table of contents. This is my working version, so the numbers in the right-hand edge aren't page numbers, they are file numbers. See what you think of the topics covered...
Table of Contents Introduction xx Getting Started Inspiration and Implementation (June, 1993) 09 Review of Mobile Robots book; parts list for basic 68hc11 robot computer; introduction to 68hc11 MCU. Your First 68hc11 Microcontroller (July, 1993) 10 Schematic for basic 68hc11 robot computer; pinout of 68hc11 PLCC socket; schematic for RS-232 converter; modifying hobby R/C servo motors; using PCBUG11. Allow Me to Introduce Huey (August, 1993) 11 Huey, my first 68hc11 robopet; construction techniques; templates for robot code in 68hc11 assembly language. The Basics of Hobby Robotics (April, 1997) 55 Frame materials, fasteners, tools, motors, batteries; hacking hobby R/C servo motors. An Intro to 68hc11 Firmware (May, 1997) 56 Software utilities for robotics; using PCBUG11; writing SBasic programs; controlling hobby R/C servo motors. Software My Tiny Forth Compiler (December, 1993) 15 Introducing tiny4th; using the Rayovac Renewal rechargeable batteries. A First Look at SBasic (May, 1995) 32 Introducing SBasic; a review of Sensors for Mobile Robots, by Bart Everett. Remote Reloads with 811bug (January, 1996) 40 811bug, a powerful 68hc11 utility; details on firmware for BYRD; pulse- width modulation (PWM) software in SBasic. Running .COM Files on Your Robot (May, 1996) 44 BOTBios, a robotics software system for the V25 microcontrollers; the innards of BOTBios; ROMMAKER, a tool for building ROM discs. Inside the 68hc11 (June, 1997) 57 A beginner's view of robotics software; what happens after reset; using interrupts; a review of Understanding Small Microcontrollers, by Jim Sibigtroth; a quiz on boolean operators. Electronics Quick and Easy 68hc11 Expansion (November, 1993) 14 Using the CGN 1101 expanded-mode 68hc11 microcontroller board; adding battery-backed RAM to the 1101; introducing the Forth programming language. Introducing the BOTBoard (January, 1994) 16 A review of Marvin Green's BOTBoard; using IR LEDs; the IR Robo-Tool; a review of the icc11 C compiler. A Simple DC Gearhead Motor Controller (February, 1994) 17 How to control small DC gearhead motors; mods to the BOTBoard; a first look at the Pacific Science Center robots. A Gel-cell Battery Charger for Cheap (May, 1994) 20 Build a simple and cheap gel-cell battery charger; a couple of show-bot ideas. Build a Switcher with the MAX642 IC (January, 1995) 28 Using the Maxim MAX642 switching power supply IC; adding another level to Max, my robotic research platform. Try This Junk-Box Switcher Supply (September, 1995) 36 Build the Junk-Box Switcher; 5th GEAR, a robotics campout; a look at "Frank's thingy." Son of BOTBoard (February, 1996) 41 Introducing the BOTBoard-2, an expanded 68hc11 computer board; the Tamiya motor gearboxes; some catalogs for robot builders. More (and More) IR LEDs (November, 1995) 38 Add lots of IR LEDs to your robot; tools for designing your own PCBs; a 68hc11 board from Down Under; choosing a programming language for robotics. Design of a Simple Line-following Array (June, 1996) 45 Design of a line-following sensor array; a "thank you" to those who have helped me; how to load and run your SBasic program, step-by-step. Stepper Motor Basics (July, 1996) 46 Working with stepper motors; a look at the L/R and chopper drivers; build a chopper drive system; SBasic code for running the chopper drive electronics. A First Look at the 68hc12 (September, 1996) 48 Three SRS members hack the new 68hc12 microcontroller; the software, the electronics, and the PCB. Check Out This New 68hc12 (March, 1997) 54 A first look at the 68hc912b32, Motorola's newest microcontroller; using SBasic to create 68hc12 code; test-driving the 68hc12's PWM subsystem. Mechanics A Basic Robot Design (September, 1994) 24 A report on 4th GEAR; we design a simple mechanical robot base; a small solar-powered robot; looking at Nature's designs. And Now, Here's ... Max! (October, 1994) 25 Build Max, my research robot platform; the basics of pulse-width modula- tion; I review TopDraw, a graphics editing program. Build an Open-frame Robot Body (February, 1995) 29 Constructing an open-frame robot; techniques for working with brass and copper frames; organizing a line-following contest; the Leatherman's Super Tool. Adding an Encoder to an R/C Servo (March, 1996) 42 How to add encoders to hobby servo motors; an SBasic program for using shaft encoder information. Robotic projects The Rapid Deployment Maze (September, 1993) 12 A review of the CGN 1001 68hc11 module; details of the Rapid Deployment Maze (RDM); rules for running an RDM event; building my RDM robot. Build BYRD, a Back Yard Research Drone (December, 1995) 39 I construct BYRD, my BackYard Research Drone; details on BYRD's design; adding tele-operation; a first look at BYRD's operating firmware. Rally 'Round the Line, Bots! (April, 1996) 43 Time-Speed-Distance (TSD) road rallies, using robots; concepts behind TSD rallies; rally instruction basics; adding more challenges to a TSD robot rally. The Dead Reckoning Event (November, 1996) 50 Building a stepper-based robot for the Dead-Reckoning (DR) contest; the National Semiconductor SimpleSwitcher® IC; setting up the motors; SBasic code for my DR robot. Hercules, My Smallest Robot (December, 1996) 51 Hercules, my smallest robot; driving high-current latches with the 68hc11 SPI bus; the Cyborgs and low-power computing. My Marble Maze Machine (February, 1997) 52 Running a marble through a maze; building a two-servo jointed platform; SBasic code for my marble maze-runner. Tacklebot, a Backyard Explorer (August, 1997) 59 Mars Pathfinder as inspiration; Tacklebot, a backyard explorer robot; my robot's innards; roboscrn, a generic graphical robot controller. Try Your Hand at a Mini-Sumo Robot (September, 1997) 60 A look at mini-Sumo, a smaller version of robot Sumo; the beginnings of an SBasic program for a mini-Sumo robot; how to start a robot club like the SRS. I Start on a Fire-fighting Robot (November, 1997) 62 I try to build a fire-fighting robot; the Trinity College Fire-fighting Robot contest; my search for 68000 tools; the Software Development Systems' demo package. Adventures in Hacking Decoding a TV Remote Control (November, 1994) 26 Marvin and I hack a TV remote control; deciphering the pulse stream; writing tiny4th code to interpret the signals; Marvin's BBOT robot frame; a review of the Rug Warrior robot kit. Wiring Up an RF Modem Link (December, 1994) 27 The Proxim RDA-100 RF modem; building the base station; building the remote unit; setup and testing. A Dirt-Cheap 8051 Development System (March, 1995) 30 Hacking the Practical Peripheral's PP144 external modem; making a dirt-cheap 8051 development platform; building a simple robotic eye. A Dirt-Cheap 8051 Board, Part 2 (April, 1995) 31 Hacking the PP144, part 2; controlling the board's 74hc595 latches; using IR for serial communications. Hacking a 68302 Modem Board (June, 1995) 33 A cheap 68302 development board, based on the Practical Peripheral's Pro-Class 14.4K external modem; figuring out the memory map; my first 68302 program. Hacking a 68302 Modem, Part 2 (July, 1995) 34 Part 2 of hacking the Pro-Class modem; using batteries for power; rewiring the serial port. The Ready-Set-Go Toy Truck (August, 1996) 47 My shiny, new Ready-Set-Go toy truck; tracing out the truck's control wiring; replacing the on-board MCU with a 68hc11 BOTBoard; SBasic code for controlling the RSG. Reworking the GameBoy® (March, 1998) 66 Driving the Precision Navigation Vector-2X electronic compass with a BOTBoard; the Nintendo GameBoy® as a possible robot controller; finding tools for hacking the GB. The 68hc11 A Look at the SPI (June, 1994) 21 An in-depth look at the Synchronous Peripheral Interface (SPI); timing details; using the 74hc595 as an eight-bit output latch on the SPI; hooking an LCD to the SPI; tiny4th code for controlling the LCD via the SPI. 68hc11 Memory Expansion (July, 1994) 22 Adding memory and I/O devices to the 68hc11 in expanded mode; adding battery-backed RAM; using PCBUG11, Motorola's Freeware tool; an 8x751 development kit from Philips Semiconductor. Way cool robots A Visit to the MIT Campus (March, 1994) 18 The MIT 6.270 class; my trip to Cambridge; some intense robot building; rounding up some pirate treasure. Designing an Interactive Robot Display (April, 1994) 19 Details on the SRS' construction of the Pacific Science Center robot display; a look at the beacon circuitry; Hall-effect sensors; the PSC-bot frame; some recommendations. Deep-sea Submersible Robots (August, 1995) 35 Finishing the hack of the Pro-Class external modem; some of my favorite California surplus stores; an up-close and technical look at MBARI's deep- sea submersibles, Ventana and Tiburon; a short review of Star Trek Creator, by David Alexander. Cleaning up the Tennis Court (October, 1996) 49 Four SRS members claim a national title; cleaning up the tennis court; details on the design of a vision-based robot; Alan Alda sees M1 in action. Robot Soccer (January, 1997) 53 Taking a world championship in robot soccer; an insanely difficult design task; how our team solved all the problems; details of the matches. The Extremes of Hobby Robotics (July, 1997) 58 From the smallest to the largest; the Photopopper, a light-seeking robot; building a Photopopper kit; details of its design; the big; bad 'bots of Robot Wars. A Whole Lot of Robots (May, 1998) 68 The first Northwest Regional Fire-Fighting Robot contest; a look at lots of SRS robots; a review of the Technological Arts' ADAPT-11C75 board; I say "Goodbye" to the Amateur Robotics column. Sidelights The NCC AI-CDROM (August, 1994) 23 I sample the Network Cybernetics Corporation's AI CD-ROM; a review of Albert Leenhouts' classic, Step Motor System Design Handbook; vectored execution in tiny4th. A Typical(?) SRS Meeting (October, 1995) 37 An up-close look at a typical Seattle Robotics Society (SRS) club event; a description of several contests; ideas for staging your own events. Some Powerful Software Tools (October, 1997) 61 Building up your set of tools; the Internet as a resource; a review of PFE-32; some 68hc11 C compilers. Appendices Contact information for companies mentioned in the book contacts.doc Instructions for modifying a Futaba S148 servo motor for use in robotics modservo.doc Web sites of interest to robot builders webpages.doc