The bright coloured bricks most people associate with childhood, rainy days indoors building houses, cars, trains and spaceships, can also be used to build robots and to open up a world of robotic programming. There are two main types of Lego robotic kits available, the DACTA series which uses a variant of the Logo language, and the newer robotics kits based on the RCX (Robotic Command Explorer) brick.
The idea has always been for a robot to have sensors which can monitor the environment and electrical outputs to control things like lights and motors which respond to changes in variables like reflectivity and heat. Using two reflectivity sensors and with two motors a Lego 'buggy' could follow a line drawn on a sheet of card, just like a 'real' robot following a path through a factory. As the left sensor detected a change in reflectivity (going from black to white) the response was to cut the left motor so the right one steered the buggy back over the line - and vice versa. Using the same principles a variety of machines could be built which mimicked real-world devices such as plotters, conveyor belts and drinks dispensers.
The DACTA robots were controlled by umbilical wires from an input-output box but the RCX has its own on-board power and sensor logic. Programs are written on a PC and then uploaded to the RCX via an infrared transmitter connected to the serial port. Freed from the encumbrance of trailing wires robots based on the RCX can e much more versatile and there are a number of competitions along the lines of Robot Wars. Such is the programming power of the RCX it is used in courses at university in Robotics and features in artificial intelligence activities such as exchanging items and robotic volleyball.
Lego provide a visual programming language which is easier to learn than Logo. The RCX has its own microprocssor, 16k of ROM and 32k of RAM for firmware and user programs (6k), which puts it in the class of a 1980s micro. There is a software development kit available from the Mindstorms web site which opens up the RCX to Visual Basic Active-X programming. RCX enthusiasts have discovered that they can load almost anything into the RAM and there are various languages available such as NQC (Not Quite C), legOS (C/C++), pbForth (programmable brick Forth), BrainStorm (a form of Logo), Bot-Kit (Smalltalk), TclRCX and four or five variations on Visual Basic. Members of the Lego User Group are developing a Java Virtual Machine for the RCX which will support multiple threads and provide better reaction to real-time inputs.
| www.legomindstorms.com | The official Lego site |
| www.lugnet.com/robotics/rcx | Lego User Group's site |
| www.mop.no/~simen/legoscan.htm | Simen Svale Skogsrug's site. Build a scanner made from Lego |
| www.lego.com/dacta | The DACTA division of Lego |
| el.www.media.mit.edu/projects/programmable-brick/ | The story of the RCX, developed at MIT. |
| lcs.www.media.mit.edu/people/fredm/projetcs/cricket/ | Even smaller robots called 'crickets', not yet available in Lego form. |
| graphics.stanford.edu/~kekoa/rcx | Kekoa Proudfoot's site at Stanford University. |
| www.crazyrobots.com | Location for a JVM (Java Virtual Machine) for the RCX) |
| www.oreilly.com/catalog/lmstorms | O'Reilly publish 'The Unofficial Guide to Lego Mindstorms Robots', £16.99. Includes designs in pictures and URLs. |