Universidad Nacional de Colombia. Avella, Camargo. Introducción a Lego Mindstorms.

Práctica 1: Introducción a la Plataforma Lego Mindstorms.
Avella Jorge, Camargo Omar. {jaavellao, ogcamargov}@unal.edu.co.

Resumen: El presente informe consta de dos secciones,
introducción al software e introducción al hardware de la tecnología Lego MIndstorms. Se desarrolla la familiarización con el uso de la plataforma robótica con el fin de emplearla como recurso básico para la implementación de diversos algoritmos de control. Como primera medida, se reconocerá el hardware o brick NXT junto con los respectivos sensores y actuadores dispuestos por el fabricante, seguido del reconocimiento del software requerido para su programación (NXC).

 Familiarizarse con los diferentes sensores y actuadores que pueden ser conectados al brick, así como los comandos en NXC necesarios para su funcionamiento.

III.

INTRODUCCIÓN AL HARDWARE.

En ésta primera parte de la práctica, se describen las características básicas del brick NXT de Lego. 1. Características de componen el brick. los elementos que

Términos clave- brick NXT, software NXC, Control, sensores.

I.

INTRODUCCIÓN.

Lego Mindstorms es un kit de robótica creado por la empresa Lego, que posee elementos básicos de las teorías robóticas como la unión de piezas y la programación de acciones de forma interactiva. La unidad fundamental de éste juego es el Brick, o bloque, que para el caso particular del desarrollo de éste curso es el brick NXT. Asímismo, cuenta con un software mediante el cual se programan las instrucciones, tal software es NXC (Not Exactly C). La familiarización tanto con el brick, como con el software, son el fin de la realización de ésta práctica.

Los principales componentes del brick(ver Fig.1) son el microcontrolador, los puertos I/O (entrada/salida) y el bloque de comunicaciones.   Microcontrolador ARM 7 de 32 bits, 256 Kb de memoria flash, 64 Kb de memoria RAM, velocidad de procesamiento de 48 MHz El bloque de entradas y salidas del brick cuenta con cuatro entradas para conectar los sensores y con tres salidas para la conexión de actuadores como los motores. El bloque de comunicaciones permite una comunicación con el computador por medio de una conexión USB 2.0, además de contar con Bluetooth para la comunicación con dispositivos cercanos al brick. El brick posee una pantalla grafica de 100×64 pixeles además de un sistema de sonido de 8 bits de resolución y que soporta una frecuencia de muestreo de hasta 16 KHz. Cuenta con un coprocesador, el cual se comunica con el procesador principal mediante I2C a 380

 II. OBJETIVOS.  Reconocer las características básicas del componente de hardware de la plataforma Lego mindstorms (Brick NXT).  Reconocer y comprender la estructura básica del lenguaje NXC para el desarrollo de instrucciones ejecutables por el brick.

Fig.Universidad Nacional de Colombia. sus funciones más importantes son el control de la alimentación. La comunicación se realiza mediante la actualización de 2 registros de memoria cada 2ms. Camargo. Investigar sobre las características de los siguientes sensores: ultrasonido. el B y el C . La gestión de las entradas y salidas es llevada a cabo por un procesador AVR. Los pines 5 y 6. sensor de contacto (Touch). Esto permite una comunicación bidireccional de alta velocidad. 2. Los puertos de entrada son el 1.2 Sensor Ultrasonido. brújula magnética (Compas). Funciona enviando una señal de ultrasonido y detectando el rebote. Este sensor hace uso de una fuente de luz interna para detectar la presencia de un objetivo o determinar cambios en la distancia al mismo. el 3 y el 4 y son para los sensores. Un RS485 esta implementado en el interior el puerto. como una opción más eficiente .  El sensor de ultrasonido es un sensor que sirve para detectar distancias de 0 a 255 cm +/. de esta manera mide a qué distancia se encuentra del objeto deseado.1 Brick. es el primero de la parte superior derecha. Los puertos de salida son el A.  El sensor electro óptico de detección de proximidad (EOPD) detecta con precisión milimétrica objetos y pequeños cambios en la distancia. Limitaciones en alimentación y velocidad de comunicación de los puertos de entrada y salida del Brick. . DIGIAI0 y DIGIAI1. kbytes/s. esto solo funciona como maestro en la comunicación por el I2C. 3. la creación de las señales de salida PWM para los motores y la conversión A/D de las señales de entrada de los sensores. También consta de un puerto USB de gran velocidad que se encuentra al lado de los puertos de salida.3cm. Fig. Se conecta con el microprocesador ARM7 a través de un bus I2C. La alimentación se realiza mediante 6 baterías AA . A causa de las limitaciones del ARM7. El pin 1. El pin 3 es masa y el pin 4 es Vcc que está conectado internamente a todos los Vcc de todos los puertos tanto de entrada como de salida. el 2. son pines digitales de entrada/salida usados para la comunicación digital con el ARM-7 mediante un bus I2C a una velocidad de 9600 baudios. giroscopio. Avella. ANA es un pin analógico conectado a un convertidor analógico/digital del procesador AVR y también a un generador de corriente para alimentar al sistema sensorial. EOPD. sin embargo el fabricante ofrece una batería recargable . Introducción a Lego Mindstorms. El puerto 4 puede funcionar como un puerto de alta velocidad. Tienen 6 hilos pero tienen la ranura a la derecha en vez de en el medio como el del teléfono.La comunicación se lleva a cabo mediante 8 puertos de entrada/salida que se unen mediante conectores muy similares a los de tipo telefónico. color.son señales de salida para controlar a los actuadores. acelerómetro.

permitiendo que una pieza dentro del bloque cierre un circuito eléctrico comience a circular energía. Camargo. Se visualiza la lectura en grados 0° a 359°.7 Sensor de Contacto.  El sensor de Aceleración LEGO MINDSTORMS NXT contiene un acelerómetro de 3 ejes que mide la . Este sensor es capaz de medir el campo magnético terrestre y calcular donde está el norte magnético. El sensor también actúa como lámpara y puede emitir color rojo.  La brújula magnética permite al robot saber hacia dónde está apuntando. Al tocar una superficie.3 Sensor EOPD  El sensor de color es capaz de detectar colores y también intensidades intermedias en una habitación. Fig.  El sensor Giroscópico NXT contiene un sensor giroscópico de un eje que detecta la rotación y devuelve un valor que representa el número de grados por segundo de rotación. Fig. provocando una variación de energía de 0 a 5 V.  El sensor de contacto permite detectar si el bloque que lo posee ha colisionado o no con algún objeto que se encuentre en su trayectoria inmediata. aceleración en los 3 ejes. verde y azul. Fig. Avella.4 Sensor de Color. x. Fig. La aceleración se mide en el rango de – 2g a +2g con una resolución de aproximadamente 200 unidades por g.Universidad Nacional de Colombia.360° por segundo. La velocidad de rotación puede ser leída hasta unas 300 veces por segundo y mide +/.5 Sensor de Gyro. Fig. Introducción a Lego Mindstorms. una pequeña cabeza externa se contrae.6 Sensor de Aceleración. y y z.

-Inline(inline[tipo de variable a retornar][nombre de la función]) Se caracteriza porque cada vez que se hace un llamado se genera una copia del código de dicha función. programación bajo    byte tipo de 8 bits en la que se pueden guardar valores desde 0 hasta 255. Existen dos tipos de bloques de programación: tareas (tasks) y funciones. de 16 bits con un rango desde -32768 hasta 32767. haciendo que cada uno de los llamados a dicha función se ejecuten después de haber realizado el llamado previo a dicha función. IV. array vectores o matrices de una tipo de variable específico.  Las funciones son subrutinas que retornan o no alguna variable. Las tareas son segmentos de código en el que siempre hay una tarea llamada main (task main()) . INTRODUCCIÓN AL SOFTWARE. Introducción a Lego Mindstorms. Camargo.Universidad Nacional de Colombia. la desventaja es que el código puede resultar muy extenso. short tipo alias de la variable int también de 16 bits. -Void(void[nombre de la función]) Son funciones que no retornan ningún valor. FALSE). Avella. 2. long para variables en las que necesiten guardar datos hasta de 32 bits. Tipos de Variable:  Fig. structures es un tipo de variable en que su vez sus atributos tienen diferentes tipos de variables.esta es la primera que se ejecuta y estructura principalmente el programa. Implementación algoritmo de velocidad Conociendo las estructuras básicas de programación se procede a la implementación de un algoritmo para . char variable de tipo carácter (ASCII) en la que se pueden guardar valores desde -127 a 128. unsigned para definir versiones son signo de los tipos char.      int para datos de tipo entero.  1. bool tipo booleano de 8 bits. Estructuras de lenguaje NXC.int y long. float de 32 bits en el que 24 bits son destinados para la precisión de dígitos decimales. con un rango de -2147483648 hasta 2147483647. además las funciones se pueden definir como: -Safecall(safecall[tipo de variable que se va a retornar][nombre de la función]) Consiste en un una función la cual el compilador evitará que en caso de varios llamados a la misma función en breves periodos de tiempo.se pueden guardar valore desde 0 a 255. 3. string cadena de caracteres. además de poder guardar valores lógicos en este tipo de variable (TRUE.8 Sensor Brujula Magnética. esta se ejecute varias veces al mismo tiempo.

 [1] Lego Mindstorms.Universidad Nacional de Colombia. siguiendo un patrón diente de sierra (ver fig. Gonzales A. Universidad tecnológica de Pereira.wikipedia. 1.9). Avella. control de velocidad en el servomotor de Lego.  Mediante el uso de la plataforma Lego mindstorms se obtuvieron conocimientos y habilidades en cuanto a la arquitectura electrónica y programación de NXC . REFERENCIAS. http://es. [3] ELABORACIÓN DE GUÍA LABORATORIO ORIENTADA A LA [4] [Online]. Ospina D. CONCLUSIONES.9 Señal Diente de Sierra. actuadores y algoritmos de programación. para futuras aplicaciones de control . Algoritmo de control de velocidad: 4. . Wikipedia. Knudsen. mediante el uso de sensores . sensors-2. Pedro. Camargo. Introducción a Lego Mindstorms. Juan.com/nxt- ENSEÑANZA DE LA ROBÓTICA. Fig. Jonathan B.org/wiki/Lego_Mindstorms [2] The Unofficial Guide to LEGO® MINDSTORMSTM Robots.html Available: PRÁCTICA DE http://legoengineering.