INFORME
DE MATERIA DE GRADUACIN
Uso de Matlab y Simulink para el Control de
Robots y la Observacin de Sensores de Tacto y Ultrasnico
Presentada por:
Aguirre Patio Martha Isabel
Cagua Ordoez Jonathan
Criollo Ortiz Oswaldo Alfonso
GUAYAQUIL ECUADOR
Ao: 2009
AGRADECIMIENTO
la
trabajo.
realizacin
de
este
DEDICATORIA
Martha
A mis padres y hermanas que son mi
mayor inspiracin
Jonathan
A mis padres y hermanos que son
mi mayor inspiracin
Oswaldo
A mi familia sobre todo a mis
padres
TRIBUNAL DE GRADUACIN
DECLARACIN EXPRESA
La responsabilidad del contenido expuestos en este Informe de
Materia de Graduacin nos corresponden exclusivamente; y el
patrimonio intelectual de la misma a la ESCUELA SUPERIOR
POLITCNICA DEL LITORAL
----------------------------------------Aguirre Martha
----------------------------------------Cagua Jonathan
RESUMEN
NDICE GENERAL
RESUMEN
INDICE GENERAL
INDICE DE FIGURAS
INTRODUCCION
1. DESCRIPCIN GENERAL DEL SISTEMA........ 1
1.1. Introduccin.... 1
1.2. Antecedente....... 2
1.3. Descripcin general del Proyecto....... 5
1.4. Anlisis y Justificacin del sistema................... 6
1.5. Alcance del Proyecto y soluciones similares..... 7
2. ANLISIS TERICO....... 9
2.1. Fundamento Terico..... 9
2.1.1. Lego Mindstorm NXT........ 10
2.1.2. Componentes del NXT...... 12
2.1.3. Lenguajes de programacin.. 16
2.1.4. Requisitos Mnimos del Sistema... 18
NDICE DE FIGURAS
Figura 1.1 Diseo de un seguidor de lnea...........................................2
Figura 1.2 Diseo de un NXTWay-G....................................................3
Figura 1.3 Diseo de robot Spirit ......................................................4
Figura 2.1 Lego Mindstorm.................................................................10
Figura 2.2 Comunicacin entre lego y computadora..........................11
Figura 2.3 Cerebro del Lego Mindstorms...........................................12
Figura 2.4 Parte interna del Cerebro del Lego...................................13
Figura 2.5 Sensores y Motores del Lego Mindstorms........................14
Figura 2.6 Software del Lego Mindstorms..........................................17
Figura 2.7 Interfaz del Programa de Matlab.......................................21
Figura 2.8 Interfaz del Programa Simulink de Matlab........................25
Figura 2.9 Paquete de ECRobot con bloques para Lego NXT..........27
Figura 2.10 Servo Motor con imagen de su parte interna...................30
Figura 2.11 Sensor Ultrasnico...........................................................31
INTRODUCCIN
CAPITULO 1
1 DESCRIPCIN GENERAL DEL SISTEMA.
1.1 Introduccin
Este proyecto tiene por objeto el destacar el uso de los sensores de
tacto y ultrasnico de los LEGOS MINDSTORMS NXT bajo la
programacin de Simulink de Matlab, para lo cual se desarroll una
aplicacin usando estos sensores y adems se hizo uso del sensor de
sonido para representar una variable analgica que nos proporcionar
los datos necesarios para la adquisicin y procesamiento de los
mismos.
La aplicacin consiste en un sistema de monitoreo de seales en este
caso seales analgicas, que puede ser ruido, presin o temperatura,
para este estudio se utilizar el ruido como variable a analizar.
Este sistema se ha desarrollado usando una de las innovaciones de la
tecnologa como lo es la robtica y consiste en un pequeo robot
previamente armado dando la apariencia de un explorador, el mismo
que se mover en diferentes sectores y cada vez que el usuario lo
1.2 Antecedentes
Esta no es una de las primeras aplicaciones desarrolladas con el NXT,
puesto
Otra de las aplicaciones usadas con este kit es un robot estable sobre
dos
ruedas
NXTWay-G
que
usa
hbilmente
los
sensores
Es decir las aplicaciones que se les da a este tipo de kits son variadas,
desde bsicas para nios hasta ms complejas para personas que
han desarrollado inters en este campo de la robtica y les gusta
innovar con este tipo de aplicaciones. Incluso cuando se adquiere el
kit, en l incluye varios modelos para comenzar a desarrollarse como
diseadores de robots.
Como se ve, el potencial de procesamiento del NXT hace que las
posibilidades sean variadas. De hecho, ya se ha realizado un
experimento de control con un sistema coche-pndulo cuyos autores
fueron
Estos tipos de kits se pueden usar con varios tipos software pero los
estudiantes del laboratorio del primer semestre de la RWTH Aachen
University, desarrollaron bloques de Matlab para usarlos con legos as
como varios cdigos para emplearlos en ellos. Este es el motivo por el
cual nuestra aplicacin fue realizada en este software, por lo que el
robot explorador ser diseado en el ambiente de Matlab junto con
aplicaciones de Simulink.
En la actualidad existen modelos similares al que se desarrollar en
este proyecto como por ejemplo el robot "Spirit" que desde enero del
2004 empez a enviar fotografas de la superficie de Marte, cuyo
objetivo es la recoleccin y anlisis de datos para determinar si en
Marte alguna vez hubo agua, este fue nuestra motivacin para disear
robot explorador con capacidad de adquisicin de datos.
CAPTULO 2
2 ANLISIS TERICO
El software de programacin de
solido
de
Sensores
Sensor de Sonido: Son los "odos" del robot y permiten a los robots
reaccionar antes comando de sonido y tonos.
construccin,
manteniendo
las
capacidades
de
funcionalidad y movimiento.
Una
de
las
principales
caractersticas
de
este
software
de
dando
la
posibilidad
cualquier
usuario
aprendiz
vaya
desarrollando
el
proyecto
se
ir
mencionando
las
1 USB port.
CD-ROM drive
Compatible Bluetooth.
Matlab 2008
Simulink
GUI (Interfaz grfica de Matlab)
ECRobot
Hardware
Clculos Matemticos.
Desarrollo de Algoritmos.
con
capacidades
no
superadas
en
computacin
visualizacin numrica.
Para poder generar el cdigo ANSI-C y poder enviar al LEGO
MINDSTORM NXT el programa realizado y que lo ejecute segn este
diseado, se utiliz el Real Time Workshop, propio de MATLAB que
permitir generar el cdigo C autnomo para desarrollar y probar
algoritmos modelados en Simulink.
Es precisamente Real-Time Workshop el que facilita la conversin del
programa desde Simulink a un archivo de ejecucin que luego se
carga en el Lego mediante comunicacin USB, para luego poder
ejecutarlo segn lo que se haya diseado en Simulink.
MATLAB dispone de dos herramientas adicionales que expanden sus
prestaciones, Simulink (plataforma de simulacin multidominio) y
GUIDE (editor de interfaces de usuario - GUI).
2.2.2 Simulink
Simulink es una librera de Matlab que proporciona al usuario un
ambiente interactivo para modelar una amplia variedad de sistemas
dinmicos, pudiendo ser estos lineales, no lineales, discretos, de
tiempo continuo y sistemas mixtos. Permite realizar diagramas de
bloques con operaciones click-and-drag, cambiar parmetros del
modelo y visualizar resultados durante una simulacin.
MATLAB y su grupo de Toolboxes ofrecen un conjunto amplio de
herramientas de ingeniera y matemtica para definir algoritmos,
analizando datos y visualizando resultados. Juntos, SIMULINK y
MATLAB proveen un entorno integrado para construir modelos
verstiles y simular dinmicos, diseando y testeando ideas nuevas.
La simulacin se puede realizar desde mens descolgables o desde la
lnea de comandos de Matlab. Los resultados pueden ser vistos
durante la simulacin usando osciloscopios (Scopes) o bloques
grficos (Graph blocks); o grabarlos en un archivo o transferidos al
espacio de trabajo de Matlab
procesamiento.
para su
posterior anlisis o
del
LEGO
MINDSTORM
NXT,
su
modo
de
uso,
ECRobot
Embedded Coder Robot NXT es un entorno de desarrollo basado en
Matlab y Simulink para lego Mindstorms NXT. ECROBOT ofrece la
programacin en bloques en Simulink para el control del NXT, tambin
hace uso del Real-Time Workshop propio de Matlab para generar el
cdigo ANSI-C y luego hacer la implementacin usando el NXTOSEK
con el hardware real NXT.
Una vez que un programa de aplicacin nxtOSEK se ejecuta desde la
RAM del NXT, sobrescribe los datos del firmware del NXT estndar,
Cygwin
GNU ARM
NeXTTool
LibUsb driver
caractersticas
importantes
de
componentes
que
intervienen en el sistema.
Uno de los componentes bsicos del diseo lo conforma el lego NXT, y
su parte central lo es el Ladrillo Programable de LEGO, conocido
como Brick, que no es ms que una microcomputadora programable
que puede enviar seales a los puertos de salida y recibir informacin
de sensores conectados a sus puertos de entrada. El NXT realiza las
funciones de una interfaz recolectora de datos, que transfiere al
computador la informacin proveniente de los Sensores.
Los sensores que utiliza el kit el Lego Mindstorms NXT son:
Servos motores.
Sensor ptico.
Sensor ultrasnico.
Sensor de tacto
Sensor de sonido.
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.
Por lo tanto el sensor de presin simplemente devuelve una seal
digital binaria cuando se activa y desactiva. Normalmente se usa en
conjunto con ms piezas de LEGO para aumentar el alcance tctil del
robot.
intensidades
en
decibelios
crecientes
es
aproximadamente exponencial.
Bluetooth
Bluetooth, es una especificacin industrial para Redes Inalmbricas de
rea Personal que posibilita la transmisin de voz y datos entre
diferentes dispositivos mediante un enlace por radiofrecuencia en la
banda ISM de los 2,4 GHz.
Los principales objetivos que se pretenden conseguir con esta norma
son:
CAPTULO 3
3 DISEO E IMPLEMENTACIN DEL PROYECTO.
en
la
siguiente
pgina
de
internet:
http://www.nxtprograms.com/explorer/index.html
Los pasos a seguir para armar el explorador se encontrarn en esta
pgina, as como detalles del programa desarrollado en el propio
software de lego Mindstorms, la diferencia radica en que al diseo se
le agreg las modificaciones adecuadas para colocar el sensor de
sonido, adems el software usado para programar la funcionalidad del
mismo fue realizado en Simulink de Matlab as como el programa para
lograr el procesamiento de los datos adquiridos por parte del sensor.
de
comunicarse
por
medio
de
Bluetooth,
est
El software que se usar para lograr todo estos fines es Matlab, el cual
fue detallado en el captulo anterior mostrando sus caractersticas y
requerimientos necesarios el cual ser de utilidad para este proyecto.
Matlab es una buena herramienta para el manejo de datos en tiempo
real y manipulacin de los mismos, y son estas las caractersticas las
que nos permitirn el desarrollo de este proyecto, adems vale resaltar
que el programa del funcionamiento del robot explorador fue diseado
en Simulink que es una herramienta propia de Matlab.
Para poder hacer uso del lego mindstoms en Simulink se instal todo
el software necesario para este fin, de esa manera poder tener los
bloques para lograr la programacin.
ECRobot es un toolbox para Matlab, el que nos permite hacer uso de
los bloques creados exclusivamente para el manejo de los Lego
Mindstorms, estos bloques son los utilizados para el diseo del
programa en Simulink que da la funcionalidad para el robot explorador.
Estos tres bloques son los que permite el movimiento del explorador.
Dentro del bloque CORE se encontrarn nuevos bloques que servirn
para la programacin del robot explorador.
Ahora se analizar los otros dos bloques del corazn del movimiento
del explorador If Action Subsystem2 y If Action Subsystem1, al
igual que antes estos dos bloques son muy parecidos con la nica
diferencia que If Action Subsystem2 acta sobre el Motor A y If Action
Subsystem2 sobre el Motor B
Otro punto importante fue la necesidad de agregar un bloque llamado
Memory
sepuede apreciar a
La parte del programa que permite adquirir datos sensados por parte
del sensor de sonido, es el que se encuentra en el bloque interno
Function Calls System se muestra a continuacin.
En l se muestra el procedimiento empleado para obtener los datos
del sensor y la conversin realizada para enviarlos va bluetooth. Cada
indicar que la comunicacin se realiza de la siguiente manera: se
enva 4 paquetes de 8 bits y a eso se le agrega un bit de inicio y uno
de parada.
CAPTULO 4
4 SIMULACION Y PRUEBAS EXPERIMENTALES.
De esta manera el usuario podr tener guardado todos los datos que
se van adquiriendo por parte del robot explorador. Esta imagen se
guarda en formato .bmp, esto se pudo obtener gracias a los comandos
propios en la programacin de GUI, obteniendo imgenes en donde se
puede apreciar tanto el tiempo como los datos mximo y mnimo del
sensor.
CONCLUSIONES
RECOMENDACIONES
mdulos zigbee o
ANEXO A
BIBLIOGRAFIA
[1].
http://www.robotshop.ca/hitec-hs311-servo.html
[2].
http://www. blogs.mathworks.com
[3].
http://www.wikipedia.org/wiki/Lego_Mindstorms
[4].
www. electrosystemss.blogspot.com
[5].
www. eduteka.org/RoboticaSondas.php
[6].
www. blogs.mathworks.com
[7].
www. mindstorms.lego.com
[8].
www. mindstorms.lego.com
[9].
http://lejos-osek.sourceforge.net/api.htm
[10].
http://lejos-osek.sourceforge.net/nxtOSEK_hack.htm
[11].
www.tecnun.es/asignaturas/.../aprendainf/matlab70/mat71.pdf
[12].
www.microchip.com
[13].
www.fceia.unr.edu.ar/dsf/files/TP_Introd.pdf
[14].
www.tecnun.es/asignaturas/.../aprendainf/matlab60/matlab60.pdf