Lego's Mindstorms have been a popular platform for teaching robotics. The new Mindstorm NXT takes this to the next level with a sophisticated NXT control module featuring a pair of built-in processors. It also includes a new modular set of sensors and some impressive servos. The system is well packaged with great documentation.
Lego worked with National Instruments on the software. I will be taking a closer look at the Lego software and third party support in later articles of this series. For now, I will just let you know that it is probably even more impressive than the hardware that we are now examining.
By The Book
The Mindstorm NXT's building blocks are compatible with Lego's existing Mindstorms and Lego building blocks, although the Mindstorm NXT kits are self-contained. That is, all the robots discussed in the documentation can be built from parts within the kit. Of course, the idea is to learn enough so that you can build your own robots, and that is where it is handy to have a few extra building blocks in the box. I will discuss the building blocks at the end of the article.
Some of the robots you can build with the kit include the Tribot (Fig. 1) and the robot arm and claw (Fig. 2). I built the Tribot first, since it was the first robot in the book. The book includes graphical step-by-step instructions. This pictorial approach allows children and adults of almost any age to build the system. Of course, that is just the start, but at least the construction side of things does not require any expertise.
The step-by-step approach is good for even complex entities. Although the documentation does not mention it explicitly, it is possible for students to infer suitable construction techniques that can be used for building other robots and structures. The documents do not highlight construction or design techniques, so it does help if novices get some input from more experienced people (as I have often seen Lego robots disintegrate as they operate because of poor designs).
The NXT Intelligence
The cookbook process includes the incorporation of the NXT control brick/module (Fig. 3) into the system. This control module contains a 48-MHz, 32-bit ARM7 microprocessor plus a 4-MHz, 8-bit Atmel AVR microcontroller. The AVR handles the peripherals while the ARM7 runs the main application. There are 6 AA batteries (alkaline or rechargeable) inside the back of the module.
The ATM7 has 256 Kbytes of flash memory and 64 Kbytes of RAM. These are non-expandable. The AVR has 4 Kbytes of flash and 512 bytes of SRAM. The AVR is essentially fixed from a programmer's standpoint, while the ARM7 is the main application platform.
The 64- by 100-pixel LCD display supports a menu system (Fig. 4) that can be navigated using the four buttons on the front pane. There is a USB 2.0 port that can connect to a PC, but I found the Bluetooth wireless connectivity to be more effective. A Bluetooth dongle is not included, but if you have a Bluetooth keyboard or mouse then you probably have a compatible interface. The Logitech keyboards I have in the lab work very well with this interface. It can be used while the robot is running, and it can also be used to download new applications. As any roboticist will tell you, untethered development is always preferable.
The control module has 4 input ports (1, 2, 3, 4) and 3 output ports (A, B, C). All use cabling with an RJ-12 form factor (Fig. 5), but the actual connectors are keyed to the right as opposed to the center keying found in regular RJ-12 telephone connections.
The module also has a built-in speaker that is driven by a digital-to-analog converter. Its 8-KHz rate is sufficient for voice output and the system includes a set of predefined verbal responses.