BANCO DIDACTICO BASADO EN UN MANIPULADOR SCARA PARA ...
Transcript of BANCO DIDACTICO BASADO EN UN MANIPULADOR SCARA PARA ...
BANCO DIDACTICO BASADO EN UN MANIPULADOR SCARA PARA
TRANSPORTE Y CLASIFICACION DE PIEZAS CON FIN DE DAR APOYO EN
ASIGNATURAS DE ROBOTICA Y AUTOMATIZACION.
JUAN SEBASTIAN TRASLAVIÑA DAVILA
UNIVERSIDAD AUTÓNOMA DE BUCARAMANGA
FACULTAD DE INGENIERÍAS
PROGRAMA DE INGENIERÍA MECATRÓNICA
BUCARAMANGA
2019
BANCO DIDACTICO BASADO EN UN MANIPULADOR SCARA PARA
TRANSPORTE Y CLASIFICACION DE PIEZAS CON FIN DE DAR APOYO EN
ASIGNATURAS DE ROBOTICA Y AUTOMATIZACION.
Autor:
JUAN SEBASTIAN TRASLAVIÑA DAVILA
TESIS DE GRADO PARA OPTAR A TITULO DE INGENIERO MECATRONICO
Director:
VICTOR ARDILA, MSc
UNIVERSIDAD AUTÓNOMA DE BUCARAMANGA
FACULTAD DE INGENIERÍAS
PROGRAMA DE INGENIERÍA MECATRÓNICA
BUCARAMANGA
2019
3
AGRADECIMIENTOS
Agradezco primero a Dios por darme la oportunidad de estudiar, por darme salud y
sabiduría para afrontar los retos que en la vida que se me han presentado. A mi
familia por creer en mí y apoyarme en los momentos donde más los necesite. A los
profesores de la carrera porque me aportaron parte de su conocimiento, experiencia
y sabiduría.
A mi director de proyecto de grado por todo el apoyo, motivación y atención brindada
durante el transcurso de los semestres, porque a pesar de que el proyecto se
dificultara siempre me apoyo. A nuestros auxiliares académicos de laboratorio de
electrónica porque con su colaboración hizo más ameno este proceso y por la
paciencia brindada. A los señores evaluadores de proyecto por las observaciones y
asesorías realizadas ayudando a mejorar de forma considerable el proyecto.
4
TABLA DE CONTENIDO
Página
1. OBJETIVOS ................................................................................................... 10
OBJETIVO GENERAL ....................................................................................... 10
OBJETIVOS ESPECIFICOS .............................................................................. 10
2. INTRODUCCION ........................................................................................... 11
3. ROBOT SCARA DE CUATRO GDL ............................................................... 12
3.1 CINEMÁTICA DIRECTA ......................................................................... 13
3.2 CINEMÁTICA INVERSA .............................................................................. 14
CODO ARRIBA .............................................................................................. 15
CODO ABAJO: ............................................................................................... 15
3.3 MODELO DINÁMICO................................................................................... 16
3.4 DISEÑO MECANICO ................................................................................... 17
DIMENSIONAMIENTO ................................................................................... 17
3.5 MATERIALES .............................................................................................. 20
3.6 CALCULO DE MOTORES ........................................................................... 22
3.5 DISEÑO DE ELEMETOS DE MAQUINAS ................................................... 23
ESLABÓN 1 .................................................................................................... 23
ESLABÓN 2 .................................................................................................... 24
4. DISEÑO ELECTRICO Y ELECTRÓNICO ...................................................... 25
4.1 DISEÑO ELÉCTRICO .................................................................................. 25
4.2 DISEÑO ELECTRÓNICO ............................................................................ 25
4.2.1 ACTUADORES ..................................................................................... 25
4.2.2 TARJETA DE MANDO O CONTROL .................................................... 28
4.2.3 SENSORES .......................................................................................... 28
4.2.4 PANEL DE CONTROL .......................................................................... 32
5. ENSAMBLE .................................................................................................... 34
6. CONTROL DEL ROBOT ................................................................................ 38
7. PROTOCOLO DE COMUNICACIÓN ............................................................. 39
8. INTERFAZ HMI .............................................................................................. 40
9. RESULTADOS ............................................................................................... 41 5
CONTROL ROBOT SCARA ............................................................................... 41
CONTROL DE MPS FESTO .............................................................................. 41
10. CONCLUSIONES ....................................................................................... 42
MECÁNICO: ....................................................................................................... 42
ELECTRÓNICO: ................................................................................................ 42
COMUNICACIÓN ............................................................................................... 43
INTERFAZ HMI .................................................................................................. 43
11. BIBLIOGRAFIA ........................................................................................... 44
ANEXOS ................................................................................................................ 46
6
IMÁGENES
Página
Imagen 1. Diagrama de cuerpo libre de un robot SCARA. ..................................... 12
Imagen 2. Diseño banco didáctico ......................................................................... 12
Imagen 3. Sistemas de referencia DH del robot scara aplicando el algoritmo de D.H
...............................................................................................................................13
Imagen 4. Cinemática inversa del robot SCARA.................................................... 15
Imagen 5. Eslabón prismático ................................................................................ 16
Imagen 6. Vista isométrica robot SCARA 4gdl ....................................................... 17
Imagen 7. Diseño1 grado de libertad ..................................................................... 18
Imagen 8. Diseño 2 grado de libertad .................................................................... 19
Imagen 9. Diseño 3 grado de libertad .................................................................... 20
Imagen 10. Diseño 4 grado de libertad .................................................................. 20
Imagen 11. Características físicas del acero al carbono dadas por solidworks. .... 21
Imagen 12. Características físicas del aluminio dadas por solidworks. .................. 21
Imagen 13. Análisis estático de eslabón 1 ............................................................. 23
Imagen 14. Análisis estático segundo eslabón ...................................................... 24
Imagen 15. Motor paso a paso de 18 [kg ∗ (𝑚2/𝑠2)] ........................................................... 26
Imagen 16. Tarjeta de control TB6600 ................................................................... 27
Imagen 17. Puente H de referencia LD298N. ........................................................ 27
Imagen 18. Servomotor del gripper ........................................................................ 28
Imagen 19. Tarjeta ARDUINO mega ...................................................................... 28
Imagen 20. Grafica de palabra digital vs ángulo del potenciómetro del 1 gdl. ....... 29
Imagen 21. Grafica de palabra digital vs ángulo del potenciómetro del 2 gdl. ....... 30
Imagen 22.Grafica de palabra digital vs altura del potenciómetro del 3 gdl. .......... 32
Imagen 23. Panel de control. ................................................................................. 33
Imagen 24. Ensamble del primer grado de libertad ................................................ 34
Imagen 25. Ensamble del 2 gdl. ............................................................................. 35
Imagen 26. Ensamble del 3 gdl. ............................................................................. 35
Imagen 27. Ensamble del gripper. ......................................................................... 36
Imagen 28. Robot SCARA con estructura terminada ............................................. 36
Imagen 29. Robot SCARA con carcazas y mangueras puestas. ........................... 37
Imagen 30. Prototipo del robot SCARA terminado ................................................. 37
Imagen 31. Control ON-OFF en un sistema ........................................................... 38
Imagen 32. Interfaz HMI del robot SCARA. ........................................................... 40
Imagen 33. Eje macizo rediseñado ........................................................................ 42
7
TABLAS
Página
Tabla 1. Variables del algoritmo de Denavint Hartenberg ...................................... 13
Tabla 2. Parámetros del robot SCARA. ................................................................. 22
Tabla 3. Medición de palabra digital vs Angulo 1GDL ............................................ 29
Tabla 4. Medición de palabra digital vs Angulo 2GDL ............................................ 30
Tabla 5. Medición de palabra digital vs Angulo 2GDL ............................................ 31
8
LISTA DE ANEXOS
ANEXO A: CIRCUITOS ELECTRICOS Y DIAGRAMA DE ESTADOS ROBOT
SCARA.
ANEXO B: PLANOS MECANICOS
ANEXO C: MANUAL DE FUNCIONAMIENTO ROBOT SCARA
ANEXO D: CODIGO ARDUINO ROBOT SCARA
9
1. OBJETIVOS
OBJETIVO GENERAL
Desarrollar un banco didáctico basado en un robot SCARA (Selective Compliant Assembly Robot Arm) que permita realizar el transporte de piezas desde un punto fijo o variable, para su posterior clasificación mediante la MPS (Modular Production System o Sistema de Producción Modular) de FESTO.
OBJETIVOS ESPECIFICOS
• Determinar el modelo cinemático y dinámico de un robot SCARA de 4 GDL.
• Desarrollar arquitectura física del manipulador SCARA acoplado a la MPS.
• Simular técnicas de control para el posicionamiento del sistema de manipulación de cada grado de libertad.
• Seleccionar instrumentación y elementos finales de control.
• Construir el manipulador SCARA con acoplamiento a la MPS.
• Implementar una interfaz hombre-máquina para manipular y supervisar insitu (Simulación en tiempo real) de la estación de manipulación y clasificación de piezas.
• Validar experimentalmente los subsistemas conforme prototipo hardware, software y protocolo de comunicación.
• Plantear guías de laboratorio para dar apoyo a asignaturas de robótica y automatización.
10
2. INTRODUCCION
El robot SCARA (Selective Compliant Assembly Robot Arm) es un brazo robótico
bastante utilizado en diferentes campos industriales donde se requiera cumplir con
tareas de alta precisión o repetitividad. Un robot SCARA convencional posee cuatro
grados de libertad, con tres articulaciones rotatorias y una prismática. Este robot es
capaz de ubicar un objeto en un espacio de tres dimensiones. Un enfoque de este
robot es servir como manipulador.
Los robots manipuladores por su característicos por optimizar procesos industriales
aplicados a la soldadura, manipulación de objetos o piezas, corte y acabado,
montaje o pintura. Entran a la necesidad de la industria otorgando a los productos
un menor tiempo de desarrollo o fabricación, una mayor eficiencia o una mayor
calidad además de un bajo costo de producción. Desde hace varios años que se
inventaron los robots industriales como el robot SCARA (Selective Compliant
Assembly Robot Arm) y otros más han sido los impulsores del gran desarrollo de la
manufactura actual, de ahí la importancia de que las universidades empezaran a
adquirir robots como bancos de pruebas y formar a los estudiantes en estas
máquinas.
El banco didáctico del robot SCARA propone el estudio, diseño y construcción de
un robot SCARA acoplado a una MPS (Modular Production System o Sistema de
Producción Modular) de FESTO, que permita reforzar los conceptos de las
asignaturas de robótica y la automatización industrial. El banco cuenta con tomas
eléctricas de alimentación al banco, fuente de voltaje DC, robot SCARA de 4 gdl
compuesto por motores paso a paso, sensores que miden la posición y tarjetas de
control capaz de contralar el giro de los motores, una mesa didáctica, una MPS de
FESTO y una interfaz hombre máquina que permite a los estudiantes controlar los
movimientos del robot.
11
3. ROBOT SCARA DE CUATRO GDL
Un robot SCARA es un robot industrial que posee movimiento rotacional y
longitudinal, este robot se caracteriza por ser eficiente en realizar trabajos repetitivos
como transporte de piezas, pintura y muchas más actividades industriales. Un robot
SCARA de 4 grados de libertad se puede ver en la imagen 1, este robot se compone
de una base que soporta la estructura del robot, pivotes. rodamientos, eslabones, y
un elemento final de control.
Imagen 1. Diagrama de cuerpo libre de un robot SCARA.
El diseño del robot SCARA fue hecho con base al robot YK-XG que comercializa la
empresa Yamaha, debido a esta razón se facilitó el diseño mecánico. La imagen 2
corresponde a un dibujo en una vista isométrica del robot SCARA acoplado a la
MPS, este dibujo se realizó en el entorno de desarrollo grafico Solidworks. Se
establece un diseño de un robot SCARA que tuviera la posibilidad de desplazarse
fácilmente y tuviera un brazo de acción de 76 [cm] y un recorrido prismático de
32[cm] de altura.
Imagen 2. Diseño banco didáctico.
12
3.1 CINEMÁTICA DIRECTA
Luego de tener definido el diseño mecánico del robot, se pasa a determinar su
cinemática directa para poder calcular la posición de elemento final de control
(gripper). En este caso se aplicará el algoritmo de Denavit Hartenberg (DH). Para
realizar este algoritmo solo se utilizarán 3 GDL del robot SCARA contemplando que
el gripper solo podrá abrir o cerrar por lo tanto solo hace parte del segundo grado
de libertad.
Imagen 3. Sistemas de referencia DH del robot scara aplicando el algoritmo de D.H
En la tabla 1 se describe los grados de libertad y las variables requeridas para aplicar
el algoritmo de D.H.
Tabla 1. Variables del algoritmo de Denavint Hartenberg.
Articulación θ d a
q
1 1 Lc L1 0 𝜃1
2 0 L2 180 𝜃
3 0 0 0 𝑑
COS(𝜃) = C𝜃 Y SEN(𝜃) = S𝜃 COS(𝛼) = C𝛼 Y SEN(𝛼) = S𝛼
Luego de aplicar el algoritmo se obtiene la forma de la matriz homogénea y se
reemplaza para cada articulación desde la 1 a la 3.
C𝜃 −C𝛼S𝜃 S𝛼 𝑎C𝜃 𝑖−1𝐴𝑖 = [S𝜃 C𝛼C𝜃 −S𝛼C𝜃 𝑎S𝜃] Ecuación (1)
0 0
Se reemplaza eslabón 1
S𝛼 0
C𝛼 𝑑 0 1
C1 −S1 0 𝐿1𝐶1 𝐴0= [S1 C1 0 𝐿1𝑆1 ] Ecuación (2)
1 0 0 0 0
1 𝐿𝑐 0 1
13
Se reemplaza eslabón 2 C2 S2 0 𝐿2𝐶2
𝐴1= [S2 −C2 0 𝐿2𝑆2 ] Ecuación (3)
Se reemplaza eslabón 3
0 0 1 0 0 0 0 1
1 0 0 0 𝐴 = [0 1 0 0 ] Ecuación (4)
0 0 1 𝑑 0 0 0 1
Calculadas las matrices de rotación de cada grado de libertad del robot
(representadas en la Ecuación 2,3 y 4) se realiza la multiplicación matricial para
obtener la matriz homogénea o la matriz de rotación del robot SCARA de 4 GDL,
dicha matriz se obtiene al multiplicar la matriz de cada eslabón, ver ecuación 5 y
como resultado de esta operación de matrices se obtiene la matriz de
transformación que permite determinar la posición final del gripper, ver ecuación 6. T = 𝐴0 * 𝐴1 * 𝐴 Ecuación (5)
1
C1C2 − 𝑆1𝑆2 𝐶1S2 + S1C2 0 𝐿𝑏(𝐶1𝐶2 − 𝑆1𝑆2) + 𝐿𝑎𝐶1
T = [S1C2 + C1S2 S1S2 − C1C2 0 𝐿𝑏(𝑆1𝐶2 − 𝐶1𝑆2) + 𝐿𝑎𝑆1 ] 0 0 −1 0 0 0
𝐿𝑐 − 𝑑3 1
Ecuación (6)
3.2 CINEMÁTICA INVERSA:
Con la cinemática directa se obtiene la posición final del manipulador, pero ocurre
la necesidad de identificar los ángulos de cada grado de libertad para lograr una
posición XYZ y así coger las piezas. Se obtuvo la cinemática inversa de manera
desacoplada para el robot SCARA, se contempló que el primer y segundo grado de
libertad se podría obtener la cinemática inversa a partir de una forma trigonométrica,
aplicando el teorema de Pitágoras y también la ley de senos y cosenos. Para la
parte prismática vasta con la diferencia entre el valor z y la posición que tenga el
gripper en ese instante.
14
Imagen 4. Cinemática inversa del robot SCARA.
Para determinar la cinemática inversa:
Se determina el ángulo 𝛽 con la posición xy del gripper.
𝛽 = atan2(𝑝𝑥, 𝑝𝑦) Ecuación (7)
Se calcula la hipotenusa hasta el punto XY
C = √𝑝𝑋 + 𝑝𝑌 Ecuación (8)
Ahora se calcula el ángulo 𝜑 por medio de la ley de senos y cosenos
𝜑 = 𝐶𝑂𝑆−1 𝑎2
2−𝑎12−𝑐2
( − ∗𝑎1∗𝑐
) Ecuación (9)
Nuevamente se aplica la ley de senos y cosenos para hallar el ángulo n.
n = 𝐶𝑂𝑆−1 𝑐2
2−𝑎22−𝑎2
2 (
− ∗𝑎1∗𝑎2 ) Ecuación (10)
cuando se calcula la cinemática inversa de un robot como el SCARA que consta de
dos articulaciones se puede llegar a un mismo punto de dos maneras posibles, una
es codo arriba y la otra es codo abajo.
CODO ARRIBA:
El cálculo de la cinemática inversa de codo arriba es el siguiente:
𝜃1 = 𝛽 + 𝜑 Ecuación (11)
𝜃 = 𝑛 + 180 Ecuación (12)
CODO ABAJO:
El codo abajo se calcula de la siguiente forma:
𝜃1 = 𝛽 − 𝜑 Ecuación (13)
𝜃 = 180 − 𝑛 Ecuación (14)
Y para el cálculo del movimiento prismático:
𝑍 = 𝑇1 − 𝐿 Ecuación (15)
15
3.3 MODELO DINÁMICO
Imagen 5. Eslabón prismático.
Ya diseñado el robot, se continua con la ejecución del diseño y para ello se deben
calcular los torques de los motores y esto se logra por medio de un modelo dinámico
que se obtuvo del paper “Mechatronic System Desing of a Cake Decoration Robotic
Module Using a SCARA Manipulator”.
Para la realización del modelo se aplicó el algoritmo de Euler-lagrange, este
algoritmo pide identificar los grados de libertad que presente el sistema; para este
robot son 2 grados rotacionales y 2 prismáticos. Seguido se identifica un sistema de
coordenadas, lo cual en conceptos dinámicos se habla de un sistema en coordenas
generalizadas. A continuación, se tienen aspectos técnicos como identificar las
fuerzas no conservativas o las fuerzas que generen trabajo como es el torque
producido por el motor. Luego de que se obtenga el lagrangiano se busca
representar el sistema.
Con el método de LaGrange-Euler se obtiene la forma matricial descrita como:
𝑀( ) + 𝐶( , ) + 𝑁( ) = 𝑄 Ecuación (16)
𝑀( ) es la matriz de inercias, 𝐶( , ) representa la aceleración de coriolis o
aceleraciones centrípetas, 𝑁( ) representa el término producido de la gravedad y 𝑄 los torques de los motores.
𝛼 + 2𝛾 cos 𝜃 𝛽 + 𝛾 cos 𝜃
𝑀(𝜃) = [ 𝛽 + 𝛾 cos 𝜃 𝛽 0 0 0 0
0 0 𝛿 0 0 𝑚 0 0
] Ecuación (17)
−𝛾 cos 𝜃 𝜃 −𝛾 cos 𝜃 (𝜃 + 𝜃1 ) 0 0
𝐶(𝜃, ) = [ 𝛾 sin 𝜃 𝜃1 0 0 0] Ecuación (18)
0 0 0 0 0 0 0 0
16
1
𝑁(𝜃, ) = [
0 0
𝑚4𝑔 0
] Ecuación (19)
𝑇1 𝑄 = [𝑇2] Ecuación (19)
𝑇3 0
Donde: 𝛼 = 𝐼𝑧1 + 𝐼𝑧 + 𝑟 𝑚1 + 𝑚 ∗(𝑙1^2+𝑟 ^2) Ecuación (19)
𝛽 = 𝑚 𝑙1𝑟 Ecuación (20)
𝛾 = 𝐼𝑧 + 𝑚 Ecuación (21)
𝑟 = 𝑙1/2 Ecuación (22)
3.4 DISEÑO MECANICO
El diseño mecánico del robot SCARA de 4 gdl como ya fue mencionado previamente
en este libro, fue con base al robot YK-XG que comercializa la empresa Yamaha,
se destaca que el diseño tuvo muchos cambios debido a que se debía hacer este
robot optimizando recursos de acuerdo a esto el diseño tiene su originalidad. La
imagen 6 corresponde a un dibujo en una vista isométrica del robot SCARA.
DIMENSIONAMIENTO:
Imagen 6. Vista isométrica robot SCARA 4gdl.
Como criterios fundamentales del diseño se destaca que el robot tenía que tener 4
grados de libertad además a esto debía ser un robot robusto, por ende, se diseñó el
brazo con una longitud de 76 [cm]. Para la estructura del robot se diseñó una base
que se hizo de un perfil en L de 2” por cara y de ancho de 1/8”. El primer grado de
libertad corresponde a un movimiento rotacional, cuando se diseñó este grado
17
de libertad fue importante contemplar que los demás componentes del robot se ven
apoyados en este grado de libertad por ende el pivote que iba adherido a la base
del robot debía ser grueso; inicialmente se propuso uso de rodamientos de esferas,
pero con la construcción del prototipo se dañaron los rodamientos de esferas, una
hipótesis sobre este suceso es el hecho de que el eje se apoyó con cierta inclinación
lo que genero su desembocadura, la solución fue utilizar rodamientos de agujas. El
primer grado de libertad se diseñó con un eslabón de 34 [Cm] de longitud y un ancho
de 8 [Cm] y para completar se debía hacer la medición del ángulo, esto se hizo con
engranajes rectos del mismo tamaño adheridos al eje del primer eslabón y al eje del
potenciómetro (el potenciómetro quedo soportado en un hueco de la medida del
exterior del potenciómetro. Todas las especificaciones a detalle serán encontradas
en los anexos de planos mecánicos).
Imagen 7. Diseño1 grado de libertad.
El segundo grado de libertad también era un movimiento rotacional, se destaca que
se utilizó una columna que le diera altura y soporte al segundo grado, luego se
realizó un pivote más delgado que iba adherido por tornillos a la viga y se realizó un
eslabón de 38[Cm] de largo y al igual que el primer grado de libertad se usaron
engranajes en la medición del ángulo adheridos al eje del potenciómetro (el
potenciómetro quedo soportado en un hueco de la medida del exterior del
potenciómetro) y del eje del grado del segundo grado de libertad.
18
Imagen 8. Diseño 2 grado de libertad.
El tercer grado de libertad es un grado de libertad prismático, para este diseño se
contempló el uso de una transmisión de movimiento por medio de un piñón
cremallera, pero para lograr esto se requería algún objeto que permitiera soportar el
movimiento de la cremallera por ende se propuso el uso de una corredera lineal;
Este tipo de corredera es usada en los cajones de los hogares o en diferentes usos
que se requiera realizar un movimiento lineal y evitar roces entre cuerpos. Ya se
tenía donde posicionar la cremallera ahora faltaba poner el piñón que se encargaría
de darle movimiento a la cremallera. A este mecanismo le faltaba un detalle y este
detalle era que como el motor transmitiría el movimiento al engranaje y para esto se
usó un sistema de tornillo sin fin a piñón. Se usó este mecanismo debido a que si
se ubicaba un motor debía ser de forma axial al eslabón 2 entonces se necesitaba
que el engranaje quedara soportado de forma transversal y así poder transmitir el
movimiento, este tipo de transmisión requiere que los ejes entre los componentes
que rotan se encuentren a 90°. Lo último que se diseño fue la lectura de la altura del
elemento final de control, para ello se usó un engranaje que se acoplaba el eje del
potenciómetro para el potenciómetro se le hizo un soporte en u que le permitiera estar
adherido al eslabón 2.
19
Imagen 9. Diseño 3 grado de libertad.
El cuarto grado de libertad también corresponde a un grado de libertad prismático,
para su diseño se contempló una pieza que se pudiera adherir a la corredera lineal
y que sujetara al elemento final de control. Se encontró comercialmente un elemento
final de control que en este caso fue un gripper y se implemento.
3.5 MATERIALES:
Imagen 10. Diseño 4 grado de libertad.
Terminado el diseño mecánico se empezó a buscar los materiales con que realizar
las piezas y se concluyó que los factores a tener en cuenta era que los materiales
debían ser de bajo costo, pero de un buen rendimiento. Los materiales que cumplían
estos requerimientos eran acero al carbono y aluminio.
Para este banco se usaron acero al carbono (HR) para todas las piezas mecánicas
como ejes, soportes y pivotes
20
Imagen 11. Características físicas del acero al carbono dadas por solidworks.
Para los eslabones 1 y 2 como la columna que soporta al eslabón 2 se usó aluminio
por ser un material liviano, posee baja densidad comparado con otros metales
estructurales y con un esfuerzo a la deformación alto. Se usó también plásticos en
los engranajes y en el gripper pero estas piezas ya las vendían hechas.
Imagen 12. Características físicas del aluminio dadas por solidworks.
21
3.6 CALCULO DE MOTORES:
Ya teniendo el diseño del robot y el modelo dinámico con las dimensiones y especificaciones mecánicas como masas, dimensiones y momentos de inercia de los cuerpos se procede a realizar el cálculo de los torques reemplazando los parámetros en la ecuación 16:
Tabla 2. Parámetros del robot SCARA.
PARAMETROS VALOR UNIDADES
𝐼𝑧1 0.010085924;
𝑘𝑔*𝑚
𝐼𝑧 0.010373875 𝑘𝑔*𝑚 𝐼𝑧 0.07325 𝑘𝑔*𝑚
m1 0,8 𝑘𝑔
m2 0,65 𝑘𝑔
l1 0,34 m
l2 0,41 m
Luego de realizar el cálculo de los torques se obtiene un valor en [ 𝑚2
y se pasó
a [ 𝑚2
kg ∗ ( 𝑠2 )]
que son las características que se encuentran comercialmente.
kg ∗ ( 𝑠2 )]
𝑇1
𝑚2 17,2 [kg ∗ ( )]
𝑠2
[𝑇2] = 𝑇3
𝑚2
10,456 [kg ∗ ( 𝑠2 )]
𝑚2
[ 4,86 [kg ∗ ( 𝑠2 )] ]
Los valores de torque que se obtuvieron no se encuentran comercialmente en
motores paso a paso, pero se realizó una aproximación por arriba al valor que si se
encuentra en la industria. El fin de aumentar el valor del torque calculado es por si
en las ecuaciones diferenciales no se contempló alguna fuerza opuesta al
movimiento o alguna perdida por fricción que afectara el funcionamiento.
𝑚2
𝑇1
18 [kg ∗ ( 𝑠2
)]
[𝑇2] = 𝑇3
𝑚2
12 [kg ∗ ( 𝑠2 )]
𝑚2
[ 5 [kg ∗ ( 𝑠2 )] ]
Para el 4 grado de libertad se utilizó un servomotor de 2[
𝑚2
que era el torque
kg ∗ ( 𝑠2 )
que recomendaba el proveedor para no generar daños en el gripper.
22
𝑚2
𝑇4 = 2[kg ∗ ( 𝑠2 )]
3.5 DISEÑO DE ELEMETOS DE MAQUINAS
Cuando se obtuvo el cálculo de los motores que generarían el movimiento del robot SCARA se realiza el análisis estático de cargas para determinar si el diseño planteado tenía alguna falla mecánica, las piezas que se analizaron eran las que podían fallar por su gran dimensión y las cargas que soportarían, como era el caso del eslabón 1 y 2.
ESLABÓN 1:
Para realizar el análisis estático de esta pieza se contempla que es una viga está totalmente horizontal y se establece una carga estática distribuida de 3[kg] donde se contempla el peso del segundo eslabón y el torque del motor que es equivalente a 0.18 [N ∗ m)]. Todo esto se realiza por medio de Solidworks Simulation y sus librerías.
Imagen 13. Análisis estático de eslabón 1.
Como se puede notar en la parte derecha de la imagen 13 se encuentra una barra de calor que representa el valor del esfuerzo de von mises, estos colores se ven reflejados en la parte izquierda en la pieza y se puede notar colores azules o verdosos lo que significa que no hay puntos críticos donde se deforme el eslabón. Con este estudio se aprueba el material y las dimensiones contempladas en el diseño para esta pieza.
23
ESLABÓN 2
Al igual que el eslabón 2 se establecen las mismas condiciones, la pieza está completamente horizontal. Ahora se le agrega una carga estática distribuida de 1kg donde se contempla el peso del eslabón 3, el torque del motor que es equivalente a 0.12[N ∗ m)].
Imagen 14. Análisis estático segundo eslabón.
Como se puede notar en el análisis del esfuerzo de von mises no se presentan puntos rojos. Con este estudio se aprueba el material y las dimensiones contempladas en el diseño para el eslabón 2.
24
4. DISEÑO ELECTRICO Y ELECTRÓNICO
4.1 DISEÑO ELÉCTRICO
El banco contará con una distribución eléctrica donde se alimentará de dos tomas
industriales monopolares de 110[v], una toma de ellas será la encargada de distribuir
energía regulada por medio de una toma convencional de dos salidas que serán
tomadas por el PLC FESTO y otra para cargar un portátil. La toma dos distribuirá
energía a la fuente DC.
4.2 DISEÑO ELECTRÓNICO
Para realizar el control de los grados de libertad se utilizarán los motores paso a paso de 18[ 𝑚2
que tiene una corriente nominal de 3 [A] y un voltaje
kg ∗ ( 𝑠2 )]
nominal de 24[v], otro motor de 12[
𝑚2
de una corriente 2.5 [A] el cuales
kg ∗ ( 𝑠2 )]
funcionan a 24[V] y un motor paso a paso de 5[
𝑚2
que funciona a 2.8[v]
y 1.68 [A] un servomotor de 2[
𝑚2
kg ∗ ( 𝑠2 )]
y una corriente de 200[mA]. Para el
kg ∗ ( 𝑠2 )]
control de los motores de 12 y 18 [
𝑚2
se usó una tarjeta de control
kg ∗ ( 𝑠2 )]
llamada TB6600 y para el motor de 5 [ 𝑚2
se implementó un puente H
kg ∗ ( 𝑠2 )]
LN298D. Además de los motores había una caja de control que permitía
iniciar o parar la máquina y leds indicadores (estos circuitos serán
encontrados en los anexos planos eléctricos). Ahora ya conociendo cual es
el voltaje de operación de los motores, el siguiente paso es encontrar una
fuente de voltaje que supla la suma de corrientes de todos los dispositivos
electrónicos. 𝐴𝑓𝑢𝑒𝑛𝑡𝑒 = 𝐴𝑀.18𝑘𝑔 + 𝐴𝑀.1 𝑘𝑔 + 𝐴𝑀.5𝑔 + 𝐴𝑇𝐶 + 𝐴𝑠𝑒𝑟𝑣𝑜𝑚𝑜𝑡𝑜𝑟 Ecuación (23)
𝑨𝒇𝒖𝒆𝒏𝒕𝒆 = 3 + 2.5 + 1.68 + 0.8 + 0.2
𝐴𝑓𝑢𝑒𝑛𝑡𝑒 = 8,18
Con el valor calculado de corriente se decidió comprar una fuente de 24 [V] dc y una
corriente de 10 [A] contemplando que algún motor puede aumentar el consumo de
corriente por una carga. Se adhirió al circuito eléctrico la protección de dos
interruptores. Uno aguas abajo de la fuente de 10 [A] y otras aguas arriba de 2 [A].
Ya definida las características de la fuente DC se decidió que tipo de motor usar, el
tipo de tarjeta para su control, que tipo de sensor usar y su calibración, además que
tipo de tarjeta de mando usar para programarla.
4.2.1 ACTUADORES
4.2.1.1 MOTOR PASO A PASO
Se usaron de tipo bipolares, con un avance por paso de 1. 8º grados y un torque de 12 [[ 𝑚2
y de 5 [ 𝑚2
, esto debido a dos razones, primero estos motores
kg ∗ ( 𝑠2 )] kg ∗ (
𝑠2 )]
tienen alta precisión en su rotación, tienen un avance en su eje que depende de la
25
secuencia en que se energice sus bobinas y gracias a esta característica resulta
muy útil controlar la posición que frente a un motor de corriente continua que
requieren de un sensor para retroalimentar. La segunda razón que se tuvo en cuenta
fue que estos motores son usados industrialmente para robots manipuladores
puesto que en los robots de YAMAHA y KUKA usan de estos motores paso a paso
de alta precisión.
Imagen 15. Motor paso a paso de 18 [ 𝑚2
kg ∗ (
𝑠2 )] Un puente H que permitía el control del motor paso a paso de 18 [
𝑚2
y el de
12[
𝑚2
kg ∗ ( 𝑠2 )]
era la tarjeta TB6600 que soporta corrientes de hasta 4 A nominales y
kg ∗ ( 𝑠2 )]
5 A pico.
26
.
Para el motor de 5 [
𝑚2
Imagen 16. Tarjeta de control TB6600.
se usó una tarjeta que soportara hasta 2 Amperios. Se
kg ∗ ( 𝑠2 )]
escogió a el puente H de referencia LD298N este puente H funciona con un rango
de voltajes de 6-12V y en su salida entrega voltajes de 3-9 V por ende permitía el
control de este tipo de motor, lo cual obligo a introducir un regulador de voltaje de
referencia MT3608 ajustado para funcionar a una entrada de 24[v] a una salida de
12[v].
Imagen 17. Puente H de referencia LD298N.
4.2.1.2 SERVOMOTOR
Este motor fue usado para controlar el gripper, se escogió este tipo de motor debido
a que resulta útil para controlar la posición.
27
Imagen 18. Servomotor del gripper
4.2.2 TARJETA DE MANDO O CONTROL.
Como tarjeta de mando se escogió la tarjeta ARDUINO mega porque esta tarjeta
tiene los pines analógicos y digitales suficientes para las señales de entrada y salida.
Además, cumple con el procesamiento necesario para la ejecución de actividades
programadas.
4.2.3 SENSORES
Imagen 19. Tarjeta ARDUINO mega.
Los sensores que se usaron fueron potenciómetros lineales, se usaron por la
facilidad que permite este sensor para determinar un ángulo en relación al cambio
en resistencia, tienen practicidad para acoplarse a una estructura mecánica y son
económicos. Para la construcción de este proyecto se usaron 3 potenciómetros
lineales, uno para cada grado de libertad. Dos potenciómetros fueron comprados de
una (1) vuelta con una ventaja de trabajo de 270° y un valor máximo de resistencia
de 10K[Ω] estos eran los potenciómetros de los primeros grados de libertad y el
tercer potenciómetro también fue comprado de 10K[Ω]pero de (20) veinte vueltas
porque el diseño de la estructura prismática fue un diseño de cremallera corredera
y se mide las vueltas que ejerce el motor a al piñón.
28
4.2.3.1 CARACTERIZACIÓN SENSORES
Para realizar la caracterización de los sensores se procede a tomar la lectura
análoga para tres muestras en este caso 3 grados o más y obtener la curva del
sensor respecto a la palabra digital que lee el convertidor análogo digital de la tarjeta
ARDUINO. Un ejemplo de cómo obtener la curva del potenciómetro es tomar tres
muestras (-90,0,90) con los tres valores obtenidos de lectura análoga, se procede a
generar la gráfica correspondiente a ángulo vs valor digital con el fin de encontrar la
ecuación característica del sensor que permita obtener una salida de lectura en
grados.
CARACTERIZACIÓN SENSOR DE 1 GRADO DE LIBERTAD.
Para el primer grado de libertad la lectura del sensor se tomó respecto a una hoja
milimetrada de coordenas polares alineada al eje de rotación y fija en la mesa. Los
valores tomados se observan en la tabla 3.
Tabla 3. Medición de palabra digital vs Angulo 1GDL.
PALABRA DIGITAL VS ANGULO
805 -90
500 0
120 90
De esta tabla se obtuvo la gráfica y la ecuación de la recta para obtener el valor del
ángulo del primer grado de libertad en el ARDUINO.
Imagen 20. Grafica de palabra digital vs ángulo del potenciómetro del 1 gdl.
29
-50 y = -0,2617x + 124,32 R² = 0,996
-100
1000 800 600 400 200 0
150
100
50
0
PALABRA DIGITAL VS ANGULO 1GDL
𝐴1𝑔𝑑𝑙 = −0.2617 ∗ 𝑃𝐷𝐼𝐺𝐼𝑇𝐴𝐿1 + 124,32 Ecuación (23)
Donde 𝐴1𝑔𝑑𝑙 es el valor del ángulo del primer eslabón y 𝑃𝐷𝐼𝐺𝐼𝑇𝐴𝐿1 es el valor digital que
lee el ARDUINO.
CARACTERIZACIÓN SENSOR DE 2 GRADO DE LIBERTAD.
Para el segundo grado de liberta la lectura del sensor se tomó respecto a un
transportador que estaba alineado al eje del segundo eslabón y fijo al primer grado
de libertad, por tanto, esta medida esta referenciada al primer grado de libertad. Los
valores tomados están en la tabla 4, esta tabla respecto a la del primer grado de
libertad difiere en que requería de más puntos de muestra para obtener la curva con
mayor exactitud.
Tabla 4. Medición de palabra digital vs Angulo 2GDL.
PALABRA DIGITAL VS ÁNGULO
421 110
459 40
266 0
107 -45
34 -70
De esta tabla se obtuvo la gráfica y la ecuación de la recta para obtener el valor del
ángulo del segundo grado de libertad en el ARDUINO para el segundo
potenciómetro.
Imagen 21. Grafica de palabra digital vs ángulo del potenciómetro del 2 gdl.
𝐴 𝑔𝑑𝑙 = 0.2469 ∗ 𝑃𝐷𝐼𝐺𝐼𝑇𝐴𝐿 − 95,607 Ecuación (24)
30
-50
-100
100 200 300 400 500 600 700 800 0
50
0
y = 0,2469x - 95,607
100
PALABRA DIGITAL VS ANGULO 2GDL
Donde 𝐴 𝑔𝑑𝑙 es el valor del ángulo del segundo eslabón y 𝑃𝐷𝐼𝐺𝐼𝑇𝐴𝐿 es el valor digital
que lee el ARDUINO para el segundo potenciómetro.
Caracterización sensor de 3 grado de libertad.
Para el tercer grado de libertad la lectura del sensor se tomó respecto a un metro
que tomara la distancia desde el suelo a la parte de abajo del gripper. Los valores
tomados están en la tabla 5, este grado de libertad requería tomar más muestras
que los anteriores debido a que el sensor tiene una ventana de trabajo muy amplia
y al tomar más datos se garantiza una mayor exactitud en la ventana de operación.
Tabla 5. Medición de palabra digital vs Angulo 2GDL.
PALABRA DIGITAL VS ALTURA
992 12
981 13
972 14
960 15
950 16
939 17
928 18
920 19
897 20
886 21
882 22
872 23
861 24
850 25
840 26
829 27
821 28
820 29
795 30
De esta tabla se obtuvo la gráfica y la ecuación de la recta necesarias para obtener
el valor del ángulo del tercer grado de libertad en el ARDUINO para el tercer
potenciómetro.
31
PALABRA DIGITAL VS ALTURA 3GDL
40
30
20
10 2
0
0 500 1000 1500
y = -0,09
7x + 103,88
Imagen 22.Grafica de palabra digital vs altura del potenciómetro del 3 gdl.
𝐴 𝑔𝑑𝑙 = −0.0927 ∗ 𝑃𝐷𝐼𝐺𝐼𝑇𝐴𝐿 + 103,88 Ecuación (24)
Donde 𝐴 𝑔𝑑𝑙 es el valor de la altura del tercer eslabón y 𝑃𝐷𝐼𝐺𝐼𝑇𝐴𝐿 es el valor digital que
lee el ARDUINO para el tercer potenciómetro.
4.2.4 PANEL DE CONTROL
El panel de control se hizo con 3 pulsadores, 1 selector y 3 indicadores. Todos estos
dispositivos trabajaban a 24[v] por ende a los dispositivos de entrada y salida se les
diseño un circuito para que pudieran ser controlados desde ARDUINO.
ENTRADAS:
Para las señales de entrada se aplicó un divisor de voltaje buscando que cuando un
dispositivo de entrada fuese accionado dicha acción pudiera ser detectada por el
ARDUINO, por ende, se aplicó un divisor de voltaje que hiciera una caída de
potencial de 24[v] a 5[v]. El divisor de voltaje es la ecuación 25 y su finalidad era
encontrar el juego de resistencias que permitieran leer las señales de entrada.
𝑉𝐴𝑅𝐷 = 𝑉𝑓𝑢𝑒𝑛𝑡𝑒∗ 𝑅2
𝑅1+𝑅 Ecuación (25)
Con la ecuación 25 se hizo un despeje matemático para llegar a la ecuación 26.
𝑅2 = 𝑅1∗ 𝑉𝐴𝑅𝐷
𝑉𝑓𝑢𝑒𝑛𝑡𝑒−𝑉𝐴𝑅𝐷 Ecuación (26)
Entonces para obtener el valor de 𝑅2 fue necesario suponer que 𝑅1 tendria un valor
de 100K[Ω], 𝑉𝐴𝑅𝐷 es el voltaje que soporta ARDUINO en sus entradas tiene un valor
igual a 5[v] y 𝑉𝑓𝑢𝑒𝑛𝑡𝑒 es el voltaje de la fuente y corresponde a 24[v] y por último se
despeja 𝑅2.
𝑅2 = 26315,785[Ω]
Este valor no fue encontrado comercialmente y tuvo que cambiar a 24K[Ω]. Este
valor se reemplazó en la ecuación 25 y se obtuvo que el voltaje era inferior a 5[v].
Por ende, se compró este valor de resistencia.
32
SALIDAS:
Para las salidas se aplicó un circuito integrado que fue el optocoplador de referencia
4N25 y se le aplicó una resistencia de pull down de 1K[Ω] en la entrada y para la
salida se realizó el circuito para 24[v]. El valor de la resistencia era indicado ya que
el ARDUINO mega soporta 0.3[A] de corriente en la salida. La comprobación quedo
hecha en la ecuación 27.
𝐼𝐴𝑅𝐷 = 𝑣
𝑅 Ecuación (27)
Se reemplaza el valor de v que es 5 y R que es 1000 y se obtiene 𝐼𝐴𝑅𝐷.
𝐼𝐴𝑅𝐷 = 0,005 [𝐴]
El valor de 𝐼𝐴𝑅𝐷 es menor que 0.3, por ende se comprueba que era factible usar este
valor de resistencia.
Imagen 23. Panel de control.
33
5. ENSAMBLE
Para desarrollar el ensamble del prototipo se realizó el maquinado de las distintas
piezas mecánicas y luego se realizó las distintas sujeciones con tornillería esto con
fin de que fuera desarmable en caso de que presentara errores. El armado del robot
partió de hacer primero la perforación a la mesa para fijar la base del robot, seguido
se instaló el pivote, a continuación, se introdujo el eje del primer grado de libertad y
se fijó al pivote con pasadores, a continuación, se puso el engranaje y después se
puso los rodamientos de agujas estos dos últimos al primer eje y luego se puso el
eslabón 1, se puso el motor y la tarjeta de control y por último se pega el
potenciómetro al eslabón 2 y este potenciómetro se le introduce en su eje un
engranaje.
Imagen 24. Ensamble del primer grado de libertad.
A continuación, se puso la columna y luego el pivote del segundo grado de libertad,
luego se puso el eje y se fijó con prisioneros al segundo pivote, seguido de esto se
introdujo el engranaje y el rodamiento de aguja al segundo eje, luego el eslabón 2,
después el motor paso a paso y el potenciómetro del segundo grado de libertad se
pega a un hueco del segundo eslabón.
34
Imagen 25. Ensamble del 2 gdl.
Ya para el tercer grado de libertad se ponen las chumaceras de esferas y el eje que soportara al engranaje, luego se pone el soporte del tercer motor paso a paso y se pone el motor, seguido de esto se pone el tornillo sin fin y se alinea con el engranaje, después se pone la corredera lineal a la cual previamente se le pego la cremallera dentada, la corredera será fijada al eslabón 2 por medio de una platina en L y luego se pone el potenciómetro y en su eje el engranaje de la lectura.
Imagen 26. Ensamble del 3 gdl.
Por último, se pone una pieza que funciona de intermediario entre la corredera lineal
y el gripper, entonces el gripper es fijado a esta pieza por medio de un tornillo.
35
Imagen 27. Ensamble del gripper.
Ya la estructura del robot está completamente armada solo falta hacerle el
recubrimiento y poner la tubería de los cables para darle protección y
embellecimiento al prototipo.
Imagen 28. Robot SCARA con estructura terminada.
Cuando el robot fue llevado a las instalaciones de la UNAB se acoplo el robot a la
MPS de FESTO, se les puso las tapas a los dos eslabones, las mangueras de los
cables y la cámara, en este instante el robot funcionaba con una fuente de voltaje
externa.
36
Imagen 29. Robot SCARA con carcazas y mangueras puestas.
Ya por último se puso un recubrimiento en la mesa, se quitó la fuente externa y se
le puso las clavijas industriales para la alimentación de la fuente interna.
Imagen 30. Prototipo del robot SCARA terminado
37
6. CONTROL DEL ROBOT
Ya teniendo construido y conectado el robot se realizó un lazo de control cerrado
para cada grado de libertad y se comprobó su funcionamiento. La técnica de control
aplicada fue lazo cerrado con un control on/off de una histéresis de ± 1° (grado) se
aplicó este tipo de control porque el sistema es completamente digital ya que los
motores eran de paso. Para el tercer grado de libertad se aplicó una histéresis de
±1 cm.
Imagen 31. Control ON-OFF en un sistema.
Para el gripper solo se dieron ángulos al servomotor y se memorizo cuáles eran los
ángulos para determinar el grado de apertura y así tomar las piezas.
38
7. PROTOCOLO DE COMUNICACIÓN
Luego de tener el control se requería tener una comunicación entre el ARDUINO y
la interfaz y también entre el ARDUINO y el plc de FESTO. Para comunicar los
dispositivos en este proyecto se usaron dos tipos de comunicación, la Serial y una
red Ethernet. La comunicación SERIAL, específicamente puerto USB SERIAL
trabajo para el mando del robot SCARA, ella se encargó de comunicar la interfaz
HMI y el ARDUINO, esta comunicación trabajo a una velocidad de trasmisión de
9600 baudios. También se trabajó una red ethernet para comunicar el PLC de
FESTO y el computador esta red se entablo para cargar la lógica ladder desarrollado
en CODESYS para controlar el funcionamiento de la MPS.
Para comunicar en tiempo real al ARDUINO y a la MPS se realizó una conexión que
incluía dos señales de 24 [v], estas señales se consiguieron por medio de
optocopladores que permitían realizar el switcheo de la señal de color o la señal de
parado de emergencia.
39
8. INTERFAZ HMI
Luego de conseguir la comunicación entre el ARDUINO y la HMI se prosiguió a
realizar el diseño final de la interfaz HMI en LABVIEW. El resultado final de la interfaz
ofrece a los usuarios la posibilidad de interactuar diferentes modos de operación al
robot. La interfaz cuenta con un Tap control que permite tener múltiples opciones de
mando. De esta interfaz destaca la programación de estados esto gracias a un shift
register (dentro del ciclo While que siempre es necesario en este programa para
tener un ciclo infinito) y a un enum constant esta opción permite crear una base
discreta de opciones donde quedan organizados unos ítems y dependiendo la
cantidad de estados del programa así serán la cantidad de ítems del enum constant.
Ademas de esto destaca la transmisión de datos por el puerto serie, esto se realizó
por medio de la librería de LABVIEW SERIAL la cual pedía el puerto donde iba a
estar la información la velocidad de transmisión y la cantidad de bits que soportaría
el canal, en el programa se definía donde se debía leer el puerto o donde se debía
escribir en el puerto.
Por ultimo sobresale la clasificación de colores donde también se recurrió a la
utilización de una librería de visión artificial llamada VISION AND MOSION de
LABVIEW y dentro de esta una sublibrería NI-IMAQ que clasifica colores en tiempo
real por medio de una cámara, la cámara usada fue la FACECAM 1000X. Para
realizar la clasificación en tiempo real se utilizó el módulo Vision adquisition el cual
permitía configurar la cámara para la adquisición de la imagen en tiempo real,
también se usó el módulo de Vision assitant, este módulo era la parte inteligente ya
que ahí se debía cargar la base de datos de los colores a clasificar y además era
donde se podía configurar el método de clasificación que el programa fuera a
ejecutar.
Imagen 32. Interfaz HMI del robot SCARA.
40
9. RESULTADOS
Los resultados obtenidos fueron segmentados por etapas:
CONTROL ROBOT SCARA
Se realiza el ensamble del robot y se realizan pruebas de cada grado de libertad
desacoplado y se consiguió controlar el movimiento de los cuatro grados de libertad
de manera secuencial.
CONTROL DE MPS FESTO
Se realizó la identificación de las variables en la MPS HANDLING de FESTO y luego
se realizó el código en lógica ladder que permitía posicionar el color rojo y azul en
la primera canaleta y los demás colores en la segunda canaleta.
INTERFAZ HOMBRE MAQUINA ROBOT SCARA
Se desarrolló una interfaz que permitiera tener distintos modos de operación, esta
interfaz es explicada a detalle en los anexos manual de funcionamiento del robot
SCARA.
CLASIFICACIÓN DE COLOR
Por medio de Labview se consiguió realizar un clasificador de colores que permitía
dividir en dos grupos los colores rojo y azul y el otro grupo en negro, blanco y
plateado. Cuando se detectaba el primer grupo la interfaz enviaba una señal al
ARDUINO y este la identificaba para confirmarle a la MPS que posicionara el primer
grupo.
41
10. CONCLUSIONES
Las conclusiones estarán dadas por especialidades:
MECÁNICO:
•Los ejes del robot SCARA deben ser macizos porque durante la construcción del robot ocurrió un error y fue que el robot doblo los dos primeros ejes ya que los eslabones estaban realizando una palanca por su peso lo que género que los ejes que soportaban los eslabones se doblaran y por ende se dejó de transmitir el movimiento del motor al eslabón, como solución se rediseño el eje y se hizo macizo ya que el anterior era una varilla hueca.
Imagen 33. Eje macizo rediseñado.
• Cuando se tienen ejes verticales es recomendable utilizar rodamientos de agujas. En la construcción del proyecto se dañó dos rodamientos de bolas por que el eje se apoyaba en ellos.
ELECTRÓNICO:
• Para el funcionamiento de los motores paso a paso se deben utilizar los enables. Durante las pruebas del robot se dañó una tarjeta TB6600 porque se saturo el motor en corriente y la tarjeta no pudo soportar este exceso de corriente, esto se dio por no deshabilitar el enables o deshabilitar la tarjeta.
• Se recomienda que al implementar motores paso a paso en un sistema se contemple un torque mucho más elevado al que se obtiene del cálculo del modelo dinámico, en la ejecución de este proyecto los motores tenían un desplazamiento muy lento debido a que el torque del motor era tan solo el suficiente para generar el movimiento.
• Para leer con ARDUINO entradas de voltaje mayores a 5[v] se debe realizar un divisor de voltaje o un regulador de voltaje que le permita a la tarjeta leer la señal de control generada.
42
• Para activar luces piloto o señales desde el ARDUINO que requieran un voltaje mayor de 5[v] se recomienda utilizar optocopladores, estos integrados permiten obtener un swicheado rápido y efectivo.
• Para la lectura de los potenciómetros no es bueno usar engranajes, durante la ejecución del proyecto se pudo observar que el engranaje le quitaba precisión a cada grado de libertad, esto debido a que el engranaje tiene un avance que en algunas ocasiones cuando se daba un ángulo determinado el avance del engranaje no permitía lograr dicho ángulo entonces cuando el robot entraba en el lazo cerrado, ocurrían unas oscilaciones en el ángulo de set point por saltos en los dientes del engranaje.
COMUNICACIÓN
• Cuando se utiliza la comunicación serial se deben usar separadores, (en este proyecto se usó un separador (“,”) en los casos donde se transfieren más de una señal entre dispositivos. La comunicación serial es un solo canal de datos por donde se transportan datos que van o viene, si los datos que se transmiten se envían de una forma muy rápida y sin dejar espacios de tiempos suficientes como para que el puerto serie retome los valores en ese caso es muy útil utilizar un separador y almacenar las nuevas variables los valores que son enviados por el canal de comunicación.
INTERFAZ HMI
• LABVIEW permite clasificar colores en tiempo real con buena precisión, es recomendable darle una buena base de datos a los bloques de la librería de visión para facilitar la clasificación de un color. Se recomienda tomar la base de datos con buena luz y claridad.
• Utilizar una HMI en LABVIEW presenta dificultades en la comunicación, se pierden señales y se genera un tiempo de latencia fácil de notar.
43
11. BIBLIOGRAFIA
[1].OLLERO, Aníbal. Robótica Manipuladores y robots móviles. Marcombo S.A,
2001. p.1-13. ISBN: 84-267-1313-0.
[2]. Antonio Barrientos. Fundamentos de Robotica. Editorila McGraw hill.1997.
[3].HERAS, Jackson Steeve: Diseño, DISEÑO Y CONSTRUCCIÓN DE UN ROBOT
SCARA DE TRES GRADOS DE LIBERTAD. Ecuador, 2015.
[4].Theory of applied robotics. (2010). Kinematics, Dynamics and Control (second
ed.). (Reza N. Jazar.) Melbourne, Victoria, Australia.
[5]. VACA, Santiago David: Diseño y simulación de un robot manipulador industrial
tipo puma capaz de levantar pesos de hasta 20 [kg].
[6].Los robots industriales SCARA. (24/06/2015) imagen robot SCARA. http://www.mekkam.com/robotica-industrial/robot-scara-pick-and-place/.
[7].CRAIG, Kevin. Improving mechatronic-system design. En: EDN Network. [en
línea]. (27 de ene., 2017). Disponible en: https://www.edn.com/electronics-
blogs/mechatronics-in-design/4368269/Improving-mechatronic-system-design.
[8].ROBOTS INDUSTRIALES COLOMBIA.( 10/07/2017)
http://www.metalmecanica.com/temas/En-Colombia-hay-menos-de-un-robot-
industrial-por-cada-10000-trabajadores+120347.
[9].Alassar, A.Z., Abuhadrous, I.M., Elaydi, H.A.,”Comparison between FLC and PID Controller for 5DOF robot arm”, Advanced Computer. Control (ICACC), 2010 2nd International Conference on, 2010.
[10]. R. Mantz, Introducción al control óptimo, Universidad Nacional de La Plata,
2003.
[11]. Página principal de ARDUINO (8/8/2018).http://ARDUINO.cl/que-es- ARDUINO.
[12]. Manual micro capacitación (5/10/2018). http://www.microautomacion.com/capacitacion/Manual061ControladorLgicoPro gramablePLC.pdf
[13]. Página oficial FESTO (31/07/2018). https://www.festo-didactic.com/es- es/productos/mps-sistema-de-produccion-modular/estaciones/estacion-de- clasificacion-final.htm?fbid=ZXMuZXMuNTQ3LjE0LjE4LjYwNi4zOTQ4
[14]. Introduccion a la programcion de controladores lógicos (PLC).
https://upload.wikimedia.org/wikipedia/commons/6/65/Programacion_de_contro
ladores_logicos_%28PLC%29.pdf
44
[15]. J. T. Buitrago-Molina, J. S. Carvajal-Guerrero y C. A. Zapata-Castillo,
“Plataforma virtual para el mando local y remoto de un brazo robótico de apoyo
para la educación en ingeniería”, Tecno Lógicas, vol. 17, no. 32, pp. 67-74, 2014.
[16]. Recopilación venta de robots en colombia (10/7/2018)
http://www.directindustry.es/prod/yamaha-motor-co-ltd/product-25092-
1690440.html
[17]. Pagina oficial National instrumenst. (2/8/2018).
http://www.ni.com/es-mx/shop/labview.html
[18]. Pagina de Matworks(2//2018).
https://la.mathworks.com/products/matlab.html
[19]. R. N. Jazar, «Historical Development,» de Theory of Applied Robotics, Melbourne,Australia, Springer, 2010, pp. 2-8.
[20]. T. A. DIAZ CARRILLO, D. A. ROBLES NIETO y JHONATAN RUEDA MAYORCA, diseño, construccion y control de un brazo robotico tipo antropomorfico de 6 grados de libertad y de un brazo robotico tipo scara de 4 grados de libertad; Barranquilla, 2014.
[21]. HELIO SNEYDER ESTEBAN ANDRÉS FELIPE ALDANA AFANADOR ILLEGAS Mechatronic System Desing of a Cake DecorationRobotic Module Using a SCARA Manipulator
[22]. T. A. DIAZ CARRILLO, D. A. ROBLES NIETO y JHONATAN RUEDA MAYORCA, diseño, construccion y control de un brazo robotico tipo antropomorfico de 6 grados de libertad y de un brazo robotico tipo scara de 4 grados de libertad; Barranquilla, 2014.
45
ANEXOS
46
TB6
60
0
A B F
120V AC, NO
1 N REGULADA
2
C D
INTERRUPTOR MANUAL 10A
IN+
E F
1
IN- 2
3
EN- EN+ DIR- DIR+
PUL- PUL+
4 B-
B+
A-
A+
GND
VCC
5
F N V+ V-
FUENTE 24V
M
REGULADOR DE 24V A 12V
OUT+ OUT-
M
3
L298N
4
M
5
UNIVERSIDAD AUTONOMA DE BUCARAMANGA
6 INGENIERIA MECATRONICIA
PROYECTO DE GRADO
PROYECTO :
BANCO DIDACTICO BASADO EN UN MANIPULADOR
SCARA PARA TRASNPORTE Y CLASIFICACION DE PIEZAS
CON FIN DE DAR APOYO EN ASIGNATURAS DE
ROBOTICA Y AUTOMATIZACION.
DISEÑADOR:
JUAN SEBASTIAN TRASLAVIÑA DAVILA
FECHA ELABORACION :
SEPTIEMBRE DE 2019
PLANO :
POTENCIA MOTORES
VERSION :
6 APROBO :
EN-
EN+ DIR- DIR+
PUL- PUL+
B- B+ A- A+
GND
VCC
TB6
60
0
12
V B
+ B
-
GN
D
5V
E
NA
IN1
IN2
A+
A-
IN3
IN4
EN
B
A B C D E F
A B F
120V AC
1 N REGULADA
2
3
4
5
C D E F
1
2
3
4
5
UNIVERSIDAD AUTONOMA DE BUCARAMANGA
6 INGENIERIA MECATRONICIA
PROYECTO DE GRADO
PROYECTO :
BANCO DIDACTICO BASADO EN UN MANIPULADOR
SCARA PARA TRASNPORTE Y CLASIFICACION DE PIEZAS
CON FIN DE DAR APOYO EN ASIGNATURAS DE
ROBOTICA Y AUTOMATIZACION.
DISEÑADOR:
JUAN SEBASTIAN TRASLAVIÑA DAVILA
FECHA ELABORACION :
SEPTIEMBRE DE 2019
PLANO : ALIMENTACION COMPUTADOR Y PLC FESTO
VERSION :
6 APROBO :
PLC FESTO
PC PORTATIL
T T
A B C D E F
0
TB6
60
0
A B C D E F
1 1
2 2
3 PRIMER GRADO DE LIBERTAD
EN- EN+
GND
SEGUNDO GRADO DE LIBERTAD
EN-
EN+
GND 3
TERCER GRADO DE LIBERTAD
DIR- DIR+
4 PUL- PUL+
B- B+ A- A+
GND
5 VCC
DIR- DIR+
PUL-
PUL+
B- B+ A- A+
GND
VCC
GND
12V
GND
5V ENA
IN1
IN2
IN3
IN4
ENB
B+ B-
4
A+ A-
5
UNIVERSIDAD AUTONOMA DE BUCARAMANGA
6 INGENIERIA MECATRONICIA
PROYECTO DE GRADO
PROYECTO :
BANCO DIDACTICO BASADO EN UN MANIPULADOR
SCARA PARA TRASNPORTE Y CLASIFICACION DE PIEZAS
CON FIN DE DAR APOYO EN ASIGNATURAS DE
ROBOTICA Y AUTOMATIZACION.
DISEÑADOR:
JUAN SEBASTIAN TRASLAVIÑA DAVILA
FECHA ELABORACION :
SEPTIEMBRE DE 2019
PLANO :
VERSION :
APROBO :
CONEXIÓN TARJETAS
CONTROLADORAS
6
L29
8N
PU
L+ D
51
DIR
+ D
50
EN+
D52
GN
D
TB6
60
0
GN
D
EN+
D9
DIR
+ D
10
PU
L+ D
11
EN
B D
7
IN4
D
6
IN3
D
5
IN2
D
4
IN1
D3
E
NA
D
2
A B C D E F
0
A B C D E F
1
5V GND A0
PRIMER GRADO DE SEGUNDO GRADO DE PRIMER GRADO DE LIBERTAD LIBERTAD LIBERTAD
A2 A1
1 2 3 5V 5V 1 2 3 5V 5V 1 2 3
GND A2 A1 A0
GND GND
20 µF 20 µF 20 µF
1
2
2
3
3
4
4
5
5
6
UNIVERSIDAD AUTONOMA DE BUCARAMANGA
PROYECTO :
BANCO DIDACTICO BASADO EN UN MANIPULADOR
SCARA PARA TRASNPORTE Y CLASIFICACION DE PIEZAS
CON FIN DE DAR APOYO EN ASIGNATURAS DE
ROBOTICA Y AUTOMATIZACION.
DISEÑADOR:
JUAN SEBASTIAN TRASLAVIÑA DAVILA
PLANO :
CENEXION POTENCIOMETROS
6
INGENIERIA MECATRONICIA VERSION :
FECHA ELABORACION :
SEPTIEMBRE DE 2019 PROYECTO DE GRADO
APROBO :
A B C D E F
A B C D E F
1
F
120V AC N
+24V GND
F N V+ V-
FUENTE INICIAR
PARAR PARAR MODO ROBOT TODO OPERACION 24V 5V
5V
100K [ ] 100K [ ] 100K [ ] 100K [ ]
GND D8 SEÑAL M 24K [ ] 24K [ ] 24K [ ] 24K [ ]
GND
MOTOR GRIPPER
GND
INICIAR D39 PARAR TODO D38
+24V PARAR ROBOT D37
GND
MODO OPERACIÓN D36 VERDE D35 ROJO D34 AMARILLO D33
AMARILLO COLOR D32
1K [ ] VERDE 1K [ ] ROJO 1K [ ] 220 [ ] 220 [ ] PARAR MPS D31
4N25 4N25 4N25 4N25 4N25 GND -
COLOR 1 4 1 4 1 4
1 4 1 4 S1 PLC FESTO 2 5 2 5 2 5
2 5 2 5 +24V PARAR MPS
S2 3 6 3 6 3 6
3 6 3 6
GND +24V
1
2
2
3
3
4
4
5
5
6
UNIVERSIDAD AUTONOMA DE BUCARAMANGA
PROYECTO :
BANCO DIDACTICO BASADO EN UN MANIPULADOR
SCARA PARA TRASNPORTE Y CLASIFICACION DE PIEZAS
CON FIN DE DAR APOYO EN ASIGNATURAS DE
ROBOTICA Y AUTOMATIZACION.
DISEÑADOR:
JUAN SEBASTIAN TRASLAVIÑA DAVILA
PLANO : CENEXION ENTRADAS Y SALIDAS DIGITALES
6
INGENIERIA MECATRONICIA VERSION :
FECHA ELABORACION :
SEPTIEMBRE DE 2019 PROYECTO DE GRADO
APROBO :
A B C D E F
A B C D E F
1
COMUNICACIÓN SERIAL PUERTO USB
RED ETHERNET
1
2
2
3
3
4
4
5
5
6
UNIVERSIDAD AUTONOMA DE BUCARAMANGA
PROYECTO :
BANCO DIDACTICO BASADO EN UN MANIPULADOR
SCARA PARA TRASNPORTE Y CLASIFICACION DE PIEZAS
CON FIN DE DAR APOYO EN ASIGNATURAS DE
ROBOTICA Y AUTOMATIZACION.
DISEÑADOR:
JUAN SEBASTIAN TRASLAVIÑA DAVILA
PLANO : COMUNICACIÓN ARDUINO Y PC
6
INGENIERIA MECATRONICIA VERSION :
FECHA ELABORACION :
SEPTIEMBRE DE 2019 PROYECTO DE GRADO
APROBO :
A B C D E F
A B C D E F
1 1
2 2
3 3
4 4
5 5
UNIVERSIDAD AUTONOMA DE BUCARAMANGA
6 INGENIERIA MECATRONICIA
PROYECTO DE GRADO
PROYECTO :
BANCO DIDACTICO BASADO EN UN MANIPULADOR
SCARA PARA TRASNPORTE Y CLASIFICACION DE PIEZAS
CON FIN DE DAR APOYO EN ASIGNATURAS DE
ROBOTICA Y AUTOMATIZACION.
DISEÑADOR:
JUAN SEBASTIAN TRASLAVIÑA DAVILA
FECHA ELABORACION :
SEPTIEMBRE DE 2019
PLANO : TABLA DE LA VERDAD ROBOT
SCARA 4GDL
VERSION :
6 APROBO :
A B C D E F
TABLA DE LA VERDAD ROBOT SCARA 4 GDL
VARIABLE
E
STAD
O
PULSADOR DE
INICIO
PARADO
ROBOT
PARADO
TOTAL MANUAL AUTOMATICO 1 GDL
ENVIAR
1GDL 2 GDL
ENVIAR 2
GDL 3GDL
ENVIAR 3
GDL GRIPPER
CINEMATICA
INVERSA
CODO
ARRIBA CODO ABAJO COLOR
GDL1
RESPONDE
GDL2
RESPONDE
GDL3
RESPONDE
GRIPPER
RESPONDE
COLOR
RESPONDE
STAN BY 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
INICIO 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 GDL 1 0 0 1/0 1/0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 GDL 1 0 0 1/0 1/0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0
3 GDL 1 0 0 1/0 1/0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0
4 GDL 1 0 0 1/0 1/0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
CINEMATICA INVERSA 1 0 0 1/0 1/0 0 0 0 0 0 0 0 1 1/0 1/0 0 0 0 0 0 0
COLOR 1 0 0 1/0 1/0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
PARAR ROBOT 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
PARAR TODO 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A B C D E F
1
E / F D
A R
STAN BY INICIO H
G X CINEMATICA
INVERSA
PARAR C
ROBOT Ñ I K
J
N 1GDL
W
L V PARAR M TODO
B
2GDL
T Q
COLOR O 3GDL
P U GRIPPER
S
1
2
2
3
3
4
4
5
5
6
UNIVERSIDAD AUTONOMA DE BUCARAMANGA
PROYECTO :
BANCO DIDACTICO BASADO EN UN MANIPULADOR
SCARA PARA TRASNPORTE Y CLASIFICACION DE PIEZAS
CON FIN DE DAR APOYO EN ASIGNATURAS DE
ROBOTICA Y AUTOMATIZACION.
DISEÑADOR:
JUAN SEBASTIAN TRASLAVIÑA DAVILA
PLANO : CENEXION ENTRADAS Y SALIDAS DIGITALES
6
INGENIERIA MECATRONICIA VERSION :
FECHA ELABORACION :
SEPTIEMBRE DE 2019 PROYECTO DE GRADO
APROBO :
A B C D E F
A B C D E F
1 1
2 2
3 3
4 4
5 5
UNIVERSIDAD AUTONOMA DE BUCARAMANGA
6 INGENIERIA MECATRONICIA
PROYECTO DE GRADO
PROYECTO :
BANCO DIDACTICO BASADO EN UN MANIPULADOR
SCARA PARA TRASNPORTE Y CLASIFICACION DE PIEZAS
CON FIN DE DAR APOYO EN ASIGNATURAS DE
ROBOTICA Y AUTOMATIZACION.
DISEÑADOR:
JUAN SEBASTIAN TRASLAVIÑA DAVILA
FECHA ELABORACION :
SEPTIEMBRE DE 2019
PLANO : CENEXION ENTRADAS Y SALIDAS DIGITALES
VERSION :
6 APROBO :
A B C D E F
PULSADOR DE
INICIO
PARADO
ROBOT
PARADO
TOTAL MANUAL AUTOMATICO 1 GDL
ENVIAR
1GDL 2 GDL
ENVIAR 2
GDL 3GDL
ENVIAR 3
GDL GRIPPER
CINEMATICA
INVERSA
A 0 0 0 0 0 0 0 0 0 0 0 0 0
B 0 1 0 0 0 0 0 0 0 0 0 0 0
C 0 0 1 0 0 0 0 0 0 0 0 0 0
D 1 0 0 0 0 0 0 0 0 0 0 0 0
E 1 0 0 1 0 0 0 0 0 0 0 0 0
F 0 0 0 0 0 0 0 0 0 0 0 0 0
G 1 0 0 1 0 0 0 0 0 0 0 0 1
H 1 0 0 0 1 0 0 0 0 0 0 0 1
I 1 0 0 0 1 0 0 0 0 0 0 0 0
J 1 0 0 0 1 0 0 0 0 0 0 0 0
K 1 0 0 1 0 1 0 0 0 0 0 0 0
L 1 0 0 1 0 0 0 1 0 0 0 0 0
M 1 0 0 1 0 0 0 0 0 1 0 0 0
N 1 0 0 1 0 0 0 0 0 0 0 1 0
Ñ 1 0 0 1 0 0 0 0 0 0 0 0 0
O 1 0 0 1 0 0 0 0 0 0 0 0 0
P 1 0 0 1 0 0 0 0 0 0 0 1 0
Q 1 0 0 1 0 0 0 0 0 1 0 0 0
R 1 0 0 0 1 0 0 0 0 0 0 0 0
S 1 0 0 0 1 0 0 0 0 0 0 0 0
T 1 0 0 0 1 0 0 0 0 0 0 0 0
U 1 0 0 0 1 0 0 0 0 0 0 0 0
V 1 0 0 0 1 0 0 0 0 0 0 0 0
W 1 0 0 1 1 0 0 1 0 0 0 0 0
X 1 0 0 1 1 0 0 0 1 0 0 0 0
A B C D E F
1
Iniciar A
SUBIR MPS
NO MOVER If sensor DERECHA MPS
presencia == 1
SÍ
MOVER MPS A
IF COLOR ==1
IZQUIERDA AND SENSOR
MITAD == 1
NO
SENSOR MOVER
IZQUIERDA == 1 DERECHA MPS
SÍ
PARAR MPS NO IF COLOR == 0
BAJAR BRAZO SÍ ADD SENSOR
CERRAR GRIPPER
MPS DERECHA ==1
NO
SI CONTAR == 2 CONTAR DOS
SEGUNDOS
PARAR MPS
A INICIAR
1
2
2
3
3
4
4
5
5
6
UNIVERSIDAD AUTONOMA DE BUCARAMANGA
PROYECTO :
BANCO DIDACTICO BASADO EN UN MANIPULADOR
SCARA PARA TRASNPORTE Y CLASIFICACION DE PIEZAS
CON FIN DE DAR APOYO EN ASIGNATURAS DE
ROBOTICA Y AUTOMATIZACION.
DISEÑADOR:
JUAN SEBASTIAN TRASLAVIÑA DAVILA
PLANO :
DIAGRAMA DE FLUJO MPS FESTO
6
INGENIERIA MECATRONICIA VERSION :
FECHA ELABORACION :
SEPTIEMBRE DE 2019 PROYECTO DE GRADO
APROBO :
A B C D E F
4 3 2 1
30,00
F 60,00
F
15,00 8,00 X2
E E
D D
15,00
30,00
15,00
15,00
5,00
65,00
C
30,00
30,00
C
8,00 X4
30,00
B
15,00
150,00
B
A DIBUJ. Juan Sebastian Traslaviña Davila
A TÍTULO: FECHA
A4
VERIF. APROB.
APROB.
Victor Angel Ardila BAS E ROBOT
120,00
ESCALA
1:50
24/10/
2019
H
O
J
A
1
D
E
1
VERIF.
4 3 2 1
Producto SOLIDWORKS Educational. Solo para uso en la enseñanza.
4 3 2 1 80,00
F F
5,00 X4
8,00 X2
E E
100,00
10,
D
00
6,00
D
12,00
C C
B B
A DIBUJ. Juan Sebastian Traslaviña Davila
VERIF. Victor Angel Ardila
APROB.
A TÍTULO: FECHA
A4
BARRA PARA ESLABON 2 24/10/2019
APROB. UNIDAD: mm ESCALA 1:50 HOJA 1 DE 1
6,
00
Producto SOLIDWOR4KS Educational. Solo para uso en 3la enseñanza. 2 1
4 3 2 1
F 6,00
F
15,50
4,00
E
20,00
8,00
4,00 x 2
5,00
D
15,50
5,00
6,00
15,50
4,00
3,00
E
8,00
D
C
5,65
4,00 x 2 C
42,30
22,00 5,65
57,30
B B
A DIBUJ. Juan Sebastian Traslaviña Davila
VERIF. Victor Angel Ardila
APROB.
A TÍTULO: FECHA
A4
Base motor para prismatico 24/10/2019
APROB. UNIDAD: mm ESCALA 1:1 HOJA 1 DE 1
Producto SOLIDWOR4KS Educational. Solo para uso en 3la enseñanza. 2 1
4 3 2 1
F F
430,00
E E
2,00
110,00
D D
25,40 R35,00
C C
80,00 84,00
B B
A DIBUJ. Juan Sebastian Traslaviña Davila
A TÍTULO: FECHA
A4
VERIF.
APROB.
APROB.
Victor Angel Ardila TAPA 1
TÍTULO: mm
ESCALA 1: 5
24/10/2019
HOJA 1 DE 1
300,00
Producto SOLIDWOR4KS Educational. Solo para uso en 3la enseñanza. 2 1
4 3 2 1
F 102,00
F
384,00
E 37,00 E
,00
D
25,40 60,00
D
80,00
100,00
C 18,00
C
18,00
48,00
B B
A DIBUJ. Juan Sebastian Traslaviña Davila
A TÍTULO: FECHA
A4
VERIF.
APROB.
APROB.
Victor Angel Ardila TAPA 2
UNIDAD: mm
ESCALA 1:5
24/10/2019
HOJA 1 DE 1
65,00
80
304,00
VERIF.
4 3 2 1
Producto SOLIDWORKS Educational. Solo para uso en la enseñanza.
4 3 2 1
F F
20,00
E E
110,00
D D
C 6,35
C
20,00
B B
A DIBUJ. Juan Sebastian Traslaviña Davila
A TÍTULO: FECHA
A4
VERIF.
APROB.
APROB.
Victor Angel Ardila EJE 1
UNIDADES : mm
ESCALA 1:1
24/10/2019
HOJA 1 DE 1
Producto SOLIDWOR4KS Educational. Solo para uso en 3la enseñanza. 2 1
4 3 2 1
F 12,00
440,00
F
E
23,50
22,43
D
20,00
40,00
23,50
23,50
22,43
120,00
16,00
94,60
5,20 x 4
380,00
300,00
5,00
E
6,00 x 2
D
80,00 23,50
60,00
40,00
25,40 x 16
28,00 5,00 x 2
C C
B B
A DIBUJ. Juan Sebastian Traslaviña Davila
A TÍTULO: FECHA
A4
VERIF. APROB. APROB. Victor Angel Ardila
E
s
l
a
b
o
n
1
UNIDA
DES:
mm
ESCAL
A 1:50
24/10/
2019
H
O
J
A
1
D
E
1
Producto SOLIDWOR4KS Educational. Solo para uso en 3la enseñanza. 2 1
4 3 2 1
F F
40,00
60,00
25,40
4,00
5,00
55,00
23,85
E 22,43 5,00
94,60
8,00 42,00
8,00 45,70
10,00
12,00
E
20,00
22,43
D 40,00
60,00
0,10
52,41
3,50
40,00
8,00
8,00
30,00
8,00
65,00
42,00
4,00
23,85
10,00 80,00
D
C C
B B
A DIBUJ. Juan Sebastian Traslaviña Davila
A TÍTULO: FECHA
A4
VERIF. APROB. APROB. Victor Angel Ardila
E
S
L
A
B
O
N
2
UNIDAD
ES: mm
ESCALA 1: 5
24/10/2019
H
O
J
A
1
D
E
1
VERIF.
4 3 2 1
Producto SOLIDWORKS Educational. Solo para uso en la enseñanza.
7,
4 3 2 1
F
8,00
E
30,00
30,00
30,00
15,00
15,00
F
600,00
E
400,00
220,00
25,40
130,00
700,00
60,00
70,00
70,00
67,50
D 60,00
20,00 4,00
120,00 9,00
0 120,00
67,50 D
100,00
154,82
C
50,00
20,00
8,68
80,00
97,36
80,00
37,50
50
145,00
40,00
C
80,00 640,00
5,00 90,00
575,00
B 22,50
530,00
5,00 B
A
D
I
B
U
J
. Juan Sebastian Traslaviña Davila
6
1
0 0, 7
TÍTULO:
2
2
,
5
0
A FECHA
A4
VERIF.
APROB.
APROB.
Victor Angel Ardila MESA
ESCALA 1:50
24/10/2019
HOJA 1 DE 1
Producto SOLIDWOR4KS Educational. Solo para uso en 3la enseñanza. 2 1
630,00
35,00
4 3 2 1
F 20,00 R17,50 F
21,00
E E
35,00
D
40,00
5,00
15,00
5,00 X2
8,00 X2
C
20,00 C
17,00
40,00
6,50
B B
A DIBUJ. Juan Sebastian Traslaviña Davila
A TÍTULO: FECHA
A4
D
VERIF.
APROB.
APROB.
Victor Angel Ardila PIEZA PARA EJE 2
ESCALA 1:1
24/10/2019
HOJA 1 DE 1
VERIF.
4 3 2 1
Producto SOLIDWORKS Educational. Solo para uso en la enseñanza.
4
15,00
F
3
50,00
8,00
2 1
F
70,00
5,00
E E
30,00
25,00
10,00
D
25,00
D
5,00 X2
C C
R25,00
B B 19,66
A DIBUJ. Juan Sebastian Traslaviña Davila
TÍTULO:
30,88
A FECHA
A4
VERIF.
APROB.
APROB.
Victor Angel Ardila BUCHING EJE 1
ESCALA 1:50
24/10/2019
HOJA 1 DE 1
VERIF.
4 3 2 1
Producto SOLIDWORKS Educational. Solo para uso en la enseñanza.
15,
4 3 2 1
F F
30,00
E E
37,50
10,00 10,00
00 D D
15,00
C C
21,00
5,00
B 55,00 B
A DIBUJ. Juan Sebastian Traslaviña Davila
VERIF. Victor Angel Ardila
APROB.
A TÍTULO: FECHA
A4
SOPORTE DE CORREDERA 24/10/2019
APROB.
VERIF.
4 U
N
I
D
A
D
E
S
:
m
m
3
ESCALA 1:1
2 HOJA 1 DE 1
1
Producto SOLIDWORKS Educational. Solo para uso en la enseñanza.
N.º DE
ELEMENTO N.º DE PIEZA CANTIDAD
1 MESA 1
2 b_primer_eslabon 1
3 Pieza_para_eslabon1 1
4 ejeESLA1 1
5 complemento_eslabo
n1 1
6 nema18kg_cm 1
7 HY-DIV268N-5A 2
8 BARRA-PARA-
ESLABON2-12MM 1
9 pieza para eje 2 1
10 ejeESLA2 1
11 Eslabon2 1
12 nema12kg_cm 1
13 L298N Stepper Motor
Driver (Red) 1
14 Nema 5.6 kg_cm 1
15 baseMotroPaso_5.6
kg_cm 1
16 Chumacera_P000_VIST
RONICA 2
17 EJE3 1
18 sin_fin 1
19 b3-055-25_02 1
20
ISO - Rack-spur -
rectangular 0.6M 20PA
5mmFW 10PH 300L---
SAll
1
21 b3-055-reemplaza 1
22 b3-055-25_01 1
23 L_PARA_DESLIZADOR 1
24 Ante gripper 1
25 gripper 1
26
PARA
POTENCIOMETRO
3GDL
1
27 potenciometro 1
28 POTENCIOMETRO 2
29
ISO - Spur gear 0.6M
50T 20PA 12FW ---
S50A75H50L8.0N
2
30
ISO - Spur gear 2M 20T
20PA 12FW ---
S20A75H50L20.0N
1
31 carcasa1 1
32 carcasa2 1
33
ISO - Spur gear 2M 20T
20PA 12FW ---
S20A75H50L6.0N
1
34
ISO - Spur gear 1.25M
20T 20PA 12FW ---
S20A75H50L6.0N
1
35
ISO - Spur gear 1.25M
20T 20PA 12FW ---
S20A75H50L20.0N
1
36 ISO 1206-B - 492028 -
18,SI,NC,18 2
37 toma 1
38 Toma3P+N+T 2
39 RIEL 1 1
40 RIEL 2 1
41 Сборка1 1
42 caja de control 1
43 boton 1
44 botonperilla 1
45 botonrojo 2
46 led rojo 1
47 led amarillo 1
48 led verde 1
49 Banco_Festo 1
50 Rueda 4
51
Pieza3^DISEÑO FINAL
CONSTRUIDO ROBOT
SCARA
1
52
Pieza6^DISEÑO FINAL
CONSTRUIDO ROBOT
SCARA
1
4 3
36 38 62
F 14
7
2
12 18 23
63 13 15 22
1
17
F
19 41
6
5
E 35
46
21 E
34
50
D 51
52
16
20 11
D
40
39
37
60
4
8
C 3 C
24
33 26
2 29
B 32 28 B
31
30 54
58 55
A
57 59
56 53
1 9
61 10
27
43 42
45
25 44 A
DIBUJ. Juan Sebastian Traslaviña Davila TÍTULO: FECHA
A4
VERIF.
APROB.
APROB.
Victor Angel Ardila ROBOT SCARA 4GDL
ESCALA 1:50
24/10/2019
HOJA 1 DE 1
VERIF.
4 3 2 1
Producto SOLIDWORKS Educational. Solo para uso en la enseñanza.
Manual de funcionamiento robot SCARA
El objetivo de este manual es explicar cómo poner en funcionamiento el robot
SCARA de 4 gdl. Para ello se explicarán los componentes necesarios para
manipular el robot y los pasos para poner lo en funcionamiento.
1. Componentes Básicos:
1.1 Interfaz HMI
El robot SCARA de 4GDL tiene una interfaz hombre máquina que permite
controlar el funcionamiento del robot a un usuario de forma práctica e interactiva.
Para comprender su funcionamiento es importante entender que dentro de
cualquier sea la página de la interfaz hay un botón de STOP ubicada en la parte
superior (enmarcado dentro de un circulo imagen1, ítem 1), un indicador de texto
ESTADO( rodeado por un rectángulo verde imagen 1, ítem 2) su función es
indicar el estado en que se encuentra la maquina operando, también cuenta con
una paleta de controles (cubierto por un paralelogramo de color rojo ítem 3)
caracteriza porque controla las transiciones de un estado a otro, las múltiples
opciones con la que cuenta el robot. A continuación, se explicará cada
componente del panel de control.
1.1.1 PAGINA INICIO
Esta página está configurada para que por defecto sea el inicio del programa,
esta página se caracteriza por poseer un selector del puerto de comunicación
entre arduino y el pc( rodeado por un cuadro amarillo imagen 1, item4) un
indicador de texto que reescribe todos los datos que envía el arduino a la HMI
(enmarcado por un cuadro marrón imagen1,ítem 5) e indicadores que se
enciende dependiendo lo que se refleje en el panel de control ( rodeado por un
rectángulo de color naranja imagen1,ítem 6) .
Imagen 1. INTERFAZ HMI ROBO SCARA
1.1.2 PAGINA COLOR
Desde esta página se puede realizar la clasificación de colores. Esta pestaña
está conformada por un botón DETECTAR COLOR (ver en la imagen 2, item 1)
que permite tomar una fotografía (mirar la imagen 2, item 6) y realizar la
clasificación del color (observar en la imagen 2 dentro del margen del item 7).
Cuando un color es detectado se enciende un led de los 5 leds (detalle en la
imagen 2, ítem 4) y simultáneamente el indicador COLOR ES indicara el color
que fue detectado (revise la imagen 2, ítem 3), a continuación, si la interfaz
detecta un color azul o rojo le enviara al arduino un mensaje y el arduino le
responde, cuando el arduino responde se enciende el led RECIBIO COLOR (ver
imagen 2, ítem 7)
1 2
3
4
5
6
Imagen 2. INTERFAZ COLOR.
1.1.3 PAGINA CINEMATICA INVERSA
Desde esta opción se puede obtener la cinemática inversa del robot SCARA
donde se le ingresa la posición XYZ mediada desde la coordenada 0 y el
programa internamente calcula los ángulos requeridos para obtener la posición
deseada. En el encabezado de la interfaz se encuentra un botón CINEMATICA
INVERSA y un led cinematica inversa (ver imagen 3, ítem 1) este botón permite
ingresar al modo CINEMATICA INVERSA y el led se enciende cuando ya se
está en el estado CINEMATICA INVERSA. Como el principal objetivo de este
modo es por medio de una coordenada obtener ángulos, se deben ingresar los
valores XYZ (ver imagen 3, item 2) con el único propósito de obtener los ángulos
requeridos con los que el elemento final de control llegue a la coordenada dada
por el usuario. El modo en que el robot llegue a la posición sea codo arriba o
codo abajo es decisión del usuario (observar imagen 3, ítem 3 y 4). Luego de
seleccionar porque cinematica se decidió calculara los ángulo se podrán ver en
el indicar TETA 1 CA Y TETA2 CA además en el indicador teta 1 ca cdf y teta 2
ca cdf ( ver imagen 3, ítem 5) se visualizara la codificación del ángulo para enviar
al arduino cuando este en modo automático además se graficara la posición
deseada los dos primeros grados de libertad en la figura ca ( revisar imagen 3,
item 7) cuando fue seleccionado el modo CODO ARRIBA y cuando fue
seleccionado el modo CODO ABAJO se obtendrán los ángulos en los
indicadores TETA1CB Y TETA2CB y también en los indicadores teta1
3 1 2
4
6 7
5
cb cdf y teta 2 cb cdf ( observar imagen 3, item 6) se visualizara la codificación
del ángulo para enviar al arduino cuando este en modo automático además se
graficara la posición deseada los dos primeros grados de libertad en la figura
cb ( revisar imagen 3, item 8).
Imagen 3. INTERFAZ CINEMATICA INVERSA
1.1.4 1 GDL
El modo 1 GDL permite controlar el primer grado de libertad del robot SCARA.En
el encabezado de la página se encuentra un botón 1 GDL, encargado de poner
a la maquina en el estado 1 GDL y un led i 1 GDL que indica que el robot está
en ese estado (ver imagen 4, ítem 1). Cuando la maquina se encuentre en el
estado 1 GDL se debe estipular el ángulo que se quiere implantar con la
orientación de dicho ángulo (observe la imagen 4 , ítem 3), luego de tener el
ángulo se debe enviar al arduino y el encargado de realizar esta función es el
botón enviar 1gdl ( véase imagen 4, item 4) lo que la interfaz le envía al
microcontrolador se podrá ver el dato enviado en el indicador 1GDL ENVIO A
ARDUINO y cuando el arduino responda se podrá ver en el indicador gdl1 res y
en el led RESPONDIO 1GDL (detalle la imagen 4, item 5).
1
2
3 4
5 6
7 8
Imagen 4. INTERFAZ GDL 1
1.1.5 PAGINA 2 GDL
La función 2 GDL permite controlar el segundo grado de libertad del robot
SCARA. En el encabezado de la página se encuentra un botón 2 GDL,
encargado de poner a la maquina en el estado 2 GDL y un led i 2 GDL que indica
que el robot está en ese estado (ver imagen 5, ítem 1). Cuando la maquina se
encuentre en el estado 2 GDL se debe estipular el ángulo que se quiere implantar
con la orientación de dicho ángulo (observe la imagen 5 , ítem 3), luego de tener
el ángulo se debe enviar al arduino y el encargado de realizar esta función es el
botón enviar 2gdl ( véase imagen 5, item 4) lo que la interfaz le envía al
microcontrolador se podrá ver el dato enviado en el indicador 2GDL ENVIO A
ARDUINO y cuando el arduino responda se podrá ver en el indicador gdl2 res y
el led RESPONDIO 2 GDL que se encendera. (detalle la imagen 5, item 5).
1
2 3
4
5
Imagen 5. INTERFAZ GDL 2
1.1.6 PAGINA 3 GDL
El modo 3 GDL permite controlar el segundo grado de libertad del robot SCARA.
En el encabezado de la página se encuentra un botón 3 GDL, encargado de
poner a la maquina en el estado 3 GDL y un led i 3 GDL que indica que el robot
está en ese estado (ver imagen 6, ítem 1). Cuando la maquina se encuentre en
el estado 3 GDL se debe estipular la altura que se quiere implantar con la
orientación de la altura que se le quiere dar al gripper, esta altura se digita en el
indicador ALTURA CM (observe la imagen 6, ítem 2), luego de tener la altura se
debe enviar al arduino y el encargado de realizar esta función es el botón 3 GDL
(véase imagen 6, ítem 1). El mensaje que la interfaz le envía al microcontrolador
se podrá ver el dato enviado en el indicador 3 GDL ENVIO A ARDUINO y cuando
el arduino responda se podrá ver en el indicador gdl3 res y en led RESPONDIO
3 GDL que se activara. (detalle la imagen 6, ítem 4).
1
2 3
4
5
Imagen 6. INTERFAZ GDL 3
1.1.7 PAGINA GRIPPER
El modo GRIPEER permite controlar el cuarto grado de libertad del robot SCARA.
En el encabezado de la página se encuentra un botón GIPPER, encargado de
poner a la maquina en el estado GRIPPER y un led i GRIPER que indica que el
robot está en ese estado (ver imagen 7, ítem 1). Cuando la maquina se encuentre
en el estado GRIPPER se debe estipular el porcentaje de apertura donde 0 es
totalmente abierto y 80 totalmente cerrado (observe la imagen 7, ítem 2), luego de
tener el porcentaje de apertura se debe enviar al arduino y el encargado de
realizar esta función es el botón GRIPPER (véase imagen 7, item 1). El mensaje
que la interfaz le envía al microcontrolador se podrá ver el dato enviado en el
indicador 4 GDL ENVIO A ARDUINO y cuando el arduino responda se podrá ver
en el indicador gdl3 res y en led RESPONDIO 4GDL que se activara. (detalle la
imagen 7, ítem 4).
1
2
3
4
Imagen 7. INTERFAZ GRIPPER
1.1.8 PAGINA PARO
Esta función solo cumple una labor de indicar que se paro la interfaz y
solo cuenta con un led PARO I.
Imagen 8. INTERFAZ PARO
1
2
3
4
1.2 PANEL DE CONTROL
El panel de control es una herramienta que permite dominar los modos de
operación de encendido, o pausado del robot o de todo el sistema MPS festo y
SCARA. Dentro de esta caja hay 3 botones, una perrilla y tres leds indicadores.
De funcionamiento, parado y stan by.
Imagen 9. PANEL DE CONTROL
1.3 INTERRUPTORES
El robot SCARA DE 4 GDL contara con 2 interruptores de protección, uno
aguas arriba de la fuente de alimentación, que soportara hasta 2 Amperios de
corrientes y otro interruptor aguas debajo de la fuente que soportara hasta 10
Amperios de corriente.
1.4 TOMAS CLAVIJA EMPOTRADAS DE ALIMENTACION REGULADA Y
NO REGULADA
El banco contara con dos tomas de alimentación de 110 v de 16 amperios con
tres puntas, se distribuye una toma para la alimentación regulada y otra para la
no regulada.
1.5 TOMA CONVENCIONAL
Esta toma es para alimentar el PLC de Festo y el PC portátil.
1.6 ROBOT
El robot está compuesto por 2 eslabones, una corredera lineal y un gripper.
1.7 MESA
La mesa tiene en su base 4 ruedas móviles de 2”, en la parte superior cuenta
con una tabla que contiene un sistema de medición en toda la superficie.
2. PASOS PARA FUNCIONAMIENTO:
1. Para poner en funcionamiento la maquina antes debe contar con
alimentación de red eléctrica monofásica de 110V, se debe conectar las
clavijas y comprobar que los interruptores estén cerrados.
2. Para iniciar el robot es necesario entablar la comunicación entre la interfaz
y el arduino. (revise imagen 1, ítem 4) Se busca el puerto COM que el pc
habilito para el arduino y se selecciona. Establecida la comunicación se
correo el programa. El robot deberá encender el led naranja.
3. Ahora debe iniciar el robot desde el panel de control en el botón verde.
4. El robot contara con dos métodos de operación modo manual o modo
automático. El modo manual le permite interactuar de una página en otra
y el modo automático le pedirá al usuario una coordenada XYZ y hará una
secuencia. Se debe escoger el modo de operación desde el mando de
control con la perilla. Siendo automático (A) y manual (M) un movimiento
controlado por el usuario donde se controla por separado cada grado de
libertad desde la interfaz.
CODIGO ARDUINO ROBOT SCARA 4 GDL
// COMUNICACION
String imp;
int dato1 = 0;
int GradoL;
int signo;
int grados;
float angulo;
// MPS FESTO
const int colorpin = 32;
const int pararmps = 31;
// Grado de libertad 1
const int analogPin1 = A0;
const int stepPin = 52; //CLK
const int dirPin = 50; //CW , DIRECCION
const int enPin = 51 ; // ENABLO
int tiempo1 = 5200;
int tiempo2 = 5200;
int valor1;
int ciclo1 ;
float error1 = 1;
float ang1a;
float ang1;
float ang1_1;
float ang1_2;
// Grado de libertad 2
const int analogPin2 = A1;
EL TEXTO CON UN COLOR DE
FUENTE ROJO SON LA DEFINICION
DE LAS VARIABLES UTILIZADAS EN
EL PROGRAMA.
const int stepPin2 = 9; //CLK //recordar que es 9
const int dirPin2 = 10; //CW , DIRECCION // //recordar que es 10
const int enPin2 = 11; // ENABLO //recordar que es 11
int valor2;
int tiempo12 = 16200;
int tiempo22 = 16200;
int ciclo2;
float ang2;
float error2;
// Grado de libertad 3
const int analogPin3 = A2;
int valor3;
float ang3;
int ciclo3 ;
int value3;
int error3d;
int PinENA = 2; //recordar que es 2
int PinIN1 = 3; //recordar que es 3
int PinIN2 = 4; //recordar que es 4
int PinIN3 = 5; //recordar que es 5
int PinIN4 = 6; //recordar que es 6
int PinENB = 7; //recordar que es 7
float z;
int milis = 2;
float error3;
//Grado de ibertad 4
#include <Servo.h>
void setup ()
Servo myservo; // create servo object to control a servo
int pinServo = 8; // debe ser 8
int grados4 = 0;
// Tablero de control
const int pulsadorinicio = 39;
const int paradototal = 38;
const int modo = 36;
const int paradoRobot = 37;
nst int verdee= 35;
const int rojoo= 34;
const int amarillo = 33;
const int color= 32;
const int paradoto= 31;
int pi,pim,pet,pet2,pet3, modod, parador,parador2,parador3, x, i;
Serial. Begin (9600);
// 1 gdl
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(enPin, OUTPUT);
digitalWrite(enPin, HIGH);
// 2 gdl
pinMode(stepPin2, OUTPUT);
pinMode(dirPin2, OUTPUT);
pinMode(enPin2, OUTPUT);
digitalWrite(enPin2, HIGH);
SE DEFINE EL PUERTO DE COMUNICACIÓN
SERIAL Y LA VELOCIDAD DE TRANSMISION DE
DATOS
// 3 gdl
pinMode(PinENA, OUTPUT);
pinMode(PinIN1, OUTPUT);
pinMode(PinIN2, OUTPUT);
pinMode(PinIN3, OUTPUT);
pinMode(PinIN4, OUTPUT);
pinMode(PinENB, OUTPUT);
digitalWrite(PinENA, LOW);
digitalWrite(PinENB, LOW);
// 4 gdl
myservo.attach(pinServo);
myservo.write(10);
// Tablero de control
pinMode(pulsadorinicio, INPUT);
pinMode(paradototal, INPUT);
pinMode(modo, INPUT);
pinMode(paradoRobot, INPUT);
pinMode(verdee, OUTPUT);
pinMode(rojoo, OUTPUT);
pinMode(amarillo, OUTPUT);
pinMode(color, OUTPUT);
pinMode(paradoto, OUTPUT);
Y (ENTRADAS PUERTOS DIGITALES SALIDAS)
SE REALIZA LA DEFINICION DE LOS
noInterrupts();
TCCR1A = 0;
TCCR1B = 0;
T= 0.028; // tiempo de muestreo
timer1_counter = 34286; // preload timer 65536-16MHz/256/100Hz ============>65536-
(16000000/(256*(1/T)))
// interrupcion
ISR(TIMER1_OVF_vect) // interrupt service routine
TCNT1 = timer1_counter; // preload timer
// ang 1
valor1 = analogRead(analogPin1);
ang1 = -0.2382 * valor1 + 109.42;
//ang 2
valor2 = analogRead(analogPin2);
ang2 = 0.2605 * valor2 - 95,777;
// //ang 3
valor3 = analogRead(analogPin3);
ang3 = -0.0927* valor3 + 103.88;
// enable all interrupts interrupts();
TCNT1 = timer1_counter; // preload timer
TCCR1B |= (1 << CS12); // 256 prescaler
TIMSK1 |= (1 << TOIE1); // enable timer overflow interrupt
LA DEFINICION DE LA INTERRUPCION PARA EL
TIEMPO DE MUESTREO DE LA LECTURA DE LOS
POTENCIOMETROS Y LA INTERPOLACION DE LA
LECTURA DE LOS PUERTOS ANALOGICOS
void loop()
if (Serial.available() > 0) //Comprobamos si en el buffer hay datos
delay(50);
String datosrecibidos1 = Serial.readStringUntil(',') ;
String datosrecibidos2 = Serial.readStringUntil(',') ;
String datosrecibidos3 = Serial.readStringUntil(',') ;
String datosrecibidos4 = Serial.readStringUntil(',') ;
EL FRAGMENTO DE CODIGO EN
PURPURA ESTA ENCARGADO DE
REVISAR SI HAY INFORMACION EN
EL PUERTO SERIAL. CUANDO HAY
UNA PALABRA LAS VARIABLES
STRING SE ENCARGAN DE SEPARAR
LAS VARIABES DE “GradoL”,” signo”
Y “grados”. ESTAS VARIABLES
PERMITEN TENER CONTROL DE
TODOS LOS GRADOS DE LIBERTAD
DEL ROBOT SCARA.
String datosrecibidos5 = Serial.readStringUntil(',') ;
GradoL = datosrecibidos1.toInt();
signo = datosrecibidos2.toInt();
grados = datosrecibidos3.toInt();
if (signo == 9)
angulo = -1 * (grados);
if (signo == 0)
angulo = grados;
if (GradoL == 01 )
delay(100);
Serial.println(1);
delay(100);
Serial.println(1);
digitalWrite(enPin2, HIGH);
error1 = angulo - ang1;
delay(100);
while (error1 > 1 || error1 < -1 )
Serial.println(error1);
digitalWrite(amarillo, LOW); // enciende el LED
if (error1 > 0)
ciclo1 = (error1 * 6400) / 360;
digitalWrite(enPin, HIGH);
digitalWrite(dirPin, HIGH); // anticlockwise direction
for (int x1 = 0; x1 <= ciclo1 ; x1++)
digitalWrite(stepPin, HIGH);
delayMicroseconds(tiempo1);
PRIMER GRADO DE LIBERTAD. CUANDO SE ENTRA A ESTA CONDICION SE
COMPARA EL VALOR DEL ANGULO QUE
ENVIAR LA INTERFAZ CON RESPECTO A LA
POSICION INSTANTEANEA DEL ESLABON
1 Y DEPENDIENDO SI EL ERROR ES
POSITIVO O NEGATIVO SE REALIZA LA
SECUENCIA DEL CONTROL DE MOTOR
PASO A PASO DE 18KG.
ENCARGADO DE
MOVIMIENTO DEL CONTROLAR EL
ESTA PARTE EL CODIGO SUBRAYADA EN
VERDE ESTA
// ERROR NEGATIVO, GIRO ANTIHORARIO
if ( error1 < 0)
ciclo1 = (-error1 * 6400) / 360;
digitalWrite(enPin, HIGH);
digitalWrite(dirPin, LOW); // clockwise direction
for (int x1 = 0; x1 <= ciclo1 ; x1++)
digitalWrite(stepPin, HIGH);
delayMicroseconds(tiempo2);
digitalWrite(stepPin, LOW);
delayMicroseconds(tiempo2);
pet = digitalRead(paradototal); //lectura digital de pin
parador = digitalRead(paradoRobot);
if(pet == 0 || parador == 0 )
x1 = ciclo1;
digitalWrite(stepPin, LOW);
delayMicroseconds(tiempo1);
pet = digitalRead(paradototal); //lectura digital de pin
parador = digitalRead(paradoRobot);
digitalWrite(verdee, HIGH); // enciende el LED
digitalWrite(rojoo, LOW); // enciende el LED
if(pet == 0 || parador == 0 )
x1 = ciclo1;
error1 = 0.1;
GradoL = 0;
digitalWrite(amarillo, LOW); // enciende el LED
digitalWrite(verdee, HIGH); // enciende el LED
DENTRO DEL CUADRO NARANJA SE
ENCUENTRA EL CONTROL DE GIRO DEL
MOTOR PASO A PASO DE 18KG, PRIMERO
SE COMPARA EL ERROR, LUEGO SE
CALCULA LA CANTIDAD DE PASOS O
PULSOS QUE SE DEBEN DAR PARA QUE EL
MOTOR LLEGUE A UNA REFERENCIA,
COMO SE UTILIZO UNA TARJETA DE
CONTOL PARA EL MOTOR PASO A PASO,
SE HABILITA LA SALIDA DE LA TARJETA Y
LA DIRECCION LUEGO DENTRO DE UN
FOR SE HACE LA CADENA DE PULSOS QUE
SON ENVIADOS A LA TARJETA.
DESDE ESTE SEGMENTO SE CONTROLA EL
MOVIMIENTO DEL SEGUNDO GRADO DE
LIBERTAD. CUANDO SE ENTRA A ESTA
CONDICION SE COMPARA EL VALOR DEL
ANGULO QUE ENVIA LA INTERFAZ
RESPECTO A LA POSICION DEL SEGUNDO
ESLABON Y DEPENDIENDO SI EL ERROR
ES POSITIVO O NEGATIVO SE REALIZA LA
SECUENCIA DEL CONTROL DE MOTOR
PASO A PASO DE 12 KG, EL
FUNCIONAMIENTO DE ESTE GRADO DE
LINERTAD ES IGUAL AL DEL PRIMER
GRADO DE LIBERTAD PORQUE SE
CUENTA CON LA MISMA TARJETA DE
CONTROL.
if (GradoL == 02)
delay(100);
Serial.print(2);
delay(100);
Serial.print(2);
delay(100);
Serial.print(2);
digitalWrite(amarillo, LOW); // enciende el LED
digitalWrite(verdee, HIGH); // enciende el LED
digitalWrite(rojoo, LOW); // enciende el LED
digitalWrite(enPin, HIGH);
error2 = angulo - ang2;
while (error2 > 1.0 || error2 < -1.0 )
digitalWrite(amarillo, LOW); // enciende el LED
digitalWrite(verdee, HIGH); // enciende el LED
digitalWrite(rojoo, LOW); // enciende el LED
error1 = 0;
GradoL = 0;
digitalWrite(amarillo, LOW); // enciende el LED
digitalWrite(rojoo, LOW); // enciende el LED
digitalWrite(verdee, HIGH); // enciende el LED
GradoL = 0;
error1 = angulo - ang1;
if(pet == 0 || parador == 0 )
error1 = 0;
GradoL = 0;
if ( error2 > 0)
digitalWrite(enPin2, HIGH);
digitalWrite(dirPin2, LOW); // anticlockwise direction
ciclo2 = (error2) / 0.45;
digitalWrite(verdee, HIGH); // enciende el LED
digitalWrite(rojoo, LOW); // enciende el LED
digitalWrite(amarillo, LOW); // enciende el LED
for (int x = 0; x <= ciclo2 ; x++)
digitalWrite(stepPin2, HIGH);
delayMicroseconds(tiempo12);
digitalWrite(stepPin2, LOW);
delayMicroseconds(tiempo12);
pet = digitalRead(paradototal); //lectura digital de pin
parador = digitalRead(paradoRobot);
digitalWrite(verdee, HIGH); // enciende el LED
digitalWrite(rojoo, LOW); // enciende el LED
if(pet == 0 || parador == 0 )
x = ciclo2;
error2 = 0.1;
GradoL = 0;
if ( error2 < 0)
ciclo2 = (-error2) / 0.45;
digitalWrite(verdee, HIGH); // enciende el LED
digitalWrite(rojoo, LOW); // enciende el LED
digitalWrite(amarillo, LOW); // enciende el LED
digitalWrite(enPin2, HIGH);
digitalWrite(dirPin2, HIGH); // anticlockwise direction
for (int x = 0; x <= ciclo2 ; x++)
digitalWrite(stepPin2, HIGH);
delayMicroseconds(tiempo22);
digitalWrite(stepPin2, LOW);
delayMicroseconds(tiempo22);
pet = digitalRead(paradototal); //lectura digital de pin
parador = digitalRead(paradoRobot);
digitalWrite(verdee, HIGH); // enciende el LED
digitalWrite(rojoo, LOW); // enciende el LED
if(pet == 0 || parador == 0 )
x = ciclo2;
error2 = 0.1;
GradoL = 0;
delay(3000);
error2 = angulo - ang2;
digitalWrite(enPin2, LOW);
pet = digitalRead(paradototal); //lectura digital de pin
parador = digitalRead(paradoRobot);
digitalWrite(verdee, HIGH); // enciende el LED
if(pet == 0 || parador == 0 )
error2 = 0.1;
GradoL = 0;
GradoL = 0;
EN ESTAS LINEAS DE CODIGO SE
CONTROLA EL MOVIMIENTO DEL TERCER
GRADO DE LIBERTAD O GRADO DE
LIBERTAD PRISMATICO. CUANDO SE
ENTRA A ESTA CONDICION SE COMPARA
EL VALOR DE LA ALTURA QUE ENVIA LA
INTERFAZ RESPECTO A LA ALTURA DEL
GRIPPER Y DEPENDIENDO SI EL ERROR ES
POSITIVO O NEGATIVO SE REALIZA LA
SECUENCIA DEL CONTROL DE MOTOR
PASO A PASO DE 5KG.
if (GradoL == 03)
delay(100);
Serial.println(3);
digitalWrite(verdee, HIGH); // enciende el LED
digitalWrite(amarillo, LOW); // enciende el LED
digitalWrite(rojoo, LOW); // enciende el LED
z = angulo/111;
if (z > 30)
z = 30;
if ( z <15)
z = 13;
error3 = z - ang3;
// Retroalimentación3
while (error3 > 1 || error3 < -1 )
valor3 = analogRead(analogPin3);
ang3 = -0.0927* valor3 + 103.88;
error3 = z - ang3;
if (error3 > 0)
error3d = 1200 * error3;
ciclo3 = (error3d / 7.2);
digitalWrite (PinENA, HIGH);
digitalWrite (PinENB, HIGH);
// Baja
digitalWrite(verdee, HIGH); // enciende el LED
digitalWrite(amarillo, LOW); // enciende el LED
digitalWrite(rojoo, LOW); // enciende el LED
EN EL CUADRO SEÑALADO EN AZUL SE
REALIZA LA SECUENCIA DE MOVIMIENTO
DEL GRADO DE LIBERTAD PRISMATICO.
LUEGO DE REALIZAR LA COMPARACION
DE LA ALTURA QUE ESTIPULA LA
INTERFAZ Y LA ACTUAL DEL ROBOT SE
DETERMINA SI SUBE O BAJA EL ROBOT,
PERO PARA HACER ESTAS ACCIONES SE
DEBE CALCULAR LA CANTIDAD DE
PULSOS REQUERIDOS PARA CUMPLETAR
ESTA ACTIVIDAD. EL CONTROL QUE TIENE
LA TARJETA LN298 ES UN CONTROL
REQUERIDO PARA MOTORES PASO A
PASO DE DOS BOBINAS, EXACTAMENTE
SE USO PASOS COMPLETOS DONDE SE
ACTIVARON DE FORMA SECUENCIALA
CADA PUNTA DE LA BOBINA DE FORMA
SINCRONA HASTA QUE CUMPLE LA
CANTIDAD DE IMPULSOS REQUERIDOS.
for (int i = 0; i <= ciclo3; i++)
//BOBINA A
digitalWrite (PinIN1, HIGH);
digitalWrite (PinIN2, LOW);
digitalWrite (PinIN3, LOW);
digitalWrite (PinIN4, LOW);
delay(milis);
//BOBINA B
digitalWrite (PinIN1, LOW);
digitalWrite (PinIN2, LOW);
digitalWrite (PinIN3, LOW);
digitalWrite (PinIN4, HIGH);
delay(milis);
// BOBINA C
digitalWrite (PinIN1, LOW);
digitalWrite (PinIN2, HIGH);
digitalWrite (PinIN3, LOW);
digitalWrite (PinIN4, LOW);
delay(milis);
// BOBINA D
digitalWrite (PinIN1, LOW);
digitalWrite (PinIN2, LOW);
digitalWrite (PinIN3, HIGH);
digitalWrite (PinIN4, LOW);
delay(milis);
digitalWrite(verdee, HIGH); // enciende el LED
digitalWrite(amarillo, LOW); // enciende el LED
digitalWrite(rojoo, LOW); // enciende el LED
pet = digitalRead(paradototal); //lectura digital de pin
parador = digitalRead(paradoRobot);
digitalWrite(verdee, HIGH); // enciende el LED
if(pet == 0 || parador == 0 )
i = ciclo3;
error3 = 0.1;
GradoL = 0;
if (error3 < 0 )
digitalWrite (PinENA, HIGH);
digitalWrite (PinENB, HIGH);
error3d = 1200 * error3;
ciclo3 = (-error3d / 7.2);
// SUBE
for (int i = 0; i <= ciclo3; i++)
//BOBINA A
digitalWrite (PinIN1, LOW);
digitalWrite (PinIN2, LOW);
digitalWrite (PinIN3, LOW);
digitalWrite (PinIN4, HIGH);
delay(milis);
//BOBINA B
digitalWrite (PinIN1, HIGH);
digitalWrite (PinIN2, LOW);
digitalWrite (PinIN3, LOW);
digitalWrite (PinIN4, LOW);
delay(milis);
// BOBINA C
digitalWrite (PinIN1, LOW);
digitalWrite (PinIN2, LOW);
digitalWrite (PinIN3, HIGH);
digitalWrite (PinIN4, LOW);
delay(milis);
// BOBINA D
digitalWrite (PinIN1, LOW);
digitalWrite (PinIN2, HIGH);
digitalWrite (PinIN3, LOW);
digitalWrite (PinIN4, LOW);
delay(milis);
digitalWrite(verdee, HIGH); // enciende el LED
digitalWrite(amarillo, LOW); // enciende el LED
digitalWrite(rojoo, LOW); // enciende el LED
pet = digitalRead(paradototal); //lectura digital de pin
parador = digitalRead(paradoRobot);
digitalWrite(verdee, HIGH); // enciende el LED
if(pet == 0 || parador == 0 )
i = ciclo3;
error3 = 0.1;
GradoL = 0;
digitalWrite (PinENA, LOW);
digitalWrite (PinENB, LOW);
pet = digitalRead(paradototal); //lectura digital de pin
parador = digitalRead(paradoRobot);
digitalWrite(verdee, HIGH); // enciende el LED
if(pet == 0 || parador == 0 )
i = ciclo3;
error3 = 0.1;
GradoL = 0;
digitalWrite(enPin, LOW);
GradoL = 0;
if (GradoL == 05)
myservo.write(angulo);
delay(15);
Serial.println("5");
GradoL = 0;
pet = digitalRead(paradototal); //lectura digital de pin
parador = digitalRead(paradoRobot);
if(pet == 0 ||parador == 0 )
GradoL = 0;
digitalWrite(verdee, HIGH); // enciende el LED
digitalWrite(amarillo, LOW); // enciende el LED
digitalWrite(rojoo, LOW); // enciende el LED
delay(200);
EN LA CONDICION GradoL == 5 SE
CONTROLA EL PORCENTAJE DE
APERTURA DEL GRIPPER EL CUAL SE DA
POR LA HMI QUE ENVIA UN ANGULO
PARA MOVER EL SERMOTOR UNA
CANTIDAD DETERMINADA DE GRADOS.
// color
if (GradoL == 06)
pet = digitalRead(paradototal); //lectura digital de pin
parador = digitalRead(paradoRobot);
digitalWrite(color, HIGH); // enciende el LED
Serial.print("6");
delay(100);
Serial.print("6");
delay(100);
Serial.print("6");
delay(100);
Serial.print("6");
delay(1000);
if(pet == 0 ||parador == 0 )
digitalWrite(verdee, HIGH); // enciende el LED
digitalWrite(amarillo, LOW); // enciende el LED
digitalWrite(rojoo, LOW); // enciende el LED
delay(200);
GradoL = 0;
EN LA CONDICION COLOR SE ENVIA AL
PLC DE FESTO SI SE DETECTO UN COLOR
AZUL O ROJO O NINGUNO DE ELLOS,
ESTA CLASIFICACION SE DA DESDE LA
CAMARA QUE POR MEDIO DE LA
INTERGAZ LE ENVIA ESTE DATO AL
ARDINO
pi = digitalRead(pulsadorinicio); //lectura digital de pin
pet = digitalRead(paradototal); //lectura digital de pin
modod= digitalRead(modo); //lectura digital de pin
parador = digitalRead(paradoRobot);
if (pi == 1 )
pim = 1;
if ( pim == 1 && pet == 1 && parador==1 )
//Serial.println("Encendido");
digitalWrite(verdee, HIGH); // enciende el LED
digitalWrite(rojoo, LOW); // enciende el LED
digitalWrite(amarillo, LOW); // enciende el LED
if (modod == 1) Serial.println(85); // AUTOMATICO
else Serial.println(86); // MANUAL
digitalWrite(color, HIGH); // color para festo
delay(100);
if (pim == 0 && pet == 1 && parador ==1)
// Serial.println("sin Encender");
Serial.println(80);
digitalWrite (PinENA, HIGH);
digitalWrite (PinENB, HIGH);
digitalWrite(verdee, LOW); // enciende el LED
digitalWrite(rojoo, LOW); // enciende el LED
digitalWrite(amarillo, HIGH); // enciende el LED
digitalWrite(color, LOW); // enciende el LED
digitalWrite(paradoto, LOW); // enciende el LED
delay(100);
if ( pet == 1 && parador ==0 )
// Serial.println("parado robot");
Serial.println(83);
digitalWrite(verdee, LOW); // enciende el LED
LA ENCUENTRA ESTADO SE
MAQUINA.
EN LA PARTE FINAL DEL CODIGO SE ENCUENTRA LA LECTURA DE LAS
VARIABLES DEL PANEL DE CONTROL,
EL ESTADO DE ELLAS Y DESDE ACA SE
ENVIA LA INFORMACION A INTERFAZ
PARA QUE TENGA PRESENTE EN QUE
pim = 0;
digitalWrite(amarillo, LOW); // enciende el LED
digitalWrite(rojoo, HIGH); // enciende el LED
digitalWrite(color, LOW); // enciende el LED
digitalWrite(paradoto, LOW); // enciende el LED
delay(100);
if ( pet == 0)
// Serial.println("parado total");
Serial.println(84);
digitalWrite(verdee, LOW); // enciende el LED
digitalWrite(pararmps, HIGH); // enciende el LED
pim = 0;
digitalWrite(amarillo, LOW); // enciende el LED
digitalWrite(rojoo, HIGH); // enciende el LED
digitalWrite(paradoto, HIGH); // enciende el LED
digitalWrite(color, LOW); // enciende el LED
delay(100);