Lego Mindstorms

**Lego Mindstorms** (algo así como "Tormentas mentais da Lego" en inglés) é unha liña de produtos do Grupo Lego que combina pezas programábeis xunto con motores eléctricos, sensores, pezas do xogo de construción Lego e pezas especializadas como engrenaxes, eixos, trabes, pneumáticos etc., para construír robots e outros sistemas automatizados ou interactivos.

[miniatura|Peza [programación|programábel de Lego Mindstorms, xunto con tres sensores (contacto, luz e rotación) e un motor eléctrico.]]
Ademais de ser un xoguete moi coñecido que se vende como Sistema de Invención Robótica (RIS), Lego Mindstorms tamén se vende e utiliza como ferramenta educativa, o cal era a intención orixinaria de Lego e do Instituto de Tecnoloxía de Massachusetts (MIT). A versión educativa dos produtos chámase *Lego Mindstorms para Escola* e ven acompañada de '*ROBOLAB*, unha aplicación informática de programación con interface gráfica moi intuitiva.

**Lego Mindstorms** pódese utilizar para crear modelos que resultan ser bos exemplos de sistemas embebidos con compoñentes electromecánicos controlados por un ordenador. Practicamente calquera tipo de sistema embebido da vida real pode ser imitado utilizando Mindstorms, como por exemplo ascensores ou robots industriais.

Existe unha comunidade moi forte que reúne profesionais e afeccionados de todas as idades e que comparten deseños, técnicas de programación e outras ideas asociadas con Lego Mindstorms.

## Pezas programábeis 
### O RCX 
[miniatura|Peza programábel RCX. Os números son os [Porto (informática)|portos dos sensores, as letras os portos dos motores o botón vermello prende ou apaga, o gris selecciona o programa, o negro permite ler información adicional na pantalla e o verde executa o programa.]]

O RCX é unha peza programábel que contén un microcontrolador H8/300 de Renesas TEchnology Corporation e a súa CPU interna. A peza prográmase enviándolle un programa informático escrito nunha linguaxe de programación por medio de infravermellos desde un ordenador. O programa almacénase na súa RAM, que pode conter até 5 programas distintos simultaneamente. Unha vez enviado o programa, faise que o autómata o execute e este pode funcionar completamente por si só, actuando de acordo con estímulos internos ou externos seguindo as instrucións programadas. É posíbel a comunicación entre dúas ou máis pezas RCX a través da interface infravermella, o que permite tanto a cooperación entre elas ou mesmo a competición (que un robot persiga a outro, por exemplo). Ademais do porto infravermello existen tres portos para sensores de entrada (denominados 1, 2, 3) e tres portos para motores (denominados A, B, C). Por último, a peza ten unha pantalla LCD que mostra o nivel de enerxía de que dispón (6 pilas AA), o estado dos portos de entrada e saída, o programa que se está a executar etc.

O RCX de Mindstorms orixinal apareceu en 1998.

### O MindStorms NXT 
En agosto de 2006 apareceu a seguinte xeración do sistema Mindstorms, o Mindstorms NXT, que despraza o RCX, aínda que este seguirá a ser popular durante varios anos. Inclúe tres servo-motores, un sensor de contacto, un sensor de luz (que pode diferenciar cores), un novo sensor de son, un sensor de ultrasóns e unha nova "peza intelixente", a NXT. Esta dispón dun procesador de 32 bits ARM7 (coa posibilidade dun segundo procesador de 8 bits adicional), unha pantalla LCD de 60x100 píxeles, un porto USB 2 e conexión Bluetooth. O procesador ARM7 ten acceso a unha memoria flash de 256 kilobytes e 64 de RAM, en canto que o segundo procesador dispón de 4 kilobytes de flash e 512 de RAM. Ten catro portos de entrada e tres de saída. A peza dispón, ademais, cun altofalante incorporado de 8&nbsp;kHz e permite interactuar con teléfonos móbeis.

## Sensores 
O RCX ten sensores para interpretar o seu contorno. A liña Lego Mindstorms ten catro sensores diferentes:
* Sensor de contacto: reacciona ao contacto. É un final de carreira. Devolve dous valores: premido ou non premido.
* Sensor de luz: reacciona aos cambios de luz e devolve un valor entre 0 (escuro) e 100 (claro).
* Sensor de rotación: mide rotacións (16 "pasos" supoñen unha volta completa do eixo ao que vai unido) e ángulos.
* Sensores de temperatura: mide temperaturas.

Os sensores máis novidosos explícanse no apartado anterior. Existen outros sensores non fabricados polo Grupo Lego que son compatíbeis con Mindstorms.

## Linguaxes de programación 
### Creadas polo Grupo Lego 
Ambas as dúas utilizan unha interface de usuario gráfica:
* RCX Code (incluída na versión comercial de Mindstorms que se vende nas xoguetarías.
* ROBOLAB (baseada en LabVIEW e desenvolvida na Universidade de Tufts.

### Creadas por terceiros 
* Java baixo o sistema operativo LeJOS.
* NQC ("Not Quite C").
* C e C++ baixo o sistema operativo BrickOS (anteriormente LegOS).
* pbFORTH (extensións da linguaxe de programación Forth).
* Visual Basic.
* XS (un dialecto de LISP).

## Mindstorms SDK 
Lego tamén oferta un sistema de desenvolvemento de software que permite interaccionar coa peza en calquera linguaxe de programación que admita activex. O SDK ten a función de obter os valores dos sensores, prender e apagar os motores, ler a información do sistema (enerxía restante, por exemplo) etc.

## Véxase tamén 
### Outros artigos 
* FIRST Lego League
### Ligazóns externas 
* Páxina oficial de Lego Mindstorms (NXT) en Internet Archive.