Sie sind auf Seite 1von 7

ESCUELA SUPERIOR POLITCNICA DEL LITORAL

CENTRO DE INVESTIGACIN CIENTFICA Y TECNOLGICA

Uso de Matlab y Simulink para el control de robots y la observacin de


sensores de luz y ultrasnico

Mariano Malav (1), Manuel Nevrez (2), Pedro Vallejo (3), Carlos Valdivieso (4)
Facultad de Ingeniera en Electricidad y Computacin (1) (2) (3) (4)
Escuela Superior Politcnica del Litoral (ESPOL)(1) (2) (3) (4)
Campus Gustavo Galindo, Km 30.5 Va Perimetral, Apartado 09-01-5863. Guayaquil, Ecuador (1) (2) (3) (4)
marianomalave@hotmail.com (1), papuec@hotmail.com (2),pvallejo2806@hotmail.com (3),
cvaldiv@fiec.espol.edu.ec (4)

Resumen
El proyecto que a continuacin se presenta consiste en el diseo y construccin de un Brazo Robtico con
Banda Transportadora, este proyecto est basado en el principio de una envasadora de bebidas. El objetivo
principal es introducirse en el campo de la robtica, utilizando el kit de Lego Mindstorms NXT y herramientas de
software como Matlab y Simulink.
El brazo tiene dos etapas de secuencia, una para detectar que los recipientes que van a circular por la banda
estn con el nivel correcto y la segunda para niveles incorrectos. Estos niveles son medidos con el sensor
ultrasnico. El sensor de luz cumple la funcin de detectar la presencia del recipiente; y el sensor de tacto se usa
para detener la secuencia del brazo robtico. En la programacin de Matlab se crea un algoritmo para obtener
la adquisicin de datos del sensor ultrasnico en tiempo real.
Se utiliza el servo HITEC-HS311 para mover la banda transportadora, el cual es controlado por el PIC-
16F628A. Adems se utiliza dos sensores infrarrojos como entradas en el PIC, con la funcin de hacer dos pausas
al servo, la primera para que el sensor ultrasnico mida el nivel del recipiente y la segunda para que el brazo
agarre el recipiente.

Palabras claves: NXT, servo, PIC

Abstract
This project consists in the design and construction of a Robotic Arm with a belt conveyor, it is based on the
principle of beverage containers. The main objective is to work in the field of robotics using the Lego Mindstorms
NXT kit and software tools such as Matlab and Simulink.
The Robotic arm has a two stages sequence, one to detect the right level of containers and the second to detect
the wrong level. These levels are measure by an ultrasonic sensor. The light sensor detects the presence of the
container, and the touch sensor is used to stop the sequence of the robotic arm. Matlab is used to create an
algorithm for the acquisition of ultrasonic sensor data in real time.
The servomotor HS311 is used to move the conveyor belt, which is controlled by the PIC-16F628A. In addition,
two infrared sensors are used as inputs to the microcontroller, one is to read the level of container and the second
to grab the container.

Keywords: NXT, servo, PIC


ESCUELA SUPERIOR POLITCNICA DEL LITORAL
CENTRO DE INVESTIGACIN CIENTFICA Y TECNOLGICA
3.2 Sensor de Luz
1. Introduccin
Este sensor le permite a nuestro robot distinguir
El presente proyecto tiene como finalidad el diseo y entre luz y oscuridad, midiendo la intensidad de la luz
construccin de un Brazo Robtico con Banda le permite a nuestro robot ver en blanco y negro.
Transportadora. La cual es una de las muchas aplicaciones Este valor lo considera como un porcentaje, el cual es
que se puede realizar con Lego en el campo de la robtica. procesado por el bloque lgico, obteniendo un
La implementacin del proyecto se realizar con las piezas porcentaje aproximado de luminosidad. [5]
de Lego NXT, que incluyen cuatro sensores (ultrasnico,
luz, tacto y sonido) y tres servomotores para el Brazo 3.3 Sensor Ultrasnico
Robtico; y para el circuito de control de la Banda
Transportadora se utilizar el PIC 16F628A. [8] Los ultrasnicos son antes que nada sonido,
exactamente igual que los que omos normalmente,
Se explica las herramientas de hardware, equipos y salvo que tienen una frecuencia mayor que la mxima
materiales adicionales utilizados en la construccin de la audible por el odo humano. sta comienza desde unos
Banda Transportadora. Para la programacin del Brazo 16 Hz y tiene un lmite superior de aproximadamente
Robtico se usa Matlab, se describe tambin las 20 KHz, en este caso se utiliza sonido con una
herramientas de software utilizadas para la programacin frecuencia de 40 KHz, cuyo funcionamiento bsico es
del PIC. medir distancias.

2. Aplicaciones 3.4 Sensor de Tacto

Este proceso es utilizado en el control de calidad El sensor de contacto permite detectar si el bloque
de algunas envasadoras de bebidas, la mayor parte de que lo posee ha colisionado o no con algn objeto que
los envases que contienen niveles inferiores al se encuentre en su trayectoria inmediata. Al tocar una
establecido por el fabricante son rechazadas, superficie, una pequea cabeza externa se contrae,
produciendo prdidas en la produccin. Nuestro permitiendo que una pieza dentro del bloque cierre un
sistema propone que los envases que no completan el circuito elctrico comience a circular energa,
llenado, puedan ser retornados a la lnea de produccin provocando una variacin de energa de 0 a 5 V
para que cumpla los requerimientos del nivel de
producto.
3.5 Servomotor de Lego
3. Herramientas de Hardware utilizadas. En la tabla de medicin, el motor estndar es ms
veloz que el de 9 volts, pero este ltimo posee ms
En esta seccin se detallan los equipos utilizados para fuerza para mover el robot, ya que pueden levantar
la construccin del brazo robtico y la banda cerca de 240 piezas de 8x8, pero es ms lento y a la
transportadora. vez ms preciso. El motor Micro es slo para
funciones menores debido a su escaso torque y la
3.1 Lego Mindstorms NXT mnima velocidad de rotacin.

Lego Mindstorms posee elementos bsicos, como la Tabla 1. Parmetros del Motor del NXT
unin de piezas y la programacin de acciones en
forma interactiva, es usado para construir un modelo
Velocidad Velocidad
de sistema integrado con partes electromecnicas Torque
Motor normal estndar
controladas por computador. En el bloque de NXT (kg/cm)
(RPM) (RPM)
existen cuatro entradas para los sensores y las salidas
son tres localizadas en la parte posterior del bloque. Estndar 3240 1,760 40

El bloque NXT puede comunicarse con el 9 voltios 370 3.840 15


computador mediante la interfaz de USB. Adems,
para comunicarse con otros robots posee una interfaz Micro 36 0,128 36

Bluetooth que es compatible con la Clase II v 2.0.


Tabla correspondiente a las mediciones para
los distintos motores de Lego Robotics
ESCUELA SUPERIOR POLITCNICA DEL LITORAL
CENTRO DE INVESTIGACIN CIENTFICA Y TECNOLGICA
4. Equipos adicionales utilizados 5.2 Matlab y Simulink

El Kit de Lego NXT solo permite conectar 3 Matlab es un ambiente de cmputo, de alta
motores y 4 sensores en sus puertos, para tener un ejecucin numrica y de visualizacin, que integra el
control ms completo del proceso se aadieron 2 anlisis numrico, calculo de matrices, procesamiento
sensores de luz infrarroja y un servomotor adicional, de seales, diseo de sistemas de potencia, mapeo y
los cuales son controlados por un microcontrolador. tratamiento de imgenes, instrumentacin y
adquisicin de datos, identificacin de sistemas,
4.1 Pic16F628A graficacin entre otras aplicaciones en un ambiente
sencillo de utilizar. [2]
Es un microcontrolador CMOS FLASH de 8 bits
de arquitectura RISC capaz de operar con frecuencias Simulink es una herramienta para el modelaje,
de reloj hasta de 20 MHz. Posee internamente un anlisis y simulacin de una amplia variedad de
oscilador de 4 MHz y un circuito de Power-On Reset sistemas fsicos y matemticos, con dos fases de uso:
que eliminan la necesidad de componentes externos y la definicin del modelo y el anlisis del modelo.
expanden a 16 el nmero de pines que pueden ser Simulink usa un ambiente grfico lo que hace sencillo
utilizados como lneas I/O (entrada/salida; Input/ la creacin de los modelos de sistemas.
Output) de propsito general. Proporciona una
memoria de datos EEPROM de 128x8 (128 Bytes), 5.3 RWTHMindstormsNXT y Embedded
una memoria de programa FLASH de 2024x14 (2K Coder Robot NXT
con 14 bits por localidad), una memoria de datos RAM
de propsito general de 224x8, un mdulo CCP RWTHMindstormNXT es un toolbox que ha sido
(captura/comparacin/PWM). [8] desarrollado para el control de LEGO MINDSTORMS
NXT con MATLAB a travs de una conexin
4.2 Servomotor Hitec HS311 inalmbrica Bluetooth o va USB. [7]

Los servos son un tipo especial de motor de D.C. Embedded Coder Robot NXT es la librera que
que se caracterizan por su capacidad para posicionarse proporciona los bloques de Mindstorms NXT para
de forma inmediata en cualquier posicin dentro de su desarrollar un modelo en Simulink, posee una
intervalo de operacin. Para ello, el servomotor espera capacidad de modelado para la estrategia de control.
un tren de pulsos que corresponde con el movimiento a
realizar. 5.4 MikroBasic
5. Herramientas de Software Es una herramienta de desarrollo que se permite
realizar proyectos para microcontroladores PIC.
El proyecto consta de dos etapas, la primera cosiste Proporciona una solucin fcil para aplicaciones para
en armar un prototipo y programarlo utilizando el sistemas embebidos, sin comprometer el rendimiento o
software de programacin de Lego Mindstorms, el control, desarrolla rpidamente y desplegar
mientras que en la segunda etapa se utilizan las aplicaciones complejas. [6]
herramientas de Matlab para la programacin y
adquisicin de datos en tiempo real, en esta etapa se 6. Descripcin del Proyecto
incluye la programacin del controlador de la banda
transportadora, en el que se us Mikrobasic. [7] [9] [10]
El proyecto consiste en la construccin de una
banda transportadora que contiene un brazo robtico,
5.1 Programacin de Lego Mindstorms en ella circularn recipientes llenados a diferentes
NXT niveles de producto, estos niveles sern medidos con el
sensor ultrasnico. El brazo robtico clasificar los
La programacin de Lego tiene un entorno visual, recipientes segn el nivel medido. El prototipo ser
el cual emula la construccin por bloques. Este construido con Lego Mindstorms NXT y su
lenguaje permite las instrucciones secuenciales, programacin se la realizar con Matlab y Simulink; el
instrucciones de ciclos e instrucciones de decisiones, brazo tendr 2 grados de libertad, utilizando 2
stas ltimas, basadas en los datos reportados por los servomotores para mover la base de brazo y un motor
sensores que se puede aadir al robot. que controlar el gipper o garra. Adems contar con
un sensor de luz para detectar la presencia de los
ESCUELA SUPERIOR POLITCNICA DEL LITORAL
CENTRO DE INVESTIGACIN CIENTFICA Y TECNOLGICA
recipientes. La banda transportadora ser controlada un lazo cerrado hasta que el sensor de tacto detecte el
por un microcontrolador, el que tendr como valor de uno, con lo cual se detiene todo el proceso.
dispositivos de entrada dos sensores de luz infrarrojo y
como dispositivo de salida un servomotor. Inicio

Los sensores de luz infrarroja son colocados a lo


Lee_sensor_luz
largo de la banda para monitorear la presencia de los
recipientes en diferentes puntos, estos sensores sern
las entradas del circuito controlador de la banda; en el Luz=L1
primer punto la banda se detendr para hacer la
mediciones de nivel y en el segundo punto la banda se 1

detendr para que actu el brazo robtico en la Lee_sensor_us

seleccin de los recipientes.


us=n1 1
Fig. 1: Esquema, ubicacin de los sensores y motores.
0

Secuencia 2 del
brazo robtico
Sensor 1
Ultrasnico NXT

1
us=n2
R E R E Sensores de Luz IR R E
RECIPIENTE
Sensor de Luz NXT

Secuencia 2 del
brazo robtico
SERVO
MOTOR
BANDA TRANSPORTADORA

Fin de la secuencia

6.1 Diseo electrnico del controlador de la Lee_sensor_tacto

Banda.
sw=1

La banda consiste en transportar los envases de


producto, a lo largo de la banda se colocarn 2
sensores de luz infrarroja reflectivos, el primero har
que la banda se detenga en el punto A para sensar los
niveles de producto utilizando el ultrasonido de Lego 6.3 Circuito del Microcontrolador
Mindstorms, luego de esto se accionar
automticamente la banda hasta que el segundo sensor
Para controlar la banda utilizamos el PIC16F628A,
detecte la presencia del envase en el punto B, aqu el
al tener muy pocas entradas y salidas que manejar se
brazo robtico seleccionar los envases segn el nivel
eligi este microcontrolador, tambin por su facilidad
de producto en su interior, colocndolos en diferentes
al momento de armar el circuito ya que este PIC posee
compartimientos. [4]
un oscilador interno. [8]

6.2 Diagrama de flujo del Proceso del Fig. 2 Circuito controlador de la Banda transportadora
Brazo Robtico

En el diagrama observamos que la secuencia


empieza por el sensor de luz, el cual verifica que
cumpla con el valor establecido, si es el correcto indica
que hay un recipiente en la banda transportadora. Una
vez detectado la presencia del objeto, el sensor
ultrasnico lee el nivel del mismo; si ste cumple con
el nivel establecido el brazo robtico realiza la
primera secuencia, caso contrario si ste es incorrecto
realiza la segunda secuencia. Esto se realiza dentro de
ESCUELA SUPERIOR POLITCNICA DEL LITORAL
CENTRO DE INVESTIGACIN CIENTFICA Y TECNOLGICA
En el puerto RB0-RB1 se conectaron los sensores B Para el diseo de la banda transportadora utilizamos
y A respectivamente, en el puerto RB4-RB5 estn un circuito controlador mediante el PIC16F628A, el
conectados dos leds indicadores y en el puerto RB2 se servomotor (Puerto RB2), 2 sensores de luz infrarrojo
conecta el servomotor que controla el movimiento de (puerto RB0 y RB1) y un sensor de tacto (Puerto
la banda, este motor fue previamente modificado para RB3).
que pueda trabajar a 360 grados y su control se lo
realiza por modulacin de ancho de pulso PWM. [3] Fig. 3 Brazo robtico con Banda Transportadora

Diagrama de Flujo del microcontrolador

Inicio

Encender Motor Banda

Sensor B
detecta objeto

1
7.1 Tarjetas electrnicas (PCBs)
Apagar Motor Banda
Para el diseo de las tarjetas se utiliz el software
PROTEL 99 SE, la programacin se la desarroll en
Delay 20 segundos lenguaje C usando el compilador de mikroBASIC,
para grabar el microcontrolador se utiliz el quemador
1
Encender Motor Banda
de Microchip PICkit 2. [1]

0 Bsicamente el control de la banda contiene 3


Sensor A
tarjetas electrnicas independientes: Tarjeta
detecta objeto Controladoras, Sensor Infrarrojo y fuente de Poder.
Los elementos de entrada son 2 sensores infrarrojos y
1 un sensor de tacto, mientras que a la salida del
Apagar Motor Banda
controlador se conecta un servomotor HITEC HS311
modificado para que trabaje a 360 grados.
0

Fig. 4 Esquema de conexin entre las tarjetas


Objeto retirado de
banda electrnicas

Sensor-A (IR) Tarjeta


Sensor de
Luz
7. Configuracin y Funcionamiento del Sensor-B (IR)

equipo

El proyecto est equipado con 5 sensores


distribuidos en diferentes posiciones, los sensores del
Lego NXT presentan seales digitales, en el caso del Sensor-Tacto Circuito Controlador Servomotor

sensor ultrasnico 8 bits de resolucin y el sensor de


Luz 10 bits; los sensores adicionales presentan valores
de voltaje que varan entre 3.5 y 4.5 Vdc.
8. Calibracin de Sensores del NXT.
Se utiliz 2 servomotores para su movimiento
(Puerto A y B), el tercer motor (Puerto C) para el Para la calibracin de los sensores de luz y
control de la garra, un sensor de luz (Puerto 3) para ultrasnico se us la herramienta Watch Sensor GUI,
identificar la presencia del recipiente y un sensor la cual permite fijar los parmetros para el brazo
ultrasnico (Puerto 4) mide los niveles de producto. robtico.
ESCUELA SUPERIOR POLITCNICA DEL LITORAL
CENTRO DE INVESTIGACIN CIENTFICA Y TECNOLGICA
Dentro del toolbox de Matlab RWTH - Mindstorms Tabla 2: Valores medidos en el sensor de
NXT se encuentra la herramienta Watch Sensor GUI, Ultrasonido
esto nos permite una visualizacin grfica de los
valores analgicos medidos por los sensores de Lego
NXT. Podemos ingresar a esta herramienta mediante Niveles Valor Medido (Bits)
la ayuda de Matlab. Cero 11
Vaco 9
Medio 8
Fig. 5 Help de Matlab en la librera RWTH
Lleno 7
Mindstorms NXT

La superficie de color blanco en las grficas


mostradas representan los valores medidos de los
sensores en diferentes condiciones de nivel.

Fig. 6 Rango de Valores, Sensor Ultrasnico en nivel


de producto Vaco, intermedio y lleno de arriba a abajo
respectivamente.

El sensor de luz tiene una resolucin de 10 bits, es


decir presenta valores de 0 a 1024, se lo ha conectado
en el puerto 3 del NXT. En la figura 4.2.2 se presentan
valores inferiores a 350 bits, todo lo que est por
debajo de este rango significa que no hay presencia de
algn objeto frente al sensor. Todos los valores que
estn sobre los 420 bits representan presencia de un
objeto claro en frente del sensor.

Fig. 6. Rango de Valores de sensor de luz

El sensor ultrasnico tiene 8 bits de resolucin, es


decir que presenta valores entre 0 a 256, para el
Conclusiones
proyecto utilizaremos envases con tres niveles de
producto, vaco, medio y lleno respectivamente. El 1.- El desarrollo de este proyecto es un Brazo Robtico
sensor est clocado a una altura de 9.5cm. de la banda con una Banda Transportadora, aplicacin del campo
transportadora. de la robtica con el cual aportamos una solucin de
diseo para mejorar la calidad de una lnea de
produccin en una industria envasadora de bebidas, a
ESCUELA SUPERIOR POLITCNICA DEL LITORAL
CENTRO DE INVESTIGACIN CIENTFICA Y TECNOLGICA
su vez mejorar el orden de almacenamiento de los sensor del NXT funciona con luz visible roja, por lo
envases que tiene el nivel correcto y rechazar los que puede dar error al momento de la calibracin, por
envases que tienen un nivel fuera del rango. tanto se recomienda trabajar con sensores de luz
infrarroja ya que estos no son afectados por la luz del
2.- Con el principio del prototipo inicial del proyecto, ambiente.
se determin la aplicacin de los sensores con las
siguientes funciones: el sensor de luz detecta la 3.- Con los conocimientos adquiridos en el desarrollo
presencia del recipiente, el sensor de ultrasonido mide del proyecto se puede motivar el desarrollo y la
el nivel del recipiente y el sensor de tacto detiene todo investigacin de las aplicaciones del Lego NXT para la
el proceso del Brazo Robtico una vez terminada la implementacin de futuros proyectos que integren
secuencia del mismo. nuevas tendencias tecnolgicas para encontrar
soluciones a las mismas.
3.- Se us Matlab para desarrollar la programacin
de la secuencia del Brazo Robtico y de igual manera Referencias
para obtener la adquisicin de datos del sensor
ultrasnico en tiempo real. Con el comando xlswrite [1] McCOMB GORDON, The Robot Builders
de Matlab exportamos los datos medidos del sensor Bonanza 2 Edicin, McGrill-Hill, Estados Unidos,
ultrasnico durante toda la secuencia del Brazo a una 2001.
hoja de Excel.
[2] MANUEL GIL RODRIGUEZ, Introduccin
4.- En la implementacin del proyecto se utiliz los rpida a Matlab y Simulink, Ediciones Daz
tres servomotores que trae Lego Mindstorms NXT Santos, Madrid , 2003.
para el Brazo Robtico, por lo que se adicion el
servomotor HITEC HS311 para controlar la Banda [3] MYKE PREDKO, Programming Robot Controllers,
Transportadora donde circularn los recipientes. Se McGrill-Hill, Estados Unidos, 2003.
us este servomotor porque tiene la capacidad de
ubicarse en cualquier posicin dentro de su rango de [4] ANIBAL OLLERO BATURONE, ROBTICA
operacin y de mantenerse estable en dicha posicin, Manipuladores y Robots mviles, Marcacombo
la cual nos facilita en los instantes que se detiene la Boixareu Editores, 2001
Banda para que el sensor ultrasnico mida el nivel del
recipiente. [5] Extreme NXT Extending the LEGO
MINDSTORMS NXT to the Next Level, pgina
5.- Para la alimentacin de la tarjeta de control de html: http://www.apress.com
la Banda Trasportadora, se dise una fuente
independiente de voltaje de 5 VDC, utilizando el [6] PIC Microcontrollers - Programming in C
regulador 7805 para tener una salida constante de 5 V. Mikroelektronika, pgina html:
Con este circuito tambin se consigui tener la http://www.mikroe.com/en/books/pic-
corriente necesaria de 180 mA para mover el books/mikroc/
servomotor debido que la alimentacin que
proporciona Lego Mindstorms NXT no es la [7] Embedded Coder Robot NXT Instruction Manual,
requerida. pgina html:
http://www.pages.drexel.edu/~dml46/Tutorials/Ba
Recomendaciones lancingBot/files/Embedded_Coder_Robot_NXT_I
nstruction_En.pdf
1.- Programar la secuencia del brazo robtico en
Matlab, utilizando los comandos de rotacin para [8] MICROCHIP, Hoja de Datos PIC16F628A,
mover los servomotores, los cuales dan un valor pgina html: http://www.datasheetcatalog.net/es/
exacto de giro para el servo, ya que si es realizado con
comandos de tiempo presenta margen de error en [9] How to upload a nxtOSEK program to the NXT ,
cuanto al posicionamiento del brazo. pgina html: http://lejos-
osek.sourceforge.net/howtoupload.htm
2.- Para calibrar el sensor de luz, tomar en cuenta que
[10] Cygwin Information and Installation, pgina html:
sta es afectada por la luz del ambiente ya que el
http://www.cygwin.com/

Das könnte Ihnen auch gefallen