Differences between version 9 and predecessor to the previous major change of LegoMindstorms.
Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History
| Newer page: | version 9 | Last edited on Tuesday, February 2, 2010 12:33:15 pm | by LawrenceDoliveiro | Revert |
| Older page: | version 8 | Last edited on Monday, February 1, 2010 11:17:34 pm | by LawrenceDoliveiro | Revert |
@@ -1,13 +1,15 @@
__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.
+The latest product in this range is the Mindstorms NXT 2.0 kit, available for about $500
. 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.
!! Software
-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|http://bricxcc.sourceforge.net/] project, the main part of which is Windows-only. However, the [nbc|http://bricxcc.sourceforge.net/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.
+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). NXC compiles to the NBC bytecodes, which in turn are interpreted by firmware on-board the NXT controller
. These languages
are part of the open-source [Bricx Command Center|http://bricxcc.sourceforge.net/] project, the main part of which is Windows-only. However, the [nbc|http://bricxcc.sourceforge.net/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.
-Another
useful library is [NXT_Python|http://home.comcast.net/~dplau/nxt_python/index.html]. This provides functions that can be used to directly examine and manipulate the state of the NXT controller from the host PC. Notwithstanding its requirements specifically mentioning Python 2.4, it does seem to work fine with Python 2.5.
+A
useful library is [NXT_Python|http://home.comcast.net/~dplau/nxt_python/index.html]. This provides functions that can be used to directly examine and manipulate the state of the NXT controller from the host PC. Notwithstanding its requirements specifically mentioning Python 2.4, it does seem to work fine with Python 2.5.
+
+Another compiler is [NXTGCC|http://nxtgcc.sourceforge.net/wiki/index.php/NXTGCC]. Unlikes NBC/NXC, this compiles to actual machine language for the ARM CPU. It can be used to write completely new firmware for the NXT controller
!! 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|http://www.freepascal.org/] to compile it):
@@ -24,6 +26,6 @@
</pre>
The instructions say to <tt>make install</tt> at this point, but as of this writing that will only install the ManPage into <tt>/usr/share/man/man1</tt>. To install the executable, do something like
-<pre> cp
NXT/nbc /usr/local/bin/
+<pre> install -m 755
NXT/nbc /usr/local/bin/
</pre>
