Mindstorms NXT
   HOME

TheInfoList



OR:

Lego Mindstorms NXT is a programmable
robotics Robotics is an interdisciplinary branch of computer science and engineering. Robotics involves design, construction, operation, and use of robots. The goal of robotics is to design machines that can help and assist humans. Robotics integrate ...
kit released by Lego on August 2, 2006. It replaced the first-generation Lego Mindstorms kit, which was called the Robotics Invention System. The base kit ships in two versions: the Retail Version (set #8527) and the Education Base Set (set #9797). It comes with the NXT-G programming software, or optionally LabVIEW for Lego Mindstorms. A variety of unofficial languages exist, such as NXC, NBC, leJOS NXJ, and RobotC. The second generation of the set, the Lego Mindstorms NXT 2.0, was released on August 1, 2009, featuring a color sensor and other upgraded capabilities. The third generation, the EV3, was released in September 2013.


NXT Intelligent Brick

The main component in the kit is a brick shaped computer called the NXT Intelligent Brick. It can take input from up to four sensors and control up to three
motors An engine or motor is a machine designed to convert one or more forms of energy into mechanical energy. Available energy sources include potential energy (e.g. energy of the Earth's gravitational field as exploited in hydroelectric power g ...
, via a modified version of RJ12 cables, very much similar to but incompatible with
RJ11 A registered jack (RJ) is a standardized telecommunication network interface for connecting voice and data equipment to a service provided by a local exchange carrier or long distance carrier. Registration interfaces were first defined in th ...
phone cords. The plastic pin to hold the cable in the socket is moved slightly to the right. The brick has a 100×64 pixel
monochrome A monochrome or monochromatic image, object or palette is composed of one color (or values of one color). Images using only shades of grey are called grayscale (typically digital) or black-and-white (typically analog). In physics, monochrom ...
LCD and four buttons that can be used to navigate a user interface using hierarchical menus. It has a 32-bit
ARM7TDMI ARM7 is a group of 32-bit reduced instruction set computer, RISC ARM architecture, ARM processor cores licensed by ARM Holdings for microcontroller use. The ARM7 core family consists of ARM700, ARM710, ARM7DI, ARM710a, ARM720T, ARM740T, ARM71 ...
-core Atmel
AT91SAM7 Atmel ARM-based processors are microcontrollers and microprocessors integrated circuits, by Microchip Technology (previously Atmel), that are based on various 32-bit ARM processor cores, with in-house designed peripherals and tool support. Overvi ...
S256 microcontroller with 256 KB of FLASH memory and 64 KB of RAM, plus an 8-bit Atmel AVR ATmega48 microcontroller, and bluetooth support. It also has a
speaker Speaker may refer to: Society and politics * Speaker (politics), the presiding officer in a legislative assembly * Public speaker, one who gives a speech or lecture * A person producing speech: the producer of a given utterance, especially: ** I ...
and can play sound files at sampling rates up to 8 kHz. Power is supplied by 6 AA (1.5 V each) batteries in the consumer version of the kit and by a Li-Ion rechargeable battery and charger in the educational version. The Intelligent Brick remains unchanged with NXT 2.0. A black version of the brick was made to celebrate the 10th anniversary of the Mindstorms System with no change to the internals.


Development kits

Lego has released the firmware for the NXT Intelligent Brick as open source, along with schematics for all hardware components. Several developer kits are available that contain documentation for the NXT: * Software Developer Kit (SDK), includes information on host USB drivers, executable file format, and bytecode reference * Hardware Developer Kit (HDK), includes documentation and schematics for the NXT brick and sensors * Bluetooth Developer Kit (BDK), documents the protocols used for Bluetooth communications


Programming

Very simple programs can be created using the menu on the NXT Intelligent Brick. More complicated programs and sound files can be downloaded using a USB port or wirelessly using Bluetooth. Files can also be copied between two NXT bricks wirelessly, and some mobile phones can be used as a remote control. Up to three NXT bricks can communicate simultaneously via Bluetooth when user created programs are run. The retail version of the kit includes software for writing programs that run on Windows and Mac OS personal computers. The software is based on
National Instruments National Instruments Corporation, doing business as NI, is an American multinational company with international operation. Headquartered in Austin, Texas, it is a producer of automated test equipment and virtual instrumentation software. C ...
LabVIEW Laboratory Virtual Instrument Engineering Workbench (LabVIEW) is a system-design platform and development environment for a visual programming language from National Instruments. The graphical language is named "G"; not to be confused with G-c ...
and provides a visual programming language for writing simple programs and downloading them to the NXT Brick. This means that rather than requiring users to write lines of code, they instead can use flowchart like "blocks" to design their program.


NXT-G

NXT-G v2.0 is a graphical programming environment that comes bundled with the NXT. With careful construction of blocks and wires to encapsulate complexity, NXT-G can be used for real-world programming. Parallel "sequence beams" are actually parallel threads, so this software is quite good for running a handful of parallel sense/respond loops (example: wait 60 seconds, play a "bonk" sound at low volume if battery is low, loop), or blending autonomous control with bluetooth or other "remote control". The language supports virtual instruments for all Lego branded and most 3rd party sensors/components. Version 2.0 contains new tutorial challenges, a remote control, custom graphics and sound designers, and new Lego color sensor support. Community support is significant.


C# with Microsoft Robotics Developer Studio

Free tools ( Visual Studio Express in combination with the Robotics Developer Studio) enable programming the NXT using the C# language. Other supported languages include IronPython and
VB.NET Visual Basic, originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language, implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Visua ...
.


BricxCC, Next Byte Codes, Not eXactly C

Bricx Command Center Bricx Command Center (BricxCC) is the integrated development environment (IDE) of Next Byte Codes (NBC), Not Quite C (NQC) and Not eXactly C (NXC). These programming languages are used to program the Robots in the Lego Mindstorms series. Not Quite ...
(BricxCC) is the
integrated development environment An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools ...
(IDE) used to write,
compile In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
, and edit NBC and NXC programs for the NXT. Also, as BricxCC was originally made for the RCX, programs for it can be written using NQC via BricxCC. Different firmware versions can be flashed to the NXT using BricxCC. BricxCC has many utilities such as NeXTExplorer (upload/download files, defragment the NXT, use file hex viewer), NeXTScreen (view what's on the NXT's LCD, and capture images and video). Next Byte Codes (NBC) is a simple open source language with an assembly language syntax that can be used to program the NXT brick. BricxCC also has the capability to
decompile A decompiler is a computer program that translates an executable file to a high-level source file which can be recompiled successfully. It does therefore the opposite of a typical compiler, which translates a high-level language to a low-level la ...
standard .rxe NXT executables to NBC. Not eXactly C (NXC) is a high level open-source language, similar to C, built on the NBC compiler. It can also be used to program the NXT brick. NXC is basically NQC for the NXT. It is one of the most widely used third-party programming languages for the NXT. In NXC, even creating video games for the NXT is possible. Some people have even got working grayscale on the NXT Screen.


Robolab

Robolab 2.9 Robolab is the newer programming environment originally used on the RCX programmable brick. Version 2.9 has been updated so that it can be used to program the NXT brick. Lego has announced that it will stop officially supporting Robolab but Robolab 2.9 is still available and there are still many user forums and other sources of help available.


RoboMind

RoboMind is educational software that is specially developed to teach students about logic, programming and robotics. The strength of RoboMind is the compactness of the learning environment, which allows to quickly develop and test scripts in a virtual environment. The scripts can then directly be transferred to a
Lego Mindstorms Lego Mindstorms is a hardware and software structure which develops programmable robots based on Lego building blocks. Each version includes computer Lego bricks, a set of modular sensors and motors, and Lego parts from the Technic line to ...
NXT robot, to see the result in real life. RoboMind script run on the standard firmware.


Enchanting

Enchanting brings NXT programming into the popular Scratch IDE, designed by the Lifelong Kindergarten Group at MIT to make programming intuitive even for young children. The resulting NXT programs have the compactness and clarity offered by that programming environment.


ROBOTC

ROBOTC is a programming-language based on C for VEX, the VEX Cortex, FIRST Tech Challenge, and
Lego Mindstorms Lego Mindstorms is a hardware and software structure which develops programmable robots based on Lego building blocks. Each version includes computer Lego bricks, a set of modular sensors and motors, and Lego parts from the Technic line to ...
. ROBOTC runs a very optimized firmware which allows the NXT to run programs very quickly, and also compresses the files so that a large number of programs can fit into the NXT. Like other NXT languages, ROBOTC requires this firmware to be downloaded from the ROBOTC interface in order to run.


NXTGCC

NXTGCC is a GCC toolchain for programming the NXT firmware in C.


leJOS NXT

leJOS "Lejos" (English: "Far") is a song by Puerto Rican-American singer-songwriter Toby Love. It was released on August 21, 2012 by Top Stop Music for his fourth studio album, '' Amor Total''. The song's music video, which was directed by Danny Hastin ...
NXJ is a high level open source language based on
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mos ...
that uses custom firmware developed by the leJOS team.


nxtOSEK

To be able to write in C/
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
, nxtOSEK can be used, but that requires custom firmware too.


ICON

To write files on the NXT itself, ICON by Steve Hassenplug is an ideal resource.


MATLAB and Simulink

*
MATLAB MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementa ...
is a high-level programming language for numerical computing, data acquisition, and analysis. It can be used to control Lego NXT robots over a
Bluetooth Bluetooth is a short-range wireless technology standard that is used for exchanging data between fixed and mobile devices over short distances and building personal area networks (PANs). In the most widely used mode, transmission power is limi ...
serial port (serial port communication is part of the base functionality of MATLAB) or via a
USB Universal Serial Bus (USB) is an industry standard that establishes specifications for cables, connectors and protocols for connection, communication and power supply (interfacing) between computers, peripherals and other computers. A broad ...
connection; for example using the RWTH – Mindstorms NXT Toolbox (free & open-source). *
Simulink Simulink is a MATLAB-based graphical programming environment for modeling, simulating and analyzing multidomain dynamical systems. Its primary interface is a graphical block diagramming tool and a customizable set of block libraries. It offers t ...
is a block diagram environment for modeling and simulating dynamic systems. Using Simulink, a user can design and simulate control algorithms and Lego systems, and subsequently automatically program the Lego NXT or EV3. Support for programming the Lego NXT or EV3 only requires Simulink and is available at no additional charge. MATLAB and Simulink Support for Lego Mindstorms programming is freely available. More information is online.


Lua

plLua is a port of the
Lua programming language Lua ( ; from meaning ''moon'') is a lightweight, high-level, multi-paradigm programming language designed primarily for embedded use in applications. Lua is cross-platform, since the interpreter of compiled bytecode is written in ANSI C, ...
, a general purpose scripting language, for Lego Mindstorms.


Ada

A port of GNAT is available for the NXT. It relies on a dedicated run-time kernel based on the
Ravenscar profile The Ravenscar profile is a subset of the Ada tasking features designed for safety-critical hard real-time computing. It was defined by a separate technical report in Ada 95; it is now part of the Ada 2012 Standard. It has been named after the Englis ...
, the same used on the Goce satellite: this permits to use high-level Ada features to develop concurrent and real-time systems on the Mindstorms NXT.


URBI

URBI Urbi is an open-source cross-platform software platform in C++ used to develop applications for robotics and complex systems. Urbi is based on the UObject distributed C++ component architecture. It also includes the urbiscript orchestration lang ...
is yet another language and is a parallel and event-driven language, with interfaces to C++/Java and Matlab. It also has a component architecture (UObject) for distribution. Urbi is compatible with many robots, including Nao (cf Robocup), Bioloid or Aibo.


FLL NXT Navigation

FLL Nxt Navigation is an open source program to help navigation on the FLL competition table. It uses NXT-G and .txt files to write programs. It is unknown if you can legally implement this in FLL competitions.


Ruby-nxt

Ruby-nxt is a library to program the NXT for the
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called ...
programming language. Unlike the other languages for the NXT, the code is not compiled to a binary file. Instead the code is directly transmitted to the NXT via a
Bluetooth Bluetooth is a short-range wireless technology standard that is used for exchanging data between fixed and mobile devices over short distances and building personal area networks (PANs). In the most widely used mode, transmission power is limi ...
connection.


Robotics.NXT

Robotics.NXT is a
Haskell Haskell () is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research and industrial applications, Haskell has pioneered a number of programming lan ...
interface to NXT over Bluetooth. It supports direct commands, messages and many sensors (also unofficial). It has also support for a simple message-based control of a NXT brick via remotely executed program (basic NXC code included).


LibNXT

LibNXT is a utility library for talking to the Lego Mindstorms NXT intelligent brick at a relatively low level. LibNXT is targeted mainly at the platforms that the official Lego Mindstorms NXT software overlooks, namely Linux and other unices. It will work on any POSIX-compliant operating system where libusb 0.1 libusb is supported. Windows support is also possible with the win32 port of libusb.


C_NXT

C_NXT is a library for controlling the Lego NXT licensed under the
GPLv2 The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general us ...
. The library allows users to control a Lego NXT via bluetooth controller from within other C programs. The library provides low level control and high level abstraction. The library only runs on Linux.


PyNXC

PyNXC is a project which converts
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
code to "Not Exactly C" (NXC) code, to download to Lego Mindstorms Robots.


NXT-Python

NXT-Python is a python module, which communicates with the NXT via USB or Bluetooth. It supports direct commands and several aftermarket sensors.


LEGO Mindstorms EV3 Software

The software which ships with the newer Mindstorms EV3 set can be used to program the NXT. At the moment, Bluetooth is not supported for the NXT, so programs must be downloaded via a USB cable.


Physical Etoys

Physical Etoys is a visual programming system for different electronic devices. It supports direct mode and compiled mode.


C/C++ Interpreter Ch

Ch is a C/C++ interpreter running C/C++ code to control Lego NXT or EV3. No firmware upload/download is required, no compilation is needed. A C/C++ code running in Ch can control either a Lego NXT, EV3, or multiple of NXT/EV3.


Sensors and Actuators

The Lego Mindstorms NXT 1.0 base kit includes: * 3 identical
servo Servo may refer to: Mechanisms * Servomechanism, or servo, a device used to provide control of a desired operation through the use of feedback ** AI servo, an autofocus mode ** Electrohydraulic servo valve, an electrically operated valve that c ...
motors that have built-in
reduction gear A gear train is a mechanical system formed by mounting gears on a frame so the teeth of the gears engage. Gear teeth are designed to ensure the pitch circles of engaging gears roll on each other without slipping, providing a smooth transmission ...
assemblies with internal optical
rotary encoder A rotary encoder, also called a shaft encoder, is an electro-mechanical device that converts the angular position or motion of a shaft or axle to analog or digital output signals. There are two main types of rotary encoder: absolute and increm ...
s that sense their rotations within one degree of accuracy. * The
touch sensor A touch switch is a type of switch that only has to be touched by an object to operate. It is used in many lamps and wall switches that have a metal exterior as well as on public computer terminals. A touchscreen includes an array of touch switches ...
detects whether it is currently pressed, has been bumped, or released. The orange Enter button and the gray right and left NXT buttons can be programmed to serve as touch sensors. In the NXT-G programming software, a value of 0 is given out when it is not pressed, and a value of 1 is given out if it is pressed down. * The
light sensor Photodetectors, also called photosensors, are sensors of light or other electromagnetic radiation. There is a wide variety of photodetectors which may be classified by mechanism of detection, such as photoelectric or photochemical effects, or by ...
detects the light level in one direction, and also includes a LED for illuminating an object. The light sensor can sense reflected light values (using the built-in red LED), or ambient light. In the NXT-G programming software the sensor senses light on a scale of 0 to 100, 100 being very bright and 0 being dark. If calibrated, the sensor can also be used as a distance sensor. * The sound sensor measures volume level on a scale of 0 to 100, 100 being very loud, 0 being completely silent. * The
ultrasonic sensor Ultrasonic transducers and ultrasonic sensors are devices that generate or sense ultrasound energy. They can be divided into three broad categories: transmitters, receivers and transceivers. Transmitters convert electrical signals into ultrasoun ...
can measure the distance from the sensor to something that it is facing, and detect movement. It can show the distance in both centimeters and inches. The maximum distance it can measure is 233 cm with a precision of 3 centimeters. The ultrasonic sensor works by sending out ultrasonic sound waves that bounce off an object ahead of it and then back. It senses the time it took for that to happen. In the Lego Mindstorms 2.0 base kit, it includes: 2 Touch sensors, one Color sensor (detects several different colors), and an Ultrasonic sensor. These parts are not included in the Lego Mindstorms NXT base kit and may be bought separately: * Third-party companies also manufacture sensors such as the
compass A compass is a device that shows the cardinal directions used for navigation and geographic orientation. It commonly consists of a magnetized needle or other element, such as a compass card or compass rose, which can pivot to align itself wit ...
, gyroscope,
infrared Infrared (IR), sometimes called infrared light, is electromagnetic radiation (EMR) with wavelengths longer than those of visible light. It is therefore invisible to the human eye. IR is generally understood to encompass wavelengths from around ...
tracker, RFID reader and
accelerometer An accelerometer is a tool that measures proper acceleration. Proper acceleration is the acceleration (the rate of change of velocity) of a body in its own instantaneous rest frame; this is different from coordinate acceleration, which is acc ...
sensors sold by Lego. * The temperature sensor can measure temperature in Celsius or Fahrenheit. The sensors come assembled and programmed. In the software (see Programming above), people can decide what to do with the information that comes from the sensors, such as programming the robot move forward until it touches something. Lego also sells an adapter to the Vernier sensor product line. Vernier produces data collection devices and related software for use in education.


Connector

Sensors are connected to the NXT brick using a 6-position
modular connector A modular connector is a type of electrical connector for cords and cables of electronic devices and appliances, such as in computer networking, telecommunication equipment, and audio headsets. Modular connectors were originally developed fo ...
that features both analog and digital interfaces. The analog interface is backward-compatible (using an adapter) with the older Robotics Invention System. The digital interface is capable of both I2C and
RS-485 RS-485, also known as TIA-485(-A) or EIA-485, is a standard defining the electrical characteristics of drivers and receivers for use in serial communications systems. Electrical signaling is balanced, and multipoint systems are supported. The s ...
communication.


NXT 2.0

Lego Mindstorms NXT 2.0 is the second set from LEGO's
Lego Mindstorms Lego Mindstorms is a hardware and software structure which develops programmable robots based on Lego building blocks. Each version includes computer Lego bricks, a set of modular sensors and motors, and Lego parts from the Technic line to ...
series, launched on August 5, 2009 at the Lego Shop in the U.S. The set contains 619 pieces, including a new sensor that can detect colors. It is priced at approximately US$280, C$350, £230 or A$500. Lego Mindstorms NXT 2.0 has a successor, called the
Lego Mindstorms EV3 LEGO Mindstorms EV3 is the third generation robotics kit in LEGO's Mindstorms line. It is the successor to the second generation LEGO Mindstorms NXT kit. The "EV" designation refers to the "evolution" of the Mindstorms product line. "3" refers t ...
.


8547 Kit Features

* Includes a sound editor for recording any sound and then programming the NXT Brick to play it. * Includes an image editor for downloading an image to the NXT Brick to appear on the screen. * Includes 619 pieces (including the NXT Brick)


NXT Intelligent Brick

* 32-bit Atmel
AT91SAM7 Atmel ARM-based processors are microcontrollers and microprocessors integrated circuits, by Microchip Technology (previously Atmel), that are based on various 32-bit ARM processor cores, with in-house designed peripherals and tool support. Overvi ...
S256 main microcontroller (256 KB flash memory, 64 KB
RAM Ram, ram, or RAM may refer to: Animals * A male sheep * Ram cichlid, a freshwater tropical fish People * Ram (given name) * Ram (surname) * Ram (director) (Ramsubramaniam), an Indian Tamil film director * RAM (musician) (born 1974), Dutch * ...
) * 8-bit Atmel ATmega48 microcontroller @ 4 MHz (4 KB flash memory, 512 Bytes RAM) * 100×64 pixel LCD screen * Four RJ12 input ports (ports 1-4) * Three RJ12 output ports (ports A-C) *
USB Universal Serial Bus (USB) is an industry standard that establishes specifications for cables, connectors and protocols for connection, communication and power supply (interfacing) between computers, peripherals and other computers. A broad ...
port *
Bluetooth Bluetooth is a short-range wireless technology standard that is used for exchanging data between fixed and mobile devices over short distances and building personal area networks (PANs). In the most widely used mode, transmission power is limi ...
Class II V2.0 * Loudspeaker – 8 kHz sound quality, 8-bit resolution, 2–16 kHz sample rate * Four push buttons, used to navigate menus and can be used in programs. * Powered by six
AA batteries AA, Aa, Double A, or Double-A may refer to: Arts, entertainment and media * '' America's Army'', a 2002 computer game published by the U.S. Army * '' Ancient Anguish'', a computer game in existence since 1992 * Aa!, a J-Pop musical group * D ...
or the NXT rechargeable battery


Sensors

Parts can be ordered separately. In the original kit, the sensors included are the color sensor, two touch sensors, and an
ultrasonic sensor Ultrasonic transducers and ultrasonic sensors are devices that generate or sense ultrasound energy. They can be divided into three broad categories: transmitters, receivers and transceivers. Transmitters convert electrical signals into ultrasoun ...
: * Color sensor (9694), for detecting 6 different colors: blue, green, red, yellow, white, black * Light sensor (9844), for detecting levels of light. (Included in first version, but in 2.0, replaced by color sensor.) * Touch sensor (9843), a simple button that senses if something collided with it. * Ultrasonic sensor (9846), for measuring distances using inaudible sound waves. * Sound sensor (9845), for basic "hearing". Capable of measuring volume, but cannot record actual sounds. * Compass sensor (MS1034), for detecting direction. Has a built-in calibrator to reduce interference from other magnetic items. (Not included in basic kit, for advanced users.) *
Accelerometer An accelerometer is a tool that measures proper acceleration. Proper acceleration is the acceleration (the rate of change of velocity) of a body in its own instantaneous rest frame; this is different from coordinate acceleration, which is acc ...
sensor (MS1040), for sensing which general direction it's moving in. Also can measure g-force. (Not included in basic kit, for advanced users.) * RFID sensor, for communication between multiple robots. (Not included in basic kit, for VERY advanced users.) * Rotation sensor (built into
servo motors A servomotor (or servo motor) is a rotary actuator or linear actuator that allows for precise control of angular or linear position, velocity and acceleration. It consists of a suitable motor coupled to a sensor for position feedback. It also ...
), for measuring how far it has turned. This is unique, because it measures based on the turn of the gears inside, rather than the motor itself. Useful for robots that will coast and act based on distance rolled. * Bluetooth communication (built into "Intelligent brick"), for communication with other devices. Can be used mid-program or for downloading new programs and data.


Actuators

* Servo motor (9842) * The color sensor can shine light in red, green, or blue. (Normally it senses color by using the lamp in a setting and reading the reflected light levels. It uses the same lamp here for other uses.)


Programming

Very simple programs can be created using the NXT Intelligent Brick itself. In order to create larger, more complex programs, programming software on a PC is required. The standard programming software is NXT-G, which is included in the package. Third-party programming software is also available, some of which is listed below:


NXT-G

NXT-G is the programming software included in the standard base kit. It is based on
LabVIEW Laboratory Virtual Instrument Engineering Workbench (LabVIEW) is a system-design platform and development environment for a visual programming language from National Instruments. The graphical language is named "G"; not to be confused with G-c ...
graphical programming. It features an interactive drag-and-drop environment.


LabVIEW Toolkit

NXT-G is powered by
LabVIEW Laboratory Virtual Instrument Engineering Workbench (LabVIEW) is a system-design platform and development environment for a visual programming language from National Instruments. The graphical language is named "G"; not to be confused with G-c ...
, an industry standard in programming. Created by
National Instruments National Instruments Corporation, doing business as NI, is an American multinational company with international operation. Headquartered in Austin, Texas, it is a producer of automated test equipment and virtual instrumentation software. C ...
, LabVIEW uses data flow programming to create a virtual instrument. To allow for more advanced programming, in the graphical sense, National Instruments released a Toolkit for the NXT. Version 1.0 came out in December 2006. Since its release, several bugs have been found and new sensors have been created. While the toolkit does allow for the creation of new sensors, National Instruments has yet to formally release an update.


Lego::NXT

Lego::NXT provides an
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
between
Perl Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offic ...
and NXT.


Ada

A port iof GNAT is available for the NXT. It requires nxtOSEK to run. The port includes
Ada Ada may refer to: Places Africa * Ada Foah, a town in Ghana * Ada (Ghana parliament constituency) * Ada, Osun, a town in Nigeria Asia * Ada, Urmia, a village in West Azerbaijan Province, Iran * Ada, Karaman, a village in Karaman Province, ...
bindings to the NXT hardware and nxtOSEK.


Next Byte Codes & Not eXactly C

Next Byte Codes (NBC) is a simple open-source language with an assembly language syntax that can be used to program the NXT brick. Not eXactly C (NXC) is a high level open-source language, similar to C, built on top of the NBC compiler. It can also be used to program the NXT brick. NXC is basically NQC for the NXT. It is the most widely used third-party programming language.


ROBOTC

ROBOTC is an
integrated development environment An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools ...
targeted towards students that is used to program and control Lego NXT, VEX, RCX, and
Arduino Arduino () is an open-source hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardware products are licensed under ...
robots using a programming language based on the C programming language.


RoboMind

RoboMind is an educational programming environment that offers a concise scripting language for programming a simulated robot. These internationalized scripts can, however, also directly be exported to Lego Mindstorms robots. It does not require custom firmware in order to run.


NXTGCC

NXTGCC is a GCC toolchain for programming the NXT firmware in C.


URBI

URBI Urbi is an open-source cross-platform software platform in C++ used to develop applications for robotics and complex systems. Urbi is based on the UObject distributed C++ component architecture. It also includes the urbiscript orchestration lang ...
is a parallel and event-driven language, with interfaces to C++/Java and MATLAB. It also has a component architecture (UObject) for distributed computation. Urbi is compatible with many robots, including Nao (cf Robocup), Bioloid or Aibo.


leJOS NXJ

leJOS "Lejos" (English: "Far") is a song by Puerto Rican-American singer-songwriter Toby Love. It was released on August 21, 2012 by Top Stop Music for his fourth studio album, '' Amor Total''. The song's music video, which was directed by Danny Hastin ...
NXJ is a high level open source language based on
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mos ...
that uses custom firmware developed by the leJOS team.


nxtOSEK

To be able to write in C (programming language)/
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
, nxtOSEK can be used, but that requires custom firmware too.


MATLAB and Simulink

*
MATLAB MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementa ...
is a high-level programming language for numerical computing, data acquisition and analysis. It can be used to control Lego NXT robots over a
Bluetooth Bluetooth is a short-range wireless technology standard that is used for exchanging data between fixed and mobile devices over short distances and building personal area networks (PANs). In the most widely used mode, transmission power is limi ...
serial port (serial port communication is part of the base functionality of MATLAB) or via a
USB Universal Serial Bus (USB) is an industry standard that establishes specifications for cables, connectors and protocols for connection, communication and power supply (interfacing) between computers, peripherals and other computers. A broad ...
connection; for example using the RWTH – Mindstorms NXT Toolbox (free & open-source). *
Simulink Simulink is a MATLAB-based graphical programming environment for modeling, simulating and analyzing multidomain dynamical systems. Its primary interface is a graphical block diagramming tool and a customizable set of block libraries. It offers t ...
is a MATLAB-based environment for modeling and simulating dynamic systems. Using Simulink, a user can design control algorithms, automatically generate C code for those algorithms, and download the compiled code onto the Lego NXT. MATLAB and Simulink code for NXT programming is freely available.


Lua

pbLua is an implementation of the
Lua programming language Lua ( ; from meaning ''moon'') is a lightweight, high-level, multi-paradigm programming language designed primarily for embedded use in applications. Lua is cross-platform, since the interpreter of compiled bytecode is written in ANSI C, ...
, a general purpose scripting language, for Lego Mindstorms.


FLL NXT Navigation

FLL Nxt Navigation is an open source program to help navigation on the FLL competition table. Uses NXT-G and .txt files to write programs.


ruby-nxt

ruby-nxt is a library to program the NXT for the
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called ...
programming language. Unlike the other languages for the NXT the code isn't compiled to a binary file. Instead the code is directly transmitted to the NXT via a
Bluetooth Bluetooth is a short-range wireless technology standard that is used for exchanging data between fixed and mobile devices over short distances and building personal area networks (PANs). In the most widely used mode, transmission power is limi ...
connection. This method of execution is significantly slower than executing compiled code directly.


Robotics. NXT

Robotics.NXT is a
Haskell Haskell () is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research and industrial applications, Haskell has pioneered a number of programming lan ...
interface to NXT over Bluetooth. It supports direct commands, messages and many sensors (also unofficial). It has also support for a simple message-based control of a NXT brick via remotely executed program (basic NXC code included).


See also

* Braigo Braille Lego printer low-cost project *
Lego Mindstorms EV3 LEGO Mindstorms EV3 is the third generation robotics kit in LEGO's Mindstorms line. It is the successor to the second generation LEGO Mindstorms NXT kit. The "EV" designation refers to the "evolution" of the Mindstorms product line. "3" refers t ...
*
Lego Mindstorms Lego Mindstorms is a hardware and software structure which develops programmable robots based on Lego building blocks. Each version includes computer Lego bricks, a set of modular sensors and motors, and Lego parts from the Technic line to ...
* Robotics Invention System *
URBI Urbi is an open-source cross-platform software platform in C++ used to develop applications for robotics and complex systems. Urbi is based on the UObject distributed C++ component architecture. It also includes the urbiscript orchestration lang ...
*
Robotics suite A robotics suite is a visual environment for robot control and simulation. They are typically an end-to-end platform for robotics development and include tools for visual programming and creating and debugging robot applications. Developers can of ...
* Dexter Industries – Sensors for the Lego Mindstorms NXT *
FIRST Lego League The ''FIRST'' LEGO League Challenge (formerly known as ''FIRST'' LEGO League) is an international competition organized by '' FIRST'' for elementary and middle school students (ages 9–14 in the United States and Canada, 9–16 elsewhere). Each ...
– A competition with the Lego Mindstorms NXT robot * RobotAppStore – Apps for Robots (including Lego Mindstorms NXT) *
Robots "\n\n\n\n\nThe robots exclusion standard, also known as the robots exclusion protocol or simply robots.txt, is a standard used by websites to indicate to visiting web crawlers and other web robots which portions of the site they are allowed to visi ...


References


External links


lego.Edutech.com
Official Lego Education partner
external controller with open hardware beaglebone

Program NXT, help for programming your Lego Mindstorms NXT
* *
HiTechnic.com
LEGO Certified Sensors for the Lego Mindstorms
mindsensors.com
Sensors for the Lego Mindstorms NXT
Trinfactor3.com
Enables use of 32 analog sensors with 1 NXT
robojoy-club
NXT robot and program for beginner
Placing and Fitting Gears

Roberta
Educational Robotics
Lego Mindstorms Community and Projects

Read This Review Before You Buy Lego Mindstorms EV3

Lego Mindstorms NXT and Lego Mindstorms NXT 2.0 Projects

The NXT 2.0 Shooterbot in action
{{Robot kits Lua (programming language)-scriptable hardware Robot kits Products introduced in 2006 2006 in robotics