# LEGO Mindstorms

LEGO Mindstorms (Robotics Invention Systems) is een uitbreiding op de LEGO-bouwsteentjes. De basis van Mindstorms is een centrale besturingsmodule waarmee zelfgebouwde creaties uitgerust kunnen worden met elektromotoren en sensoren die onder andere tast, licht, rotatie, afstand, geluidsvolume en temperatuur waarnemen. Deze kunnen door middel van de software worden geprogrammeerd met een computer. Zo kan men op zichzelf werkende LEGO-creaties maken.
Voor het programmeren zijn intussen meerdere programmeertalen beschikbaar.

## Mindstorms RCX

LEGO lanceerde de eerste generatie Mindstorms in 1998.
* Een centrale besturingsmodule, genaamd RCX, is het hart van het systeem.
* Programmeren gaat met behulp van een infrarood verzender. RIS 1.0: serieel, RIS 2.0: USB. Hierbij zijn meerdere programmeertalen/omgevingen mogelijk.
* Bevat aansluitingen voor drie sensoren (aanraking-, temperatuur-, licht-, en rotatiesensoren bestaan) en drie motoren.

## Mindstorms NXT

NXT is de tweede generatie van LEGO Mindstorms die in 2006 uitkwam. De NXT is het hart van een Mindstorms-robot. Het is een intelligent, computergestuurd Legosteentje dat een Mindstorms robot tot leven brengt en hem verschillende bewegingen laat uitvoeren. Zo heeft de NXT drie uitgaande poorten om de motoren aan te sturen: poorten A, B en C. Verder heeft de NXT nog 4 ingaande poorten om de gegevens van de sensoren te verwerken: poorten 1, 2, 3 en 4. Om verbinding te maken met de computer heeft de NXT een USB-poort en draadloze verbinding via bluetooth. Zo kan men programma's downloaden vanaf de computer naar de NXT of data uploaden vanaf de robot naar de computer. Ook beschikt de NXT over een luidspreker zodat men een programma kan maken met echte geluiden waar naar geluisterd kan worden als het programma wordt gestart. De NXT heeft vier knoppen. De middelste oranje knop heeft als functie om hem aan te zetten, enter en het programma te starten. Met de lichtgrijze pijlen kan men links en rechts bewegen door het menu. De donkergrijze knop is bestemd om terug te keren, een programma te stoppen of de NXT uit te zetten. Verder heeft de NXT nog een scherm waarop de functies waargenomen kunnen worden.
NXT heeft volgende technische specificaties:
* 32 bit-ARM7-microcontroller
* 256 KB Flash, 64 KB RAM
* 8 bit-AVR-microcontroller
* 4 kbyte flashgeheugen, 512 byte RAM
* draadloze communicatie via bluetooth (Bluetooth Class II V2.0-compatibel)
* USB-full speed port (12 Mbit/s)
* vier invoerpoorten, digitaal 6-draadskabelplatform (een poort bevat een IEC 61158 Type 4/EN 50 170 compliant-uitbreidingspoort voor toekomstig gebruik)
* drie uitvoerpoorten, digitaal 6-draadskabelplatform
* grafisch lcd-display van 100 x 64 pixels
* luidspreker – geluidskwaliteit van 8 kHz, geluidskanaal met 8 bit-resolutie en 2-16 kHz sample rate.
* stroomvoorziening: 6 AA-batterijen

### Sensoren

* Toen de NXT werd uitgebracht, waren er vier sensoren bij:
** De Touch Sensor (tastsensor): geeft een booleaanse waarde, waar of niet waar.
** De Sound Sensor (geluidssensor): registreert hoe hard een geluid is.
** De Light Sensor (lichtsensor): kan registreren hoeveel licht gereflecteerd wordt.
** De Ultrasone Sensor (ultrasone sensor): meet afstanden door ultrasoon geluid te verzenden en te ontvangen. De tijd die een golf nodig heeft om terug te komen, kan vertaald worden naar een afstand.
* Later zijn er nog zes sensoren uitgebracht:
** De Color Sensor (kleursensor): kan kleuren waarnemen. Deze zit bij NXT 2.0
** De Accellerometer Sensor (versnellingsmeter): kan reageren op versnelling en een hoekversnelling in 3 assen.
** De Compass Sensor (kompassensor): een magnetisch kompas op de Z-as (nul graden is het noorden).
** De Gyro Sensor: kan een hoeksnelheid meten in de Z-as (in graden per seconde).
** De Infrarode Sensor: reageert op infrarood licht.
** De IR-Sensor: kan commando's sturen naar Power Functions IR Receiver en de RCX 2.0.
De software, om de robots te programmeren, is vernieuwd. Ook geeft LEGO van de nieuwe generatie software informatie vrij voor het zelf maken van besturingssoftware voor NXT in de vorm van developer kits.

### Programmeren

Bij de LEGO Mindstorms NXT wordt software geleverd waarmee een NXT-robot geprogrammeerd kan worden. Het programma kan men vervolgens uploaden naar de NXT via USB of bluetooth. De software draait zowel onder Windows als Mac OS X. Deze software werkt met een systeem van National Instruments LabVIEW dat het welbekende drag-and-drop-systeem heeft. De software kan ook van de Mindstorms-website worden gedownload.
Het is ook mogelijk om de NXT-robot te programmeren via een programmeertaal . Zo kan bijvoorbeeld geprogrammeerd worden in Java (LeJOS) of in C (RobotC of NXC). Voordelen van 'hardcoding' zijn dat er meer functies beschikbaar zijn en dat de code overzichtelijker is en gemakkelijker aan te passen. Ook zijn de bestanden die op deze manier worden gemaakt kleiner dan de bestanden die met de meegeleverde software worden gemaakt. Hierdoor kunnen in het beperkte geheugen van de robots meer programma's worden geladen.

## Mindstorms NXT 2.0

In januari 2009 werd Mindstorms NXT 2.0 uitgebracht. Bij deze set zitten standaard andere sensoren:
* twee aanraaksensoren in plaats van één;
* één kleurensensor (deze vervangt de oude lichtsensor);
* de ultrasone sensor maakt gebruikt van een andere toonhoogte dan de ultrasone sensor van het eerste NXT-set.
De NXT zelf is nog steeds hetzelfde.

## Mindstorms EV3

Sinds september 2013 is Lego Mindstorms EV3 te koop. Er zijn weinig verschillen tussen NXT en EV3, de meesten zitten in het uiterlijk. Een verschil is dat EV3 4 uitgangen heeft, en NXT 3. NXT en EV3 hebben allebei 4 ingangen. Ook kan een NXT geprogrammeerd worden met de EV3-software, maar de EV3 niet met de NXT-software.

## Mindstorms Robot Inventor Kit

Op 12 juni 2020 lanceerde LEGO een nieuwe generatie onder de titel LEGO MINDSTORMS Robot Inventor Kit, met een parallelle set SPIKE PRIME voor de onderwijswereld. Hardware en software zijn niet compatibel met EV3. Programmeren gebeurt via Scratch of Python. Bij de lancering was het grote minpunt ten opzichte van de EV3 het gebrek aan brick-to-brick communicatie (daisy chaining) waarmee verschillende units kunnen samenwerken, maar dit is opgelost. Op 26 oktober 2022 deelde LEGO mee dat het bedrijf vanaf eind 2022 stopt met de MINDSTORMS-reeks. Het digitaal platform van de Robot Inventor blijft wel nog tot eind 2024 in dienst.

## World Robot Olympiad

Sinds 2004 bestaan er meerdere wereldwijde robotica-wedstrijden voor jonge mensen, zoals de World Robot Olympiad (WRO), die gebruikmaakt van het platform Lego Mindstorms en de FIRST LEGO League Challenge. Deelnemers zijn hierin vrij te kiezen tussen de nieuwere LEGO Education Spike Prime of de oudere LEGO Mindstorms-robotsets.