The Lego Mindstorms series of kits contain software and hardware to create customizable, programmable robots. They include an intelligent brick computer that controls the system, a set of modular sensors and motors, and Lego parts from the Technic line to create the mechanical systems.
The hardware and software roots of the Mindstorms Robotics Invention System kit go back to the programmable brick created at the MIT Media Lab. This brick was programmed in Brick Logo. The first visual programming environment was called LEGOsheets, since it was created by the University of Colorado in 1994 based on AgentSheets.
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 light, sound, and distance as well as 1 touch sensor. The NXT 2.0 has 2 touch sensors as well as a light and distance sensor, and support for 4 without using a sensor multiplexer. Lego Mindstorms may be used to build a model of an embedded system with computer-controlled electromechanical parts. Many kinds of real-life embedded systems, from elevator controllers to industrial robots, may be modelled using Mindstorms.
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 Lego Mindstorms for Schools, and 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. 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 touch sensor and several more gearing options.
Mindstorms is named after the book Mindstorms: Children, Computers, and Powerful Ideas by Seymour Papert.
The latest system, called the Lego Mindstorms EV3, was released on September 1, 2013.
- 1 Robotics Invention System
- 2 Lego camera
- 3 4.5V PC interface
- 4 Technic control center
- 5 Dacta Control Lab
- 6 Cybermaster
- 7 Codepilot
- 8 Scout
- 9 Micro Scout
- 10 Spybotics
- 11 Programming language
- 12 Lego Mindstorms NXT
- 13 Lego Mindstorms NXT Educational Version
- 14 Lego Mindstorms NXT 2.0
- 15 Lego Mindstorms EV3
- 16 Programming languages
- 17 Community
- 18 See also
- 19 Notes
- 20 References
- 21 External links
Robotics Invention System
The first generation of Lego Mindstorms was built around a brick known as the RCX (Robotic Command eXplorers). It contains an 8-bit Renesas (then a part of Hitachi) H8/300 microcontroller as its internal CPU. It included 32K of RAM to store the firmware and user programs. The brick is programmed by uploading a program (written in one of several available programming languages) from a Windows or Mac computer to the brick's RAM via a special infrared (IR) interface. After the user starts a program, an RCX-enabled Mindstorms creation can 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, the system includes three sensor input ports and three motor output ports (which can also be used to drive other electrical devices such as lamps and so forth). An integral 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 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. In the latter context, the RCX needs to 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 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 or USB 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 USB tower does not work on a 64-bit OS unless a 32-bit OS is used in conjunction with a virtual machine. The serial tower works normally under 64-bit Windows 7 using a third-party USB-to-serial adapter.[contradictory]
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.
Lego Mindstorms' programming is command box programming, rather than code programming.
- RCX Code (included in the Mindstorms consumer version sold at toy stores)
- ROBOLAB (based on LabVIEW and developed at Tufts University)
Popular third-party languages:
- GNAT GPL: Allows programming NXT using the Ada language for real-time and embedded programming.
- leJOS: A port of Java
- Not eXactly C: (NXC), an open-source C-like high-level programming language,
- Not Quite C: (NQC)
- RoboMind: Simple educational scripting language for virtual and LEGO NXT robots.
- ROBOTC: C-based programming language with an easy-to-use development environment.
- Simulink: Graphical signal-processing and control-design tool from which C code is auto-generated and deployed onto the NXT.
- pbFORTH: Extensions to Forth
- pbLua: Version of Lua
- Visual Basic: Via the COM+ interface supplied on the CD
- TurtleBots: TurtleBots provides a visual programming environment oriented to blocks.
The Lego camera on its own is technically not a robotic toy; rather, it is a normal webcam (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.
4.5V PC interface
The first programmable Lego product (1989). It came with a dedicated IBM-PC-compatible ISA interface card, a ribbon cable, and a control panel. The control panel included six non-reversible 4.5V output ports, three reversible 4.5V output ports (each using the power lines from their two adjacent non-reversible ports), two 4.5V input ports, and one continuous 4.5V output port. It also features a manual-override stop-button. Using programs running on the host computer, the user could create stationary programmable robotic Lego inventions using the older 4.5V system. The 4.5V PC Interface was superseded by the 9V-based Dacta Control Lab in 1995.
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.
Compared to the later programmable controllers, the Technic control center is extremely simple and can only barely be called programmable.
Dacta Control Lab
Released in 1995, the Dacta Control Lab was the first Lego product to feature the sensors used in later 9V-based automated Lego products. The control lab was a datalogger, which featured four passive input ports, four active input ports, eight controllable 9V output ports, and one continuous output port. It also featured a manual-override stop-button. The control panel connected to a computer using a serial-port with a specially designed adapter cable and a supplied computer-program allowed the user to conditionally program the outputs. This allowed for robotic operation of mostly stationary Lego inventions. The Control Lab superseded the old 4.5V PC interface from 1989, which was the first fully programmable Lego interface.
The connectors of the early sensors were color-coded according to their type. Active sensors had blue connectors and Passive sensors had yellow connectors. Later Pbricks kept the color-coding for the input ports, but the later sensors dropped the color-coding of the connectors (using black connectors instead). The early touch-sensors were also of a different kind and shape compared to the later touch-sensors. Most notably, instead of featuring a removable cable, the cable was fixed just like the other sensors. These early sensors also featured longer cables.
The Control Lab was designed for schools and educational use and was as a result not available to the mass market. It was later replaced by the RCX and the educational release of the Robot Invention System which allowed for mobile inventions in addition to stationary inventions.
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)[clarification needed] 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.
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.
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 32KB of ROM and 1KB 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".
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.
Spybotics is a robotics package. It consists of four colour-coded robots called Spybots, a programming language with which to control the Spybots, and ten simulated missions.
Lego Mindstorms' programming is command box programming, rather than code programming.
- Lego-supplied languages
- NXT-G Code (come with the box sold at retail vendors)
- In order to use Robolab there are two steps involved:
- Step 1: Purchase LVEE -
- This is the National Instruments LabVIEW for Lego Mindstorms: item# 2257 from online LEGO Education Site.
- Step 2: Install Robolab 2.9+ plug-in -
- Free download from the online LEGO Engineering/Tufts U. (same one used for RCX, but require additional libraries downloaded from www.legoengineering.com - free download)
- If you have already owned the Robolab, you just need to download it from www.legoengineering.com.
- Popular third-party languages
- There are many 3rd party programming languages out there. However, the following includes the most common ones:
- ROBOTC: C-Based Programming Language with an Easy-to-Use Development Environment.
- Microsoft Robotics: from Microsoft Developers Studio; you need to download the plug-ins online.
Lego Mindstorms NXT
Lego Mindstorms NXT is 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 is sold separately, 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. It costs about US$410.00 with the Bluetooth Dongle.
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.
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 September 1, 2013. The LEGO MINDSTORMS EV3 set includes motors, sensors, the EV3 programmable brick, 550+ LEGO Technic elements and a remote control. 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 Linux-based operating system.
|Name||Device||Program Type||Language type(s)||Notes||Links|
|RCX||NXT||EV3||Runs On Brick||Remote Control|
|Actor-Lab||Custom flowchart-like language|
|Ada Interface to MindStorms||Ada|
|App Inventor||yes||App Inventor||Specific support for LEGO(tm) MINDSTORMS(tm) NXT sensors and motors|
|Ch||C/C++ Interpreter||Control Lego Mindstorms in C/C++ interactively without compilation|
|Enchanting||Drag and drop, similar to NXT-G||Program your robots simply by dragging the line of functions.|
|EV3Basic||no||no||yes||yes||no||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|
|GNU Toolchain for h8300||C/C++, ASM|
|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.|
|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||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|
|NXTGCC||Assembly, C, makefiles, Eclipse, etc.||The first GCC toolchain for programming the Lego Mindstorms NXT firmware.|
|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|
|MicroWorlds EX Robotics Edition||This is a program in the MicroWorlds series that allows students to control the NXT.|
|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.|
|Lestat||C++||Allows you to control the NXT directly from any C++ program in Linux.|
|OCaml-mindstorm||OCaml||Module to control LEGO NXT robots using OCaml through the Bluetooth and USB interfaces.|
|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|
|OnScreen||A custom language which can be programmed directly on the RCX|
|pbForth||yes||Forth||No longer developed.|
|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|
|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||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||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.|
|ROS||A Linux based library for writing robots. The stack "nxt" provides interface with the NXT.|
|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).|
|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).|
|LEGO MINDSTORMS NXT Support from Simulink||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.|
|Swift / Robotary||yes||yes||Swift (programming language)||Robotary is a Mac robotics studio that uses the Swift programming language.||website|
|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.|
|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.|
|Gostai URBI 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.|
|LegoLog||Prolog||Uses an NQC program to interpret commands send from the PC running the Prolog code|
|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|
|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.|
|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.|
|Interactive C||C-style language.||Language developed for the MIT Lego Robot Design Contest|
|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|
|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|
|Monobrick||yes||yes||yes||C#||.NET 4.5. Firmware running from SD card.||website|
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.
- FIRST Lego League
- WRO (World Robot Olympiad)
- FIRST Tech Challenge
- RoboCup Junior
- Big Trak
- iRobot Create
- Robotis Bioloid
- The Robotic Workshop
- Lego Logo, an earlier use of Lego bricks with computer control.
- Robotics suite
- "LEGOsheets". LEGOgang. Retrieved 3 December 2008.
- "The MIT Programmable Brick". Epistemology and Learning Group. Massachusetts Institute of Technology. 13 February 1998. Archived from the original on 2005-10-25. Retrieved 1 October 2013.
The MIT Programmable Brick is a tiny, portable computer embedded inside a Lego brick, capable of interacting with the physical world through sensors and motors. The Programmable Brick extends the child's construction kit, enabling students to build not only structures and mechanisms, but also behaviors. With Programmable Bricks, students can spread computation throughout their worlds: they can use Programmble Bricks to build autonomous robots and "creatures"; to create "active rooms" (for example, making the lights turn on whenever anyone enters the room); and to organize "personal science experiments" (for example, counting the number of steps they take in a day). By engaging students in new types of design activities, the Programmable Brick encourages students to see themselves as designers and inventors. At the same time, these activities can help students develop a deeper understanding of important scientific concepts related to behavior, feedback, and control. We are currently developing a new generation of Programmable Bricks called Crickets. These new bricks are smaller, lighter, and cheaper than their predecessors, and they have enhanced communications capabilities. The Programmable Brick is a research project at the MIT Media Laboratory; it is not a commercial product of the Lego Group. The primary design team for the Programmable Brick includes: Fred Martin, Mitchel Resnick, Brian Silverman, Robbie Berg, Rick Borovoy, Randy Sargent, and Seymour Papert. Click here for more information about the Programmable Brick project.
- "Programmable Bricks". Projects. MIT Media Lab. Archived from the original on 2013-10-21. Retrieved 3 December 2008.
- Erwin, Ben; Cyr, Martha; Rogers, Chris (2000). "LEGO Engineer and RoboLab: Teaching Engineering with LabVIEW from Kindergarten to Graduate School" (PDF). International Journal of Engineering Education. 16 (3): 181–192.
For the past 6 years, faculty members at Tufts University have developed two different software packages between LabVIEW and Lego data acquisition systems. These packages allow us to teach engineering with both Lego bricks and LabVIEW to students from 5 to 50 years old. The versatility of the hardware and software allow a wide variety of possibilities in what students can build and programÐfrom robots and remote sensing devices to kinetic sculptures. As students design and build their projects, they are motivated to learn the math and science they need to optimise their project. Both college students and kindergartners respond to this motivator. In the paper, we explain how we designed software to complement these projects in allowing automation and animation. The software uses LabVIEW, extending its capabilities to kindergartners and Lego bricks. Finally, we will show how we have used LabVIEW and Lego data acquisition to teach elementary school science, freshman engineering, instrumentation and experimentation, and how college seniors and graduate students have used both the hardware and software to solve various data acquisition problems
- Bumgardner, Jim (29 March 2007). "The Origins of Mindstorms". Wired. Condé Nast. Archived from the original on 2013-12-21. Retrieved 1 October 2013.
You may not know that Lego Mindstorms gets its name from a book by Seymour Papert called Mindstorms: Children, Computers, and Powerful Ideas. I first read this book in the 1980s, and I took its basic precepts to heart when I started teaching Lego Mindstorms classes to younger kids (that’s one of my students in the photo). Papert’s ideas continue to guide me in my Flash videogame programming classes for high school kids. .... In the 1970s, Papert constructed a kind of Mathland using the LOGO programming language, and robotic turtles that could draw pictures. These tools were used by very young kids, who would not ordinarily be exposed to concepts like angles and polygons. Papert’s book, Mindstorms, recounts this fascinating story. .... A key component of Papert’s educational philosophy is self-directed learning. As kids build cool things in Mathland, they naturally encounter problems which require creative mathematical solutions. As a result, formerly abstract mathematical concepts take on a real meaning, and there are tangible rewards for tinkering with these concepts.
- "What's NXT? LEGO Group Unveils LEGO MINDSTORMS NXT Robotics Toolset at Consumer Electronics Show". Press Release. LAS VEGAS: LEGO Company. 4 January 1986. Archived from the original on 2009-07-08. Retrieved 3 December 2008.
- "Lego Robotics FAQ". 2009. Archived from the original on 2010-08-08. Retrieved 2 March 2010.
- Crook, Jordan. "LEGO Mindstorms EV3: The Better, Faster, Stronger Generation Of Robotic Programming". TechCrunch. Retrieved 2015-05-22.
- Bagnall, Brian. Maximum LEGO NXT: Building Robots with Java Brains Variant Press. 2007. ISBN 0-9738649-1-5
- Bagnall, Brian. Core LEGO Mindstorms Prentice-Hall PTR. 2002. ISBN 0-13-009364-5
- Baum, Dave. Definitive Guide to LEGO MINDSTORMS, 2nd ed. Apress. 2002. ISBN 1-59059-063-5.
- Erwin, Benjamin. Creative Projects with LEGO Mindstorms (book and CD-ROM). Addison-Wesley. 2001. ISBN 0-201-70895-7.
- Ferrari et al. Building Robots with LEGO Mindstorms: The Ultimate Tool for Mindstorms Maniacs. Syngress. 2001. ISBN 1-928994-67-9.
- Gindling, J., A. Ioannidou, J. Loh, O. Lokkebo, and A. Repenning., "LEGOsheets: A Rule-Based Programming, Simulation and Manipulation Environment for the LEGO Programmable Brick," Proceeding of Visual Languages, Darmstadt, Germany, IEEE Computer Society Press, 1995, pp. 172–179.
- Breña Moral, Juan Antonio. Develop LeJOS programs Step by Step, "http://www.juanantonio.info/lejos-ebook/
|Wikimedia Commons has media related to Lego Mindstorms.|