Lego Mindstorms NXT

Last updated
Logo of Lego Mindstorms NXT Lego NXT Logo.png
Logo of Lego Mindstorms NXT
"Golf bot", a robot built with the NXT set Lego Mindstorms Nxt-FLL.jpg
"Golf bot", a robot built with the NXT set

Lego Mindstorms NXT is a programmable robotics kit released by Lego on August 2, 2006. [1] [2] [ non-primary source needed ] It replaced the Robotics Invention System, the first-generation Lego Mindstorms kit. The base kit ships in two versions: the retail version [3] and the education base set. [4] It comes with the NXT-G programming software or the optional LabVIEW for Lego Mindstorms. [5] A variety of unofficial languages exist, such as NXC, NBC, leJOS NXJ, and RobotC. A second-generation set, Lego Mindstorms NXT 2.0, was released on August 1, 2009, with a color sensor and other upgrades. The third-generation EV3 was released in September 2013.

Contents

NXT Intelligent Brick

Lego Mindstorms NXT Kit Lego Mindstorms NXT Kit.jpg
Lego Mindstorms NXT Kit
Robot built from the kit Lego MindStorms NXT - Alpha Rex.jpg
Robot built from the kit

The kit's main component is the NXT Intelligent Brick computer, which can accept input from up to four sensors and control up to three motors with a modified version of RJ12 cables (similar to, but incompatible with, RJ11 phone lines). The plastic pin to hold the cable in the socket is moved slightly to the right. The brick has a 100×64 pixel monochrome LCD and four buttons that can navigate a user interface with hierarchical menus. It has a 32-bit ARM7TDMI-core Atmel AT91SAM7S256 microcontroller with 256 KB of FLASH memory and 64 KB of RAM, an 8-bit Atmel AVR ATmega48 microcontroller, and Bluetooth support. The kit has a speaker, and can play sound files at sampling rates up to 8 kHz. Power is supplied by 6 AA batteries (1.5 V each) in the consumer version of the kit, and a rechargeable Li-Ion battery in the educational version.

Development kits

Lego has released open source firmware for the NXT Intelligent Brick and schematics for all hardware components. [6]

Several developer kits are available with documentation for the NXT:

Programming

Simple programs can be created using the menu on the NXT Intelligent Brick. More complicated programs and sound files can be downloaded with a USB port or Bluetooth. Files can be copied wirelessly between two NXT bricks, 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 kit's retail version includes software for writing programs that run on Windows and Mac OS personal computers. The software, based on National Instruments LabVIEW, provides a visual programming language for writing simple programs and downloading them to the NXT Brick; instead of requiring users to write lines of code, they can use flowchart-like blocks to design their program.

NXT
NXT-G v2.0 is a graphical programming environment that comes bundled with the NXT and can be used for real-world programming. The software can run a handful of parallel loops or blend autonomous control with Bluetooth or other remote control. It supports virtual instruments for all Lego and most third-party sensors and components. Version 2.0 contains new challenges, a remote control, custom graphics and sound designers, and Lego color sensor support. [7]
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. [8]
BricxCC, Next Byte Codes, Not eXactly C
Bricx Command Center (BricxCC) is the integrated development environment (IDE) used to write, compile, 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. 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 standard .rxe NXT executables to NBC. Not eXactly C (NXC) is a high-level open source language, [9] similar to C and built on the NBC compiler. It can be used to program the NXT brick. NXC is basically NQC for the NXT. [10]
Robolab
The newer programming environment originally used on the RCX programmable brick. Version 2.9 has been updated to program the NXT brick. Lego has announced that it will stop supporting Robolab, but Robolab 2.9 is still available. [11]
RoboMind
RoboMind is educational software to teach students about logic, programming and robotics. Scripts can be transferred to a Lego Mindstorms NXT robot for testing. [12]
Enchanting
Enchanting brings NXT programming to the Scratch IDE, designed by the Lifelong Kindergarten Group at MIT to make programming intuitive for young children.
ROBOTC
A programming language based on C for VEX, the VEX Cortex, FIRST Tech Challenge, and Lego Mindstorms. ROBOTC allows the NXT to run programs quickly, and compresses files to accommodate a large number of programs.
NXTGCC
A GCC toolchain for programming NXT firmware in C.
leJOS NXT
leJOS NXJ is a high-level open source language based on Java that uses custom firmware. [13]
nxtOSEK
nxtOSEK can be used to write in C and C++ with custom firmware. [14]
ICON
ICON can write files on the NXT itself. [15] [16]
MATLAB is a high-level programming language for numerical computing, data acquisition, and analysis. It can control Lego NXT robots over a Bluetooth serial port (serial port communication is part of the base functionality of MATLAB) or via USB. [17] (free & open-source). Simulink is a block-diagram environment for modeling and simulating dynamic systems. A user can design and simulate control algorithms and Lego systems, and program the Lego NXT or EV3. [18]
Lua
plLua [19] is a port of the Lua programming language, a general-purpose scripting language, for Lego Mindstorms.
Ada
A port of GNAT [20] for the NXT. It relies on a dedicated run-time kernel based on the Ravenscar profile used on the Goce satellite, allowing high-level Ada features to develop concurrent and real-time systems on the Mindstorms NXT.
URBI
URBI is a parallel, event-driven language with interfaces to C++/Java and Matlab. It has a component architecture (UObject) for distribution. Urbi is compatible with many robots, including Nao (cf Robocup), Bioloid and Aibo. [21]
FLL NXT Navigation
FLL Nxt Navigation [22] is an open source program to aid navigation on the FLL competition table. It uses NXT-G and .txt files to write programs.
Ruby-nxt
Ruby-nxt [23] is a library to program the NXT for the Ruby programming language. The code is not compiled to a binary file (unlike other languages for the NXT), but is transmitted to the NXT via Bluetooth.
Robotics.NXT
Robotics.NXT [24] is a Haskell interface to NXT over Bluetooth. It supports direct commands, messages and many sensors, and supports simple message-based control of an NXT brick via a remotely-executed program. Basic NXC code is included.
LibNXT
LibNXT [25] is a utility library for talking to the Lego Mindstorms NXT intelligent brick at a relatively low level. It is targeted at platforms overlooked by official Lego Mindstorms NXT software (such as Linux), and works on any POSIX-compliant operating system where libusb 0.1 is supported. Windows support is also possible with libusb's win32 port.
C_NXT
C_NXT [26] is a library for controlling the Lego NXT licensed under the GPLv2. It allows users to control a Lego NXT via Bluetooth from other C programs. The library, which runs on Linux, provides low-level control and high-level abstraction.
PyNXC
PyNXC [27] is a project which converts Python code to Not Exactly C (NXC) [28] to download to Lego Mindstorms robots.
NXT-Python
NXT-Python [29] is a Python module which communicates with the NXT via USB or Bluetooth. It supports commands and several aftermarket sensors.
LEGO Mindstorms EV3 Software
The software which ships with the newer Mindstorms EV3 set can program the NXT. [30]
Physical Etoys
A Lego NXT car which avoids walls, implemented in Physical Etoys Auto PE.png
A Lego NXT car which avoids walls, implemented in Physical Etoys
Physical Etoys is a visual programming system for electronic devices which supports direct and compiled modes.
C/C++ Interpreter Ch
Ch is a C/C++ interpreter running C/C++ code to control Lego NXT or EV3. No firmware upload/download or compilation is needed. A C/C++ code running in Ch can control a Lego NXT, EV3, or multiple of NXT/EV3. [31]

Sensors and actuators

The Lego Mindstorms NXT base kit includes: [32]

Other parts may be bought separately. [37] Third-party companies manufacture sensors such as a compass, gyroscope, infrared tracker, RFID reader and accelerometer sensors sold by Lego. The temperature sensor can measure in Celsius or Fahrenheit.

Connector

Sensors are connected to the NXT brick with a six-position modular connector with 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 I2C and RS-485 communication.

NXT sensor interface pinout
PinNameFunctionColorPin number
1ANALOGAnalog interface, +9V supply Wire white.svg
White
Rj25 connector.jpg
2GNDGround Wire black.svg
Black
3GNDGround Wire red.svg
Red
4IPOWERA+4.3V supply Wire green.svg
Green
5DIGIAI0I2C clock (SCL), RS-485 B Wire yellow.svg
Yellow
6DIGIAI1I2C data (SDA), RS-485 A Wire blue.svg
Blue

NXT 2.0

Lego Mindstorms NXT 2.0 is the second set in the Lego Mindstorms series, introduced on August 5, 2009, at the Lego Shop in the U.S. The set contains 619 pieces, including a sensor that can detect colors. It was followed by the Lego Mindstorms EV3. [38]

Features

Model forklift constructed with the Lego Mindstorms NXT 2.0 ==MultipleViews NXT Forklift==.jpg
Model forklift constructed with the Lego Mindstorms NXT 2.0

NXT intelligent brick

  • 32-bit Atmel AT91SAM7S256 main microcontroller (256 KB flash memory, 64 KB RAM)
  • 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 port
  • Bluetooth Class II V2.0
  • Loudspeaker – 8 kHz sound quality, 8-bit resolution, 2–16 kHz sample rate
  • Four push buttons to navigate menus and use in programs
  • Powered by six AA batteries or the NXT rechargeable battery

See also

Related Research Articles

<span class="mw-page-title-main">Lego Mindstorms</span> Hardware and software platform by Lego

Lego Mindstorms is a discontinued hardware and software structure which develops programmable robots based on Lego bricks.

leJOS is a firmware replacement for Lego Mindstorms programmable bricks. Different variants of the software support the original Robotics Invention System, the NXT, and the EV3. It includes a Java virtual machine, which allows Lego Mindstorms robots to be programmed in the Java programming language. It also includes 'iCommand.jar' which allows you to communicate via bluetooth with the original firmware of the Mindstorm. It is often used for teaching Java to first-year computer science students. The leJOS-based robot Jitter flew around on the International Space Station in December 2001.

<span class="mw-page-title-main">FIRST Lego League Challenge</span> Robotics competition

The FIRST LEGO League Challenge is an international competition organized by FIRST for elementary and middle school students.

BrickOS is an open-source operating system created by Markus Noga as firmware to operate as an alternative software environment for the Lego Mindstorms Robotic Invention System. BrickOS is the first open-source software made for Lego Mindstorms robots. It allows development using the C, C++, and Java programming languages. Programs are cross compiled using the g++ and Jack compilers, with the toolchain targeting the Hitachi H8 architecture used in Mindstorms devices.

<span class="mw-page-title-main">Qfix robot kit</span>

Qfix robot kits are an education tool for teaching robotics. They are used in schools, high schools and mechatronics training in companies. The robot kits are also used by hobby robot builders. The qfix kits are often found in the RoboCup Junior competition where soccer robots are built of the kit's components.

Next Byte Codes (NBC) is a simple language with an assembly language syntax that can be used to program Lego Mindstorms NXT programmable bricks. The command line compiler outputs NXT compatible machine code, and is supported on Windows, Mac OS and Linux. It is maintained by John Hansen, a Mindstorms Developer Program member.

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. DialogOS includes bindings to control Lego Mindstorms robots by voice and has bindings to SQL databases, as well as a generic plugin architecture to integrate with other types of backends.

Not eXactly C, or NXC, is a high-level programming language for Lego Mindstorms NXT designed by John Hansen in 2006. NXC, which is short for Not eXactly C, is based on Next Byte Codes, an assembly language. NXC has a syntax like C. The IDE for NXC is the Bricx Command Center.

Lego Education is a Lego theme designed specifically for schools that concentrates sets that can be used by education institutions and includes sets that focus on Duplo and Technic themes and contain larger amounts of pieces. The theme was first introduced in 1999.

The World Robot Olympiad (WRO) is a global robotics competition for young people. The World Robot Olympiad competition uses Lego Mindstorms manufactured by LEGO Education. First held in 2004 in Singapore, it now attracts more than 28,000 teams from more than 85 countries.

<span class="mw-page-title-main">Bricx Command Center</span>

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 C and Not eXactly C have a syntax like C. Bricx Command Center is currently limited to computers running the Microsoft Windows operating system. However, a version for the Linux operating system is currently in development. It is written by John Hansen.

<span class="mw-page-title-main">For Inspiration and Recognition of Science and Technology</span> Engineering societies based in the United States

For Inspiration and Recognition of Science and Technology (FIRST) is an international youth organization that operates the FIRST Robotics Competition, FIRST LEGO League Challenge, FIRST LEGO League Explore, FIRST LEGO League Discover, and FIRST Tech Challenge competitions. Founded by Dean Kamen and Woodie Flowers in 1989, its expressed goal is to develop ways to inspire students in engineering and technology fields. Its philosophy is expressed by the organization as Coopertition and Gracious Professionalism. FIRST also operates FIRST Place, a research facility at FIRST Headquarters in Manchester, New Hampshire, where it holds educational programs and day camps for students and teachers.

Dexter Industries is a company that designs robots for education, research, and personal use. The company makes several products that expand the LEGO Mindstorms, Raspberry Pi, and Arduino prototype systems.

<span class="mw-page-title-main">Tetrix Robotics Kit</span>

TETRIX Robotics consists of two robotic kits by Pitsco Education. The two sets are the TETRIX MAX building system and the TETRIX PRIME building system. They are intended to be used as educational robotics and for competitions such as the FIRST Tech Challenge.

<span class="mw-page-title-main">Lego Mindstorms EV3</span>

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 to the fact that it is the third generation of computer modules - first was the RCX and the second is the NXT. It was officially announced on January 4, 2013, and was released in stores on September 1, 2013. The education edition was released on August 1, 2013. There are many competitions using this set, including the FIRST LEGO League Challenge and the World Robot Olympiad, sponsored by LEGO.

Open Roberta is a project within the German education initiative "Roberta – Learning with robots", initiated by Fraunhofer IAIS, which is an institute belonging to the Fraunhofer Society. With Open Roberta Fraunhofer IAIS is looking to encourage children to code by using robots such as Lego Mindstorms, and other programmable hardware systems such as Arduino, BBC micro:bit, and the Calliope mini. The Cloud-approach of the Open Roberta Lab is intended to simplify programming concepts and make it easier for teachers and schools to teach how to code. Open Roberta is free and does not require any installation. The project was initially founded with €1m by Google.org. Users from up to 120 countries now access the platform.

<span class="mw-page-title-main">RoboBlockly</span>

RoboBlockly is a web-based robot simulation environment for learning coding and math. Based on Blockly, it uses a simple puzzle-piece interface to program virtual Linkbot, Lego Mindstorms NXT and EV3, as well as to draw and animate for beginners to learn robotics, coding, math, science, and art. Blocks in RoboBlockly can be executed in debug mode step-by-step. All math activities in RoboBlockly are Common Core State Standards Mathematics compliant.

<span class="mw-page-title-main">C-STEM Studio</span>

C-STEM Studio is a platform for hands-on integrated learning of computing, science, technology, engineering, and mathematics (C-STEM) with robotics. It can be used to control multiple Linkbot, Lego Mindstorms NXT and EV3, Arduino boards.

References

  1. "What's NXT? LEGO Group Unveils Lego Mindstorms NXT Robotics Toolset at Consumer Electronics Show" (Press release). Las Vegas, NV: The Lego Group. January 4, 2006. Archived from the original on July 8, 2009. Retrieved 2007-09-17.
  2. "LEGO MINDSTORMS NXT Robotics Toolset Now Widely Available" (Press release). New York, NY: The Lego Group. August 2, 2006. Archived from the original on September 11, 2006. Retrieved July 3, 2022.
  3. "8527Mindstorms NXT Kit". Mindstorms.lego.com. LEGO Group. Archived from the original on 2009-02-03. Retrieved 2008-12-26.
  4. "Lego Mindstorms Education NXT Base Set". Education.lego.com. Archived from the original on 2011-12-10. Retrieved 2011-09-30.
  5. "LEGO Education | Products > Middle School > NI LabVIEW for LEGO MINDSTORMS Software". Archived from the original on 2011-12-16. Retrieved 2011-11-16.
  6. "All the tools to take your Lego Mindstorms NXT to the Extreme!". Archived from the original on 6 October 2009.
  7. "Brickshelf Gallery - Example code fragments". Brickshelf.com. Retrieved 3 July 2022.
  8. "Shows". Docs.microsoft.com. Retrieved 3 July 2022.
  9. "Not eXactly C". Sourceforge.net.
  10. "NBC – NeXT Byte Codes, Not eXactly C, and SuperPro C". Sourceforge.net.
  11. "Lego Education". Lego.com.
  12. "RoboMind.net – Documentation > Lego Mindstorms NXT support". Robomind.net.
  13. Moral, Juan Antonio Breña. "LeJOS, Java for Lego Mindstorms". Sourceforge.net.
  14. "nxtOSEK". Sourceforge.net.
  15. "ICON". Teamhassenplug.org. Retrieved 3 July 2022.
  16. "Team Hassenplug". Teamhassenplug.org. Retrieved 3 July 2022.
  17. "mindstorms / ev3-toolbox-matlab · GitLab". Gi.rwth-aachen.de. Retrieved 3 July 2022.
  18. "Search Hardware Support". Mathworks.com. Retrieved 3 July 2022.
  19. "pbLua Home Page". 8 December 2008. Archived from the original on 2008-12-08. Retrieved 3 July 2022.
  20. "Libre - Home > Tools > GNAT GPL for LEGO MINDSTORMS NXT – Ravenscar Edition". Archived from the original on 2012-03-05. Retrieved 2009-06-24.
  21. "Gostai". Gostai.com. Archived from the original on 2007-04-30.
  22. "FLL NXT Navigation - Home". Archived from the original on 2016-03-04. Retrieved 2009-03-12.
  23. "zuk/ruby-nxt". Github.com. 14 November 2020. Retrieved 3 July 2022.
  24. "NXT". Hackage.haskell.org. Retrieved 3 July 2022.
  25. "Google Code Archive - Long-term storage for Google Code Project Hosting". Code.google.com. Retrieved 3 July 2022.
  26. "C_NXT". Github.com. 13 June 2016. Retrieved 3 July 2022.
  27. "Google Code Archive - Long-term storage for Google Code Project Hosting". Code.google.com. Retrieved 3 July 2022.
  28. "NBC - NeXT Byte Codes, Not eXactly C, and SuperPro C". Bricxcc.sourceforge.net. Retrieved 3 July 2022.
  29. "Schodet/nxt-python". Github.com. 18 June 2022. Retrieved 3 July 2022.
  30. "FAQs available for". Education.lego.com. Retrieved 7 December 2019.
  31. "UC Davis Center for Integrated Computing and STEM Education » Ch Robot Controller". Ucdavis.edu.
  32. "Home – LEGO MINDSTORMS® - LEGO.com – Mindstorms LEGO.com". Lego.com. Archived from the original on 2012-05-29. Retrieved 2009-01-15.
  33. "Home – LEGO MINDSTORMS® - LEGO.com – Mindstorms LEGO.com". Lego.com.
  34. "Home – LEGO MINDSTORMS® - LEGO.com – Mindstorms LEGO.com". Lego.com. Archived from the original on 2012-02-17. Retrieved 2009-01-15.
  35. "Home – LEGO MINDSTORMS® - LEGO.com – Mindstorms LEGO.com". Lego.com.
  36. "Home – LEGO MINDSTORMS® - LEGO.com – Mindstorms LEGO.com". Lego.com.
  37. "Home – Lego Mindstroms - LEGO.com". Lego.com. Archived from the original on 2009-10-06. Retrieved 2009-01-15.
  38. Miles, Stuart (November 6, 2018). "LEGO Mindstorms NXT 2.0 launches". Pocket-lint. Retrieved January 28, 2009.