Meet Oscar, my robot. As robots go, he's pretty useless: He knows how to turn around when he bumps into an object. He beeps when he sees a light (sometimes), and he can do a little back-and-forth dance. That's it. For that matter, he falls apart on a pretty regular basis. Any seventh grader could probably do better. But hey, he's mine, and I'm proud.
Oscar is just one of millions of robot spawn made possible by Lego Mindstorms. Lego Mindstorms, in case you've missed the buzz, is the brand new "Robotics Invention System" from the world's most beloved producer of plastic blocks. It's hard to believe that Lego -- perhaps the most perfect toy for inventive children -- could be improved upon, but the company has managed to do so: Instead of just building Lego creatures, children ages 11 and up can now build Lego creatures that actually do things.
Most people to whom I mentioned the Mindstorms system had the same wistful response: "I wish I'd had that when I was a kid." But Mindstorms isn't just for kids. It's an addictive and compulsive programming system that will keep an adult entertained and frustrated for weeks.
The $200 Mindstorms system is built around the RCX programmable microcomputer -- a giant yellow Lego that downloads programs created on your computer. The RCX serves as the base of your robot and controls a variety of included attachments: a light sensor, two touch sensors, and two motors. Using these components, and 727 parts (Mindstorms is also compatible with other Lego toys), you can build an infinite variety of mobile robots. There are also three available expansion kits -- RoboSports (robots that play ball), Extreme Creatures (strange animals) and Exploration Mars (build a camera-controlled rover).
Actual programming of the robot takes place on your PC (sorry, no Mac version available) using "RCX Code," an object-oriented programming system that links command blocks. To make a robot that reverses direction when it bumps something, for example, you select a green "reverse direction" block and connect it to the red "touch sensor watcher." Most of the command blocks are simplistic (go, stop, change direction, pause, beep, repeat), but they can produce relatively complex sets of behaviors when used in the right order with a well-built Lego robot. You can, for example, build belt drives, mechanical arms, walking robots and alarm systems.
It is a beautiful but simple system -- truly, programming for dummies. But there's still a steep learning curve. The instructions brag that a child can build a working robot within an hour of breaking open the box; this is a bit optimistic. Take, for example, the process that I went through from box-opening to completing Oscar -- keeping in mind that I am no technical genius, have never written program code and am still baffled by the workings of the innards of my car.
11:30 a.m.: I blithely disregard the easy-to-follow instruction guide provided only to reviewers -- I want the real experience -- and load up the CD-ROM setup program. Piece of cake. I put batteries in the RCX, and get the motors to run. "You are amazing," the computer tells me.
12:00 p.m.: I am rummaging through the box, trying to find a tiny piece with two holes and four bumps, to build the basic Pathfinder robot necessary for the training program. I cannot find the piece amid the 726 other blocks. Tiny chunks of plastic go flying and disappear into the crevices of my desk as I paw through the box. This, I suddenly recall, is what I hated about Lego when I was growing up.
12:30 p.m.: I have assembled the Pathfinder, and walked through the first programming demo: Make a robot that moves forward in a straight line. My Pathfinder goes in circles. I start swearing.
12:35 p.m.: I figure out that I haven't rigged the motors to the RCX properly, causing one motor to rotate in the wrong direction. I fix it, and the Pathfinder goes forward. I cheer.
1 p.m.: Having finished the demo and completed a rudimentary robot that goes forward and beeps, I decide to tackle one of the provided challenges. Feeling confident, I skip over the level one challenge and pick level three. "Build a robot that sees a light, beeps, and flips over" (an Acroscanner) sounds far more interesting than "build a robot that can complete an obstacle course" (the Outback Tracker).
1:45 p.m.: After careful study of several prototype diagrams (consistent with the Lego goal of stimulating thinking, the "Constructopedia" tells you how to start, but not finish, robot designs), I have a rather flimsy-looking robot and a program, cobbled together from sample code and my own ingenuity, that ought to make my wheeled creation flip over, beep and keep driving when it encounters a wall. I am almost sweating in anticipation as I press the "Run" button. The robot immediately thrashes in a circle and then disintegrates. I tear my hair in frustration.
3 p.m.: I've given up on the challenge. Instead, I've built a robot that looks somewhat like a dune buggy, and I've managed to get it to go forward, hit a wall and stop without breaking. I can't figure out, however, why it won't then turn in a circle.
3:30 p.m.: Welcome to Mechanics 101 -- I realize that wheeled machines need axles to turn. My robot works. I'm brilliant.
4:30 p.m.: I am entertaining (or irritating) everyone in the office with Oscar. He runs forward until he hits a wall, reverses direction, beeps, moves back and forth four times, turns around in a circle and continues until he hits another wall. My construction methods are flimsy -- clearly, I'm out of touch with my old Lego skills -- so I have to repair Oscar every few minutes. I am enthralled. I am a genius. I am exhausted.
The system is not without its flaws. The main RCX component, for example, doesn't easily interlock with other Legos, and the weight from the batteries sometimes causes the RCX to detach. And, as I discovered, Lego robots aren't always sturdy, and violent motion (say, smashing into a wall at top speed) can cause shabbily built robots to self-destruct. I also found myself wishing that the Constructopedia guidebook, which offers building tips, offered more details about constructing gears and triggers. But these are relatively minor gripes.
Mindstorms has been nearly 15 years in the making, since Dr. Seymour Papert of the MIT Media Lab began working with Lego to put the Logo programming language into Lego bricks. The Mindstorms box is emblazoned with a company mantra, a quote from Papert, who is also Lego Professor of Learning Research: "Knowledge is only part of understanding. Genuine understanding comes from hands-on experience."
So, is Lego Mindstorms appropriate for kids? I'd venture to say that it's not for all kids, but the system is simple enough for bright and inventive pubescents. There is probably more education to be had in Mindstorms than any Lego product on the market; there is no better way to teach kids about mechanics than to let them build an actual working machine.
But judging by the members of the Lego Mindstorms Web site, where Mindstorms owners can read tips and upload their creations for the world to see, there are more adults using the product than kids. A random sample of users turned up an architect, a computer researcher, an aeronautical engineer, a computer science student and one child who is "really good at math." According to a recent Wired News story, Mindstorms is also proving quite popular with hackers. It's a testament to the product's success that Mindstorms is challenging enough to stimulate an aeronautical engineer, yet simple enough to engage a technical neophyte like myself.
The only real flaw of Mindstorms is that there is only one RCX controller, which means that only one robot can exist at a time. I had visions of fleets of robots, perhaps playing soccer or dutifully sweeping the floor of my kitchen. Alas, that is not to be. Oscar will have to be exterminated if I want to build something bigger and better. That, my friends, is the life of a Lego.