Programación del robot lego mindstorms mediante software de análisis numérico para ingenierías



Documentos relacionados
CONTENIDO DEL CURSO. - Semana 1 - Capacitación. - Entrenamiento - Competencia. - Semana 2

Programando el robot Lego Mindstorms NXT 2.0 con Java LeJOS

Programación de Robots Lego con

Pedro Redondo Jonás Talavera César Reneses

APRENDIZAJE ACTIVO DE PROGRAMACIÓN CON LEGO MINDSTORMS NXT

I NTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA

Wiip Surveillance. Sistema de gestión de rondas de vigilancia. Wiip Systems C.B. S.L

CAPÍTULO I. Sistemas de Control Distribuido (SCD).

TRABAJO COOPERATIVO EN ROBOTS

Capítulo 6: Conclusiones

Mejora de las practicas de la asignatura de Domótica con Arduino

[ ] introducción. Sistema de información para el análisis de servicios prestados en redes Ad hoc. resumen. Aura Rosa Beltrán A. Gerardo Gutierrez S.

PROGRAMA DE ESTUDIO. Estudiantes de entre sexto básico y cuarto medio. Los participantes deben contar con: Requerimientos técnicos

Lincamiento técnico para la migración de equipos de cómputo de la Universidad de Costa Rica, hacia el Sistema Operativo Windows 10.

Getting Started. 1. Introducción. 2. Requerimientos de software

NOTA DE APLICACIÓN AN-P002. Programando Wiring con NXProg

INGENIERIA EN MICROCONTROLADORES. Protocolo RS-485. Introducción

Guía de uso de Moodle para participantes

Capítulo 1. Introducción

Act 1: Revisión de Presaberes. Lectura No. 1. Título de la Lectura: El Computador

Int. a las ciencias computacionales

Licenciatura en Computación

MÁLAGA, Sábado 5 de Octubre 2013

Escuela Universitaria Politécnica Grado en Ingeniería Informática Fundamentos de Programación II ENUNCIADO DE PRÁCTICAS CONVOCATORIA DE SEPTIEMBRE

OPT. Núcleo Básico. Núcleo de Formación. Optativa. Nombre de la universidad. Universidad Politécnica de Pachuca. Nombre del programa educativo

En el presente capítulo se describe la programación del instrumento virtual y cómo

La presente tesis pretende que los estudiantes observen la teoría de las acciones de control

ESCUELA SECUNDARIA TÉCNICA NO. 113

Programando con Enchanting

AD a 24Vcc 100mA (1) SI SI SI 100 mw 1Km (2) 256 bytes AD a 24Vcc 500mA (1) SI SI SI 500 mw 3km (2) 256 bytes

Robótica: cuerpo y alma

Tema 1. Curso 2015/16 Semestre 1. Supuesto 1. Supuesto 2.

CAPITULO 3: SISTEMAS ADICIONALES PARA EL CENTRO DE LLAMADAS DE EMERGENCIA

Robótica Educativa para el nivel primario Descripción del kit. WeDo WeDo WeDo WeDo WeDo WeDo WeDo

MANUAL TÉCNICO DE IMPLEMENTACIÓN PROYECTO SOCIAL COMPUESCUELA. Elaborado por: Julián A. Hernández M.

CERDO-IBERICO: FORO DE DISCUSIÓN SOBRE EL CERDO IBÉRICO EN INTERNET

Instrumentación con Microcontroladores. Ing. Rodrigo Alejandro Gutiérrez Arenas 22/03/12 al 29/03/12

UNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I. Licda. Consuelo Eleticia Sandoval

Universidad Autónoma de Baja California Facultad de Ingeniería Mexicali

Reportes de sostenibilidad. Parte 1: concepto, beneficios y contenido

GASTOS DE PERSONAL Libro de Operatividad. Solución WEB

Practica de Control y Programación de Robots ROBOT HERMES. Curso

CICLO FORMATIVO: MANTENIMIENTO ELECTROMECÁNICO MÓDULO: MONTAJE Y MANTENIMIENTO DE LÍNEAS AUTOMATIZADAS CURSO:

Partes, módulos y aplicaciones de un Controlador de Procesos

AUTORES: OBREGON CARLA ROMERO MARIA MARACAIBO FEBRERO 2012

TELECOMUNICACIONES Y REDES. Redes Computacionales II. Prof. Cristian Ahumada V.

Versión: 01. Fecha: 01/04/2013. Código: F004-P006-GFPI GUÍA DE APRENDIZAJE Nº 1 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE

Práctica 2 - Motores

Figura 1.4. Elementos que integran a la Tecnología de Información.

VIVIENDO EN LÍNEA. IC3 Redes

Prototipado y ejecución de aplicaciones SD con GeneXus

El Computador. Software

Solución de telefonía para empresas TL Presentación de producto. Telefonía IP

NXT PC Remote Control

POLITICAS DE BUEN USO DE REDES INALÁMBRICAS DE FINDETER

REDES AD HOC INFORME DE REDES DE COMPUTADORES I. Felipe Muñoz Jonathan Porta Matías Contreras

METODOLOGÍA E IMPLEMENTACIÓN DEL SIGGA (SISTEMA DE INFORMACION GEOGRAFICA: GOBERNANZA DEL AGUA)

SERVOMOTORES. Los servos se utilizan frecuentemente en sistemas de radiocontrol, mecatrónicos y robótica, pero su uso no está limitado a estos.

1. Aplicación de la conmutación de circuitos y la conmutación de paquetes. 1.1 Sistema de señalización número 7 (SS7).

Detección de Presencia Serie para la Identificación de Módulos de Memoria

Guía de estudio para examen de recuperación tecnología I

Uso de las tecnologias de la informacion en las PyMES de los municipios de Comalcalco y Cunduacán

Secuencia de inicio rápido > NXT. Materiales 1 cubo NXT, 1 batería, 1 cargador de batería, 6 pilas AA, 1 toma eléctrica disponible

PROGRAMACION LADDER PLC BASICA. Descripción del lenguaje ladder

Ingeniería en Electrónica Universidad Tecnológica de la Mixteca. Syllabus. F. Hugo Ramírez Leyva

Reloj Rei-4000 para Control de Tiempo y Asistencia

Instituto Tecnológico de Costa Rica

Informática 1 Grado en Matemáticas

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

La cultura de riesgos es adecuada a la escala, complejidad y naturaleza del negocio de la Caja.

Capítulo 1 INTRODUCCIÓN. Introducción

PRC-DTI-006 Administración de Roles de los Sistemas de Información de la DTI Procedimiento Dirección de TI - COSEVI

Abecé Registro Único de Comercializadores de Minerales - RUCOM

Conceptos de redes. LAN (Local Area Network) WAN (Wide Area Network)

DESARROLLO DE UN SISTEMA DE INFORMACIÓN PARA LA ADMINISTRACIÓN DE UN COLEGIO

TALLER No. 1 Capitulo 1: Conceptos Básicos de Bases de datos

MANUAL DE USUARIO NODO DEVICENET UNICAUCA

Instructivo de Microsoft Windows

Competencia de Robótica R2-D2 2014

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

REDES DE COMPUTADORES FACULTAD DE INGENIERIA ELECTRONICA UNIVERSIDAD PONTIFICIA BOLIVARIANA. Profesor: Jhon Jairo Padilla Aguilar, Ph.D.

CAPÍTULO 3 3 DISEÑO DE UN MECANISMO DE DETECCIÓN DE TRÁFICO MALICIOSO PARA REDUNAM

HARDWARE DE SISTEMA AUTOMÁTICO DE RASTREO DE VEHÍCULOS MEDIANTE TECNOLOGÍAS GPRS Y GPS

Capítulo 1. Introducción

Universidad Nacional Autónoma de México E N E P A R A G O N. Laboratorio de. Control Digital. Motor de Paso a Paso. Motores Paso a Paso

HARDWARE DE UN ORDENADOR. Elementos básicos

UNIVERSIDAD AUTONOMA DE COAHUILA COORDINACION GENERAL DE EDUCACION A DISTANCIA CONVOCATORIA:

PLAN DE MÉTRICAS EN OCHO PASOS

PUERTOS DE COMUNICACIÓN EXTERNOS TIPO VELOCIDAD DESCRIPCION GRAFICO

podemos enfocar al funcionamiento del robot, es decir la parte de electrónica. Para que el

1.- DATOS DE LA ASIGNATURA Nombre de la asignatura : Carrera: Clave de la asignatura : SATCA 1. Dibujo Avanzado Ingeniería Mecánica MIA

Actividad N 1. Primer procesador creado por Intel

Xerox 700 Digital Color Press con Integrated Fiery Color Server. Impresión de datos variables

GUÍAS. Módulo de Diseño de software SABER PRO

LAS NUEVAS TECNOLOGÍAS DE LA INFORMACIÓN Y DE LA COMUNICACIÓN (TIC) EN LA EDUCACIÓN.

Metodología Educativa y Soporte Tecnológico en un Proyecto de Educación Continua Vía Internet

Memoria del Trabajo Fin de Máster realizado por MARTA FERNÁNDEZ GARCÍA. para la obtención del título de

Garantía y FAQ. Bienvenido! Descubre y comparte todo lo que puedes hacer en diwo.bq.com

TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN (4º ESO, 1º y 2º BACHILLERATO) INTRODUCCIÓN

Colegios Oficiales de Ingeniería Técnica e Ingeniería en Informática

Transcripción:

Programación del robot lego mindstorms mediante software de análisis numérico para ingenierías Programing of the Lego Mindstorms robot by means of numerical computing software for engineering Jimy Alexander Cortés Osorio * Francisco Alejandro Medina Aguirre ** Jairo Alberto Moza Vargas *** Presentado: 20 de febrero de 2010 Aprobado: 3 de mayo de 2010 Resumen Introducción: el siguiente artículo presenta, de manera abreviada, los diferentes componentes del Robot Lego Mindstorms nxt (en cuanto a su hardware). Este robot es utilizado en la enseñanza de la robótica y la programación en muchas Universidades de America y Europa. Metodología: tipo descriptivo, y evaluativo ya que se prete mostrar las características que tiene el robot Lego Mindstoms nxt para la enseñanza de la robótica y evaluar el software de análisis numérico Matlab con algunos de sus toolboxes para la programación del robot lego como alternativa científica. Resultados: este artículo muestra como se puede programar mediante el software de análisis numérico Matlab los diferentes componentes del robot nxt (cerebro, servomotores, sensores de luz, tacto, ultrasonido y sonido). La programación del robot en Matlab le brinda la posibilidad al usuario de utilizar otros toolboxes que vienen con el lenguaje de programación dentro de los que se encuentran la visión artificial, la adquisición de datos y las redes neuronales entre otros. Conclusiones: de los diferentes robots educativos evaluados en la investigación, se llegó a la conclusión de que el Robot Lego nxt por su facilidad de armado y por los componentes de hardware que lo conforman, son una muy buena herramienta para la enseñanza de la robótica y la programación Abstract Introduction: this paper presents, in abbreviated form, the different components of the Lego Mindstorms nxt Robot (in terms of hardware), this robot is used in the teaching of robotics and programming in many universities in America and Europe. Methodology: descriptive and evaluative as it tries to show the characteristics that have the Mindstoms Lego nxt robot for teaching robotics and evaluate numerical analysis software Matlab with some of its toolboxes for programming the Lego robot as a scientific alternative. Results: this article shows how software can be programmed using the Matlab numerical analysis of different components of the nxt robot (brain, servo motors, light sensors, touch, ultrasonic and sound). The programming of the robot in Matlab gives the user the possibility of using other toolboxes that come with the programming language within which are machine vision, data acquisition and neural networks among others. Conclusions: of the different educational robots tested in the investigation concluded that the Lego nxt Robot for ease of assembly and hardware components that comprise it, are a very good tool for teaching robotics and programming Keywords: Lego Mindstorms nxt, Matlab, sensor, brick, servo motor, robotics, programming, toolbox. Palabras clave: lego Mindstorms nxt, Matlab, sensor, cerebro, servomotor, robótica, programación, toolbox. * Docente de la Universidad Tecnológica de Pereira, Ingeniero Electricista, Magíster en Instrumentación Física, miembro fundador del grupo de investigación Robótica Aplicada reconocido por Colciencias y director del semillero en Robótica del programa Mecatrónica de la Universidad Tecnológica de Pereira. Coreo electrónico: jacoper@utp.edu.co ** Docente Catedrático de la Universidad Cooperativa de Colombia, docente Catedrático de la Universidad Libre, sede de Pereira, Docente de la Universidad Tecnológica de Pereira, Ingeniero de Sistemas, magíster en Instrumentación Física, miembro de grupo de investigación Robótica Aplicada reconocido por Colciencias y del semillero en Robótica del programa Mecatrónica de la Universidad Tecnológica de Pereira. Coreo electrónico: famedina@utp.edu.co *** Docente de la Universidad Tecnológica de Pereira, Ingeniero Electricista, Magíster en Instrumentación Física, director del Ciclo Profesional del Programa Ingeniería Mecatrónica. Coreo electrónico: jam@utp.edu.co 145 Revista Memorias.indb 145

Jimy Alexander Cortés Osorio - Francisco Alejandro Medina Aguirre - Jairo Alberto Moza Vargas Introducción El robot lego Mindstorms nxt es la evolución de la fichas de lego, posee los elementos básicos de teorías de la robótica; inicialmente fue creado para niños, aunque algunas universidades lo han utilizado para la enseñanza de la robótica y la programación en sus asignaturas. Las características que tiene el robot Lego Mindstorms nxt hacen de este kit una elección adecuada para ser utilizado en entornos educativos. Sus principales características son: Un relativo bajo precio Facilidad de configuración Fácil reprogramación Versatilidad y robustez Metodología Las instigaciones realizadas por el grupo y el semillero de investigación en robótica para la elaboración de este documento son de tipo descriptivo y evaluativo, ya que se prete mostrar las características que tiene el robot Lego Mindstoms nxt para la enseñanza de la robótica y evaluar el software de análisis numérico Matlab con algunos de sus toolboxes para la programación del robot lego como alternativa científica. Para la realización de esta investigación se llevaron a cabo algunos procesos. Se realizó la búsqueda de una herramienta de hardware que facilitara a los estudiantes de robótica la construcción de robots de una forma rápida y ágil llegando al robot Lego Mindstorms como la herramienta más adecuada. Se pusieron a prueba cada una de las características que tiene el robot Lego Mindstorms nxt en cuanto su arquitectura y programación. Por otro lado, se consideraron algunos lenguajes para la programación del robot nxt llegando a la conclusión de que la herramienta que se adecuaba más a las necesidades del grupo de investigación para manipular el Robot Lego nxt era el software de análisis numérico. Por otro lado, se dio uso a los diferentes toolboxes que tiene Matlab para la programación del robot y se desarrollaron algunos programas que permiten la manipulación de los diferentes dispositivos que posee el robot nxt. Definiciones El robot lego nxt El kit en su versión nxt incluye, aparte de múltiples elementos estructurales como ruedas, engranajes, barras o bolas, motores de corriente continua con encoders, diferentes tipos de sensores y el denominado cerebro conocido como el nxt brick. El brick utiliza un procesador AT91SAM7S256 de 32 bits con 256 kb de memoria flash, 64 KB de ram, un microcontrolador de 8 bits, un display lcd de 100x64 pixel, bluetooth, usb 2.0 e interfaces I2C. El sistema puede ser programado en varios lenguajes de programación bajo plataformas MacOS, Linux o Windows. Figura 1. Robot Lego Mindstorms nxt 146 Revista Memorias.indb 146

Programación del robot lego mindstorms mediante software de análisis númerico para ingenierías El cerebro nxt El cerebro del Lego Mindstorms nxt permite que el robot cobre vida y realice diferentes operaciones. La responsabilidad de la interface usb recae sobre el propio procesador central y puede alcanzar velocidades de hasta 12 Mbit/s. La figura 3 muestra el esquema interno de cerebro del robot Lego nxt (Compubot, 2010). Power supply Display Bluetooth Bluecore 4.0 SPI-Bus Main Processor Atmel ARM7 UART-Bus USB Sound Output circuit Buttons I 2 C-Bus Input circuit Figura 2. Cerebro del nxt En cerebro nxt cuenta con siete cables similares a los que se usan en los teléfonos o conexiones de red de datos. Están divididos en conectores de entrada que se usan para enlazar los 4 sensores que utiliza el robot y 3 conectores de salida que se sirven para conectar los servomotores. También cuenta con un enlace por usb para cargar y descargar programas. A nivel interno, el cerebro del nxt es un procesador arm-7 de 32 bits (el AT91SAM7S256, para ser exactos), posee 256 kb de memoria flash para los programas (y para el firmware), 64 kb de ram para los datos y una velocidad de funcionamiento de 48 MHz (The Lego Mindstorms Team, 2006). Tiene, además, un procesador de 8 bits dedicado íntegramente a la gestión de las entradas y salidas del nxt y otro pequeño procesador que se encarga de las comunicaciones inalámbricas (bluetooth). Co-Processor Atmel AVR Figura 3. Mapa del cerebro del robot Lego Mindstorms nxt Servomotores Los servomotores permiten dar al robot la capacidad de movimiento. Los motores del robot se pueden sincronizar automáticamente, para que éste se desplace en línea recta. Figura 4. Servomotor Cada servomotor incorpora un sensor de posición (un grado de resolución) que permite al controlador recibir información del 147 Revista Memorias.indb 147

Jimy Alexander Cortés Osorio - Francisco Alejandro Medina Aguirre - Jairo Alberto Moza Vargas movimiento ajustando éste a los requerimientos del programa. De esta forma se puede hacer que el robot avance una distancia concreta o que realice un giro de un ángulo determinado, sin utilizar temporizaciones. Los servomotores del nxt poseen una velocidad de rotación del eje de 170 rpm (The Lego Minsdtorms Team, 2006) Sensor de tacto El sensor de tacto le da al robot la posibilidad de sentir cuándo se presiona la base naranja, además éste tiene, en su parte frontal, una cavidad donde se pueden adaptar diferentes piezas de lego para darle mayor versatilidad. Con este sensor se pueden hacer aplicaciones como detección de objetos por contacto. Sensor de sonido Este sensor hace que el robot escuche y reaccione ante el sonido. Figura 6. Sensor de tacto Sensor ultrasónico Figura 5. Sensor de Sonido El sensor de sonido le permite detectar la intensidad de esta medida en decibeles (db medida de presión del sonido) (The Lego Minsdtorms Team, 2006): 4-5% es casi como silencio en una habitación. 5-10% es como el sonido producido por una conversación a distancia. 10-30% es como el sonido producido por una conversación normal. 30-100% es como poner música a alto volumen. El sensor ultrasónico permite al robot detectar objetos próximos. También se puede utilizar para hacer el robot evite obstáculos, tome medidas de distancias, y detecte el movimiento. Figura 7. Sensor de ultrasonido 148 Revista Memorias.indb 148

Programación del robot lego mindstorms mediante software de análisis númerico para ingenierías El sensor ultrasónico permite que el robot pueda detectar objetos; este sensor se puede utilizar para hacer aplicaciones como evitar obstáculos, hacer una medición de una distancia, detectar movimientos, entre otros. El sensor ultrasónico permite medir distancias entre 0 y 255 cm, con error de +/-3 cm. El principio de funcionamiento de este sensor es el mismo que utilizan algunos animales como los murciélagos (The Lego Minsdtorms Team, 2006). Sensor de luz software; para la programación del nxt existen varios lenguajes de programación comerciales, también los hay desarrollados por la comunidad de software libre (Lrobotikas, 2010). Tabla 1. Lenguajes de programación para el nxt Lenguajes de programación Lenguajes de programación comerciales - nxt-g Educación - nxt-g - Robolab 2.9 - RobotC - LabVIEW - Microsoft Robotics Developer Studio - Matlab - Simulink - RoboRealm Tipo de licencia Lenguajes de programación de libre uso - BricxCC - NBC (Next Byte Codes) - NXC - lejos NXJ - lejos OSEK (C/C++) - pblua - nxt# - LOGO for nxt - URBI para LEGO MINDSTORMS - Python Fuente: Lrobotikas (2010) Figura 8. Sensor de luz El sensor de luz le permite al robot dotarlo de visión, permitiéndole al robot distinguir entre luz y oscuridad, también puede medir la intensidad de luz, en el caso de los colores el robot los ve con diferentes intensidades de color negro y blanco y todas las combinaciones intermedias. Con este sensor se pueden montar aplicaciones como alarmas, detector de colores, selección de objetos entre otros (The Lego Minsdtorms Team, 2006). Programando el nxt El Lego Mindstorms nxt se puede programar en diferentes entornos de desarrollo de Programando el nxt en Matlab Matlab es un programa que se usa para realizar cálculos numéricos con vectores y matrices, es utilizado para resolver problemas de ingeniera. Para controlar el robot Lego Mindstorms nxt desde Matlab existen en la actualidad solo tres toolboxes. Toolbox diseñados en Matlab Toolbox nxt de MathWorks Este toolbox fue creado por la casa fabricante de software MathWorks (desarrollado por los diseñadores del Matlab) (se puede descargar de la dirección web http://www.mathworks.com/ programs/lego-mindstorms-nxt-software/). 149 Revista Memorias.indb 149

Jimy Alexander Cortés Osorio - Francisco Alejandro Medina Aguirre - Jairo Alberto Moza Vargas El toolbox permite controlar los motores y sensores del robot desde Matlab y Simulink, permite programar rápidamente el nxt, además de combinar con éste otras otros toolboxes propios de Matlab como el toolbox de adquisición de datos y de visión artificial, también permite al usuario utilizar todo el potencial matemático que posee esta herramienta (The MatlabWorks, 2010). Para comunicar el robot con Matlab, este hace uso del toolbox de entrada y salida (I/O), que le da la posibilidad al software de enviar comandos al robot lego nxt por medio de una conexión bluetooth. rwth-mindstorms nxt Toolbox for Matlab La Universidad rwth Aachen de Alemania (en la actualidad es la segunda universidad tecnológica con más estudiantes de Alemania y una de las más renombradas de Europa) diseñó un toolbox para manipular el Robot Lego nxt desde Matlab; en este proyecto participaron más de 300 estudiantes y 60 supervisores de la RWTH. Este toolbox permite avanzar hacia la interacción con sensores del Lego nxt y motores, de forma transparente a través de controles y comandos. Posee un protocolo muy bien documentado (Institute of Imaging & Computer Vision, 2010). El toolbox es licenciado como software de código abierto como parte de la gnu gpl (General Public License) y puede ser descargado gratuitamente desde la página oficial http://mindstorms.lfb.rwth-aachen.de/. RealTerm y bluetooth para controlar el Lego Mindstorms nxt Gregory Gutt del Laboratorio de la Universidad George Mason Neural Engineering, desarrollo un paquete de software para controlar el Lego Mindstorms nxt usando bluetooth, RealTerm y el software de MathWorks Matlab (nxtasy.org, 2010). El toolbox se puede descargar en la dirección web: http://nxtasy. org/wp-content/uploads/2006/11/matlabrealterm-lego-mindstorm-nxt.zip. Realterm es un programa de terminal diseñado especialmente para la captura, control y depuración de binarios. Puede descargarse de manera gratuita en http://realterm.sourceforge.net/. Programando el robot en Matlab A continuación se muestran algunos programas elaborados en Matlab utilizando los servomotores y sensores del Lego nxt. Estos programas se realizaron a través del toolbox nxt de MathWorks. Para la elaboración estos programas se utilizó la versión de R2009b de Matlab. Para programar el robot Lego nxt en Matlab se debe tener en cuenta lo siguiente: Nombre de los motores y puertos en Matlab: estos nombres deben coincidir con la ubicación real de cada dispositivo. Motores nxt.porta nxt.portb nxt.portc Sensores nxt.port1 (touch) nxt.port2 (sound) nxt.port3 (light_fon) nxt.port4 (distance) Controlar el motor conectado a un puerto: >> start(nxt.porta, 30); La instrucción <Start> permite iniciar un motor al porcentaje de velocidad indicada. 150 Revista Memorias.indb 150

Programación del robot lego mindstorms mediante software de análisis númerico para ingenierías Se debe tener en cuenta que el porcentaje de velocidad puede ir en 0% y 10% >> stop(nxt.porta) La instrucción <Stop> se utiliza para parar el motor que en su parámetro. Configurar un sensor conectado a un puerto: >> set(nxt.port1, type, touch ) La anterior instrucción se utiliza para indicar en qué puerto se encuentra un determinado sensor Para obtener datos del sensor se utiliza el comando <getdata> se le debe indicar el puerto de donde se capturan los datos. >> v = getdata(nxt.port1) v = 20 El dispositivo bluetooth: El dispositivo bluetooth que se utiliza para conectar el robot nxt, debe contener el protocolo Serial Port Profile (spp). Éste protocolo permite que el dispositivo bluetooth emule un puerto serial RS232 en el computador. Para los programas que se muestran en este documento se utilizó un dispositivo bluetooth ENUBT-C1E marca Encore, este dispositivo tiene las siguientes características: Rango de Cobertura: hasta 100 metros Dimensiones: 52 mm x 21mm x 9 mm Peso: 8 g Velocidad: 3Mbps Operando en rangos: hasta 100 m Programando los motores: en este programa el robot avanza en línea recta y luego gira a la izquierda o a la derecha. Para ello se utiliza un número aleatorio entre 0 y 1. TIEMPO_GIRO = 0.60; TIEMPO_MOVIMIENTO=1; a=1; while a<=5 start(nxt.portb, 75); start(nxt.portc, 75); pause(tiempo_movimiento); stop(nxt.portb) stop(nxt.portc) x = rand(1,1); % genera el numero aleatorio if x <= 0.5 start(nxt.portc, -30); pause(tiempo_giro) else start(nxt.portb, -30); pause(tiempo_giro) pause(1) a=a+1; stop(nxt.portb) stop(nxt.portc) Programando el sensor de tacto: en este programa implementado en Matlab, el robot avanza evitando los obstáculos que se encuentre en su camino. Cada vez que el robot golpee un objeto, retrocede un poco, gira y continúa avanzando. a=1; set(nxt.port1, type, touch ) while a<=4 start(nxt.portb, 50); start(nxt.portc, 50); while (true) v = getdata(nxt.port1); if v<100 stop(nxt.portc); break start(nxt.portb, 75); 151 Revista Memorias.indb 151 07/03/2011 06:30:37 p.m.

Jimy Alexander Cortés Osorio - Francisco Alejandro Medina Aguirre - Jairo Alberto Moza Vargas pause(1) a=a+1; Programando el sensor ultrasónico: el sensor de ultrasonido funciona como un sonar, éste envía un frente de ondas de ultrasonidos para que se refleje en algún objeto y luego mide el tiempo que tarda en recibir su eco, para así conocer a qué distancia se encuentra. El siguiente código muestra cómo se puede programar el sensor de ultrasonido en Matlab: distancia = 20; a=1; set(nxt.port4, type, distance ) while a<=4 start(nxt.portb, 50); start(nxt.portc, 50); while (true) v = getdata(nxt.port4); if v<=distancia stop(nxt.portc); break start(nxt.portb, 75); pause(1) a=a+1; Programando el sensor luz: el principio básico en el que se basa el seguidor de línea es que el robot intente mantenerse en el borde de la línea negra, alejándose de ella si el nivel de luz es muy pequeño (el sensor de luz se sitúa en mitad de la línea negra) y girando hacia ella si el sensor se sale de ésta y detecta un nivel de luz alto. Figura 9. Robot nxt seguidor de línea El siguiente código muestra un programa sencillo realizado en Matlab que hace un seguimiento de la línea con un único valor umbral de luz. umbral = 40; a=1; set(nxt.port3, type, light_fon ) while a<=50 start(nxt.portb, 20); start(nxt.portc, 20); pause(0.2); stop(nxt.portc); v = getdata(nxt.port3); while (v<=umbral) start(nxt.portb, -20); pause(0.2); pause(0.2); v = getdata(nxt.port3); a=a+1; 152 Revista Memorias.indb 152 07/03/2011 06:30:37 p.m.

Programación del robot lego mindstorms mediante software de análisis númerico para ingenierías Conclusiones El software de análisis numérico, como es Matlab, resulta ser una herramienta de alta ingeniería que permite hacer usos de complejos algoritmos para el procesamiento de los datos y la toma de decisiones que de otra forma serían altamente demandantes en el consumo de tiempo de su implementación. Matlab, sio el líder en el mercado, no resulta ser una herramienta libre, por lo que se encuentra limitada a la adquisición de una licencia de uso. Como alternativa al manejo de Matlab para el control de los robots Lego ntx en la actualidad se está buscando el desarrollo de un toolbox que complemente su uso mediante plataformas clones de Matlab tales como Scilab u Octave, para las cuales no existen, a la fecha, trabajos importantes que permitan su uso. De los diferentes robots educativos evaluados en la investigación se llegó a la conclusión de que el Robot Lego nxt, por su facilidad de armado y por los componentes de hardware que lo conforman, es una muy buena herramienta para la enseñanza de la robótica y la programación. La programación del robot nxt mediante el software de análisis numérico Matlab permite la integración de otros toolboxes que esta herramienta posee, como los toolboxes de visión artificial, redes neuronales, adquisición de datos entre otros. Esto le da un panorama muy interesante en la enseñanza de la robótica con el robot Lego nxt con herramientas muy robustas. El grupo de investigación en Robótica Aplicada y el Semillero de investigación en Robótica del programa de Mecatrónica de la Universidad Tecnológica de Pereira, están comprometidos con la idea de desarrollar un toolbox para el manejo de robot Lego nxt mediante Scilab para el cual no existe referente. Resultados Esta investigación da como resultado principal la evaluación del software de análisis numérico Matlab; para la programación del robot Lego nxt se realizaron algunos algoritmos que permitieron manipular los diferentes dispositivos de hardware que posee el robot Lego. Con base a esta investigación algunos estudiantes del programa de Mecatrónica están realizando proyectos en los que se involucran toolboxes se visión artificial y redes neuronales con el robot Lego nxt. Tomando como base el trabajo realizado con el robot Lego nxt y Matlab, la Universidad Tecnológica, en cabeza del programa de Mecatrónica, se encuentra en proceso diseñar un toolbox para el manejo del robot nxt que responda a; dicho toolbox se diseña en el programa de análisis numérico Scilab (software libre). El toolbox fortalecerá el trabajo de la programación y la robótica de los grupos de investigación que trabajen con el robot Lego Mindstorms nxt. Referencias The MatlabWorks, (s.f) [en línea], disponible en: http://www.mathworks.com, recuperado: 1º de enero de 2010. Compubot [en línea] disponible en: http://complubot.educa.madrid.org/pruebas/ lego_nxt_version_educativa/lego_nxt_version_ educativa_index.php, recuperado: 15 de enero de 2010. Institute of Imaging & Computer Vision [en línea], disponible en: http://mindstorms.lfb.rwthaachen.de/index.php/en, recuperado: 5 de enero de 2010. 153 Revista Memorias.indb 153 07/03/2011 06:30:37 p.m.

Jimy Alexander Cortés Osorio - Francisco Alejandro Medina Aguirre - Jairo Alberto Moza Vargas Lrobotikas [en línea], disponible en: http://lrobotikas.net/mediawiki/index.php?title=programaci%c3%b3n_nxt, recuperado: 4 de enero de 2010. nxtasy.org [en línea], disponible en: http://nxtasy. org/2006/11/28/controlling-nxt-from-mathworks-matlab/, recuperado: 4 de enero de 2010. The Lego Minsdtorms Team, Lego minsdtorms User Guide (2006) (guía de usuario que viene con el robot). 154 Revista Memorias.indb 154 07/03/2011 06:30:38 p.m.