Penguin
Note: You are viewing an old revision of this page. View the current version.

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.

NBC/NXC Building Notes

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/