Lego Mindstorms NXT es un kit de robótica programable lanzado por Lego el 2 de agosto de 2006. [1] [2] [ fuente no primaria necesaria ] Reemplazó al Robotics Invention System , el kit Lego Mindstorms de primera generación. El kit base se envía en dos versiones: la versión minorista [3] y el conjunto base educativo. [4] Viene con el software de programación NXT-G o el LabVIEW opcional para Lego Mindstorms. [5] Existe una variedad de lenguajes no oficiales, como NXC, NBC, leJOS NXJ y RobotC. Un conjunto de segunda generación, Lego Mindstorms NXT 2.0, se lanzó el 1 de agosto de 2009, con un sensor de color y otras actualizaciones. El EV3 de tercera generación se lanzó en septiembre de 2013.
Bloque inteligente NXT
El componente principal del kit es la computadora NXT Intelligent Brick, que puede aceptar la entrada de hasta cuatro sensores y controlar hasta tres motores con una versión modificada de cables RJ12 (similares a, pero incompatibles con, las líneas telefónicas RJ11 ). El pasador de plástico para sujetar el cable en el zócalo está desplazado ligeramente hacia la derecha. El brick tiene una pantalla LCD monocromática de 100×64 píxeles y cuatro botones que pueden navegar por una interfaz de usuario con menús jerárquicos. Tiene un microcontrolador Atmel AT91SAM7 S256 con núcleo ARM7TDMI de 32 bits con 256 KB de memoria FLASH y 64 KB de RAM, un microcontrolador Atmel AVR ATmega48 de 8 bits y soporte Bluetooth. El kit tiene un altavoz y puede reproducir archivos de sonido a frecuencias de muestreo de hasta 8 kHz. La energía es suministrada por 6 baterías AA (1,5 V cada una) en la versión de consumo del kit, y una batería recargable de Li-Ion en la versión educativa. El ladrillo es compatible con los sensores y motores de su sucesor Lego Mindstorms EV3 . [6]
Kits de desarrollo
Lego ha publicado un firmware de código abierto para el bloque inteligente NXT y esquemas para todos los componentes de hardware. [7]
Hay varios kits para desarrolladores disponibles con documentación para el NXT:
Kit para desarrolladores de software (SDK), con información sobre controladores USB de host, formato de archivo ejecutable y referencia de código de bytes
Kit para desarrolladores de hardware (HDK), con documentación y esquemas para el bloque NXT y los sensores
Kit para desarrolladores de Bluetooth (BDK), que documenta los protocolos utilizados para las comunicaciones Bluetooth
Programación
Se pueden crear programas sencillos mediante el menú del NXT Intelligent Brick. Se pueden descargar programas más complejos y archivos de sonido mediante un puerto USB o Bluetooth. Se pueden copiar archivos de forma inalámbrica entre dos NXT Bricks y algunos teléfonos móviles se pueden utilizar como control remoto. Hasta tres NXT Bricks pueden comunicarse simultáneamente mediante Bluetooth cuando se ejecutan programas creados por el usuario.
La versión comercial del kit incluye software para escribir programas que se ejecutan en computadoras personales con Windows y Mac OS. El software, basado en National Instruments LabVIEW , proporciona un lenguaje de programación visual para escribir programas simples y descargarlos al NXT Brick; en lugar de requerir que los usuarios escriban líneas de código, pueden usar bloques similares a diagramas de flujo para diseñar su programa.
NXT
NXT-G v2.0 es un entorno de programación gráfica que viene incluido con el NXT y que se puede utilizar para la programación en el mundo real. El software puede ejecutar un puñado de bucles paralelos o combinar el control autónomo con Bluetooth u otro control remoto. Admite instrumentos virtuales para todos los sensores y componentes Lego y la mayoría de los de terceros. La versión 2.0 contiene nuevos desafíos, un control remoto, diseñadores de gráficos y sonido personalizados y compatibilidad con sensores de color Lego. [8]
BricxCC, códigos de bytes siguientes, no exactamente C
Bricx Command Center (BricxCC) es el entorno de desarrollo integrado (IDE) utilizado para escribir, compilar y editar programas NBC y NXC para el NXT. Además, como BricxCC se creó originalmente para el RCX , se pueden escribir programas para él utilizando NQC a través de BricxCC. Se pueden flashear diferentes versiones de firmware al NXT utilizando BricxCC. Next Byte Codes (NBC) es un lenguaje simple de código abierto con una sintaxis de lenguaje ensamblador que se puede utilizar para programar el bloque NXT. BricxCC también tiene la capacidad de descompilar ejecutables .rxe estándar de NXT a NBC. Not eXactly C (NXC) es un lenguaje de código abierto de alto nivel , [10] similar a C y construido sobre el compilador NBC. Se puede utilizar para programar el bloque NXT. NXC es básicamente NQC para el NXT. [11]
Laboratorio de Robo
El entorno de programación más nuevo que se utilizó originalmente en el bloque programable RCX. La versión 2.9 se ha actualizado para programar el bloque NXT. Lego ha anunciado que dejará de dar soporte a Robolab, pero Robolab 2.9 sigue estando disponible. [12]
Enchanting lleva la programación NXT al IDE Scratch, diseñado por el Lifelong Kindergarten Group del MIT para hacer que la programación sea intuitiva para niños pequeños.
Robotic
Un lenguaje de programación basado en C para VEX, VEX Cortex, FIRST Tech Challenge y Lego Mindstorms . ROBOTC permite que NXT ejecute programas rápidamente y comprime archivos para dar cabida a una gran cantidad de programas.
NXTGCC
Una cadena de herramientas GCC para programar el firmware NXT en C.
leJOS NXT
leJOS NXJ es un lenguaje de código abierto de alto nivel basado en Java que utiliza firmware personalizado. [14]
nxtOSEK
nxtOSEK se puede utilizar para escribir en C y C++ con firmware personalizado. [15]
ICONO
ICON puede escribir archivos en el propio NXT. [16] [17]
MATLAB y Simulink
MATLAB es un lenguaje de programación de alto nivel para computación numérica, adquisición y análisis de datos. Puede controlar robots Lego NXT a través de un puerto serial Bluetooth (la comunicación por puerto serial es parte de la funcionalidad básica de MATLAB) o a través de USB . [18] (gratuito y de código abierto). Simulink es un entorno de diagrama de bloques para modelar y simular sistemas dinámicos. Un usuario puede diseñar y simular algoritmos de control y sistemas Lego, y programar el Lego NXT o EV3. [19]
Lua
plLua [20] es un puerto del lenguaje de programación Lua , un lenguaje de scripting de propósito general, para Lego Mindstorms.
Ada
Un puerto de GNAT [21] para el NXT. Se basa en un núcleo de tiempo de ejecución dedicado basado en el perfil Ravenscar utilizado en el satélite Goce , lo que permite que las características de Ada de alto nivel desarrollen sistemas simultáneos y en tiempo real en Mindstorms NXT.
Urbi
URBI es un lenguaje paralelo, controlado por eventos, con interfaces para C++/Java y Matlab. Tiene una arquitectura de componentes (UObject) para distribución. Urbi es compatible con muchos robots, incluidos Nao (cf Robocup), Bioloid y Aibo. [22]
Navegación FLL NXT
FLL Nxt Navigation [23] es un programa de código abierto para facilitar la navegación en la tabla de competición de FLL. Utiliza NXT-G y archivos .txt para escribir programas.
Ruby-nxt
Ruby-nxt [24] es una biblioteca para programar el NXT en el lenguaje de programación Ruby . El código no se compila en un archivo binario (a diferencia de otros lenguajes para el NXT), sino que se transmite al NXT a través de Bluetooth.
Robótica.NXT
Robotics.NXT [25] es una interfaz Haskell para NXT a través de Bluetooth. Admite comandos directos, mensajes y muchos sensores, y permite un control simple basado en mensajes de un bloque NXT a través de un programa ejecutado de forma remota. Se incluye el código NXC básico.
LibNXT
LibNXT [26] es una biblioteca de utilidades para comunicarse con el bloque inteligente Lego Mindstorms NXT a un nivel relativamente bajo. Está orientada a plataformas que el software oficial Lego Mindstorms NXT no tiene en cuenta (como Linux) y funciona en cualquier sistema operativo compatible con POSIX donde se admita libusb 0.1. También es posible la compatibilidad con Windows con el puerto win32 de libusb.
C_NXT
C_NXT [27] es una biblioteca para controlar el Lego NXT con licencia GPLv2 . Permite a los usuarios controlar un Lego NXT a través de Bluetooth desde otros programas C. La biblioteca, que se ejecuta en Linux, proporciona control de bajo nivel y abstracción de alto nivel.
PyNXC
PyNXC [28] es un proyecto que convierte código Python a Not Exactly C (NXC) [29] para descargarlo en robots Lego Mindstorms.
NXT-Python
NXT-Python [30] es un módulo Python que se comunica con el NXT a través de USB o Bluetooth. Admite comandos y varios sensores de posventa.
Software LEGO Mindstorms EV3
El software que viene con el nuevo Mindstorms EV3 puede programar el NXT. [31]
Juguetes físicos
Physical Etoys es un sistema de programación visual para dispositivos electrónicos que admite modos directos y compilados.
Intérprete C/C++ Ch
Ch es un intérprete de C/C++ que ejecuta código C/C++ para controlar Lego NXT o EV3. No se necesita cargar/descargar firmware ni compilarlo. El código AC/C++ que se ejecuta en Ch puede controlar un Lego NXT, EV3 o varios de NXT/EV3. [32]
Un sensor táctil detecta si se presiona, se golpea o se suelta. El botón naranja de entrada y los botones grises derecho e izquierdo de NXT se pueden programar como sensores táctiles. En el software de programación NXT-G, se da un valor de 0 cuando no se presiona y un valor de 1 si se presiona. [35]
Un sensor de luz detecta el nivel de luz en una dirección e incluye un LED para iluminar un objeto. Puede detectar valores de luz reflejada con el LED rojo incorporado o luz ambiental. En el software de programación NXT-G, detecta la luz en una escala de 0 a 100; 100 es muy brillante y 0 es oscuro. [36] Si se calibra, el sensor se puede utilizar como sensor de distancia.
Un sensor de sonido mide el volumen en una escala de 0 a 100; 100 es muy alto y 0 es silencio.
Un sensor ultrasónico puede medir la distancia desde el sensor hasta un objeto que se encuentra frente a él y detectar movimiento. Puede mostrar la distancia en centímetros y pulgadas. La distancia máxima que puede medir es de 233 centímetros (92 pulgadas), con una precisión de 3 centímetros (1,2 pulgadas). El sensor envía ondas sonoras ultrasónicas que rebotan en un objeto que se encuentra frente a él y luego regresan, y detecta el tiempo que tardó. [37]
Otras piezas se pueden comprar por separado. [38] Empresas de terceros fabrican sensores como una brújula , un giroscopio , un rastreador infrarrojo , un lector RFID y sensores acelerómetros vendidos por Lego. El sensor de temperatura puede medir en grados Celsius o Fahrenheit.
Conector
Los sensores se conectan al bloque NXT con un conector modular de seis posiciones con interfaces analógicas y digitales. La interfaz analógica es compatible con versiones anteriores (mediante un adaptador) del sistema de invención robótica más antiguo. La interfaz digital es capaz de comunicarse mediante I2C y RS-485 .
NXT 2.0
Lego Mindstorms NXT 2.0 es el segundo set de la serie Lego Mindstorms , presentado el 5 de agosto de 2009 en la tienda Lego Shop de EE. UU. El set contiene 619 piezas, incluido un sensor que puede detectar colores. Le siguió el Lego Mindstorms EV3 . [39]
Características
Un editor de sonido para grabar un sonido y programar el bloque NXT para reproducirlo.
Un editor de imágenes para descargar una imagen al bloque NXT para que aparezca en la pantalla.
^ "¿Qué es NXT? LEGO Group presenta el conjunto de herramientas robóticas Lego Mindstorms NXT en la feria Consumer Electronics Show" (Comunicado de prensa). Las Vegas, NV : The Lego Group . 4 de enero de 2006. Archivado desde el original el 8 de julio de 2009 . Consultado el 17 de septiembre de 2007 .
^ "El conjunto de herramientas de robótica LEGO MINDSTORMS NXT ya está ampliamente disponible" (Comunicado de prensa). Nueva York, NY : The Lego Group . 2 de agosto de 2006. Archivado desde el original el 11 de septiembre de 2006. Consultado el 3 de julio de 2022 .
^ "8527Mindstorms NXT Kit". Mindstorms.lego.com . LEGO Group . Archivado desde el original el 2009-02-03 . Consultado el 2008-12-26 .
^ "Conjunto básico Lego Mindstorms Education NXT". Education.lego.com . Archivado desde el original el 2011-12-10 . Consultado el 2011-09-30 .
^ "LEGO Education | Productos > Escuela secundaria > Software NI LabVIEW para LEGO MINDSTORMS". Archivado desde el original el 2011-12-16 . Consultado el 2011-11-16 .
^ "Uso del software EV3 para ejecutar el NXT – LEGO Engineering". 2013-11-01 . Consultado el 2024-08-05 .
^ "¡Todas las herramientas para llevar tu Lego Mindstorms NXT al extremo!". Archivado desde el original el 6 de octubre de 2009.
^ "Galería Brickshelf: fragmentos de código de ejemplo". Brickshelf.com . Consultado el 3 de julio de 2022 .
^ "Muestra". Docs.microsoft.com . Consultado el 3 de julio de 2022 .
^ "No es exactamente C". Sourceforge.net .
^ "NBC – Códigos de bytes NeXT, no exactamente C y SuperPro C". Sourceforge.net .
↑ Morales, Juan Antonio Breña. "LeJOS, Java para Lego Mindstorms". Fuenteforge.net .
^ "nxtOSEK". Fuenteforge.net .
^ "ICON". Teamhassenplug.org . Consultado el 3 de julio de 2022 .
^ "Equipo Hassenplug". Teamhassenplug.org . Consultado el 3 de julio de 2022 .
^ "mindstorms/ev3-toolbox-matlab · GitLab". Gi.rwth-aachen.de . Consultado el 3 de julio de 2022 .
^ "Buscar soporte de hardware". Mathworks.com . Consultado el 3 de julio de 2022 .
^ "Página de inicio de pbLua". 8 de diciembre de 2008. Archivado desde el original el 8 de diciembre de 2008. Consultado el 3 de julio de 2022 .
^ "Libre - Inicio > Herramientas > GNAT GPL para LEGO MINDSTORMS NXT – Ravenscar Edition". Archivado desde el original el 2012-03-05 . Consultado el 2009-06-24 .
^ "Gostai". Gostai.com . Archivado desde el original el 30 de abril de 2007.
^ "Navegación de FLL NXT - Inicio". Archivado desde el original el 4 de marzo de 2016. Consultado el 12 de marzo de 2009 .
^ "zuk/ruby-nxt". Github.com . 14 de noviembre de 2020 . Consultado el 3 de julio de 2022 .
^ "NXT". Hackage.haskell.org . Consultado el 3 de julio de 2022 .
^ "Archivo de código de Google: almacenamiento a largo plazo para el alojamiento de proyectos de código de Google". Code.google.com . Consultado el 3 de julio de 2022 .
^ "C_NXT". Github.com . 13 de junio de 2016 . Consultado el 3 de julio de 2022 .
^ "Archivo de código de Google: almacenamiento a largo plazo para el alojamiento de proyectos de código de Google". Code.google.com . Consultado el 3 de julio de 2022 .
^ "NBC - Códigos de bytes NeXT, no exactamente C y SuperPro C". Bricxcc.sourceforge.net . Consultado el 3 de julio de 2022 .
^ "Schodet/nxt-python". Github.com . 18 de junio de 2022 . Consultado el 3 de julio de 2022 .
^ "Preguntas frecuentes disponibles para". Education.lego.com . Consultado el 7 de diciembre de 2019 .
^ "Centro de UC Davis para la Computación Integrada y la Educación STEM » Controlador de robot Ch". Ucdavis.edu .
^ "Inicio – LEGO MINDSTORMS® - LEGO.com – Mindstorms LEGO.com". Lego.com . Archivado desde el original el 2012-05-29 . Consultado el 2009-01-15 .