LEGO®, LabVIEW, and Robots- Oh My!

As one of the largest companies in the world, the bright colors of plastic Lego bricks are a familiar sight to any toy aisle. These interlocking bricks provide an engaging outlet for creativity and innovation, going far beyond playtime and becoming a valuable asset to classrooms around the globe. Through the robotics kits of Lego Mindstorms®, engineering and programming concepts are taught in a way that actively engages children while also imparting important life skills.

What is Lego Mindstorms?

Lego Mindstorms is a combination of hardware and software that allows the user to program robots created using Lego blocks as a base. Lego Technic® and other computer-related bricks are used to build the mechanical systems for each iteration. Though first designed and introduced as a tool to promote constructivism in education, Mindstorms has evolved into the first widely accessible home robotics kit. The most recent version is Lego Mindstorms Robot Inventor, which is a kit of 949 pieces that can be assembled into 5 different robot models. The programming is accomplished through Lego’s own Robot Inventor app.

What Differentiates the 5 Robot Models?

The pieces of the Robot Inventor kit can be transformed into any one of 5 models individually, each with unique capabilities. These include:

Gelo”- a four legged bot that can walk and avoid obstacles

Blast”- an upright bot that can fire missiles, throw a punch, and break obstacles

Charlie”- a bot with wheels for feet that dances to music and drums

“M.V.P.”– an 4 wheeled bot that is modular and multifunctional

Tricky”- a bot that can grab, kick, and dunk

The pieces of a Lego Mindstorms NXT kit, laid out on a table and organized
The Lego Mindstorms NXT Kit, via Marlon J. Manrique on Wikimedia

Is This Technology New?

No, Lego Mindstorms has been around for over 2 decades- with conceptual development going back to 1985. However, the technology and capabilities of the kits have greatly evolved in recent years- and the skills taught are more relevant today than ever before!

The first generation of LEGO Mindstorms was released in September of 1998. Though the target audience was children aged 10 – 14, adults and hobbyists quickly took notice of the possibilities. The first production run sold out in only 3 months.

The next iteration of Lego Mindstorms came in the form of Lego Mindstorms NXT, released in August of 2006. The base kit of this version was released in two variants: one for education, and one for retail. Notably, NI (then National Instruments) partnered with the Lego group for this release, creating a specific toolkit with LabVIEW that allowed for users to take advantage of LabVIEW’s sophisticated graphical programming tools.

The toolbox also helped further the development of LabVIEW itself, by presenting developers with the challenge of making it usable and understandable for a much younger audience. The LabVIEW / Lego Mindstorms module can still be downloaded directly from NI’s website here. It is worth noting that the software is not compatible with anything newer than LabVIEW 2016.

In August of 2009, Lego Mindstorms NXT 2.0 was released. This updated version included new sensors and motors; including an ultrasonic sensor, a color sensor, and two touch sensors. While its predecessors used integer operations, the NXT 2.0 utilized Floating Point operations.

The 3rd generation of Lego Mindstorms was Lego Mindstorms EV3, which was released in September of 2013. The updates for this kit included new motors, sensors, and a remote control. It also used the EV3 programmable brick, which is able to be controlled via smart device.

The most recent iteration of Lego Mindstorms is Lego Mindstorms Robot Inventor, which was released in the autumn of 2020. The kit boasts the use of over 900 Lego Technic pieces, a 6-axis gyroscope, an accelerometer, and phone / controller support. The remote for this version is connected via Bluetooth, which allows the remote to be either on a smart device or a wireless console controller.

The ability within the Robot Inventor app to use the camera and microphone on your smart device for machine learning and voice commands is a new feature that was added in August 2022.

What Programming Language Does Robot Inventor Use?

Example of the color coded Scratch programming language
The Scratch Programming Language, via Wikimedia

The coding capabilities within the free app features a Scratch-based user interface and Python support for more experienced programmers.

Scratch is a kid-friendly coding language that features an easy-to-use visual interface. The drag-and-drop canvas is color coded, and uses familiar icons to familiarize kids (or other coding newcomers) with the process of writing scripts.

Python is one of the most popular programming languages. Many of its features allow functional and aspect-oriented programming, while object-oriented programming and structured programming are all fully supported.

How Do I Know if My Device is Compatible?

As of the writing of this post, the overall compatibility requirements for the Robot Inventor app on different devices are as follows:

Operating System Requirements Compatible Hardware
Android Android 7.0 or newer Compatible devices must have at least 3 GB of RAM and available storage space,
a display of at least 4.5″, and Bluetooth 4.0 capabilities or newer.
Windows Windows 10 (version 1809), or newer Compatible devices must have at least 4 GB of RAM and at least 2 GB of available storage space,
a Core Duo processor of at least 1.5 GHz Intel, and Bluetooth 4.0 capabilities or newer.
iOS iOS 13 or newer Compatible devices include the iPad Air 2, iPhone SE, iPad Mini 4, or newer
macOS MacOS Catalina 10.15, or newer Compatible devices must have at least 4 GB of RAM and at least 2 GB of available storage space,
a Core Duo processor of at least 1.5 GHz Intel, and Bluetooth 4.0 capabilities or newer.
Fire OS Fire OS 7 or newer Compatible devices must have at least 3 GB of RAM, a quad core processor of at least 1.3 GHz,
and Bluetooth 4.0 capabilities or newer.

More Information: