Home      Discussion      Topics      Dictionary      Almanac
Signup       Login
Lego Mindstorms

Lego Mindstorms

Overview


Lego Mindstorms is a line of Lego
Lego
Lego is a line of construction toys manufactured by the Lego Group, a privately held company based in Billund, Denmark. The company's flagship product, Lego, consists of colorful interlocking plastic bricks and an accompanying array of gears, minifigures and various other parts...

 sets combining programmable bricks with electric motor
Electric motor
An electric motor uses electrical energy to produce mechanical energy, usually through the interaction of magnetic fields and current-carrying conductors. The reverse process, producing electrical energy from mechanical energy, is accomplished by a generator or dynamo. Traction motors used on...

s, sensor
Sensor
A sensor is a device that measures a physical quantity and converts it into a signal which can be read by an observer or by an instrument. For example, a mercury-in-glass thermometer converts the measured temperature into expansion and contraction of a liquid which can be read on a calibrated glass...

s, Lego
Lego
Lego is a line of construction toys manufactured by the Lego Group, a privately held company based in Billund, Denmark. The company's flagship product, Lego, consists of colorful interlocking plastic bricks and an accompanying array of gears, minifigures and various other parts...

 bricks, and Lego Technic
Lego Technic
Technic is a line of Lego interconnecting plastic rods and parts. The purpose of this series is to create more advanced models with more complex movable parts, such as machines with wheels, in addition to the simpler brick-building properties of normal Lego....

 pieces (such as gear
Gear
A gear is a component within a transmission device that transmits rotational torque by applying a force to the teeth of another gear or device. A gear is different from a pulley in that a gear is a round wheel that has linkages that mesh with other gear teeth, allowing force to be fully...

s, axle
Axle
An axle is a central shaft for a rotating wheel or gear. In some cases the axle may be fixed in position with a bearing or bushing sitting inside the hole in the wheel or gear to allow the wheel or gear to rotate around the axle. In other cases the wheel or gear may be fixed to the axle, with...

s, and beam
Beam
Beam may refer to:*Beam , a construction element*Beam , the most extreme width of a nautical vessel, or a point alongside the ship at the mid-point of its length*A narrow, propagating stream of particles or energy:...

s).

Mindstorms originated from the programmable sensor blocks used in the line of educational toys. The first retail version of Lego Mindstorms was released in 1998 and marketed commercially as the Robotics Invention System (RIS). The next version was released in 2006 as Lego Mindstorms NXT
Lego Mindstorms NXT
Lego Mindstorms NXT is a programmable robotics kit released by Lego in late July 2006.It replaces the first-generation Lego Mindstorms kit, which was called the Robotics Invention System. The base kit ships in two versions: the Retail Version and the Education Base Set . These can be used to...

.
Discussion
Ask a question about 'Lego Mindstorms'
Start a new discussion about 'Lego Mindstorms'
Answer questions from other users
Full Discussion Forum
 
Encyclopedia


Lego Mindstorms is a line of Lego
Lego
Lego is a line of construction toys manufactured by the Lego Group, a privately held company based in Billund, Denmark. The company's flagship product, Lego, consists of colorful interlocking plastic bricks and an accompanying array of gears, minifigures and various other parts...

 sets combining programmable bricks with electric motor
Electric motor
An electric motor uses electrical energy to produce mechanical energy, usually through the interaction of magnetic fields and current-carrying conductors. The reverse process, producing electrical energy from mechanical energy, is accomplished by a generator or dynamo. Traction motors used on...

s, sensor
Sensor
A sensor is a device that measures a physical quantity and converts it into a signal which can be read by an observer or by an instrument. For example, a mercury-in-glass thermometer converts the measured temperature into expansion and contraction of a liquid which can be read on a calibrated glass...

s, Lego
Lego
Lego is a line of construction toys manufactured by the Lego Group, a privately held company based in Billund, Denmark. The company's flagship product, Lego, consists of colorful interlocking plastic bricks and an accompanying array of gears, minifigures and various other parts...

 bricks, and Lego Technic
Lego Technic
Technic is a line of Lego interconnecting plastic rods and parts. The purpose of this series is to create more advanced models with more complex movable parts, such as machines with wheels, in addition to the simpler brick-building properties of normal Lego....

 pieces (such as gear
Gear
A gear is a component within a transmission device that transmits rotational torque by applying a force to the teeth of another gear or device. A gear is different from a pulley in that a gear is a round wheel that has linkages that mesh with other gear teeth, allowing force to be fully...

s, axle
Axle
An axle is a central shaft for a rotating wheel or gear. In some cases the axle may be fixed in position with a bearing or bushing sitting inside the hole in the wheel or gear to allow the wheel or gear to rotate around the axle. In other cases the wheel or gear may be fixed to the axle, with...

s, and beam
Beam
Beam may refer to:*Beam , a construction element*Beam , the most extreme width of a nautical vessel, or a point alongside the ship at the mid-point of its length*A narrow, propagating stream of particles or energy:...

s).

Mindstorms originated from the programmable sensor blocks used in the line of educational toys. The first retail version of Lego Mindstorms was released in 1998 and marketed commercially as the Robotics Invention System (RIS). The next version was released in 2006 as Lego Mindstorms NXT
Lego Mindstorms NXT
Lego Mindstorms NXT is a programmable robotics kit released by Lego in late July 2006.It replaces the first-generation Lego Mindstorms kit, which was called the Robotics Invention System. The base kit ships in two versions: the Retail Version and the Education Base Set . These can be used to...

. The newest version, released in August 2009, is known as Lego Mindstorms NXT 2.0
Lego Mindstorms NXT 2.0
Lego Mindstorms NXT 2.0 is the new set of the Lego Mindstorms Products. This will be launched on August 5 2009 at the Lego Shop in U.S. On some webpages this set is already available. This set contains a new sensor which would have the ability of detecting colors. It is called the Color Sensor RGB...

.

The hardware and software roots of the Mindstorms Robotics Invention System kit go back to the programmable brick created at the MIT Media Lab
MIT Media Lab
The MIT Media Lab is a department within the School of Architecture and Planning at the Massachusetts Institute of Technology...

. This brick was programmed in Brick Logo
Logo (programming language)
LOGO is a computer programming language used for functional programming. It is an adaptation and dialect of the Lisp language; some have called it Lisp without the parentheses...

. The first visual programming environment, called LEGOsheets, for this brick was created by the University of Colorado in 1994 and was based on AgentSheets
AgentSheets
AgentSheets is an educational Cyberlearning tool to create Web-based simulation games. AgentSheets is used worldwide to teach students programming and related information technology skills through game design...

.

The original Mindstorms Robotics Invention System kit contained two motors, two touch sensors, and one light sensor. The NXT version has three servo motors and one sensor each for touch, light, sound, and distance. Lego Mindstorms may be used to build a model of an embedded system
Embedded system
An embedded system is a computer system designed to perform one or a few dedicated functions , often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. In contrast, a general-purpose computer, such as a personal...

 with computer-controlled electromechanical parts. Many kinds of real-life embedded systems, from elevator
Elevator
An elevator or lift is a vertical transport vehicle that efficiently moves people or goods between floors of a building...

 controllers to industrial robots, may be modelled using Mindstorms.

Mindstorms kits are also sold and used as an education
Education
Education in its broadest sense is any act or experience that has a formative effect on the mind, character or physical ability of an individual...

al tool, originally through a partnership between Lego and the MIT Media Laboratory. The educational version of the products is called Lego Mindstorms for Schools, and comes with the ROBOLAB GUI
Graphical user interface
A graphical user interface is a type of user interface item that allows people to interact with programs in more ways than typing such as computers; hand-held devices such as MP3 Players, Portable Media Players or Gaming devices; household appliances and office equipment with images rather than...

-based programming software, developed at Tufts University
Tufts University
Tufts University is a private research university in Medford/Somerville, near Boston, Massachusetts, USA. The university is home to the nation's oldest graduate school of international relations, The Fletcher School of Law and Diplomacy....

 using the National Instruments
National Instruments
National Instruments, or NI , is an American company with over 5,000 employees and direct operations in 41 countries. Headquartered in Austin, Texas, it is a producer of automated test equipment and virtual instrumentation software...

 LabVIEW
LabVIEW
LabVIEW is a platform and development environment for a visual programming language from National Instruments.The graphical language is named "G"...

 as an engine. In addition, the shipped software can be replaced with third party firmware and/or programming languages, including some of the most popular ones used by professionals in the embedded systems industry, like Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 and C
C (programming language)
C is a general-purpose computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

. The only difference between the educational series, known as the "Challenge Set", and the consumer series, known as the "Inventor Set", is that it includes another light sensor and several more gearing options.

Mindstorms is named after the book Mindstorms: Children, Computers, and Powerful Ideas
Mindstorms: Children, Computers, and Powerful Ideas
Mindstorms: Children, Computers, and Powerful Ideas , published by Basic Books, is a book by Seymour Papert. He proposes a unique computer-based learning environment called the Microworld. His primary belief about the Microworld's design is that it compliments the natural knowledge building...

by Seymour Papert
Seymour Papert
Seymour Papert is an MIT mathematician, computer scientist, and educator. He is one of the pioneers of artificial intelligence, as well as an inventor of the Logo programming language....

.

RCX


The first generation of Lego Mindstorms was built around a brick known as the RCX. It contains a 8-Bit collision detector Renesas
Renesas Technology
is a Japanese semiconductor manufacturer. It is based in Tokyo and has manufacturing, design and sales operations in around 20 countries with about 25,000 employees worldwide. Renesas is one of the world's largest manufacturers of semiconductor systems for mobile phones and automotive applications...

 H8/300 microcontroller
Microcontroller
A microcontroller is a small computer on a single integrated circuit consisting of a relatively simple CPU combined with support functions such as a crystal oscillator, timers, watchdog timer, serial and analog I/O etc. Program memory in the form of NOR flash or OTP ROM is also often included on...

 as its internal CPU
Central processing unit
The Central Processing Unit or processor is the portion of a computer system that carries out the instructions of a computer program, and is the primary element carrying out the computer's functions. This term has been in use in the computer industry at least since the early 1960s...

.It also contains 32K of RAM that stores the Firmware and User Programs. The brick is programmed by uploading a program (written in one of several available programming language
Programming language
A programming language is an artificial language designed to express computations that can be performed by a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine, to express algorithms precisely, or as a mode of human...

s) from a Windows
Microsoft Windows
Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces...

 or Mac
Mac OS
Mac OS is the trademarked name for a series of graphical user interface-based operating systems developed by Apple Inc. for their Macintosh line of computer systems. The Macintosh user experience is credited with popularizing the graphical user interface...

 computer to the brick's RAM via a special infrared (IR
Infrared
Infrared radiation is electromagnetic radiation whose wavelength is longer than that of visible light , but shorter than that of terahertz radiation and microwaves...

) interface. After the user starts a program, an RCX-enabled Mindstorms creation may function totally on its own, acting on internal and external stimuli according to the programmed instructions. Also, two or several more RCX bricks can communicate with each other through the IR interface, enabling inter-brick cooperation or competition. In addition to the IR port, there are three sensor input ports and three motor output ports (also usable for lamps, etc). There is also an LCD that can display the battery level, the status of the input/output ports, which program is selected or running, and other information.

Version 1.0 RCX bricks feature a power adapter jack to allow continuous operation instead of the limited operation time when using batteries. In version 2.0 (as well as later 1.0s included in the RIS 1.5), the power adapter jack was removed. Power adapter-equipped RCX bricks are popular for stationary robotics projects (such as robot arms) or for controlling Lego model trains
Lego train
Lego Train is a theme in the Lego Group products. The sets include locomotives, tracks, rolling stock, trackside buildings .- The blue era :The blue era is named after the colour of the rails....

. In the latter context, the RCX needs to be programmed with Digital Command Control
Digital Command Control
Digital Command Control systems are used to operate locomotives on a model railroad . When equipped with Digital Command Control, locomotives on the same electrical section of track can be independently controlled....

 (DCC) software required for automated model train operation..

The IR interface on the RCX is able to communicate with Spybots, Scout Bricks, Lego Train, and the NXT (using a third-party infrared link sensor.) The RCX 1.0 IR receiver carrier frequency is 38.5 kHz, while the RCX 2.0 IR carrier frequency is 76 kHz. Both versions can transmit on either frequency. The carrier signal is generated by one of the RCX's internal timers. The RCX communicates with a computer using a Serial
Serial port
In computing, a serial port is a serial communication physical interface through which information transfers in or out one bit at a time...

 or USB
Universal Serial Bus
USB is a way of setting up communication between a computer and peripheral devices. USB is intended to replace many varieties of serial and parallel ports. USB can connect computer peripherals such as mice, keyboards, PDAs, gamepads and joysticks, scanners, digital cameras, printers, personal...

 IR tower. The tower is supported by Windows 98, Me, and XP (32-bit). A patch is available for hyper-threading/multi-core CPUs. There is no formal support for Windows Vista (32-bit), but there are reports of correct functionality. The tower does not work at all on 64-bit OSes.

All versions of the RCX have a unique number printed on it, necessary for technical support and used as the ID number of the RCX for your Lego Mindstorms account on the now-defunct Lego Mindstorms RCX website. The first RCX produced is marked "000001" and was on display at the Mindstorms 10th Anniversary event.

Programming languages


Lego
Lego
Lego is a line of construction toys manufactured by the Lego Group, a privately held company based in Billund, Denmark. The company's flagship product, Lego, consists of colorful interlocking plastic bricks and an accompanying array of gears, minifigures and various other parts...

-supplied languages:
  • RCX Code (included in the Mindstorms consumer version sold at toystores)
  • ROBOLAB (based on LabVIEW
    LabVIEW
    LabVIEW is a platform and development environment for a visual programming language from National Instruments.The graphical language is named "G"...

     and developed at Tufts University
    Tufts University
    Tufts University is a private research university in Medford/Somerville, near Boston, Massachusetts, USA. The university is home to the nation's oldest graduate school of international relations, The Fletcher School of Law and Diplomacy....

    )


Popular third-party languages:
  • C/C++ Interpreter Ch
  • Ch Mindstorms NXT Control Package
  • C
    C (programming language)
    C is a general-purpose computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

     and C++
    C++
    C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level and low-level language features...

     under BrickOS
    BrickOS operating system
    brickOS is an alternative operating system for the Lego Mindstorms RCX Controller. It also provides a C/C++ development environment for RCX programs using gcc and g++ and the necessary tools to download programs to the RCX....

     (formerly LegOS)
  • C and Assembler
    Assembly language
    Assembly languages are a family of low-level languages for programming computers, microprocessors, microcontrollers, and other integrated circuits. They implement a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture...

     under the GCC open source firmware kit NXTGCC
  • Java
    Java (programming language)
    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

     under leJOS or TinyVM
  • NQC ("Not Quite C")
  • pbFORTH (extensions to the Forth programming language)
  • Visual Basic
    Visual Basic
    Visual Basic is the third-generation event-driven programming language and integrated development environment ' from Microsoft for its COM programming model...

     (Through the COM+ interface supplied on the CD)
  • RobotC (New Language and NXT
    Lego Mindstorms NXT
    Lego Mindstorms NXT is a programmable robotics kit released by Lego in late July 2006.It replaces the first-generation Lego Mindstorms kit, which was called the Robotics Invention System. The base kit ships in two versions: the Retail Version and the Education Base Set . These can be used to...

     Compatible)
  • Interactive C
    Interactive C
    Interactive C is a program which uses a modified version of ANSI C with several libraries and features that allow hobbyists to program small robotics platforms.-Interactive C by Newton Research Labs:...

     (Language similar to C used in robotics competitions.)
  • XSLisp an implementation of Lisp for the RCX (1 + 2) and NXT

Lego camera


The Lego camera on its own is technically not a robotic toy; rather, it is a normal webcam
Webcam
A webcam is a video capture device connected to a computer or computer network, often using a USB port or, if connected to a network, ethernet or Wi-Fi....

 (a Logitech Quickcam Web) packaged into a Lego shell. Being a normal webcam, the Lego Camera is, unlike most Mindstorms products, not programmable and is only usable connected to a PC or some other device that supports USB webcams.

The Lego camera is meant to be used with the included Vision Command software which can also interface with an RCX and thus enables creating robots with "vision". The software is capable of detecting different lightings, motion, and colors. It can also be used with any other software that uses a webcam. The webcam is capable of recording up to 30 frames per second. It also contains a microphone to record sound for videos.

Cybermaster



Cybermaster was mainly sold in Europe and Australia
Australia
Australia , officially the Commonwealth of Australia, is a country in the Southern Hemisphere comprising the continental mainland , the island of Tasmania, and numerous smaller islands in the Indian and Pacific Oceans...

/New Zealand
New Zealand
New Zealand is an island country in the south-western Pacific Ocean comprising two main landmasses , and numerous smaller islands, most notably Stewart Island/Rakiura and the Chatham Islands. The indigenous Māori named New Zealand Aotearoa, commonly translated as The Land of the Long White Cloud...

, but was available for a short time in America via the Lego Club magazines.
It was aimed at a younger audience as an early attempt of merging computer gaming with robotics and Lego.
The Pbrick shares many, especially software, features with the RCX but differs in appearance and technical specifications: 1 output (plus 2 built-in) and 3 sensors.
  • It uses RF
    Radio frequency
    Radio frequency is a frequency, or rate of oscillation, of electromagnetic radiation within the range of about 3 Hz to 300 GHz. This range corresponds to the frequency of alternating current electrical signals used to produce and detect radio waves...

     (27 MHz R/C band) instead of IR for communication.
  • It has two built-in motors with integrated tachometer
    Tachometer
    A tachometer is an instrument that measures the rotation speed of a shaft or disk, as in a motor or other machine. The device usually displays the revolutions per minute on a calibrated analogue dial, but digital displays are increasingly common...

    s and speedometer
    Speedometer
    A speedometer is a device that measures the instantaneous speed of a land vehicle.Now universally fitted to motor vehicles, they started to be available as options in the 1900s, and as standard equipment from about 1910 onwards....

    s.
  • It is limited to passive sensors (a simple A/D
    Analog-to-digital converter
    An analog-to-digital converter is a device which converts continuous signals to discrete digital numbers...

     with internal pull-up resistors).
  • The sensors shipped with it are color coded and have internal resistors in their open state (allowing the Pbrick to sense which sensor is attached to which port).
  • It has a fixed firmware (so it cannot be upgraded or replaced).
  • It has limited RAM for programs and only one program slot.


Despite its obvious limitation it has a number of advantages over its 'big brother', the RCX.
  • The RF link has greater range and is omnidirectional.
  • The built-in tachometer and speedometer sensors on the internal motors provides the same function as the external rotation sensor to the RCX, but without using up sensor ports.


This makes it very useful for various mobile platforms and performing basic motion/positioning tasks.

It talks the same protocol as the RCX but cannot communicate directly to it (due to IR vs RF) but with a repeater (a computer with 2 serial ports and a simple program) they can be integrated.

Codepilot


Sold as part of the Barcode Truck kit.
This unit was the first programmable brick (or Pbrick).
It features a single motor, a single touch sensor and a light sensor.
It is programmed by setting it to 'learn' and using the light sensor to feed barcoded commands. The command set is very limited.
Since barcode is just a series of variances in light, this form of command entry was dubbed VLL (Visual Light Link) and has been used in several later Lego models.

Scout


Lego also released a blue computer called the Scout, which has 2 sensor ports, 2 motor ports, and a built in light sensor, but no PC interface. It comes with the Robotics Discovery Set. The Scout can be programmed from a collection of built-in program combinations. In order to program the Scout, a user must enable "power mode" on it. The Scout can store one program.

There was a plan for Lego to create a booster set that allows you to program the Scout from a computer with a software such as RCX code. However, due to the complexity of this project, it was abandoned.

The RCX can control the Scout brick using the "Send IR Message" program block. The RCX does all of the controlling, and therefore can be programmed with the PC, while the Scout accepts commands. The Scout brick must have all of its options set to "off".

The Scout is also capable of using VLL to control a Micro Scout.

Micro Scout


The Micro Scout was added as an entry level to Lego robotics.
It is a very limited Pbrick with a single built-in light sensor and a single built-in motor.
It has seven built-in programs and can be controlled by a Scout, Spybotics or RCX unit using VLL.

The unit was sold as part of the Droid Developer Kit (featuring R2D2) and later the Darkside Developer Kit (featuring an AT-AT Imperial Walker).

Spybotics



Spybotics was more of an attempt to expand on the Cybermaster line. The kits were sold together with a computer game where part was played on the computer and part was played by controlling the Spybot to solve a number of fixed missions. The Pbrick itself shares many features with the Cybermaster, but it has no tachometers or speedometers and a single integrated touch sensor.

It also features a light sensor which doubles as computer interface. This interface can also be used to connect to the Scout, Micro Scout and possibly the Codepilot using VLL. It has an expanded IR functionality allowing it to communicate with other Spybots or RCX units. The IR unit also has limited direction and range function, allowing it to track and locate other Spybots, IR Remote Controls/beacons or RCX units.

Lego Mindstorms NXT



Lego Mindstorms NXT is a programmable robotics
Robotics
Robotics is the engineering science and technology of robots, and their design, manufacture, and application. Robotics is related to electronics, mechanics, and software. The word robot was introduced to the public by Czech writer Karel Čapek in his play R.U.R. , published in 1920...

 kit released by Lego
Lego
Lego is a line of construction toys manufactured by the Lego Group, a privately held company based in Billund, Denmark. The company's flagship product, Lego, consists of colorful interlocking plastic bricks and an accompanying array of gears, minifigures and various other parts...

 in July 2006, replacing the first-generation LEGO Mindstorms kit.
The kit consists of 519 Technic pieces, 3 servo motors, 4 sensors (ultrasonic, sound, touch
Touch switch
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 on a display....

, and light
Photodetector
Photosensors or photodetectors are sensors of light or other electromagnetic energy. There are several varieties: *Optical detectors, which are mostly quantum devices in which an individual photon produces a discrete effect....

), 7 connection cables, a USB interface cable, and the NXT Intelligent Brick. The Intelligent Brick is the "brain" of a Mindstorms machine. It lets the robot autonomously perform different operations. The kit also includes NXT-G, a graphical programming environment that enables the creation and downloading of programs to the NXT.
Lego are currently developing a new robotics kit, called WeDo. It is designed for students from 7 to 11 years old, and works with both Mac OS and Microsoft Windows.

Programming languages



Name Language type(s) Notes URL
Actor-Lab Custom flowchart-like language http://web.archive.org/web/20041214124459/http://actor-lab.open.ac.uk/index.html
Ada Ada
Ada (programming language)
Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language, extended from Pascal and other languages...

Requires nxtOSEK http://libre.adacore.com/libre/tools/mindstorms/
Ada Interface to MindStorms Ada
Ada (programming language)
Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language, extended from Pascal and other languages...

http://www.faginfamily.net/barry/Papers/AdaLetters.htm
brickOS C
C (programming language)
C is a general-purpose computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

/C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level and low-level language features...

http://brickos.sourceforge.net/
Ch C/C++ Interpreter Control Lego Mindstorm in C/C++ interactively without compilation http://www.softintegration.com/
FLL NXT Navigation Uses NXT-G and .txt files http://fllnxtnavigation.codeplex.com/ FLL NXT Navigation
GCC C/C++, Objective C, Fortran
Fortran
Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...

, Java, Ada among others
http://gcc.gnu.org/, http://nxtgcc.sourceforge.net/
GNU Toolchain for h8300 C/C++, ASM
Assembly language
Assembly languages are a family of low-level languages for programming computers, microprocessors, microcontrollers, and other integrated circuits. They implement a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture...

http://h8300-hms.sourceforge.net/
jaraco.nxt Python
Python (programming language)
Python is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

Python modules providing low-level interfaces for controlling a Lego NXT brick via Bluetooth. Also includes code for controlling motors with an Xbox 360 controller using pyglet. http://pypi.python.org/pypi?:action=display&name=jaraco.nxt
LabVIEW
LabVIEW
LabVIEW is a platform and development environment for a visual programming language from National Instruments.The graphical language is named "G"...

National Instruments LabVIEW
LabVIEW
LabVIEW is a platform and development environment for a visual programming language from National Instruments.The graphical language is named "G"...

 Visual programming language
Visual programming language
A visual programming language is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as...

 (G code)
Core language used to develop Mindstorms NXT software. Can use available add-on kit to create and download programs to NXT, create original NXT blocks or control robot directly via USB or Bluetooth
Bluetooth
Bluetooth is an open wireless protocol for exchanging data over short distances from fixed and mobile devices, creating personal area networks . It was originally conceived as a wireless alternative to RS232 data cables...

 using NXT fantom.dll
http://www.ni.com/academic/mindstorms/
Lego.NET Anything that can compile to .NET, works best with C# Does not come with a compiler, converts bytecode to machine code http://www.dcl.hpi.uni-potsdam.de/research/lego.NET/
Lego::NXT Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall, a linguist working as a systems administrator for NASA, in 1987, as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone...

Set of Perl modules providing real-time low-level control of a Lego NXT brick over Bluetooth. http://search.cpan.org/~collins/LEGO-NXT-2.00-1/ http://nxt.ivorycity.com/
LegoNXTRemote Objective C Cocoa framework for low and high level manipulation of a Lego NXT brick using Bluetooth. This also includes a sample remote control application using the framework. http://code.google.com/p/legonxtremote/
leJOS
LeJOS
leJOS is a firmware replacement for Lego Mindstorms programmable bricks. It currently supports the LEGO RCX brick and leJOS NXJ supports the NXT brick. It includes a Java virtual machine, so allows Lego Mindstorms robots to be programmed in the Java programming language. It is often used for...

Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

A java based system for advanced programmers can handle most sensors and things like GPS, speech recognition and mapping technology. Can be interfaced with the Eclipse
Eclipse (software)
Eclipse is a multi-language software development environment comprising an IDE and a plug-in system to extend it. It is written primarily in Java and can be used to develop applications in Java and, by means of the various plug-ins, in other languages as well, including C, C++, COBOL, Python, Perl,...

 IDE or run from the command line
http://lejos.sourceforge.net/
NXTGCC Assembler, C
C (programming language)
C is a general-purpose computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

, makefiles, Eclipse
Eclipse (software)
Eclipse is a multi-language software development environment comprising an IDE and a plug-in system to extend it. It is written primarily in Java and can be used to develop applications in Java and, by means of the various plug-ins, in other languages as well, including C, C++, COBOL, Python, Perl,...

, etc.
The first GCC toolchain for programming the Lego Mindstorms NXT firmware. http://nxtgcc.sourceforge.net/
nxtOSEK C
C (programming language)
C is a general-purpose computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

http://lejos-osek.sourceforge.net/
librcx C/C++ A library for GCC http://graphics.stanford.edu/~kekoa/rcx/tools.html#Librcx
Logitech SDK Visual Basic
Visual Basic
Visual Basic is the third-generation event-driven programming language and integrated development environment ' from Microsoft for its COM programming model...

, Visual C++
Visual C++
Microsoft Visual C++ is a commercial integrated development environment product engineered by Microsoft for the C, C++, and C++/CLI programming languages...

Can be combined with an RCX control library such as spirit.ocx from the MindStorms SDK to make use of the Lego Cam http://www.logitech.com/index.cfm?PAGE=partners/select&CRID=932&countryid=18&languageid=1
MicroWorlds EX Robotics Edition This is a program in the MicroWorlds
Microworlds
MicroWorlds is a program that uses the Logo programming language, a dialect of Lisp programming language. It uses a turtle object which can be moved around, given commands, and eventually make shapes or even an animation....

 series that allows students to control the NXT.
http://www.microworlds.com/solutions/mwexrobotics.html
NQC NQC, a C-like language This is the most widely used unofficial language http://bricxcc.sourceforge.net/nqc/
NXT++ C++ Allows you to control the NXT directly from any C++ program, in Visual Studio, Windows. http://nxtpp.sourceforge.net/
NXT_Python Python NXT_Python is a package for controlling a LEGO NXT robot using the Python programming language. It can communicate using either USB or Bluetooth. http://home.comcast.net/~dplau/nxt_python/
NXT-Python Python NXT-Python is a newer version of NXT_Python, and has some extra capabilities. The svn repository is at Google code. Anyone can contribute, just ask. http://code.google.com/p/nxt-python/
Lestat C++ Allows you to control the NXT directly from any C++ program in Linux. https://csrg.inf.utfsm.cl/twiki4/bin/view/ACS/LesTat
OCaml Mindstorm OCaml Module to control LEGO NXT robots using OCaml through the Bluetooth interface. http://ocaml-mindstorm.forge.ocamlcore.org/
Official Mindstorms SDK Visual Basic, Visual C++, MindScript, LASM You do not need VB to use the VB features as MS Office comes with a cut down version of VB for making macros http://mindstorms.lego.com/sdk2point5/default.asp
OnScreen A custom language which can be programmed directly on the RCX http://alumni.cse.ucsc.edu/~davevw/onscreen/index.html
pbForth Forth http://www.hempeldesigngroup.com/lego/pbForth/
PBrickDev PBrickDev, a flowchart based language. Has more functionality than the RIS language, such as datalogs and subroutines/multithreading. http://www.geocities.com/pbrickdev/mainpage.html
PRO-BOT A kind of Visual Basic/spirit.ocx-based language Designed for robots which are in contact with the workstation at all times http://mapageweb.umontreal.ca/cousined/lego/4-RCX/PRO-BOT/index.html
QuiteC C A library for use with GCC and comes with GCC for Windows. http://www.elenafrancesco.org/info/lego/qc/index.html
RCX Code RCX Code, a custom flowchart-based language Included in the Mindstorms consumer version sold at toystore http://mindstorms.lego.com/eng/products/ris/rissoft.asp
ROBOLAB A flowchart language based on LabVIEW This is the programming environment offered to schools who use MindStorms, supports the Lego Cam http://www.lego.com/eng/education/mindstorms/home.asp?pagename=robolab
RoboRealm A multi-platform language that works with IRobot Roomba, NXT, RCX, VEX, and many other popular robotic sets. This language is also capable for video processing using a webcam, this gives your robot excellent vision since it can filter out certain colors, lock-on to a certain area of color, display variables from the robot or computer, and much more. The software works with keyboard, joystick, and mouse. This software is freeware. http://www.roborealm.com/
ROBOTC A multi-platform C programming language designed for the programmer in need of powerful debugging tools for the NXT, RCX, VEX, and soon-to-be FIRST Controller (for FRC). ROBOTC gives the ability to use a text-based language based on the C programming language. It includes built-in debugger tools, as well as (but not limited to) code templates, Math/Trig operations (sin, cos,tan, asin,acos... etc), user-friendly auto-complete function built into the interface, built-in sample programs http://www.robotc.net/
ruby-nxt Ruby
Ruby (programming language)
Ruby is a dynamic, reflective, general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was initially developed and designed by Yukihiro "Matz" Matsumoto...

Provides low-level access to the NXT via Bluetooth as well as some preliminary high-level functionality. http://rubyforge.org/projects/ruby-nxt/
RWTH - Mindstorms NXT Toolbox MATLAB
MATLAB
MATLAB is a numerical computing environment and fourth generation programming language. Developed by The MathWorks, MATLAB allows matrix manipulation, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs in other languages...

Interface to control the NXT from MATLAB via Bluetooth or USB (open-source). http://www.mindstorms.rwth-aachen.de/
SqLego Squeak http://wiki.squeak.org/squeak/2412
TclRCX Tcl http://www.demailly.com/tcl/rcx/
Terrapin Logo LOGO
Logo (programming language)
LOGO is a computer programming language used for functional programming. It is an adaptation and dialect of the Lisp language; some have called it Lisp without the parentheses...

http://www.terrapinlogo.com/terrapin-logo.php
TinySoar Soar
Soar (cognitive architecture)
Soar is a symbolic cognitive architecture, created by John Laird, Allen Newell, and Paul Rosenbloom at Carnegie Mellon University. It is both a view of what cognition is and an implementation of that view through a computer programming architecture for Artificial Intelligence...

An implementation of the Soar artificial intelligence architecture that runs on the RCX brick. Soar incorporates acting, planning, and learning in a rule-based framework. http://tinysoar.sourceforge.net
TinyVM Java A predecessor to the lejos language. An open source Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 based replacement firmware for the Lego Mindstorms RCX microcontroller.
http://tinyvm.sourceforge.net/
The Transterpreter Occam
Occam (programming language)
occam is a concurrent programming language that builds on the Communicating Sequential Processes process algebra, and shares many of its features. It is named after William of Ockham of Occam's Razor fame....

http://transterpreter.org/
Gostai URBI
URBI
Urbi is a cross-platform software platform used to develop applications for robotics and artificial intelligence. It is based on the urbiScript programming language which is a parallel and event-driven script language with a C++ like syntax...

 for Lego Mindstorms NXT
Lego Mindstorms NXT
Lego Mindstorms NXT is a programmable robotics kit released by Lego in late July 2006.It replaces the first-generation Lego Mindstorms kit, which was called the Robotics Invention System. The base kit ships in two versions: the Retail Version and the Education Base Set . These can be used to...

URBI
URBI
Urbi is a cross-platform software platform used to develop applications for robotics and artificial intelligence. It is based on the urbiScript programming language which is a parallel and event-driven script language with a C++ like syntax...

, C++, Java, Matlab
Easy to use parallel and event-driven script language with a component architecture and opensource interfaces to many programming languages. It also offers voice/speech recognition/synthesis, face recognition/detection, Simultaneous localization and mapping
Simultaneous localization and mapping
Simultaneous localization and mapping is a technique used by robots and autonomous vehicles to build up a map within an unknown environment or to update a map within a known environment while at the same time keeping track of their current location.- Operational definition :Maps are used to...

, etc.
http://www.gostai.com/nxt
Vision Command RCX Code The official programming language for use with the Lego Cam, that allows you to control your robot with color, motion, and flashes of light. http://mindstorms.lego.com/eng/products/vc/index.asp
XS Lisp http://www.yuasa.kuis.kyoto-u.ac.jp/~yuasa/xs/
LegoLog Prolog
Prolog
Prolog is a general purpose logic programming language associated with artificial intelligence and computational linguistics.Prolog has its roots in formal logic, and unlike many other programming languages, Prolog is declarative: The program logic is expressed in terms of relations, represented as...

Uses an NQC program to interpret commands send from the PC running the Prolog code http://www.cs.toronto.edu/cogrobo/Legolog/
Microsoft Visual Programming Language (VPL) Graphical flowchart, based on .NET With the Microsoft Robotics Studio
Microsoft Robotics Studio
The Microsoft Robotics Developer Studio is a Windows-based environment for robot control and simulation. It is aimed at academic, hobbyist, and commercial developers and handles a wide variety of robot hardware....

, it uses a native NXT program msrs to send and receive messages to and from a controlling program on a computer via Bluetooth
http://msdn2.microsoft.com/en-us/robotics/default.aspx
DialogOS
DialogOS
DialogOS is a graphical programming environment to design computer system which can converse through voice with the user. Dialogs are clicked together in a Flowchart...

Graphical Flowchart for voice controlled robots DialogOS combines speech recognition and speech synthesis with robotics, enabling you to build talking robots that react to your voice commands. http://www.clt-st.de/dialogos+robotics?lang=en
Processing Java (Simplified / programmed C-style) Processing (programming language)
Processing (programming language)
Processing is an open source "programming language and integrated development environment built for the electronic arts and visual design communities" with the purpose of teaching the basics of computer programming in a visual context, and to serve as the foundation for electronic sketchbooks...

 is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production. To control the NXT with Processing you can use the NXTComm Processing library developed by Jorge Cardoso.
http://jorgecardoso.org/processing/NXTComm/,
Interactive C C-style language. Language developed for the Botball robotics competition http://www.botball.org/ic
pbLua API for the Lua
Lua
Lua may refer to:* Lua , a lightweight, extensible programming language* Lua , the Roman goddess* Lua , a traditional Hawaiian martial art* "Lua" , a single by the folk rock band Bright Eyes...

 programming language for the Mindstorms NXT, text-based
pBLua: ... is written in portable C, with minimal runtime requirements; can be compiled on the fly on NXT; is a small, easy to read, and easy to write language; has extensive documentation available online and in dead-tree format, and a very friendly newsgroup pbLua, Lua.org

Community


There is a strong community of professionals and hobbyists of all ages involved in the sharing of designs, programming techniques, and other ideas associated with Lego Mindstorms. The Lego Mindstorms system/website is organized much like a wiki
Wiki
A wiki is a website that uses wiki software, allowing the easy creation and editing of any number of interlinked Web pages, using a simplified markup language or a WYSIWYG text editor, within the browser...

, harnessing the creative potential and collaborative efforts of participants. Lego
Lego Group
Lego Group is a Danish family-owned company based in Billund, Denmark and best known for the manufacture of Lego-brand toys.The company was founded in 1932 by Ole Kirk Christiansen. The word Lego is derived from the Danish words "leg godt" which in Danish means "play well"...

 also encourages sharing
Sharing
Sharing is the joint use of a resource or space. In its narrow sense, it refers to joint or alternating use of an inherently finite good, such as a common pasture or a shared residence. It is also the process of dividing and distributing. Apart from obvious instances, which we can observe in human...

 and peering
Peering
Peering is a voluntary interconnection of administratively separate Internet networks for the purpose of exchanging traffic between the customers of each network. The pure definition of peering is settlement-free or "sender keeps all," meaning that neither party pays the other for the exchanged...

 by making software code available for downloading and by holding various contests and events.

See also


  • FIRST Lego League
    FIRST Lego League
    The FIRST Lego League is an international competition for elementary and middle school students . It is arranged by the FIRST organization....

  • RoboCup Junior
    RoboCup Junior
    RoboCup Junior is closely related to the RoboCup autonomous robotic soccer competition. The programming and engineering-influenced competition introduces the aims and goals of the RoboCup project to the primary and secondary school aged level...

  • Legoscript
  • Vex Robotics Design System
  • Big Trak
  • iRobot Create
    IRobot Create
    iRobot Create is a hobbyist robot manufactured by iRobot that is based on the Roomba platform and was introduced in 2007. However, iRobot Create is explicitly designed for robotics development, rather than simply hacking the Roomba...

  • LabVIEW
    LabVIEW
    LabVIEW is a platform and development environment for a visual programming language from National Instruments.The graphical language is named "G"...

  • Robofest
    Robofest
    Robofest is a competition for 5-12 graders. It is similar to FIRST Lego League , but while FLL limits the student's robots to Lego Mindstorms robots, Robofest allows the student to use any robotics system in some of the events. Also, in FLL students are only allowed to use parts manufactured by...

  • Actor Lab
  • The Robotic Workshop
    The Robotic Workshop
    The Robotic Workshop is a toy kit, much like Lego Mindstorms, that allowed users to build and program robots using a home computer.Access Software announced The Robotic Workshop in the January 1987 issue of Ahoy! magazine. A review later appeared in the May 1988 issue of Compute! magazine. The kit...

  • URBI
    URBI
    Urbi is a cross-platform software platform used to develop applications for robotics and artificial intelligence. It is based on the urbiScript programming language which is a parallel and event-driven script language with a C++ like syntax...

  • Lego Logo
    Lego Logo
    Lego Logo was a version of the Logo computer programming language which could manipulate robotic Lego bricks attached to a computer. It was implemented on the Apple II computing platform and was used in American grade schools in the late 1980s and early 1990s....

    , an earlier use of Lego bricks with computer control.
  • Robotics suite
    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...


External links