instalación y acondicionamiento de un manipulador tipo
TRANSCRIPT
Instalación y acondicionamiento de un manipulador tipo SCARA y
programación de rutinas para la enseñanza sobre robots
industriales
César Augusto Benítez Martínez
Trabajo de grado dirigido por:
Carlos Francisco Rodríguez Herrera
PhD
Universidad de Los Andes
Ingeniería Mecánica
Bogotá
2019
Contenido PLANTEAMIENTO DE LA SITUACIÓN .............................................................. 3
JUSTIFICACIÓN ................................................................................................. 5
OBJETIVOS ........................................................................................................ 6
General ........................................................................................................... 6
Específicos ...................................................................................................... 6
METODOLOGÍA ................................................................................................. 7
DESARROLLO ................................................................................................... 8
Generalidades del manipulador ....................................................................... 8
Sensores y actuadores .................................................................................... 9
Reconocimiento de objetos ........................................................................... 14
Circuito .......................................................................................................... 17
Cajas conexiones y soporte .......................................................................... 23
Aplicaciones. Rutinas. Experiencias .............................................................. 23
CONCLUSIONES ............................................................................................. 27
RECOMENDACIONES Y TRABAJO FUTURO ................................................ 28
REFERENCIAS ................................................................................................ 29
ANEXOS ........................................................................................................... 30
Código del Arduino ........................................................................................ 30
Código de la experiencia 1 ............................................................................ 34
Código de la experiencia 2 ............................................................................ 35
PLANTEAMIENTO DE LA SITUACIÓN
Un proceso es comprendido como todo desarrollo sistemático que conlleva una
serie de pasos ordenados u organizados, que se efectúan o suceden de forma
alternativa o simultánea, los cuales se encuentran estrechamente relacionados
entre sí y cuyo propósito es llegar a un resultado preciso (Salazar López, 2016).
Los procesos industriales son un conjunto de acciones dispuestas a la creación,
transformación o transporte de uno o varios productos. Las industrias disponen
para esto tanto mano de obra como activos fijos que, combinados, desarrollan
eficientemente cada una de las etapas del proceso.
Las operaciones industriales actualmente varían en complejidad, tiempo,
desarrollo y materias primas, dependiendo de la rama que estemos analizando.
El crecimiento de la población mundial trae consigo nuevos niveles de demanda
de productos que necesitan ser satisfechos por las compañías que brindan
bienes y servicios.
Entre la alta demanda, la necesidad de disminuir costos de fabricación, ofertar
productos de calidad y competir con las demás compañías del sector, las
empresas han optado por incluir en sus cadenas de producción procesos
automatizados.
Por automatización industrial debe entenderse el conjunto de procedimientos y
acciones automáticas aplicadas a máquinas, procesos o sistemas con objeto de
conseguir los efectos deseados. Los efectos más relevantes que persigue
cualquier compañía moderna al automatizar sus procesos productivos son, por
un lado, la consecución de un producto de características cada vez más
homogéneas, de mayor calidad y de menor coste y, por otro, responder
rápidamente a un mercado con una demanda de producto variable en cantidad,
flexible en funcionalidad y exigente en prestaciones (Tornil & Gámiz Caro , 2014)
La automatización encuentra campo donde las capacidades humanas llegan a
un límite. El ser humano al realizar actividades físicas de manera repetitiva se
desgasta enormemente y desarrolla afecciones propias vinculadas a la actividad
que desempeña. Una máquina automatizada permite romper estas barreras en
cuanto a tiempo y seguridad y aleja al hombre de actividades que exponen su
condición de salud. A su vez, las máquinas pueden operar en condiciones
extremas mientras mantienen el detalle y la exactitud en cada acción
cíclicamente.
La automatización de procesos disminuye y, en algunos casos, elimina la
presencia humana en cada etapa que lo compone. Es así como la creciente
inclusión de procesos automatizados en la industria a nivel mundial ha dado pie
al desarrollo específico de las capacidades del ser humano. Es decir, la mano de
obra no calificada ha ido disminuyendo conforme las máquinas desempeñan las
actividades básicas y permiten al ser humano desarrollar su capacidad cognitiva
en campos más especializados. De esta manera el verdadero potencial de una
persona se encuentra en el desarrollo cognitivo que posea en una rama del
conocimiento en vez de en un amplio espectro de campos académicos.
Paralelo al proceso de automatización industrial que las compañías desarrollan
se encuentra la inversión que realizan en su capital humano. El capital humano
es el valor dado a las capacidades del personal que labora en una empresa, es
decir, nivel de educación, conocimientos generales, destrezas y experiencias
acumuladas, en función de generar mayor productividad y desarrollo económico
(Coelho, 2019)
La automatización industrial trae consigo unos retos a la educación profesional
actual en cuanto a conocimiento de programación y robótica básica se refiere.
Los estudiantes universitarios deben comprender la importancia y el
funcionamiento de las máquinas programables en la actualidad. La
automatización y la robótica, ambas enfocadas a ámbitos industriales, requieren
del raciocinio lógico del estudiante para entender, analizar, definir, programar y
testear rutinas utilizadas en la industria productiva.
El estudiante, futuro profesional capacitado en las ramas de la automatización
industrial, debe involucrarse directamente con los manipuladores industriales y
comprender desde su morfología hasta su funcionamiento a través del contacto
con los mismos de primera mano y disponiendo de ellos experimentar
prácticamente.
JUSTIFICACIÓN
EI robot industrial es un manipulador multifuncional, reprogramable, de
posiciones o movimientos automáticamente controlados, con varios ejes, capaz
de manejar partes, materiales, instrumentos especializados o herramientas a
través de movimientos variables programados para la ejecución de varias tareas
(González, 2003)
La Universidad de Los Andes adquirió en enero de 2019 un robot industrial de 4
EJES / PARA ENSAMBLAJE / PICK AND PLACE EPSON SCARA T3-401S con
propósitos académicos.
Este manipulador tipo SCARA es uno de los más usados en la industria y resulta
especialmente útil para explicar la funcionalidad e importancia de estos debido a
su programación intuitiva y simpleza de diseño.
Para desarrollar el potencial de la máquina e involucrar activamente al estudiante
en el proceso de enseñanza, es necesario un puente académico en forma de
instrucciones y lineamientos que sirvan para transmitir el conocimiento en un
ambiente seguro, pragmático y experimental sobre la automatización industrial.
La brecha entre saber y saber hacer se ve reducida sino eliminada porque el
estudiante interactúa de primera mano con el manipulador, identificando sus
usos, modo de programación y límites mientras experimenta y aprende usándolo.
OBJETIVOS
General Instalar y acondicionar el manipulador industrial EPSON SCARA T3 y desarrollar
rutinas programables que demuestren y enseñen las funcionalidades de
complejidad básica y media del robot.
Específicos • Instalar el manipulador en la mesa dispuesta para tal fin asegurando una
zona amplia que comprenda el espacio de trabajo óptimo de la máquina.
• Adquirir e instalar en el robot el actuador y el sensor que se usarán en las
rutinas, con sus debidos circuitos de control.
• Diseñar y programar rutinas de dificultad básica y media que instruyan al
estudiante en las funcionalidades del robot y sus aplicaciones en el ámbito
industrial.
METODOLOGÍA
La adquisición de la máquina EPSON fue realizada por el profesor Carlos
Francisco Rodríguez Herrera a finales del año 2018 y su entrega fue realizada
en las instalaciones de la Universidad de Los Andes en febrero de 2019.
La máquina se instala en una mesa con paneles extensibles ubicada en el
laboratorio ML-001 | Co-Laboratorio de Interacción Robótica, Automatización,
visualización y sistemas Autónomos en el edificio Mario Laserna.
La inicialización del sistema, comprobación de la instalación y primeros pasos en
el software Epson RC+ 7.0 son realizados bajo la supervisión de Giovanny
Rincón de la empresa Control de Movimiento, responsable de intermediar entre
la universidad y EPSON.
Se escoge como end effector un electroimán para manipulación y sujeción de
objetos. Se acopla un sensor de ultrasonido al montaje para la detección y
clasificación de objetos en base a la distancia medida.
Una vez comprobados los sistemas y realizada la correcta comunicación entre el
sensor y actuador y la máquina, se procede a familiarizarse con las pestañas más
usadas del software Epson RC+ 7.0. El software es gratuito y no requiere
autorizaciones ni licencias por lo que puede ser descargado en cada uno de los
computadores personales de los estudiantes e incluir el respectivo simulador del
SCARA T3 para desarrollar código en casa y probarlo en el laboratorio cuando
así se requiera.
Una vez familiarizados con las pestañas usadas para el control y programación
del manipulador, se procede a crear las rutinas que ilustren los comandos más
utilizados en aplicaciones industriales que involucren pick and place y ensamble.
El lenguaje usado para la programación es SPEL +.
DESARROLLO
Generalidades del manipulador
Ilustración 1. EPSON SCARA T3
La Ilustración 1 muestra una vista isométrica de la máquina donde se evidencian
sus principales partes: Los dos brazos rotacionales que abarcan el plano x-y el
pistón que se mueven en el eje z, además de un grado de libertad rotacional para
girar el eje sobre sí mismo.
En la Ilustración 2 se observan las conexiones que posee la máquina en la parte
superior del segundo brazo (El que dice EPSON en azul) denominadas Hand I/O.
Es allí de donde se alimentan todos los sensores y actuadores adicionales que
se dispongan. Estos puertos son tipo Bit, es decir, solo toman valores on/off. El
cable negro que se observa es un cable de 15 hilos que maneja la comunicación
entre el hand I/O y el circuito controlador y el Arduino ubicados en la caja blanca
de PLA.
Ilustración 2. Hand I/0
Sensores y actuadores El soporte realizado por el estudiante Juan Pablo Muñoz Hoyos para su proyecto
de grado: Diseño de pinza robótica para la manipulación de material delicado es
utilizado para ubicar tanto el sensor como el actuador seleccionados. El soporte
es el que se muestra en la Ilustración 3.
Ilustración 3. Soporte Juan Pablo Muñoz
Se selecciona un electroimán como end effector considerando la simplicidad del
mecanismo de activación, el tamaño y su bajo costo de adquisición comparado
con otros prospectos como lo son una bomba de succión. Por otra parte, las
pinzas son complejas de manufacturar, lentas y se utilizan para sujetar siempre
el mismo elemento, por lo que su rango de aplicaciones es bastante reducido. El
electroimán es bastante restrictivo en cuanto a que los objetos que manipule
deben ser ferromagnéticos.
Las características principales del electroimán se visualizan en la Ilustración 4.
Según sus especificaciones, puede levantar 2.5 kg cuando se le suministran 12
voltios. Los manipuladores T3 pueden elevar máximo 3 kg por lo que el
electroimán cubre casi la totalidad del rango de pesos que maneja la máquina si
se tiene en cuenta que el soporte pesa 0,5 kg.
Ilustración 4. Especificaciones electroimán
En la Ilustración 5 se puede observar cómo se acopla el electroimán al soporte.
La sujeción se logra a través de un tornillo M3 que atraviesa el soporte desde la
parte superior hasta la inferior y se enrosca en un agujero en el centro del
electroimán. Se usan arandelas de ambos lados del soporte y un resorte que
abraza el tornillo y va desde la arandela inferior hasta la parte superior del
electroimán.
La función de este resorte es simple pero fundamental; se encarga de asegurar
que la aproximación a las piezas no se realice por un mecanismo rígido sino uno
amortiguado que permite una buena sujeción sin afectar la integridad de ninguna
parte de la máquina o agregados. El resorte es de constante k necesaria para no
generar momentos grandes sobre la máquina cuando se comprime varios
milímetros ni para perder la deseada orientación vertical en el movimiento.
Ilustración 5. Montaje electroimán
Se escoge un sensor de distancia de ultrasonido para retroalimentar a la máquina
de los objetos sobre los cuales se posa. En la Ilustración 7 se muestran las
especificaciones del sensor, el cual, en nuestro caso, corresponde a la referencia
HY-SRF05.
Los beneficios de este tipo de sensor son su gran precisión y el amplio rango
dentro del cual se comporta eficazmente. Por otro lado, sus defectos radican en
su gran tamaño, complicando la medición precisa de la distancia a objetos
pequeños; y la sensibilidad al cambio de ángulos lo que obliga a medir siempre
paralelo a la superficie de mayor área del objeto.
En la Ilustración 6 podemos detallar el montaje del sensor a una caja de PLA
impresa en 3D y esta a su vez acoplada al soporte. El agarre se realiza con dos
tornillos con sus respectivas tuercas y arandelas que aprisionan la caja contra el
soporte y limitan totalmente el movimiento.
Ilustración 6. Montaje sensor ultrasonido
Ilustración 7. Especificaciones sensor ultrasonido
Reconocimiento de objetos Para que el robot sea capaz de reconocer qué forma (triángulo, círculo o
cuadrado) tiene el objeto que se encuentra debajo del end-effector se creó la
siguiente estrategia:
● Usar el sensor de distancia por ultrasonido HY-SRF05, el cual es capaz
de medir objetos a una distancia entre 2cm y 450cm y con una precisión
de 2mm, lo cual realiza emitiendo un pulso de ultrasonido y midiendo el
tiempo que le toma volver al receptor que incluye el sensor. En la
Ilustración 8 se puede observar una fotografía de dicho sensor.
Ilustración 8. Fotografía del sensor de distancia por ultrasonido HY-SRF05
● Construir las piezas de tal manera que todas las que desde una vista
superior sean iguales (triángulo, círculo o cuadrado) tengan una altura
específica asociada a esa forma, y que las alturas asociadas a cada forma
sean diferentes entre sí. Esto, con el objetivo de que el robot pueda
distinguir las piezas midiendo la altura de estas con el sensor de
ultrasonido.
Se decidió que estas serían las alturas para cada pieza:
● Triángulos: 6cm
● Cuadrados: 4cm
● Círculos: 2cm
Basados en esto se procedió a programar el Arduino para que este realice el
reconocimiento de las piezas y le indique al I/O del robot cuál de las tres formas
identificó.
Para esto se realizó inicialmente una calibración que consistió en montar todo el
circuito sobre el soporte del end-effector, desplazar el eje z del robot hasta la
altura máxima que permite el montaje y hacer mediciones de distancia con el
sensor de ultrasonido mientras se ubicaban los tres tipos de formas debajo de él.
Gracias a esto se obtuvieron rangos de distancias correspondientes a cada una
de las tres figuras. En la Ilustración 9 se observa el montaje utilizado para hacer
la calibración.
Ilustración 9. Montaje para calibración del reconocimiento de las piezas
Posteriormente, se crearon un par de funciones en el código del Arduino que,
grosso modo, realizan 30 mediciones de distancia en un tiempo muy corto
(aproximadamente 300 ms), las promedian, comparan ese promedio con los tres
rangos de distancias que corresponden a cada pieza para identificarla, y
finalmente enciende la salida digital correspondiente que le comunica al robot
cuál figura se encuentra debajo de su end-effector. El código completo se
encuentra en los Anexos.
Circuito El EPSON Scara T3 cuenta con 24 entradas digitales que operan en un rango de
12 a 24V, con 18 salidas digitales que operan en un rango de 0 a 24V (corriente
máxima de 100mA continuos) y con una fuente de 24V y 500mA. Debido a que
el sensor de ultrasonido propuesto opera con 5V, lo cual está fuera del rango de
voltajes de las entradas digitales y de la fuente, no es posible conectarlo
directamente al robot. Adicionalmente, incluso si se pudiera conectar
directamente, el lenguaje de programación SPEL+ con el que funciona el entorno
de desarrollo del robot no cuenta con librerías o funciones que faciliten la
comunicación con el circuito integrado en el sensor, así que el código para
hacerlo funcionar podría ser excesivamente largo y tedioso de realizar. Por esta
última razón se decidió utilizar un Arduino como intermediario entre el HY-SRF05
y el brazo robótico, pues es el lenguaje de programación usado en esta placa de
desarrollo permite hacer uso del sensor fácilmente.
Sin embargo, debido a que el Arduino opera también con 5V, no puede
conectarse directamente al I/O y se hace necesario construir un circuito que
permita regular los voltajes del robot y de los pines del Arduino para que la
comunicación entre los dos sistemas sea posible.
Adicional a esto, existe el problema de que el actuador que se usó (un
electroimán) tampoco opera con el voltaje de la fuente, y la corriente que
consume es mayor a los 100mA que permiten las salidas digitales del I/O, por lo
que, al igual que el Arduino y el sensor, requiere de un circuito adicional para ser
controlado por el robot.
Se construye entonces un circuito capaz de solucionar estos dos requerimientos,
y cuyo diagrama se muestra en la Ilustración 10.
Ilustración 10. Esquema del circuito diseñado
Se usaron los siguientes componentes para su construcción:
● 2 x Regulador de voltaje positivo de 8 voltios LM7808
● 1 x Regulador de voltaje positivo de 5 voltios LM7805
● 2 x Disipador de calor de aluminio + tornillo para LM780X
● 1 x Amplificador operacional cuádruple LM348N
● 1 x Mini relé 5VDC activación y 30VDC 3A operación (HK4100F-DC5V-
SHG)
● 1 x resistencia de 100 Ω
● 1 x bornera de dos terminales
● 1 x Fusible fast blow de 500 mA 250V
● 2 x soportes para fusible
● 1 x baquelita universal
● Cable para breadboard
A continuación, se describe la función de los componentes más importantes del
circuito:
Fusible fast blow de 500 mA 250V: Se usa para proteger la fuente de voltaje
del robot en caso de que haya un corto o algún problema con el circuito que lo
lleve a consumir más de 500mA de corriente, que es el límite máximo que permite
la fuente integrada en el brazo. En caso de que se supere este límite, el fusible
se quemará y detendrá el flujo de corriente a todo el circuito.
Mini relé 5VDC activación y 30VDC 3A operación: Se usa como switch para
encender y apagar el electroimán. Este componente permite alimentar el
electroimán mediante la fuente de voltaje y un regulador, sin preocuparnos por el
límite de corriente (100mA) que tienen las salidas del I/O. Su activación, que sólo
consume 50mA, sí se realiza mediante una de estas salidas digitales.
Reguladores de voltaje de 8 voltios: Uno de estos reguladores se utiliza
exclusivamente para alimentar el electroimán (que opera con 12V o menos). El
otro regulador se utiliza para alimentar el Arduino, puesto que los 24V que
entrega la fuente del robot son demasiado para alimentarlo.
Amplificador operacional cuádruple LM348N: Se usan 3 de los 4
amplificadores incluidos en este circuito integrado. Su función es transformar el
voltaje de la señal digital que entregan las salidas digitales del Arduino, las cuales
son de 0V o 5V, de tal manera que cuando una salida del Arduino entregue 5V,
la salida del amplificador entregue aproximadamente 24V, y que cuando la salida
del Arduino entregue 0V, la salida del amplificador entregue aproximadamente
0V. Esto surge a raíz de que las entradas digitales del robot sólo reconocen
voltajes entre 12V y 24V (cuando miden más de 12V su estado es ON, y cuando
miden menos su estado es OFF) por lo que los 5V del Arduino son insuficientes
para activarlas y comunicarse. Los amplificadores se conectan en configuración
Open Loop para permitir esta funcionalidad.
Regulador de voltaje de 5V: Cumple dos funciones. Una de ellas es alimentar
el Output Common del robot, de manera que la salida digital que activa el relé
funcione con estos mismos 5V. Su otra función es ser la señal de referencia de
las entradas inversoras de los amplificadores operacionales de tal manera que,
si a la entrada no inversora del amplificador se le aplica un voltaje menor a 5V, el
voltaje de salida será 0V, y si se le aplica más de 5V, el voltaje de salida será
24V.
Resistencia de 100 Ω: Se conecta en serie con la alimentación del Arduino,
formando un divisor de voltaje en el que aproximadamente 2V quedan en la
resistencia y 6V quedan en el Arduino. Además, actúa como una tierra flotante
para el Arduino, de manera que los voltajes de las salidas digitales del Arduino
respecto a la tierra de la fuente sean (0V+VoltajeResistencia) y
(5V+VoltajeResistencia) en sus estados LOW y HIGH respectivamente, es decir,
2V y 7V aproximadamente. La utilidad de esto es que estas salidas digitales son
las que se usan como referencia para la entrada no inversora de los
amplificadores, y para que estos funcionen como deben es necesario que, en su
estado HIGH, el voltaje de referencia sea mayor a 5V y en su estado LOW sea
menor a 5V, lo cual se logra con esta resistencia.
En la Ilustración 11 se muestra una fotografía del circuito terminado y conectado.
Ilustración 11. Fotografía del circuito conectado con el Arduino, el sensor y el electroimán.
A continuación, en la Ilustración 12 se muestra un diagrama de flujo que explica
la comunicación entre el sensor y el robot a través de este circuito.
Ilustración 12. Diagrama de flujo de la comunicación entre sensor y robot en una rutina normal
Cajas conexiones y soporte Los compartimentos donde residen tanto el sensor como el Arduino y el circuito
son cajas hechas en PLA e impresas en 3D. A diferencia de la caja del sensor,
la caja del circuito no está sujetada con tornillos o tuercas sino con una pestaña
creada en la parte inferior de la misma, la cual se inserta en una de las tres
ranuras del soporte y limita el movimiento en xy, y en menor medida, en z.
La caja del circuito tiene como entrada el cable de 15 hilos proveniente del hand
I/O de la máquina y de salida posee dos agujeros en extremos opuestos por
donde sale la comunicación del Arduino al sensor y, del otro lado, del circuito al
electroimán.
Aplicaciones. Rutinas. Experiencias Se diseñaron y construyeron tres diferentes tipos de objetos dependiendo de su
geometría. Se crearon tres discos, tres paralelepípedos rectangulares con dos
caras cuadradas (que serán llamados “cubos”) y tres prismas triangulares
regulares (que serán llamados “triángulos”), para poder ser usados en las
diferentes rutinas y experiencias programadas.
Ilustración 13. Pieza cubo
Ilustración 14. Pieza triángulo
Ilustración 15. Pieza disco
Toda la madera en la pieza fue debidamente sellada y barnizada a su vez que el
hierro fue protegido con una pintura anticorrosiva, esto buscando alargar la vida
útil de las piezas.
Las experiencias programadas para ilustrar las funcionalidades del robot se
describen brevemente en la Ilustración 16. Estas están enfocadas a comandos
de movimientos a distintas velocidades y aceleraciones a su vez que se
interactúa con la información que brinda le sensor y se juega con la activación
precisa del actuador a cada momento.
Título Descripción Aprendizaje Herramientas
necesarias
Movimientos básicos y de
aproximación fina
Se ubican figuras de madera en lugares preestablecidos y se le instruye al estudiante a organizarlos de diferentes maneras
Identificar los modos de uso de la máquina. Introducir los diversos comandos de movimiento. Asignar y nombrar coordenadas en el espacio como puntos personalizados. Modificar la aceleración y velocidad de cada movimiento de manera independiente. Involucrar la activación de un actuador en base condicionales establecidos. Introducir el concepto de Home
Robot SCARA T3. Software EPSON RC 7+. Actuador/End Effector Electroimán. Figuras en madera con chapilla metálica
Control de acciones con
señales
Se tienen posiciones preestablecidas para las figuras, pero no se determina que figura va en cada caso. Así se le instruye al estudiante que con ayuda del sensor determine la figura y le asigne un punto de llegada
Emular un caso básico de pick and place donde se debe hacer distinción de las partes y su respectiva disposición final. Aprender a comunicar los sensores con el robot e involucrar esa información en los condicionales del código. Utilizar la retroalimentación de sensores para darle mayor flexibilidad al código escrito.
Sensor ultrasonido. Figuras en madera con chapilla metálica con diferente espesor.
Instrucciones de alto nivel
Se asigna una posición Home establecida desde donde se toman las medidas de todas las piezas que llegan, simulando una banda transportadora. Se le instruye al estudiante que las organice en matrices de empaque personalizadas.
Introducir la función Pallet. Programación de empaque simultaneo guardando la información del estado de cada matriz a cada momento.
Recipientes o contenedores donde empacar de manera organizada cada tipo de figuras
Ilustración 16. Experiencias
Las experiencias expuestas son fáciles de replicar y brindan al estudiante un
entendimiento mucho más amplio sobre la robótica industrial y sus aplicaciones.
A su vez, se familiariza con el lenguaje SPEL mientras desarrolla sus
capacidades lógicas y cognitivas en la resolución de problemas.
CONCLUSIONES
• Se instaló de manera segura y confiable el manipulador industrial en una
mesa con el espacio y se acondicionó con el actuador y las herramientas
adecuadas para aprovechar las funcionalidades de la máquina sin perder
de vista la movilidad del sistema hacia otros laboratorios o salones de
clase para su exposición.
• Se diseño, construyó y probó con resultados favorables un circuito de
control que permite la comunicación entre sensores y actuadores con el
microcontrolador del manipulador industrial.
• Se cumplió con el objetivo de crear rutinas sencillas que implementen los
comandos más usados en los procesos de pick and place para desarrollar
demostraciones llamativas que interesen a los estudiantes a la vez que les
enseñen las capacidades de un manipulador industrial
• Se determinó que el lenguaje de programación SPEL+ es intuitivo y
permite programar desde los movimientos más simples hasta tareas
largas y complejas, por lo que su enseñanza sería muy útil en el ámbito
de manipuladores robóticos y automatización industrial.
RECOMENDACIONES Y TRABAJO FUTURO
• Las rutinas programadas y las experiencias retratadas a lo largo de este
proyecto no pudieron ser probadas con un grupo control del cual tomar
retroalimentaciones sobre la asertividad o error de este método de
enseñanza. Probar estas rutinas con un grupo de estudiantes y analizar
sus comentarios es una manera de mejorar en general tanto las rutinas
como el acercamiento del tema a los estudiantes.
• Con el fin de mejorar la movilidad de toda la maquina y no limitar tanto los
movimientos en el eje z, es relevante analizar la posibilidad de mover la
caja del circuito hacia otra posición donde la interferencia en general sea
menor.
• Para lograr un escenario productivo cada vez más realista, la compra o
adquisición de una banda transportadora y su enlazamiento con el
manipulador industrial a través de aplicaciones de alto nivel que tengan en
cuenta ambas partes del conjunto explicaría de manera nítida las
relaciones que hay entre máquinas en las cadenas de producción.
• Realizar las conexiones a la parte posterior de la máquina en el
STANDARD I/O en vez del HAND I/O permitiría un control mas amplio de
las señales in & out debido a su naturalidad byte y Word de estos puertos
y así probar otra clase de actuadores y sensores.
• Comprar una cámara y programarla para comunicarla con el manipulador
y empezar a trabajar aplicaciones con reconocimiento de imagen donde la
flexibilidad en la automatización y programación de experiencias sea
mucho mayor.
REFERENCIAS Coelho, F. (2019). Significado de capital humano. Recuperado el 05 de 06 de
2019, de Significados: https://www.significados.com/capital-humano/
González, V. (2003). Definición del robot industrial. Recuperado el 05 de 06 de
2019, de Robots industriales:
http://platea.pntic.mec.es/vgonzale/cyr_0204/ctrl_rob/robotica/industrial.ht
m
Salazar López, B. (2016). Procesos Industriales. Recuperado el 05 de 06 de
2019, de Ingenieria Industrial:
https://www.ingenieriaindustrialonline.com/herramientas-para-el-
ingeniero-industrial/procesos-industriales/
Tornil, S., & Gámiz Caro , J. (06 de 2014). La robótica industrial en el ámbito de
la automatización global: estado actual y tendencias. Recuperado el 05
de 06 de 2019, de Tecnica Industrial:
http://www.tecnicaindustrial.es/TIFrontal/a-5832-la-robotica-industrial-
ambito-automatizacion-global--actual-tendencias.aspx
ANEXOS
Código del Arduino
/*
PROGRAM USED FOR IDENTIFYING THE FIGURE UNDERNEATH THE ULTRASONIC
SENSOR AND NOTIFYING THE EPSON SCARA T3 ROBOT
Tested with HY-SRF05
Assuming a room temp of 20 degrees centigrade
The circuit:
* VVC connection of the sensor attached to +5V
* GND connection of the sensor attached to ground
* TRIG connection of the sensor attached to digital pin 12
* ECHO connection of the sensor attached to digital pin 13
*/
const int TRIG_PIN = 12;
const int ECHO_PIN = 13;
void setup() {
// Initialize serial communication:
Serial.begin(9600);
// Set pinmode of the pins used for the ultrasonic sensor and the
communication with the robot I/O
pinMode(TRIG_PIN,OUTPUT);
pinMode(ECHO_PIN,INPUT);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
}
// Function medirDistancia()
// Returns distanceCm of type double, which contains the distance
measured by the ultrasonic sensor in centimeters
double medirDistancia(){
double duration, distanceCm;
//Trigger the TRIG_PIN of the ultrasonic sensor in order for it to
start measuring
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// pulseIn reads the pulse in the ECHO_PIN (waits for the pin to
change state and starts measuring time until it changes states again)
in microseconds
duration = pulseIn(ECHO_PIN,HIGH);
// convert the time into a distance, based on the speed of sound on
air at 20C and 1 atmosphere of pressure
distanceCm = duration / 29.1 / 2.0 ;
//Waits 5 ms in order to allow residual reflections of emitted
ultrasound to dissipate before starting to measure distance again
delay(5);
return distanceCm;
}
// Function reconocerObjeto()
// Returns an int called "object" which represents the shape of the
figure being measured (circle, square, triangle or none of them)
int reconocerObjeto(){
int contador = 0;
double promedio = 0;
int objeto = 0; //0 means there is no recognized object below the
sensor
double sumaDistancias = 0;
double suma = 0;
//This loop makes 30 measurements of the distance at which the
object is at from the sensor and sums them, ruling out the outlier
values (those which can't correspond to any of the shapes) and
keeping count of the number of valid measurements
for(int i=0; i<30; i++){
int distanciaActual = medirDistancia();
if(!(distanciaActual < 4 || distanciaActual > 11)){
contador++;
sumaDistancias += distanciaActual;
}
suma += distanciaActual;
}
// This finds the average of the valid distances measured in the
last step
if(contador>0){
promedio = sumaDistancias/contador;
}
else{
promedio = suma/30;
}
//This lines print the average measured distance to the Serial
console
Serial.print(promedio);
Serial.print(" ");
// This determines which of the objects is present based on the
distance range in which the averaged measurements lie
if(promedio>=4 && promedio <= 7){
objeto = 1; //1 means triangle
//This changes to HIGH the state of the pin which connects to the
robot input associated with the triangle shapes
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
//This lines print to the console that the object was recognized
as being a triangle
Serial.println("Triángulo");
}
else if(promedio >=7.5 && promedio <= 9.3){
objeto = 2; //2 means square
//This changes to HIGH the state of the pin which connects to the
robot input associated with the square shapes
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
//This lines print to the console that the object was recognized
as being a square
Serial.println("Cuadrado");
}
else if(promedio >=9.6 && promedio <= 11){
objeto = 3; //3 means circle
//This changes to HIGH the state of the pin which connects to the
robot input associated with the circular shape
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
//This lines print to the console that the object was recognized
as being a circle
Serial.println("Círculo");
}
else{
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
//This lines print to the console that it was determined that no
object is present
Serial.println("Ninguno");
}
return objeto;
}
// loop() function which is executed in a loop until as long as the
Arduino is powered on
void loop()
{
// this line calls the function "reconocerObjeto()"
reconocerObjeto();
}
Código de la experiencia 1
Function main Motor On Power High Speed 40 Accel 40, 40 On Medicion Go UpCirculo On Electroiman Go PickCirculo Go UpCirculo Speed 10 Accel 10, 10 Go UpTorre Go TorreCirculo Off Electroiman Wait 1 Speed 40 Accel 40, 40 Go UpTorre Go UpCuadrado On Electroiman Go PickCuadrado Go UpCuadrado Speed 10 Accel 10, 10 Go UpTorre Go TorreCuadrado Off Electroiman Wait 1 Speed 40 Accel 40, 40 Go UpTorre Go UpTriangulo1 On Electroiman Go PickTriangulo1 Go UpTriangulo1 Speed 10 Accel 10, 10 Go UpTorreTriangulo1 Go DownTorreTriangulo1 Off Electroiman
Wait 1 Speed 40 Accel 40, 40 Go UpTorreTriangulo1 Go UpTriangulo2 On Electroiman Go PickTriangulo2 Go UpTriangulo2 Speed 10 Accel 10, 10 Go UpTriangulo2Giro Go UpTorreTriangulo2 Go DownTorreTriangulo2 Off Electroiman Wait 1 Go UpTorreTriangulo2 Off Medicion Motor Off Fend
Código de la experiencia 2
Function main2 If Motor = Off Then Motor On EndIf Power High Off Electroiman Off Medicion Speed 20 Accel 20, 20 Home On Medicion Do Wait 2 If Sw(Circulo) Then Wait 4 On Electroiman Go Ready
Go TakeCirculo Go Ready Go DropCirculoArriba Go DropCirculoAbajo Off Electroiman Wait 1 Go DropCirculoArriba Home ElseIf Sw(Cuadrado) Then Wait 4 On Electroiman Go Ready Go TakeCuadrado Go Ready Go DropCuadradoArriba Go DropCuadradoAbajo Off Electroiman Wait 1 Go DropCuadradoArriba Home ElseIf Sw(Triangulo) Then Wait 4 On Electroiman Go Ready Go TakeTriangulo Go Ready Go DropTrianguloArriba Go DropTrianguloAbajo Off Electroiman Wait 1 Go DropTrianguloArriba Home EndIf Loop Fend