Tesis Final Brazo Robotico
Tesis Final Brazo Robotico
Tesis Final Brazo Robotico
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
------------------------------------------------------------
Director de Trabajo de Grado
------------------------------------------------------------
Jurado
------------------------------------------------------------
Jurado
2
AGRADECIMIENTOS
Primero que todo agradecerle a Dios quien nos dio la fortaleza de seguir día a día
con el mismo ímpetu que cuando iniciamos, con esa sed de conocimiento y de
triunfalismo, fue y es nuestro guía en este largo pero provechoso camino, a
nuestras familias que son el pilar y la fuente más grande de motivación que sin su
apoyo incondicional en este pedregoso camino hubiésemos desistido, cuando
estábamos a punto de detenernos sus voces de ánimo nos recargaba para seguir
recorriéndolo y brindándonos ese espacio que normalmente compartíamos con
ellos para dedicarle el tiempo a cada materia durante la carrera, a todos los
profesores que intervinieron en nuestra enseñanza gracias por compartirnos de su
experiencia y brindarnos su conocimiento y tenemos un especial agradecimiento a
dos personas, al profesor Jair Villanueva Dávila que desde el cuarto semestre lo
que inicio como un proyecto integrador nos mostró que podría ser la base para el
proyecto de grado y también al profesor Julio de la Cruz quien es la persona que
nos siguió guiando en este recorrido hasta convertirse al final en nuestro director
de proyecto.
3
TABLA DE CONTENIDO
Pág.
1. OBJETIVOS ................................................................................................. 12
1.1. OBJETIVO GENERAL .............................................................................. 12
1.2. OBJETIVOS ESPECÍFICOS..................................................................... 12
PARTE I DISEÑO Y CONSTRUCCIÓN................................................................. 13
2. DISEÑO Y CONSTRUCCION DE LA PLANTA DE TRANSPORTE Y
EMBALAJE ............................................................................................................ 14
2.1. DESCRIPCIÓN GENERAL DE LA PLANTA............................................. 14
2.2. TIPOS DE ARTICULACIONES COMUNES EN BRAZOS ROBÓTICOS . 16
2.2.1. Cartesiana ............................................................................................... 17
2.2.2. Cilíndrica ................................................................................................. 17
2.2.3. Polar........................................................................................................ 17
2.2.4. Angular .................................................................................................... 17
2.3. MOTORES PASO-PASO.......................................................................... 17
2.3.1. Construcción de motores paso-paso....................................................... 18
2.3.2. Características ........................................................................................ 19
2.3.3. Tipos de motores paso-pasos ................................................................. 19
2.4. BRAZO ROBÓTICO CONFIGURACIÓN ANGULAR ................................ 21
2.4.1. Diseño y construcción de las articulaciones ............................................ 22
2.4.2. Sensado de la posición de las articulaciones .......................................... 31
2.4.3. Sistema de agarre de cajas..................................................................... 36
2.5. BANDA TRANSPORTADORA .................................................................. 39
2.5.1. Banda de transporte................................................................................ 40
2.5.2. Motor de arrastre..................................................................................... 40
2.5.3. Calculo de velocidades y relación de trasmisión. .................................... 40
2.5.4. Sensor de cajas ...................................................................................... 42
4
2.5.5. Sistema de rechazo ................................................................................ 42
2.5.6. Sensor de rechazo .................................................................................. 45
PARTE II ELECTRÓNICA ..................................................................................... 47
3. DESCRIPCIÓN DEL SISTEMA ELECTRÓNICO ......................................... 48
3.1. Circuito de alimentación............................................................................ 48
3.1.1. Características ........................................................................................ 49
3.2. BRAZO ROBÓTICO ................................................................................. 49
3.2.1. Circuito de manejo de motores paso-paso .............................................. 49
3.2.2. Circuito de operación manual.................................................................. 50
3.2.3. Circuito del sistema microcontrolado ...................................................... 51
3.2.4. Comunicación con el módulo de visión artificial ...................................... 53
3.3. BANDA TRANSPORTADORA .................................................................. 54
3.3.1. Circuito de manejo de motor paso-paso ................................................. 54
3.3.2. Circuito de manejo de motor de rechazo ................................................ 56
3.3.3. Circuito detector de paquetes. ................................................................ 57
PARTE III SOFTWARE .......................................................................................... 59
4. DESCRIPCIÓN DEL SOFTWARE ............................................................... 60
4.1. PROGRAMA DE MANEJO DEL BRAZO ROBÓTICO .............................. 60
4.2. COMUNICACIÓN CON EL COMPUTADOR ............................................ 61
4.3. SISTEMA DE VISIÓN ARTIFICIAL ........................................................... 62
4.3.1. Aspectos sobre el color y características de la imagen........................... 62
4.3.2. Modelos para el procesamiento de la imagen. ........................................ 63
4.3.3. Transformaciones De RGB a HSI ........................................................... 66
4.3.4. Segmentación ......................................................................................... 67
4.3.5. Umbralización ......................................................................................... 67
4.3.6. Obtención y separación de regiones de imágenes binarias .................... 67
4.4. SISTEMA DE INSPECCIÓN DE CAJAS .................................................. 70
4.4.1. Segmentación de las marcas en la caja.................................................. 70
4.4.2. Zonas de interés para la identificación de marcas .................................. 72
5
4.4.3. Identificación y expulsión de cajas .......................................................... 73
PARTE IV PRUEBAS Y RESULTADOS ................................................................ 75
5. PRUEBAS Y RESULTADOS ....................................................................... 76
5.1. PRUEBAS REALIZADAS EN LOS MOTORES PASO-PASO .................. 76
5.2. PRUEBAS DE CONSUMO ELÉCTRICO.................................................. 77
5.3. PRUEBAS EN EL DESPLAZAMIENTO DE LAS ARTICULACIONES ...... 77
5.3.1. Prueba en la articulación muñeca. .......................................................... 78
5.3.2. Prueba en la articulación del codo .......................................................... 79
5.3.3. Prueba en la articulación del hombro. ..................................................... 79
5.3.4. Prueba banda transportadora ................................................................. 80
PARTE V CONCLUSIONES .................................................................................. 82
6. CONCLUSIONES ........................................................................................ 83
PARTE VI BIBLIOGRAFÍA ..................................................................................... 86
REFERENCIAS BIBLIOGRÁFICAS....................................................................... 87
PARTE VII ANEXOS.............................................................................................. 88
ANEXO A Tabla de especificaciones motores paso-paso ..................................... 89
ANEXO B Diseño tarjetas impresas....................................................................... 89
ANEXO C Vistas de la planta................................................................................. 90
ANEXO D Código programación manipulador. ...................................................... 90
6
LISTA DE FIGURAS
Pág.
8
Figura 71. Circuitos impresos. ............................................................................... 89
Figura 72. Vistas de la planta................................................................................. 90
9
LISTA DE TABLAS
pág.
10
INTRODUCCIÓN
El proceso que se describe en este trabajo consta de varios sistemas en los que
se encuentra una banda transportadora, un sistema expulsor y un manipulador. El
primer sistema es una banda transportadora que trabaja a velocidad constante y
su único objetivo como su nombre lo indica es trasladar los paquetes de un
extremo al otro. El segundo se encarga de retirar el producto defectuoso de la
banda, por medio de una paleta expulsora accionada por un motor DC que
depende de la señal generada por un sistema de visión artificial.
El sistema de visión artificial que se implementa en esta tesis de grado fue
desarrollado por el ingeniero electrónico Julio Fabio de la Cruz Gómez. Este
sistema de visión se ha ajustado para hacer el reconocimiento de la etiqueta del
paquete que el brazo robótico va a embalar de acuerdo a las especificaciones de
calidad dadas.
11
1. OBJETIVOS
12
PARTE I DISEÑO Y CONSTRUCCIÓN
13
2. DISEÑO Y CONSTRUCCION DE LA PLANTA DE
TRANSPORTE Y EMBALAJE
En este capítulo se describe con detalle el hardware del sistema desde su diseño,
selección del material, configuración del brazo articulado, tipo de motores, sistema
de transmisión de movimiento, sistema de posición, sistema de agarre, sistema de
transporte, sistema de expulsión y sistema de verificación de la calidad, hasta su
construcción.
En la figura 1 se muestra el diseño final obtenido después de la función de
renderizado realizado.
14
La figura 2 muestra un esquema de bloques de las partes que constituyen el
sistema propuesto.
Las partes que constituyen la planta en detalle se muestran en la figura3 junto con
la enumeración de sus partes.
15
c) Guía de la banda: Sirven para alinear el producto durante su traslado.
d) Sistema de expulsión: Se usa para rechazar el producto que no cumple con
el estándar de calidad.
e) Cámara de video: Verifica la calidad del producto.
f) Motor banda: Genera el movimiento que impulsa la banda.
g) Sensores de posición: son 4 que se encargan como su nombre lo indica de
informar la posición de cada articulación.
h) Motores Brazo: Son 4 motores que generan el movimiento de cada
articulación.
Antes de realizar el diseño y construcción del brazo robótico se tuvo en cuenta los
diferentes tipos de articulaciones, de estos los más comunes.
Los tipos de articulaciones utilizados en la robótica con sus características se
presentan en la figura 4.
El tipo de manipulador diseñado para el brazo robótico propuesto en el presente
trabajo es el de tipo angular. La descripción detallada de su construcción se
explica más adelante.
16
2.2.1. Cartesiana
2.2.2. Cilíndrica
2.2.3. Polar
2.2.4. Angular
17
En las articulaciones del brazo son los motores paso a paso los que permiten el
avance de su eje en ángulos muy precisos y por pasos en las 2 direcciones de
movimiento, izquierda o derecha.
En la banda transportadora un motor paso a paso es el que permite el avance y
trasporte de los paquetes a seleccionar por el sistema.
En estos motores para permitir estos movimientos se debe dar una determinada
secuencia de señales digitales, para poder avanzar por pasos hacia un lado u otro
y se detienen exactamente en una determinada posición, que es función de ese
“juego de señales" aplicadas.
Cada paso tiene un ángulo muy preciso, determinado por la construcción del
motor, lo que permite realizar movimientos exactos sin necesidad de un sistema
de control por lazo cerrado.
Básicamente estos motores están constituidos normalmente por un rotor sobre el
que van aplicados distintos imanes permanentes y por un cierto número de
bobinas excitadoras bobinadas en su estator figura 5. Las bobinas son parte del
estator y el rotor es un imán permanente. Toda la conmutación (o excitación de las
bobinas) deber ser externamente manejada por un controlador.
18
magnético, ofrecen menor resistencia a ser atravesado por su flujo en la
posición de equilibrio. Su mecanización es similar a los de imán
permanente y su principal inconveniente radica en que en condiciones de
reposos (sin excitación) el rotor queda en libertad de girar y, por lo tanto, su
posicionamiento de régimen de carga dependerá de su inercia y no será
posible predecir el punto exacto de reposo.
2.3.2. Características
Hay tres características que son comunes en los motores paso a paso, estas son:
• Voltaje: Los motores paso a paso tienen una tensión eléctrica de trabajo.
Este valor viene impreso en su carcasa o al menos se especifica en su hoja
de datos.
• Resistencia eléctrica: La resistencia de los bobinados, determinará la
corriente que consumirá el motor y su valor afecta la curva de torque del
motor y su velocidad máxima de operación.
• Grados por paso: Generalmente, este es el factor más importante al elegir
un motor paso a paso para un uso determinado. Este factor, define los
grados que rotará el eje en cada paso. Una secuencia de medio-paso o
semi-paso (half step) del motor duplicará la cantidad de pasos por
revolución al reducir la cantidad de grados por paso. En cuanto a la forma
de conexión y excitación de las bobinas del estator.
19
punto medio. Esta duplicación se hace para facilitar el diseño del circuito de
manejo, ya que permite el uso, en la parte de potencia, de un transistor
único por cada uno de los bobinados. En el esquema más común de
conexión se unen los "puntos medios" de ambos ejes (a y b en la figura 6) y
se les conecta al positivo de la alimentación del motor. El circuito de control
de potencia, entonces, se limita a poner a masa los bobinados de manera
secuencial. [8]
20
Figura 7. Motor bipolar.
21
componen al robot, se usan términos como: hombro, brazo, codo, muñeca que se
ilustran en la figura 9. [2]
Para este proyecto se usó la estructura básica angular, sus características más
relevantes se muestran en la figura 10; esta configuración es una de las más
usadas tanto en la educación como en actividades de investigación.
Figura 9. Similitud de un brazo robótico con las extremidades del cuerpo humano.
22
Para la construcción de la estructura del brazo robótico se emplea madera MDF
porque es de fácil manipulación, liviana, económica y presenta un buen acabado.
Para el mecanizado de las piezas fue necesario el uso de herramientas manuales
como caladora, taladro, marco con segueta, prensa en C, pliego de lija, y para el
armado se empleó martillo, pegante, tornillos, puntillas, juego de destornilladores,
escuadra.
Para el sistema cinemático se emplearon piñones de dientes rectos que acoplados
entre sí se formaron trenes de engranajes compuestos que transmiten la potencia
del motor hasta el eje de la articulación ofreciendo la fuerza necesaria para mover
cada eslabón y la carga que va a levantar. También se utilizaron piñones cónicos
para el censado de la posición, los cuales acoplan el eje de la articulación con el
sensor.
23
Figura 11. Comparativo de prototipo real y prototipo CAD.
El motor que conforma esta articulación es un motor paso a paso (b) de 24 pasos
por vuelta con una relación de engranajes de 21:1 que permite disminuir la
vibración que proporciona el motor a baja velocidad brindando un movimiento más
uniforme. La frecuencia de trabajo del motor en esta articulación es de 113 Hz.
Según la figura 12.
24
Figura 13. Relación de engranajes de la base del brazo robótico.
Donde,
25
Los cálculos realizados para obtener la velocidad tangencial se muestran a
continuación:
1.66
(Revoluciones de giro del eje del motor)
26
2.4.1.2. Articulaciones del hombro del brazo robótico
Está conformado por un motor paso a paso (a), ilustrado en la figura 12.
El motor de la articulación del hombro es de 48 pasos con una relación de
engranajes de 60:1 entregando mayor fuerza y su frecuencia de trabajo es 43.2
Hz. Los engranajes usados son de dientes rectos, transmiten movimiento de
rotación entre ejes paralelos y son comúnmente utilizados en máquinas.
Esta articulación es la que permite la rotación del segmento brazo del módulo
robótico, relación de engranajes se muestra en la figura 15.
Los cálculos realizados para obtener la velocidad tangencial se muestran a
continuación:
ωs= 0.018rps.
27
Figura 15. Relación del tren de engranajes articulación hombro.
Tiene un motor paso a paso de 24 pasos por vuelta a 12 voltios con una relación
de engranaje 16:1 con engranajes de dientes rectos y se está manejando para el
motor una frecuencia de 43.2 Hz. La figura 17 muestra el esquema de como está
constituida esta articulación.
Las características relevantes de esta articulación son:
28
• Motor paso a paso que le brinda el movimiento levantar o bajar el
antebrazo.
• Transmisión por engranaje de dientes rectos: Reducen la velocidad y
aumentan torque, también nos permite trasmitir el movimiento hasta el
punto de acción.
ωs= 0.048rps.
29
Lo que se puede observar en la ecuación es una relación dada 16:1 lo que
corresponde que por cada 16 vueltas del piñón conductor obtenemos 1 vuelta del
piñón conducido, con esta información podemos hallar la velocidad tangencial a la
que se está girando la base y está dada por la siguiente ecuación:
Tiene un motor paso a paso de 24 pasos por vuelta con una relación de engranaje
20.8:1con engranajes de diente rectos y se maneja una frecuencia para el motor
de 28 Hz. La figura 19 muestra el esquema de como está constituida esta
articulación.
30
La figura 20 muestra la relación de engranajes dispuesta
Los cálculos realizados para obtener la velocidad tangencial se muestran a
continuación:
ωs= 0.043rps.
31
La figura 21 muestra el esquema del módulo robótico y los ejes donde se
colocaron los potenciómetros en las articulaciones.
Posición
Voltaje(v)
en grados
0° 4.89
10° 4.55
20° 4.01
45° 3.39
70° 2.93
90° 2.25
105° 1.89
120° 1.46
128° 1.03
32
Figura 22. Acople del potenciómetro en la base.
El potenciómetro de 10K sensa la ubicación del brazo, ya sea que este arriba o
abajo.
La transmisión de engranaje de dientes cónicos, permite desviar la rotación del eje
90 grados.
33
Posición
Voltaje
en
(V)
grados
-24° 1.74
-10° 2.13
0° 2.33
10° 2.91
31° 3.23
55° 3.65
75° 4.12
90° 4.23
120° 4.93
Tabla 2. Rotación del segmento brazo.
34
Posición
Voltaje(v)
en grados
-128° 3.19
-102° 2.88
-90° 2.53
-73° 2.00
-40° 1.32
0° 0.39
Tabla 3. Rotación del segmento antebrazo.
35
Posición
en Voltaje(v)
grados
-45° 1.10
-25° 1.72
0° 2.81
21° 3.69
45° 4.45
59° 4.96
Tabla 4. Rotación del segmento muñeca.
36
• Ventosa de vacío que permite adaptarse a casi cualquier superficie no
porosa, adhiriéndose gracias a la acción del vacío.
Son polímeros flexibles que utilizan la presión negativa del fluido de aire o agua
para adherirse a las superficies no porosas. La cara pegable de la ventosa tiene
una superficie curva. Cuando el centro de la ventosa se presiona contra una
superficie plana y no porosa, el volumen del espacio entre la ventosa y la
superficie plana se reduce, lo que causa que el aire entre la ventosa y la superficie
sea expulsado más allá del borde de la copa circular. Cuando el usuario deja de
ejercer presión física en el centro de la parte exterior de la ventosa, la sustancia
elástica de la cual está hecha la ventosa hace que la misma tienda a recuperar su
forma original curva. Debido a que toda presión ya ha sido forzada a salir del
interior de ventosa, la cavidad que tiende a desarrollarse entre ésta y la superficie
plana contiene poco o nada de aire, y por lo tanto la presión que ejerce sobre la
ventosa es despreciable. La diferencia de presión entre la atmósfera en el exterior
de la ventosa, y la cavidad de baja presión en el interior de la estructura, es lo que
mantiene la ventosa adherida a la superficie.
En la figura 27 se muestra la implementación.
• Bombas de émbolo.
• Bombas de engranes.
• Bombas de diafragma.
• Bombas de paletas.
El generador de vacío utilizado en el proyecto es de tipo diafragma o bomba
rotativa seca ya que no utiliza aceite como elemento sellador del vacío y de
lubricación. Consiste en un diafragma elástico que flexiona alternativamente por
una leva que gira a alta velocidad.
En el momento en que comienza la compresión se cierra la válvula de entrada y,
cuando la compresión es máxima se abre la válvula de expulsión, pasando el gas
a la atmosfera.
No se utiliza en sistemas que requieren grandes velocidades de bombeo y su
presión mínima es de 10
mbar. [1]
En la figura 28 se puede ver la estructura interna de este tipo de bomba y la figura
29 se puede ver la implementación realizada.
La bomba seleccionada para este proyecto cuenta con las siguientes
características.
• Motor de 12V.
• Operación 12W.
• Conexión de 1/4.
• 0-16" Hg rango de vacío.
• Modelo MOT0233.
• Vendido por Sparkfun.
38
Figura 29. Bomba de vacío implementada.
39
2.5.1. Banda de transporte
40
Figura 33. Vista isométrica de transmisión en la banda.
ωs= 0.63rps.
Donde,
n= Velocidad en rps.
41
La velocidad lineal obtenida en la anterior ecuación es de 4.4 cm/s que
corresponden a la velocidad a la que se desplaza la banda.
42
Figura 35. Sistema de expulsión.
• Rotor
• Estator
• Escobillas
• Colector
• Eje
• Núcleo y devanado del rotor
• Imán permanente
• Armazón
• Tapas o campanas
Rotor Constituye la parte móvil del motor, proporciona el torque para mover a la
carga. Está formado por:
• Eje: Formado por una barra de acero fresada. Imparte la rotación al núcleo,
devanado y al colector.
• Núcleo: Se localiza sobre el eje. Fabricado con capas laminadas de acero,
su función es proporcionar un trayecto magnético entre los polos para que
el flujo magnético del devanado circule.
Las laminaciones tienen por objeto reducir las corrientes parásitas en el núcleo. El
acero del núcleo debe ser capaz de mantener bajas las pérdidas por histéresis.
Este núcleo laminado contiene ranuras a lo largo de su superficie para albergar al
devanado de la armadura (bobinado).
43
• Devanado: Consta de bobinas aisladas entre sí y entre el núcleo de la
armadura.
Estas bobinas están alojadas en las ranuras, y están conectadas eléctricamente
con el colector, el cual debido a su movimiento rotatorio, proporciona un camino de
conducción conmutado.
44
chispas entre las superficies del colector y las escobillas, debido a que no
existe un buen contacto.
Rotor Estator
Eje Armazón
Núcleo y devanado Imán permanente
Colector Escobillas y porta escobillas
Tapas
Tabla 5. Distribución de piezas.
Se usa para comparar la calidad de los paquetes que se desplazan por la banda
transportadora con un patrón preestablecido en el código del programa. El sensor
es una cámara de video LIFECAM VX-2000 [4] mostrada en la figura 37, que le da
la señal al sistema de expulsión para que rechace los paquetes defectuosos, se
45
encuentra ubicada a una altura de 12cm con respecto a la banda y una distancia
de 7 Cm con respecto a la paleta de expulsión. Características técnicas de la
cámara empleada son:
46
PARTE II ELECTRÓNICA
47
3. DESCRIPCIÓN DEL SISTEMA ELECTRÓNICO
Consiste en una fuente regulada con salida de 12.2 voltios y potencia de 65 vatios
que se encarga de alimentar los circuitos de potencia y control.
Posteriormente se regula a 5VDC que alimenta el circuito microcontrolado, los
controladores de los motores paso-paso del brazo robótico, el puente H que
controla la apertura y cierre de la válvula de vacío.
Este circuito de alimentación suministra energía a la bomba de vacío la cual opera
a 12VDC y el motor paso-paso de la banda transportadora.
El diagrama esquemático de la fuente se muestra en la figura 38 y su estructura
física en la figura 39.
48
Figura 39. Fuente de alimentación 12.2V a 5A.
3.1.1. Características
49
proporciona la señal de reloj al circuito, un flip-flop tipo D SN7474 que nos fija la
secuencia en la que va a rotar el bit en el registro de desplazamiento SN74194
que es el circuito integrado especial para el manejo de motores paso-paso, nos da
la secuencia de los pasos para el avance del motor en una u otra dirección
dependiendo del dato que le cargue el flip-flop. La velocidad de giro de los
motores está determinada por la frecuencia del reloj. El circuito de potencia del
motor está conformado por el integrado ULN2003, este integrado es un arreglo de
7 transistores Darlington que puede manejar cargas hasta de 500 mA. Se emplean
4 tarjetas una para cada motor que da movimiento a las articulaciones.
Los movimientos del brazo robótico se pueden realizar de forma manual utilizando
un control tal como se muestra en la figura 41.
El control se emplea cuando se realizar mantenimiento o pruebas de
funcionamiento.
Este control contiene 8 pulsadores que ejecutan el avance o retroceso de las
articulaciones según como sea requerido por el usuario.
50
Figura 41. Circuito de manejo de motores paso-paso.
51
posición de las articulaciones y 2 salidas digitales para el cierre y apertura de la
válvula de vacío.
El esquema se muestra en la figura 43.
C1
22p
X1 U1
CRYSTAL
C2 13 33
OSC1/CLKIN RB0/INT
14 34 8 salidas a los 4 controladores
OSC2/CLKOUT RB1
35 de motores paso-paso del brazo
RB2
22p 4 entradas analogas 2 36 del brazo robotico.
RA0/AN0 RB3/PGM
de los potenciometros 3 37 pin 33-34 hombro
RA1/AN1 RB4
pin 2 muñeca 4 38 pin 35-36 brazo
RA2/AN2/VREF-/CVREF RB5
pin 3 antebrazo 5 39 pin 37-38 antebrazo
RA3/AN3/VREF+ RB6/PGC
pin 4 brazo 6 40 pin 39-40 muñeca
RA4/T0CKI/C1OUT RB7/PGD
pin 5 hombro 7
RA5/AN4/SS/C2OUT
15
RC0/T1OSO/T1CKI
8 16
RE0/AN5/RD RC1/T1OSI/CCP2
9 17
RE1/AN6/WR RC2/CCP1
10 18
RE2/AN7/CS RC3/SCK/SCL
R2 R1 23
RC4/SDI/SDA
1 24
MCLR/Vpp/THV RC5/SDO
10k 100 25
RC6/TX/CK
26
RC7/RX/DT
19
RD0/PSP0
20
RD1/PSP1
21
RD2/PSP2
22 2 entradas sensores
RD3/PSP3
27 de llegada cajas
RD4/PSP4
28 pin 27-28
RD5/PSP5
29
RD6/PSP6
30 2 salidas para
RD7/PSP7
valvula de vacio
PIC16F877A pin 29-30
52
Figura 44. Tarjeta del sistema microcontrolado.
53
Figura 45. Circuito tarjeta pingüino.
A continuación se ilustrara los circuitos utilizados para el manejo del motor paso a
paso, el motor del sistema de rechazo y detector de paquetes.
El controlador del motor paso-paso es una tarjeta de circuito impreso que está
conformada por una serie de componentes digitales, dividido en 2 circuitos: el
circuito de control encargado de dar la secuencia lógica para el giro de los motores
y está formado por un integrado LM555 configurado en modo astable que
proporciona la señal de reloj al circuito, un flip-flop tipo D SN7474 que nos fija la
54
secuencia en la que va a rotar el bit en el registro de desplazamiento SN74194
que es el circuito integrado especial para el manejo de motores paso a paso, nos
da la secuencia de los pasos para el avance del motor en una u otra dirección
dependiendo del dato que le cargue el flip-flop. La velocidad de giro de los
motores está determinada por la frecuencia del reloj. El circuito de potencia del
motor está conformado por 4 transistores TIP 120 uno para cada bobina del motor.
El esquema se muestra en la figura 46.
55
Figura 47. Tarjeta controlador de motor paso-paso de la banda transportadora.
Este circuito está compuesto por un motor de corriente directa, un controlador que
para nuestro caso en un transistor 2N2222 que soporta una corriente de 600mA,
una resistencia a la base del transistor de 330 y un diodo 1N4148. El
funcionamiento del circuito es el siguiente la tarjeta pingüino genera la señal de
expulsión que es un bit en alto que se da en uno de los pines del microcontrolador,
esta señal entra por la base del transistor donde se encuentra una resistencia que
limita la corriente de base permitiendo que el transistor entre en conducción y
dejando circular la corriente desde la alimentación pasando por el motor y por el
colector- emisor a tierra colocando en funcionamiento el motor. El diodo es un
diodo rápido de silicio, con tiempo de recuperación inversa no mayor a 4ns y
trabaja a altas frecuencias que protege al controlador del voltaje inverso que se
genera cuando se desconecta una carga inductiva en este caso el motor, evitando
que este voltaje averíe el controlador.
El esquema se muestra en la figura 48.
56
Figura 48. Circuito controlador del motor de rechazo.
57
Figura 49. Circuito detector de paquetes.
58
PARTE III SOFTWARE
59
4. DESCRIPCIÓN DEL SOFTWARE
60
Figura 51. Diagrama de flujo del manejo del brazo robótico.
61
4.3. SISTEMA DE VISIÓN ARTIFICIAL
62
Color: El color se forma mediante la combinación de los tres colores básicos rojo,
verde y azul (RGB), y pueden expresarse mediante una tripleta de valores, donde
R, G y B representa las intensidades de cada uno de los tres colores básicos.
Tono: Indica si un área parece al rojo, amarillo, verde o azul, o a una porción de
ellas.
63
primarias rojo, verde y azul, normalizados. En este modelo se basan las cámaras y
receptores de televisión.
64
4.3.2.3. Modelo perceptual
Si por otro lado se hubiera mezclado el rojo brillante tonel negro, su intensidad
disminuirá (hacia negro), mientras que su matiz (el rojo) y su saturación (1.0),
permanecerán constantes.”
La saturación corresponde a la pureza del color. Corresponde a la proporción de la
luz pura de la longitud de onda dominante y a la luz blanca necesaria para definir
el color. Un color 100% puro tiene una saturación del 100% y no contiene luz
65
blanca. Colores que se alejen del color puro contienen una mezcla entre luz
blanca y color puro.
66
Figura 58. Proyección del cubo RGB.
4.3.4. Segmentación
Es el proceso en que se divide una escena percibida en sus partes para extraer
objetos para su posterior reconocimiento y análisis. Al poder resaltar las partes de
la imagen que correspondan a los objetos de interés, se aprovecha una
característica discriminante común en todos los objetos presente en la escena que
es el color.
4.3.5. Umbralización
67
Para el reconocimiento del fondo del paquete.
Al procesar la imagen y binarizarla, se logra separar los colores obteniendo el área
que requerimos de color blanco y el resto de color negro.
Ahora si el área de diferente color al fondo se reduce, al binarizarla el área de
color blanca será mucho mayor como se verá a continuación:
68
Figura 61. Prueba 3 de segmentación del color de fondo de la caja.
69
Figura 64. Prueba 3 de segmentación de las marcas de identificación.
En esta sección se explica cada una de las partes del sistema de visión artificial
implementado para poder hacer el proceso de expulsión de cajas.
70
Para dicha segmentación en el espacio de color HSV se empleó la matriz de tono
para diferenciar por medio del color la marca con respecto al color del fondo de la
caja y también con respecto a la banda trasportadora capturada por la cámara. El
color de la marca seleccionada está en el rango de 122 a 180 grados, en la figura
67 se muestra el color empleado según su tono, el color está en el rango de verde
con valor promedio de 151.
71
4.4.2. Zonas de interés para la identificación de marcas
Las zonas de interés básicamente son las regiones en donde se evaluara si la caja
tiene defecto o no según las marcas de identificación, este proceso se realiza
sobre la imagen binarizada.
Se utilizó una zona de interés dado que la cámara pude observar varias cajas
simultáneamente y en el proceso de identificación de cajas se desea solo analizar
una caja a la vez. Básicamente la zona de interés es la región en la imagen donde
una caja es analizada para saber si es buena o mala. En la figura 69 se muestra
por medio de líneas negras las zonas de interés utilizada en la imagen capturada.
• Zona que abarca todo la región comprendida por las tres marcas.
• Zona que abarca solo la marca superior.
• Zona que abarca solo la marca central.
• Zona que abarca solo la marca inferior.
El conjunto del análisis realizo por cada marca y todas las marcas según la zona
de interés es la que determina si la caja será expulsada o no.
72
4.4.3. Identificación y expulsión de cajas
• Evaluar si el área que cubre todas las marcas cuando se evalúa la zona de
interés es mayor al área de una marca (1000 pixeles) y menor a la de tres
marcas (3000 pixeles). Con esto sabemos que hay una caja para ser
analizada.
• Determinar si el centro de masa de la marca superior está en su
correspondiente zona de interés, en caso de no estarlo esto indica que la
marca no existe para esta caja y en caso de ser así se dará la orden de
expulsar.
• Determinar si el centro de masa de la marca central está en su
correspondiente zona de interés, en caso de no estarlo esto indica que la
marca no existe para esta caja y en caso de ser así se dará la orden de
expulsar.
• Determinar si el centro de masa de la marca inferior está en su
correspondiente zona de interés, en caso de no estarlo esto indica que la
marca no existe para esta caja y en caso de ser así se dará la orden de
expulsar.
73
Figura 69.Diagrama de flujo sistema de expulsión.
74
PARTE IV PRUEBAS Y RESULTADOS
75
5. PRUEBAS Y RESULTADOS
Frecuencia Comportamiento
0.95 Hz No funciona
1.43 Hz No funciona
76
5.2. PRUEBAS DE CONSUMO ELÉCTRICO
77
5.3.1. Prueba en la articulación muñeca.
78
5.3.2. Prueba en la articulación del codo
79
Peso gramos Comportamiento
100 Levanta la carga y gira
200 Levanta la carga y gira
300 Levanta la carga y gira
400 Levanta la carga y gira
500 Levanta la carga y gira
600 Levanta la carga y gira
700 Levanta la carga y gira
800 Levanta la carga y gira
No levanta la carga y
900
gira
Tabla 10. Prueba en la articulación del hombro.
80
Peso gramos Comportamiento
100 Desplaza
200 Desplaza
300 Desplaza
400 Desplaza
500 Desplaza
600 Desplaza
700 Desplaza
800 Desplaza
900 Desplaza
1000 Desplaza
1100 No se desplaza
Tabla 11. Prueba en la banda transportadora.
81
PARTE V CONCLUSIONES
82
6. CONCLUSIONES
En cuanto a el diseño inicial del manipulador el efector final era una pinza la cual
solo permitía agarrar un solo paquete, su tamaño y el sistema de agarre no era el
más adecuado para esta aplicación. La solución a estos inconvenientes fue
diseñar el sistema de agarre más delicado y se opta por usar vacío una técnica
efectiva y muy usada en la industria que por medio de ventosas pueden sujetar
diferentes tipos de materiales a excepción de los porosos sin averiarlos y
reduciendo la complejidad del efector final.
83
En el diseño del prototipo de brazo robótico, permitió profundizar en el uso de las
herramientas brindadas a lo largo de la carrera de tecnología electrónica tales
como el uso de programas de diseño de impresos y simulación de circuitos
electrónicos como lo son: Proteus, Multisim, livewire y PCwizar, también software
de programación de microcontroladores como son: PIC C y Procesing, para el
diseño estructural de la planta se adquirió conocimiento acerca del software
SOLIDWORKS que se usa para crear, editar y ver modelos 3D. La anterior ayudo
a tener un panorama más claro del diseño antes de iniciar su construcción.
En las pruebas de tiempo de embalaje del producto por medio del manipulador, se
obtuvo que la velocidad promedio es de 2.26 cm/s. la cual es suficiente para
cumplir el proceso de embalaje de los paquetes.
84
Cuando se realizó la prueba del giro de la base del sistema robótico, se observó
que este no llegaba perpendicular a los paquetes, por lo tanto al ser recogidos
estos llegaban torcidos y no se podían depositar en la caja de embalaje. Lo
anterior es debido a que para la ubicación de los sistemas (banda - manipulador)
no se tuvo en cuenta el paso o ángulo de desplazamiento del motor de giro, este
no lograba detenerse con precisión o sea perpendicular a la banda en el punto de
recepción de paquetes, lo cual no dejaba retirarlos porque rozaban con las guías
de la banda. Esto se solucionó reubicando la banda transportadora hasta
conseguir la posición correcta para recoger los paquetes.
Las primeras pruebas de visión artificial fueron realizadas con paquetes de fondo
verde y marcas violetas lo cual dificulto la identificación de las regiones de interés
produciendo señales erróneas en el momento de validar la información
provocando la expulsión de paquetes que cumplen con el estándar de calidad.
Este error se debe porque el color verde genera un área mas grande medida en
pixeles lo cual no permite diferenciar el inicio y el final de dicho paquete cuando
los paquetes se desplazan uno seguido de otro. Para solucionar este
inconveniente se cambia el color del fondo por color violeta y las marcas por color
verde obteniendo una mejora en la identificación de las regiones de interés
aunque la falta de homogeneidad de la luz en el área donde esta ubicada la
cámara afectaba la captura de la imagen por eso fue necesario ambientar el área
de captura imagen con lámparas luz blanca.
85
PARTE VI BIBLIOGRAFÍA
86
REFERENCIAS BIBLIOGRÁFICAS
87
PARTE VII ANEXOS
88
ANEXO A Tabla de especificaciones motores paso-paso
89
ANEXO C Vistas de la planta
#include <16f877A.h>
#fuses XT,NOWDT
#device adc=10
#use delay(clock=4M)
#BYTE PORTB = 0x06
#BYTE PORTD = 0x08
#BYTE TRISB = 0x86
#BYTE TRISD = 0x88
Int16 CamCanal(int canal){
int16 dato;
switch(canal){
case 0:
set_adc_channel(0);
break;
90
case 1:
set_adc_channel(1);
break;
case 2:
set_adc_channel(2);
break;
case 3:
set_adc_channel(3);
break;
}
delay_us(20);
dato=read_adc();
return dato;
}
void main(){
int16 Giro,Brazo,AnteBrazo,Muneca;
int S1,S2,Nivel=1;
short B1=0,M1=0;//Variables usadas para retirar el paquete de la banda
short BF1=0,ABF1=0,MF1=0;//Variables usadas para empacar primera vez
set_tris_b(0x00);
set_tris_d(0xC0);
output_b(0x3F);
output_d(0x00);
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(AN0_AN1_AN2_AN3_AN4);
Brazo=CamCanal(2);
Giro=CamCanal(3);
AnteBrazo=CamCanal(1);
Muneca=CamCanal(0);
while(true){
//****************POSIICION INICIAL****************************
if(Brazo<529||Brazo>531)//Inicio Brazo
{ if(Brazo>530)
{
output_low(Pin_b3);
do{
Brazo=CamCanal(2);
}while(Brazo!=530);
output_high(Pin_b3);
}
else if(Brazo<530)
{
output_low(Pin_b2);
do{
Brazo=CamCanal(2);
91
}while(Brazo!=530);
output_high(Pin_b2);
}
}//fin Brazo
if(Giro<974||Giro>976)//Inicio Giro
{
if(Giro>975)
{
output_low(Pin_b1);
do{
Giro=CamCanal(3);
}while(Giro!=975);
output_high(Pin_b1);
}
else if(Giro<975)
{
output_low(Pin_b0);
do{
Giro=CamCanal(3);
}while(Giro!=975);
output_high(Pin_b0);
}
}//Fin Giro
if(AnteBrazo<443||AnteBrazo>447)//Inicio AnteBrazo
{ if(AnteBrazo>445)
{ output_low(Pin_b4);
do{
AnteBrazo=CamCanal(1);
}while(AnteBrazo!=445);
output_high(Pin_b4);
}
else if(AnteBrazo<445)
{
output_low(Pin_b5);
do{
AnteBrazo=CamCanal(1);
}while(AnteBrazo!=445);
output_high(Pin_b5);
}
}//Fin Antebrazo
if(Muneca<432||Muneca>437) //Inicio Muñeca
{ if(Muneca>435)
{
output_high(Pin_b7);
do{
92
Muneca=CamCanal(0);
}while(Muneca!=435);
output_low(Pin_b7);
}
else if(Muneca<435)
{
output_high(Pin_b6);
do{
Muneca=CamCanal(0);
}while(Muneca!=435);
output_low(Pin_b6);
}
}//Fin Muñeca
//*****************************Fin Posición Inicial****************************
//*****************************Inicio Detección de Cajas***********************
Inicio:
S1=input(Pin_d6);
S2=input(Pin_d7);
if((S1==0&&S2==1)||(S1==1&&S2==0)||(S1==1&&S2==1)){
goto Inicio;
}
//*****************************Fin Detección de Cajas**************************
//****************************Inicio Activar Succión***************************
output_low(Pin_d5);
output_high(Pin_d4);
//****************************Fin Activar Succión******************************
//*****************************Inicio Agarre Punto Inicial*********************
if(Brazo<475||Brazo>477)//Inicio Brazo
{ if(Brazo>476)
{
output_low(Pin_b3);
do{
Brazo=CamCanal(2);
}while(Brazo!=476);
output_high(Pin_b3);
}
else if(Brazo<476)
{
output_low(Pin_b2);
do{
Brazo=CamCanal(2);
}while(Brazo!=476);
output_high(Pin_b2);
}
93
}//fin Brazo
//*****************************Fin Agarre Punto Inicial************************
//*******************Inicio Retiro de la caja del Punto Inicial****************
output_low(Pin_b2);
delay_ms(1);
output_high(Pin_b7);
While((B1&M1)==0){
Brazo=CamCanal(2);
Muneca=CamCanal(0);
if(Brazo==485){
output_high(Pin_b2);
B1=1;
}
if(Muneca==420){
output_low(Pin_b7);
M1=1;
}
}
B1=0;
M1=0;
//********************Fin Retiro de la caja del Punto Inicial******************
//*********Inicio Moverse a Posición Final Brazo, Antebrazo y Giro*************
if(Brazo<529||Brazo>531)//Inicio Brazo
{ if(Brazo>530)
{
output_low(Pin_b3);
do{
Brazo=CamCanal(2);
}while(Brazo!=530);
output_high(Pin_b3);
}
else if(Brazo<530)
{
output_low(Pin_b2);
do{
Brazo=CamCanal(2);
}while(Brazo!=530);
output_high(Pin_b2);
}
}//fin Brazo
if(Giro<444||Giro>450)//Inicio Giro
{
if(Giro>446)
{
94
output_low(Pin_b1);
do{
Giro=CamCanal(3);
}while(Giro!=446);
output_high(Pin_b1);
}
else if(Giro<446)
{
output_low(Pin_b0);
do{
Giro=CamCanal(3);
}while(Giro!=446);
output_high(Pin_b0);
}
}//Fin Giro
Delay_ms(100);
if(AnteBrazo<483||AnteBrazo>487)//Inicio AnteBrazo
{ if(AnteBrazo>485)
{ output_low(Pin_b4);
do{
AnteBrazo=CamCanal(1);
}while(AnteBrazo!=485);
output_high(Pin_b4);
}
else if(AnteBrazo<485)
{
output_low(Pin_b5);
do{
AnteBrazo=CamCanal(1);
}while(AnteBrazo!=485);
output_high(Pin_b5);
}
}//Fin Antebrazo
//***********Fin Moverse a Posición Final Brazo, AnteBrazo y Giro**************
//***********************Empacando Primer Nivel********************************
output_low(Pin_b3);//Baja Brazo****Primer Paso
While(BF1==0){
Brazo=CamCanal(2);
AnteBrazo=CamCanal(1);
Muneca=CamCanal(0);
if(Brazo==529){
output_high(Pin_b3);
BF1=1;
}
}
95
BF1=0;
//**********************************************************************
output_low(Pin_b3);//Baja Brazo****Segundo Paso
output_low(Pin_b4);//Sube antebrazo
While((BF1&ABF1)==0){
Brazo=CamCanal(2);
AnteBrazo=CamCanal(1);
if(Brazo==527){
output_high(Pin_b3);
BF1=1;
}
if(AnteBrazo==484){
output_high(Pin_b4);
ABF1=1;
}
}
BF1=0;
MF1=0;
ABF1=0;//Segundo Paso
delay_ms(3);
// **************************Fonde de la caja**********************************
if(Nivel==1){
output_high(Pin_b6);//Sube muñeca
delay_ms(1);
output_low(Pin_b3);//Baja Brazo****Tercer Paso
delay_ms(2);
output_low(Pin_b4);
While((BF1&MF1&ABF1)==0){
Brazo=CamCanal(2);
Muneca=CamCanal(0);
AnteBrazo=CamCanal(1);
if(AnteBrazo==476){
output_high(Pin_b4);
ABF1=1;
}
if(Brazo==496){
output_high(Pin_b3);
BF1=1;
}
if(Muneca==490){
output_low(Pin_b6);
MF1=1;
}
}
MF1=0;
96
ABF1=0;
BF1=0;//Fin Tercer Paso
}
if(Nivel==3){
Nivel=0;
}
Nivel++;
//pare:GOTO pare;
}
}
97