OBJETIVOS
- Comprender la funciones y usos del ladrillo NXT.
- Implementar un programa usando multriprogramación.
MATERIALES Y EQUIPO
![]() |
| 01 computador con NXT-G instalado. |
![]() |
| 01 instructivo de armado del bonus model Manty Robot |
![]() |
| Brick inteligente de l NXT Mindstorms 2.0. |
El ladrillo inteligente NXT es el cerebro de los robots Lego Mindstorms NXT, pueden transmitir los datos con el ordenador a través de un cable USB o por tecnología Bluetooth, también es programable desde el propio NXT. Dispone de un microprocesador 32-bit que aporta un comportamiento programable, inteligente y de toma de decisiones.
Características técnicas:
• Microcontrolador de 32 bits ARM7
o Memoria FLASH de 256 Kbytes
o Memoria RAM de 64 Kbytes
• Microcontrolador de 8 bit AVR
o Memoria FLASH de 4Kbytes
o Memoria RAM de 512 Bytes
• Comunicación Inalámbrica Bluetooth (Bluetooth Class II V2.0)
• Puerta de alta velocidad USB (12 Mbit/s)
• Cuatro puertas de entrada de seis contactos, plataforma digital
• Tres puertas de salida de seis contactos, plataforma digital
• Pantalla gráfica de cristal líquido de 64 x 100 puntos
• Parlante, calidad de sonido 8KHz.
• Fuente de poder, 6 baterías AA.
Visualización en el Brick NXT
En la parte superior de la pantalla del NXT, podemos ver el tipo de conexión que estamos usando (Bluetooth y/o USB), el nombre de nuestro robot, luego el símbolo que indica que está en operación y finalmente el estado de la batería.
Visualización y Sonido
En el panel de configuración del bloque, tenemos varios parámetros que permitirán la visualización en la pantalla:
- Action: Texto, Imagen o Dibujo
- Display: Borrar
- File: Lo que queremos mostrar en la pantalla
- Position: en que posición
Case
Hasta ahora, los Switchs nos han permitido elegir entre dos alternativas, veremos como configurarlos para seleccionar mas posibilidades. Veamos algo sencillo, elegiremos un número al azar entre 1, 2 y 3 y de acuerdo a estas alternativas lo desplegaremos en la pantalla.
Para elegir un número al azar utilizaremos el bloque “Random”, y definiremos el rango entre 1 y 3.Para configurar el Switch, debemos elegir los siguientes parámetros:
- Control --> Value(Valor)
- Type --> Number (Númerico)
- Display --> Desactivar Flat View(representación plana)
Utilizando los símbolos de “+” para agregar y “-“ para borrar debemos ingresar los datos, para que quede como en la figura.
Supongamos que queremos mostrar en la pantalla un número al azar entre 1 y 6, al revisar el concentrador del bloque pantalla, nos daremos cuenta que no tiene una entrada numérica, por lo que tenemos que transformar el número a texto, lo bueno es que si hay un bloque para este propósito. Para instalar los cables, sólo ponga el cursor en el conector, aparecerá un carrete haga un click en el mouse y vaya al destino del cable y haga nuevamente click. El color de los cables determina en tipo de información que viaja por ellos, ver la ayuda en el programa para más información.
El asterisco (*) se ocupa para definir la selección por defecto, es decir si al evaluar el número no es 1, 2 o 3, tomará ese camino. Note que ahora el bloque Switch tiene tres pestañas, al seleccionar la primera debemos insertar la acción que deseamos para esa alternativa, en nuestro caso una pantalla con el texto Numero 1.
Luego seleccionamos la segunda pestaña, ponemos otro pantalla, con el texto
Numero 2. y repetimos para tercera pestaña.
Data Hub
Cada bloque posee un controlador de los parámetros que se superponen al panel de configuración, este controlador de datos (Data Hub) se expande posicionando el cursor en la parte inferior del bloque. Cada uno de los conectores pueden llevar información entre bloques, que puede ser numérica, lógica y de texto.
Variables
Ocuparemos las variables para almacenar datos y hacer uso de ellos durante el programa. Para definir una variable, tenemos que seleccionar Edit --> Define Variable, en el menú principal. Luego, le podemos dar un nombre y defin el tipo de variable, numérica, lógica o texto.
Luego en el programa o en el panel de configuración debemos definir el valor que tomará, este operación se llama grabar “write”, luego para utilizarla emplearemos un leer “Read”
Algunas veces necesitamos que el robot realice más de una función simultáneamente, veamos como implementarla. Debemos posicionar el mouse en cualquiera de las ramas(arriba o abajo) de la viga de secuencia y con el botón izquierdo delo mouse dibujumos una nueva viga de secuencia.
También es posible generar una viga de secuencia en medio de un programa, en este caso posicione el mouse entre los bloques y presione la tecla shift.
Es importante tener la precaución de evitar los conflictos, por ejemplo en una rama puedo programar que el robot avance y en la otra que retroceda, lo cual obviamente causará un problema.
DESARROLLO DE LOS EJERCICIOS
- Para la presente sesión se debe proceder al armado del Manty Robot:
El modelo Manty Robot requiere de una multiprogramación ya que en este funcionan dos o más procesos a la vez. La programación del ejercicio consta de lo siguiente:
1. Primeramente creamos un módulo llamado SINCRONIZACIÓN. Este módulo se encarga del movimiento de los motores B y C los cuales permiten al robot girar hacia la izquierda o derecha, según sea el caso.
1. Primeramente creamos un módulo llamado SINCRONIZACIÓN. Este módulo se encarga del movimiento de los motores B y C los cuales permiten al robot girar hacia la izquierda o derecha, según sea el caso.
![]() |
| 1ER PROCESO: El bloque de tipo variable llamado VISIÓN, comienza en falso (1). Luego de eso, nuestro robot comenzara a avanzar (2) y entrará a un bucle infinito (9). Dentro de este el motor B del robot seguirá avanzando (3) hasta que el sensor de contacto sea pulsado (4), y repetirá la misma acción pero con el motor C, avanzará hasta que el sensor sea pulsado nuevamente (5y6). Esto permitirá el movimiento hacia delante del robot Manty gracias a los motores B y C. Posteriormente, haremos uso nuevamente de la variable VISIÓN (7), y si está es verdadera efectuará el módulo SINCRONIZACIÓN (8), y si es falso no realizará ninguna acción. Despues de eso saldrá de la condición y repetira el bucle infinitamente (9). |
Finalmente creamos un segundo proceso que se efectuará en simultáneo con el primer proceso. Este nuevo proceso permitirá el movimiento de la cabeza del robot Manty con el fin de definir hacia que lado avanzará.
![]() |
| 2DO PROCESO: El motor A girará la cabeza 120º hacia arriba (1), se entrará a un bucle infinito (b) y el motor A girará 70º hacia abajo (2) y seguidamente 70º hacia arriba (3). Esta primera parte del proceso permitirá al robot mover la cabeza del robot de arriba hacia abajo constantemente. Luego, si es que el sensor de ultrasonido detecta un objeto a <20 cm (4) el robot entrará a una condición (a), el robot bajará su cabeza 120º (5) y capturará el valor de la variable VISIÓN (falso) definido ya en el 1ER PROCESO (6), el motor A se detendrá, haciendo que mantenga la cabeza quieta hacia abajo. Despues de un breve tiempo en el cual se realizará el giro completo del robot, éste moverá la cabeza 120º hacia arriba (8) y definirá un nuevo valor en la variable VISIÓN (9). Se saldrá de la condición y empezará nuevamente el bucle (a). |
EN CONJUNTO, TODOS LOS PROCESOS PRESENTADOS PERMITEN AL ROBOT MANTY:
"AVANZAR MOVIENDO SIMULTÁNEAMENTE LA CABEZA HASTA DETECTAR UN OBJETO A <20 CM. SEGUIDAMENTE EL ROBOT SE DETENDRÁ Y BAJARÁ LA CABEZA. DESPUÉS DE ESO, EL ROBOT GIRARÁ HACIA UN LADO ALEATORIAMENTE Y VOLVERÁ A AVANZAR, REPITIENDO ASÍ TODO EL PROCESO."
Seguidamente, demostramos la funcionalidad del programa en nuestro robot Manty, mediante videos:
CONCLUSIONES
- Logramos conocer más sobre las funciones del Brick Inteligente.
- Se pudo comprobar que se pueden realizar más de un proceso en simultáneo (Multiprogramación).











