# Lego Mindstorms

Les Lego Mindstorms sont un projet du groupe Lego basé sur les briques « RCX » (Robotics Command System), puis « NXT », et plus récemment « EV3 ».

## Présentation

La série Mindstorms est la gamme "robotique programmable" de Lego. C'est une brique intelligente programmable sous Linux qui permet, via des lignes de code, de créer des routines et des interactions avec les différentes briques connectées. Se déplacer, attraper des objets, voir et reconnaitre des objets… tout cela de façon très simple et pédagogique.

## Évolution

Ci-contre, plusieurs modèles de briques Lego Mindstorms, avec de gauche à droite et de haut en bas :
* prototype de brique Lego Mindstorms créée par le MIT Media Lab en 1996
* première brique Mindstorms RCX commercialisée en 1998
* brique Mindstorms NXT commercialisée en 2006
* brique Mindstorms EV3 commercialisée en 2013
* 4 déclinaisons de briques Mindstorms commercialisées par Lego
* 1 brique PicoCrickets compatible Mindstorms créée par le MIT Media Lab et commercialisée en 2006

### La brique RCX

La première brique RCX a été commercialisée en 1998.
Elle comporte 3 ports d'entrée, 3 ports de sortie, 4 boutons de commande, un écran à cristaux liquides et un système de communication par infrarouges.
Le RCX comprend également un microprocesseur pour traiter les programmes, une mémoire interne pour stocker les programmes ainsi qu'un haut-parleur intégré pour émettre des bips de tonalité.
Il est équipé à la vente, selon les boîtes de quatre types de capteurs différents : contact, lumière, rotation et température. Des senseurs non officiels tels que l'accéléromètre ou le télémètre laser sont disponibles sur internet.
La programmation se faisait par la transmission infrarouge d'un programme, écrit sur ordinateur, vers le RCX. Un RCX peut contenir 5 programmes au maximum.
Comme la plupart des briques Lego, elle comporte des tenons d'assemblage.

### La brique NXT

La brique NXT est la seconde génération de Lego Mindstorms appelée Lego Mindstorms NXT. Elle est disponible à la vente depuis octobre 2006 en France.
Elle comporte 4 ports d'entrée, 3 ports de sortie, 4 boutons de commande, un écran à cristaux liquides et un système de communication par bluetooth.
Comme la brique RCX, elle inclut un microprocesseur ARM7 pour traiter les programmes, sa mémoire permet en revanche de stocker des fichiers divers (programmes, son, images, fichiers créés par les programmes, etc.) et le haut-parleur peut diffuser les sons enregistrés dans la mémoire en plus des bips de tonalité.
Il est équipé à la vente, selon les boîtes de quatre types de capteurs différents : contact, couleur, télémètre à ultrasons, son ; divers autres capteurs sont disponibles. Un capteur de rotation est intégré aux moteurs du NXT.
La programmation se fait par transmission bluetooth ou par la prise USB de la brique. La structure de la mémoire permet de n'avoir d'autre limitation du nombre de programmes enregistrés que celle de la place mémoire disponible.
Le NXT comporte quelques trous d'accroche Lego Technic mais aucun tenon d'assemblage classique. LeJOS (en) est un firmware open source basé sur Java pour le NXT.

### La brique EV3

EV3 (pour Evolution, 3rd generation) est la troisième génération de la gamme Mindstorms, sorti le 1er septembre 2013. Cette version est plus rapide, plus puissante et est compatible avec iOS et Android. Son système d'exploitation est Linux.
L’ensemble est composé de 594 pièces et de 5 plans de robots ; 12 plans supplémentaires seront disponibles à la sortie. Les briques programmables embarquent un processeur ARM9, un slot pour carte SD et une mémoire interne de 16 Mo. Le support iOS/Android se fait sous la forme d’une application dédiée à la programmation et offre la possibilité de prendre le contrôle de sa création.
L’ensemble, compatible avec les séries précédentes, a une connectivité élargie : en plus des connexions disponibles sur le NXT, l’EV3 dispose du Wi-Fi et d’un port de sortie supplémentaire.

## Programmation

Les Lego Mindstorms sont aussi commercialisés comme un outil éducatif, ceci est originellement dû à un partenariat entre Lego et le Massachusetts Institute of Technology qui a collaboré au développement. La version éducative est vendue avec le logiciel graphique de programmation ROBOLAB. Le kit Robotic Invention System est vendu avec le logiciel RCX code.
Il existe aussi d'autres langages de programmation compatibles avec les Mindstorms comme le NQC développé par Dave Baum pour le RCX et le NXC développé par John Hansen pour le NXT, tous deux proches du C. Il est également possible de développer des programmes sous LabVIEW de National Instruments.

## Configuration requise
### Version Windows

* microprocesseur à 800 MHz (1,5 GHz recommandé)
* système d'exploitation Windows XP Service Pack 2
* 256 Mo de RAM (512 Mo recommandé)
* plus de 300 Mo d'espace disque
* lecteur CD-ROM
* port USB ou port série (pour l'émetteur infrarouge)
* stick Bluetooth compatible (optionnel)

### Version Mac OS
#### Pour le RCX

* processeur PowerPC 166 MHz
* Mac OS X
* 300 Mo d'espace disque libre
* un port USB libre
* 128 Mo de RAM (192 Mb recommandé)

#### Pour le NXT

* processeur PowerPC G3, G4, G5 ou Intel à 600 MHz (1,3 GHz recommandé)
* Mac OS X 10.3.9
* 256 Mo de RAM (512 Mo recommandé)
* plus de 300 Mo d'espace disque
* lecteur CD-ROM
* port USB
* bluetooth non compatible