Вы находитесь на странице: 1из 5

Universidad Nacional de Colombia. Avella, Camargo. Introduccin a Lego Mindstorms.

Prctica 1: Introduccin a la Plataforma Lego Mindstorms.


Avella Jorge, Camargo Omar. {jaavellao, ogcamargov}@unal.edu.co.

Resumen: El presente informe consta de dos secciones,


introduccin al software e introduccin al hardware de la tecnologa Lego MIndstorms. Se desarrolla la familiarizacin con el uso de la plataforma robtica con el fin de emplearla como recurso bsico para la implementacin 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 programacin (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.

INTRODUCCIN AL HARDWARE.

En sta primera parte de la prctica, se describen las caractersticas bsicas del brick NXT de Lego. 1. Caractersticas de componen el brick. los elementos que

Trminos clave- brick NXT, software NXC, Control, sensores.

I.

INTRODUCCIN.

Lego Mindstorms es un kit de robtica creado por la empresa Lego, que posee elementos bsicos de las teoras robticas como la unin de piezas y la programacin 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. Asmismo, cuenta con un software mediante el cual se programan las instrucciones, tal software es NXC (Not Exactly C). La familiarizacin tanto con el brick, como con el software, son el fin de la realizacin de sta prctica.

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 conexin de actuadores como los motores. El bloque de comunicaciones permite una comunicacin con el computador por medio de una conexin USB 2.0, adems de contar con Bluetooth para la comunicacin con dispositivos cercanos al brick. El brick posee una pantalla grafica de 10064 pixeles adems de un sistema de sonido de 8 bits de resolucin 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 caractersticas bsicas del componente de hardware de la plataforma Lego mindstorms (Brick NXT). Reconocer y comprender la estructura bsica del lenguaje NXC para el desarrollo de instrucciones ejecutables por el brick.

Universidad Nacional de Colombia. Avella, Camargo. Introduccin a Lego Mindstorms.

kbytes/s. La comunicacin se realiza mediante la actualizacin de 2 registros de memoria cada 2ms.

Fig.1 Brick.

Tambin consta de un puerto USB de gran velocidad que se encuentra al lado de los puertos de salida, es el primero de la parte superior derecha. La gestin de las entradas y salidas es llevada a cabo por un procesador AVR, sus funciones ms importantes son el control de la alimentacin, la creacin de las seales de salida PWM para los motores y la conversin A/D de las seales de entrada de los sensores. Se conecta con el microprocesador ARM7 a travs de un bus I2C. A causa de las limitaciones del ARM7, esto solo funciona como maestro en la comunicacin por el I2C. 3. Investigar sobre las caractersticas de los siguientes sensores: ultrasonido, EOPD, color, giroscopio, acelermetro, sensor de contacto (Touch), brjula magntica (Compas). El sensor de ultrasonido es un sensor que sirve para detectar distancias de 0 a 255 cm +/- 3cm. Funciona enviando una seal de ultrasonido y detectando el rebote, de esta manera mide a qu distancia se encuentra del objeto deseado.

2. Limitaciones en alimentacin y velocidad de comunicacin de los puertos de entrada y salida del Brick. La alimentacin se realiza mediante 6 bateras AA , sin embargo el fabricante ofrece una batera recargable , como una opcin ms eficiente .La comunicacin se lleva a cabo mediante 8 puertos de entrada/salida que se unen mediante conectores muy similares a los de tipo telefnico. Tienen 6 hilos pero tienen la ranura a la derecha en vez de en el medio como el del telfono. Los puertos de salida son el A, el B y el C ,son seales de salida para controlar a los actuadores. 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. Los puertos de entrada son el 1, el 2, el 3 y el 4 y son para los sensores. El pin 1, ANA es un pin analgico conectado a un convertidor analgico/digital del procesador AVR y tambin a un generador de corriente para alimentar al sistema sensorial. Los pines 5 y 6, DIGIAI0 y DIGIAI1, son pines digitales de entrada/salida usados para la comunicacin digital con el ARM-7 mediante un bus I2C a una velocidad de 9600 baudios. El puerto 4 puede funcionar como un puerto de alta velocidad. Un RS485 esta implementado en el interior el puerto. Esto permite una comunicacin bidireccional de alta velocidad.

Fig.2 Sensor Ultrasonido. El sensor electro ptico de deteccin de proximidad (EOPD) detecta con precisin milimtrica objetos y pequeos cambios en la distancia. 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.

Universidad Nacional de Colombia. Avella, Camargo. Introduccin a Lego Mindstorms.

aceleracin en los 3 ejes, x, y y z. La aceleracin se mide en el rango de 2g a +2g con una resolucin de aproximadamente 200 unidades por g.

Fig.3 Sensor EOPD El sensor de color es capaz de detectar colores y tambin intensidades intermedias en una habitacin. El sensor tambin acta como lmpara y puede emitir color rojo, verde y azul.

Fig.6 Sensor de Aceleracin. El sensor de contacto permite detectar si el bloque que lo posee ha colisionado o no con algn objeto que se encuentre en su trayectoria inmediata. Al tocar una superficie, una pequea cabeza externa se contrae, permitiendo que una pieza dentro del bloque cierre un circuito elctrico comience a circular energa, provocando una variacin de energa de 0 a 5 V.

Fig.4 Sensor de Color. El sensor Giroscpico NXT contiene un sensor giroscpico de un eje que detecta la rotacin y devuelve un valor que representa el nmero de grados por segundo de rotacin. La velocidad de rotacin puede ser leda hasta unas 300 veces por segundo y mide +/- 360 por segundo.

Fig.7 Sensor de Contacto. La brjula magntica permite al robot saber hacia dnde est apuntando. Este sensor es capaz de medir el campo magntico terrestre y calcular donde est el norte magntico. Se visualiza la lectura en grados 0 a 359.

Fig.5 Sensor de Gyro. El sensor de Aceleracin LEGO MINDSTORMS NXT contiene un acelermetro de 3 ejes que mide la

Universidad Nacional de Colombia. Avella, Camargo. Introduccin a Lego Mindstorms.

-Void(void[nombre de la funcin]) Son funciones que no retornan ningn valor.

2. Tipos de Variable: Fig.8 Sensor Brujula Magntica. IV. INTRODUCCIN AL SOFTWARE. 1. Estructuras de lenguaje NXC. programacin bajo

byte tipo de 8 bits en la que se pueden guardar valores desde 0 hasta 255. char variable de tipo carcter (ASCII) en la que se pueden guardar valores desde -127 a 128. array vectores o matrices de una tipo de variable especfico.

Existen dos tipos de bloques de programacin: tareas (tasks) y funciones. Las tareas son segmentos de cdigo en el que siempre hay una tarea llamada main (task main()) ,esta es la primera que se ejecuta y estructura principalmente el programa.

Las funciones son subrutinas que retornan o no alguna variable, adems las funciones se pueden definir como: -Safecall(safecall[tipo de variable que se va a retornar][nombre de la funcin]) Consiste en un una funcin la cual el compilador evitar que en caso de varios llamados a la misma funcin en breves periodos de tiempo, esta se ejecute varias veces al mismo tiempo, haciendo que cada uno de los llamados a dicha funcin se ejecuten despus de haber realizado el llamado previo a dicha funcin. -Inline(inline[tipo de variable a retornar][nombre de la funcin]) Se caracteriza porque cada vez que se hace un llamado se genera una copia del cdigo de dicha funcin, la desventaja es que el cdigo puede resultar muy extenso.

int para datos de tipo entero, de 16 bits con un rango desde -32768 hasta 32767. bool tipo booleano de 8 bits, adems de poder guardar valores lgicos en este tipo de variable (TRUE, FALSE),se pueden guardar valore desde 0 a 255. short tipo alias de la variable int tambin de 16 bits. long para variables en las que necesiten guardar datos hasta de 32 bits, con un rango de -2147483648 hasta 2147483647. unsigned para definir versiones son signo de los tipos char,int y long. float de 32 bits en el que 24 bits son destinados para la precisin de dgitos decimales. string cadena de caracteres. structures es un tipo de variable en que su vez sus atributos tienen diferentes tipos de variables.

3. Implementacin algoritmo de velocidad Conociendo las estructuras bsicas de programacin se procede a la implementacin de un algoritmo para

Universidad Nacional de Colombia. Avella, Camargo. Introduccin a Lego Mindstorms.

control de velocidad en el servomotor de Lego, siguiendo un patrn diente de sierra (ver fig.9).

Fig.9 Seal Diente de Sierra. Algoritmo de control de velocidad:

4. CONCLUSIONES.

Mediante el uso de la plataforma Lego mindstorms se obtuvieron conocimientos y habilidades en cuanto a la arquitectura electrnica y programacin de NXC , para futuras aplicaciones de control , mediante el uso de sensores , actuadores y algoritmos de programacin. 1. REFERENCIAS.

[1] Lego Mindstorms, Wikipedia.

http://es.wikipedia.org/wiki/Lego_Mindstorms

[2] The Unofficial Guide to LEGO MINDSTORMSTM Robots, Jonathan B. Knudsen. [3]
ELABORACIN DE GUA LABORATORIO ORIENTADA A LA [4] [Online]. sensors-2.html Available: PRCTICA DE

http://legoengineering.com/nxt-

ENSEANZA DE LA ROBTICA,

Gonzales A, Pedro; Ospina D. Juan. Universidad tecnolgica de Pereira.