Lego Mindstorms is a family of robotics kits from the company famous for those open-ended brick-building kits. Each Mindstorms kit includes a few motors, an assortment of sensors, plus a collection of more-regular Lego parts (from the Technics range), together with a fully-programmable microcontroller. The company includes, in the box, proprietary GUI-based programming environments for Macintosh and Microsoft Windows machines, but it has also been cooperative with the development by others of open-source programming tools.
The latest product in this range is the Mindstorms NXT 2.0 kit. This includes three servomotors, two touch sensors, a colour sensor (with built-in switchable light source), and an ultrasonic sensor which can be used for active ranging or passive sound detection. The microcontroller now has the option of hooking to a PC via either USB or Bluetooth.
For Linux users, the best option for programming these seems to be a pair of languages called NBC (a low-level assembler) and NXC (a higher-level C-like language). These are part of the open-source Bricx Command Center project, the main part of which is Windows-only. However, the nbc command-line tool can be built for Linux, and this implements both languages as well as functions for uploading compiled programs into a connected NXT microcontroller.
Ignore the source release tarballs linked from the NBC Beta Releases page above; they are all out of date. Instead, get the latest source out of SubVersion (note you will need Free Pascal to compile it):
mkdir nbc nbc/beta svn co https://bricxcc.svn.sourceforge.net/svnroot/bricxcc bricxcc/ # above may take a few minutes make -C bricxcc/ -f bricxcc.mak archivenbcunix # above puts Unix/Linux-compilable source tarball in nbc/beta cd nbc tar xzvf beta/nbc-1.0.1.b36.unix-src.tgz make nbc
The instructions say to make install at this point, but as of this writing that will only install the ManPage into /usr/share/man/man1. To install the executable, do something like
cp NXT/nbc /usr/local/bin/
2 pages link to LegoMindstorms: