kids encyclopedia robot

Lego Mindstorms facts for kids

Kids Encyclopedia Facts
Quick facts for kids
Lego Mindstorms
Lego Mindstorms Sound Finder.jpg
Robot based on the NXT platform
Subject Robotics
Availability 1998 (1998)
Official website: https://www.lego.com/mindstorms

Lego Mindstorms is a hardware and software structure which is produced by Lego for the development of programmable robots based on Lego building blocks. Each version of the system includes a computer Lego brick that controls the system, a set of modular sensors and motors, and Lego parts from the Technic line to create the mechanical systems.

Since creation, there have been five generations of the Mindstorms platform: the original Robotics Invention System, NXT, NXT 2.0, EV3, and Robot Inventor kit. With each platform release, the motor and sensor capabilities expanded. The one before last system, Lego Mindstorms EV3, was released on 1 September 2013. Some robot competitions use this set, such as the FIRST Lego League and the World Robot Olympiad.

Pre-Mindstorm

Before Mindstorms, Lego had previously done some experimentation with robotic sets. One of the main foundations of these sets was the Lego Technic system and its 4.5 V and later 9 V system for electrical peripherals that had been evolving through the 1980s.

Computer Interfaces

One of the first examples of programmable Lego was the LEGO Interface-A adapter, used for the educational-only Lego Dacta TC-Logo system. These sets from the mid-late 1980s provided a dedicated hardware interface to control the Lego Technic 4.5 V system using a computer, and for the first time it introduced electric Lego sensors. This interface was controlled from an IBM-PC or Apple-IIe by the use of a special version of Logo, a simple programming language designed for use in children's education. In the mid-1990s, the Lego Dacta Control Lab released as a follow-up for Lego 9 V system, using a standard serial port rather than a custom hardware interface card. This move also introduced new 9 V sensors, which would later become a key component for the first-generation Mindstorms sets. It is worth noting that the Control Lab had dedicated ports for active and passive sensors, while later products like first generation Mindstorms provided support for both kinds on the same ports.

Technic Control Center

The control center (1990) was the first programmable standalone Lego product, in the sense of being able to store sequence-based programs and run them. It featured three output ports and manual control, and it was only capable of storing linear sequences of manual input plus timing information. It could store up to two programs at once.

The manual controls could be used to independently control the three motors. To record a program; the controller had to be put in programming mode, and then any manual control would be recorded to the program. Pauses could also be included in a program. When the recording was done, the controller could successfully recall and execute any manual action done during the recording. The executing program could be set to loop infinitely.

Cybermaster

Cybermaster
Lego Cybermaster

Cybermaster was mainly sold in Europe and Australia/New Zealand and was available for a short time in the United States via the Lego Club magazines. It was aimed at an older audience as an early attempt of merging with robotics and Lego.

The brick shares many, especially software, features with the RCX but differs in appearance and technical specifications: one output (plus two built-in) and four sensors.

  • It uses RF (27 MHz R/C band) instead of IR for communication.
  • It has two built-in motors with integrated tachometers and speedometers.
  • It is limited to passive sensors (a simple A/D 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 (395 bytes) and only one program slot.

Despite its obvious limitations 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 advanced 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 communicate indirectly.

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.

Robotics Discovery Set and Droid/Darkside Developer Kit

The Robotics Discovery Set was a more affordable and simpler package than the Robotics Invention Set. Instead of being based on the RCX, it had its own programmable brick called the Scout. An even simpler version of the Scout would be featured in two Star-Wars themed Mindstorms sets as well.

Scout

Lego also released a blue computer called the Scout, which has 2 sensor ports, 2 motor ports (plus one extra if linked with a Micro Scout using a fiber optic cable), 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.

The Scout is based on a Toshiba microcontroller with 32 KB of ROM and 1 KB of RAM, where about 400 bytes are available for user-programs. Due to the extremely limited amount of RAM, many predefined subroutines were provided in ROM. The Scout only supports passive external sensors, which means that only touch, temperature and other unpowered sensors can be used. The analog-to-digital converters used in the Scout only have a resolution of 8 bits in contrast to the 10-bit converters of the RCX.

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".

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. Like the Scout, the Micro Scout is also based on a microcontroller from Toshiba.

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

Robotics Invention System

The main core of the first generation of Mindstorms sets were the Robotics Invention System sets. These were based around the RCX (Robotic Command eXplorers) brick, and the 9 V LEGO Technic peripherals available at the time. It also includes three touch-sensors and an optical sensor, using the technology from the earlier 9 V sensors from the pre-Mindstorms sets.

RCX

LegoMindstormsRCX
First-generation RCX programmable brick

The RCX is based on the Single-bit Renesas H8/300 microcontroller, including 32 KB of ROM for low-level IO functions, along with 32 KB of RAM to store high-level firmware and user programs. The RCX is programmed by uploading a program using a dedicated infrared interface. After the user uploads a program, the RCX can run it on its own without needing access to a computer. Programs may take use of three sensor input ports and three 9 V output ports, in addition to the IR interface, enabling several RCX bricks to communicate. A built-in LCD 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 rather than solely 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 were popular for stationary robotics projects (such as robot arms) or for controlling Lego model trains. In the latter context, the RCX might be programmed with Digital Command Control (DCC) software to operate multiple wired trains.

The IR interface on the RCX is able to communicate with Spybots, Scout Bricks, Lego Trains, 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 RCX communicates with a computer using a Serial or USB IR tower. As the RCX is discontinued, support for the interface is limited on more recent operating systems than Windows XP.

All versions of the RCX have a unique number printed on it, which could be registered on the now-defunct Lego Mindstorms RCX website. This was necessary to obtain technical support. The first RCX produced is marked "000001" and was on display at the Mindstorms 10th Anniversary event.

Expansion Packs

Six expansion-packs were made for the Robotics Invention System. Most expansion sets contains more parts and instructions, while other expansion sets were more ambitious. These sets include:

  • RoboSports
  • Extreme Creatures
  • Ultimate Accessory Set
  • Vision Command
  • Exploration Mars
  • Ultimate Builders Set

Notable sets include the Ultimate Accessory Set, containing more sensors and an IR remote-control for sending commands to the RCX. Another notable set, Vision Command, came with a Lego Camera and dedicated software. This software was capable of detecting different lightings, motion, and colors.

Lego Mindstorms NXT

Lego Mindstorms NXT was a programmable robotics kit released by Lego in July 2006, replacing the first-generation LEGO Mindstorms kit. The kit consists of 577 pieces, including: 3 servo motors, 4 sensors (ultrasonic, sound, touch, and light), 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. The software also has instructions for 4 robots; Alpha-Rex (a humanoid), Tri-Bot (a car), Robo-Arm T-56 (a robotic arm), and Spike (a scorpion)

Lego Mindstorms NXT Educational Version

This is the educational version of the NXT set from Lego Education, which is made for school use. Software was sold separately (but can be downloaded for free now), and the Education Resource Set for the best use. It includes a light sensor, an ultrasonic sensor, a sound sensor, three lamps and a pair of touch sensors. The first set consists of about 400 pieces, and the extra set consists of about 600 pieces. The Education Version is most suited for those who have older versions of Mindstorms sets around, mostly thanks to its three converter cables.

Lego Mindstorms NXT 2.0

The Lego Mindstorms NXT 2.0 was launched on 5 August 2009. It contains 619 pieces (includes sensors and motors), two Touch Sensors, an Ultrasonic Sensor, and introduced a new Color Sensor. The NXT 2.0 uses Floating Point operations whereas earlier versions use Integer operation. The kit costs around US$280.

Colour Sensor
Mindstorms Color Sensor

Lego Mindstorms EV3

Lego Mindstorms EV3 brick
Brick of Lego Mindstorms EV3

The Lego Mindstorms EV3 is the third generation Lego Mindstorms product. EV3 is a further development of the NXT. The system was released on 1 September 2013. The LEGO MINDSTORMS EV3 set includes motors (2 large servo motor and 1 medium servo motor), sensors (2 touch sensors, ultrasonic sensor, color sensor, infrared sensor, and the new gyro sensor) , the EV3 programmable brick, 550+ LEGO Technic elements and a remote control (the Infrared Beacon, which is only on Home/Retail mode). The EV3 can be controlled by smart-devices. It can boot an alternative operating system from a microSD card, which makes it possible to run ev3dev, a Debian-based operating system.

Lego Education Spike Prime

Spike Prime was announced in April 2019. While not being part of the Mindstorms product line, the basic set includes three motors (1 large 2 medium) and sensors for distance, force and color a controller brick based on an STM32F413 microcontroller and 520+ LEGO Technic elements.

Lego Mindstorms Robot Inventor

Lego Mindstorms Robot Inventor was announced in June 2020 and released later in autumn. It has 4 medium motor from Spike Prime, 2 sensors (distance sensor and color/light sensor) also from spike prime, a Spike Prime hub with a 6 axis gyroscope, an Accelerometer, and support for controllers and phone control. It also have 902+ LEGO Technic elements

Programming languages

Name Device Program Type Language type(s) Notes Links
RCX NXT EV3 Runs On Brick Remote Control
Actor-Lab Custom flowchart-like language
Ada Yes Ada Requires nxtOSEK
Ada Interface to MindStorms Ada
App Inventor Yes App Inventor Specific support for LEGO(tm) MINDSTORMS(tm) NXT sensors and motors
brickOS Yes No No C/C++ website
Ch C/C++ Interpreter Control Lego Mindstorms in C/C++ interactively without compilation
clang C, C++
CoderZ Yes Yes No Java Works with Blockly or with Java (using LejOS). Also includes an online 3D simulator website
Cpp4Robots No No Yes Yes C/C++ Cpp4Robots is extension(plugin) for Microsoft Visual Studio environment. This extension allows programming of Lego EV3 in native C/C++ language and in Microsoft Visual Studio development environment. This Cpp4Robots extension works with default firmware in EV3 Brick. website
DialogOS 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.
Enchanting Drag and drop, similar to NXT-G Program your robots simply by dragging the line of functions.
EV3Basic No No Yes Yes Yes Microsoft Small Basic website
ev3_scratch Yes No Yes Scratch (programming language) Scratch code runs in the browser relaying commands to EV3 robot over Bluetooth.
FLL NXT Navigation Yes Uses NXT-G and .txt files
GCC C/C++, Objective-C, Fortran, Java, Ada, others
Gnikrap No No Yes Yes Yes JavaScript / Scratch like programming website
GNU Toolchain for h8300 C/C++, ASM
HVM Yes Development environment for the Java programming language for the Mindstorms EV3, Eclipse-based Works with Java 1.7. Works with the standard Lego firmware. Does not require a microSD card. Requires a wireless bluetooth dongle for the EV3 website
Interactive C C-style language. Language developed for the MIT Lego Robot Design Contest
jaraco.nxt Yes Yes Python 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.
LabVIEW Yes Yes Yes Yes National Instruments LabVIEW visual programming language (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 using NXT fantom.dll
LEGO MINDSTORMS EV3 API for .NET No No Yes No Yes .NET, WinJS and C++ A .NET API for the LEGO MINDSTORMS EV3 brick usable from desktop, Windows Phone and WinRT. With this API, you can connect, control and read sensor data from your LEGO EV3 brick over Bluetooth, WiFi, or USB. website
Lego.NET Anything that can compile to CIL, works best with C# Does not come with a compiler, converts CIL to machine code
Lego::NXT Yes No Yes Perl Set of Perl modules providing real-time low-level control of a Lego NXT brick over Bluetooth.
LegoLog Prolog Uses an NQC program to interpret commands send from the PC running the Prolog code
LegoNXTRemote Yes No Yes Objective-C Remote control program for remotely operating and programming a Lego NXT Brick. Supports NXT 2.0 and 1.0, sensors, all 3 motors, automatic "steering" control, and running preloaded programs.
leJOS Yes Yes Yes Yes Yes Java 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 IDE or run from the command line
Lestat C++ Allows you to control the NXT directly from any C++ program in Linux.
librcx C/C++ A library for GCC
Logitech SDK Visual Basic, Visual C++ Can be combined with an RCX control library such as spirit.ocx from the MindStorms SDK to make use of the Lego Cam
Microsoft Visual Programming Language (VPL) Yes No Yes Graphical flowchart, based on .NET With the Microsoft Robotics Studio, it uses a native NXT program msrs to send and receive messages to and from a controlling program on a computer via Bluetooth
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
Monobrick Yes Yes Yes C# .NET 4.5. Firmware running from SD card. website
NQC Yes Yes NQC, a C-like language
NXT++ C++ Allows controlling the NXT directly from any C++ program, in Visual Studio, Windows.
NXT_Python Yes No Yes Python NXT_Python is a package for controlling a LEGO NXT robot using the Python language. It can communicate via USB or Bluetooth.
NXT-Python Yes No Yes Python Based on NXT_Python, includes additional advanced features, support for around 30 sensors, and multiple brick connection backends. Works on Windows, Linux, Mac.
NXTGCC Assembly, C, makefiles, Eclipse, etc. The first GCC toolchain for programming the Lego Mindstorms NXT firmware.
nxtOSEK C/C++
OCaml-mindstorm OCaml Module to control LEGO NXT robots using OCaml through the Bluetooth and USB interfaces.
OnScreen A custom language which can be programmed directly on the RCX
pbForth Yes Forth No longer developed.
pbLua Yes API for the Lua 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 website
PBrickDev PBrickDev, a flowchart based language. Has more functionality than the RIS language, such as datalogs and subroutines/multithreading.
PRO-BOT A kind of Visual Basic/spirit.ocx-based language Designed for robots which are in contact with the workstation at all times
Processing Yes Java (Simplified / programmed C-style) Processing (programming language) 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.
QuiteC C A library for use with GCC and comes with GCC for Windows.
RCX Code Yes RCX Code, a custom flowchart-based language Included in the Mindstorms consumer version sold at toystore
ROBOLAB Yes A flowchart language based on LabVIEW This is the programming environment offered to schools who use MindStorms, supports the Lego Cam. The programming structure simulates a flowchart design structure almost icon by icon. Therefore, it helps users a great deal in terms of translating from a flowchart design to Robolab icons.
RoboMind Simple educational scripting language available from Arabic to Ukrainian. The RoboMind learning environment allows to quickly develop and test scripts for a virtual robot environment. The scripts can then directly be transferred to a Lego Mindstorms NXT robot. It works on the standard firmware.
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.
ROBOTC Yes Yes Yes Yes An Integrated development environment targeted towards students that is used to program and control LEGO NXT, VEX, RCX and Arduino robots using a programming language based on the C programming language. ROBOTC gives the ability to use a text-based language based on the C 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. This deserves a special note for its debugging tool. For any developer, you will know how important it is to have a good debugging tool. Among all other robotics programming languages which support Mindstorms platform, RobotC's debugging environment does deserve a special note; although it is not free.
Robotics.NXT Yes Yes Haskell A Haskell interface 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).
ROS A Linux based library for writing robots. The stack "nxt" provides interface with the NXT.
ruby-nxt Yes Yes Ruby Provides low-level access to the NXT via Bluetooth as well as some preliminary high-level functionality.
RWTH – Mindstorms NXT Toolbox Yes Yes MATLAB Interface to control the NXT from MATLAB via Bluetooth or USB (open-source).
Simulink (LEGO MINDSTORMS NXT Support) Yes Simulink Provides a one-click rapid programming tool for the NXT. C code is automatically generated from a graphical Simulink model. The code is then deployed and downloaded onto the NXT, from where it can be run. The Mathworks provides an array of graphical blocks that represent the various sensors and actuators that the NXT uses.
SqLego Squeak
Swift / Robotary Yes Yes Swift (programming language) Robotary is a Mac robotics studio that uses the Swift programming language. website
TclRCX Yes Tcl
Terrapin Logo LOGO
TinySoar Soar 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.
TinyVM Yes Java A predecessor to the lejos language. An open source Java based replacement firmware for the Lego Mindstorms RCX microcontroller.
Transterpreter (The) Occam
TuxMinds (Linux) GUI for various distributions, an open source IDE based on Qt. Supports a lot of bots. RCX, NXT and Asuro are predefined. With the XML-based configuration file almost any kind of bot (or microcontroller) can be added. Own equipment can be added in the same manner.
URBI by Gostai for Lego Mindstorms NXT URBI, 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, etc.
Vision Command Yes 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.
XS Lisp

Use in education

Mindstorms kits are also sold and used as an educational tool, originally through a partnership between Lego and the MIT Media Laboratory. The educational version of the products is called Mindstorms for schools or Mindstorms Education, and later versions comes with the ROBOLAB GUI-based programming software, developed at Tufts University using the National Instruments LabVIEW 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 and C. One of the differences between the educational series, known as the "Challenge Set", and the consumer series, known as the "Inventor Set", is that it includes another touch sensor and several more gearing options. However, there are several other standouts between the two versions that one may not recognize unless doing a side by side analysis of what each offers. The version sold through LEGO Education is designed for a deeper level of learning or teaching that often happens in a classroom or school setting. The LEGO Education version comes with support called the Robot Educator. This includes 48 tutorials to walk the learner through the basics of coding to more sophisticated and complex concepts such as data logging. This resource to support the learner and/or educator are not included in the retail version of Mindstorms. It's always a good idea to reach out to a LEGO Education consultant to inquire of other differences as there are several more. The retail version was designed for more of a home/toy use vs the educator model was designed to support deeper learning with extra resources and pieces to do so. This is why the LEGO Education Mindstorms contains more sensors and parts than the retail version.

Community

There is a strong community of professionals and hobbyists of all ages involved in the sharing of designs, programming techniques, creating third-party software and hardware, and contributing of other ideas associated with Lego Mindstorms. The Lego Mindstorms system/website is organized much like a wiki, harnessing the creative potential and collaborative efforts of participants. Lego also encourages sharing and peering by making software code available for downloading and by holding various contests and events.

Images for kids

See also

Kids robot.svg In Spanish: Lego Mindstorms para niños

kids search engine
Lego Mindstorms Facts for Kids. Kiddle Encyclopedia.