Introduction: Pick & Place Gantry

About: Mechatronic Engineer

Sistema de tres ejes lineales desarrollado para tomar y posicionar objetos metálicos menores de 2.5kg, desarrollado mediante un sistema lógico en LabView con su respectiva HMI y operado con motores de pasos con su respectivo arduino y drivers.

Step 1: Material Requerido

Necesitaras el siguiente material mecánico y electrónico para desarrollar el proyecto.

Productos Mecánicos

  • Banda Dentada Gt2 4 metros
  • Polea Dentada Gt2 2 piezas
  • Rodamiento 608zz 6 piezas
  • Rodamiento Lineal SC8UU 8 piezas

Productos Electrónicos

  • Motores Nema 17 3 piezas
  • Drivers A4988 4 piezas
  • Arduino Uno 1 pieza
  • 1 Electroimán
  • 1 CNC Shield para Arduino
  • Sensor limit switch 2 piezas
  • Relevador 5V
  • Fusible 2.5A
  • Fuente de poder 14V, 4A 1 pieza

Extra:

  • Para facilitar el maquinado de nuestras piezas, se utilizaron perfiles de aluminio de 20x20 y elementos impresos en 3D. Estos sistemas pueden sustituirse por elementos maquinados y otro tipo de perfiles o madera.

Además, se necesita de una computadora con LabView instalado y sus respectivos controladores para Arduino. En nuestro caso, se utilizó LIFA

Step 2: Sistema Mecánico - Estructura

El primero modelado que se realizó fue el ensamble de la estructura principal, la cual tiene como medidas de perfil 90x60x40cm. Para esto se usó una estructura de tipo T Slot.

Para fijar la estructura, se diseñaron soportes que cuentan con 2 tornillos y un tornillo en medio para mejorar la estabilidad de la estructura. Los soportes fueron diseñados y posteriormente impresos.

Step 3: Sistema Mecánico - Movimiento Eje X & Y

En los dos ejes principales, es decir eje X y eje Y se usaron dos guías lineales de 8 mm de diámetro para baleros del mismo diámetro, los baleros que se usaron fueron los SC8UU.

Posteriormente se diseñaron e imprimieron dos soportes para dichas guías lineales, los cuales eran adaptables a los perfiles de aluminio y a su vez sostenían firmemente las guías.

Un segundo diseño fue realizado para sujetar los baleros a la guía, se utilizaron dos baleros por linea para facilitar el desplazamiento de la misma.

Un tercer diseño para las guías, más cortas empleadas para el movimiento en Y fue implementado, el cual se sujetaba del segundo diseño y a su vez sujetaba las dos guías con sus respectivos baleros.

Step 4: Sistema Mecánico - Motores

Una parte fundamental, es la ubicación y sujeción de los tres motores a pasos que realizarán los desplazamientos. Para ello se emplearon los maquinados mostrados en las imágenes, los cuales nos permiten sujetar los motores y los dispositivos empleados para realizar el desplazamiento mediante la banda dentada.

Step 5: Sistema Mecánico - Eje Z

Para el movimiento en eje Z, se imprimió un sistema piñón cremallera que permitía una mayor precisión en nuestro sistema Pick and Place.

Step 6: Sistema Eléctrico

El microcontrolador Arduino Uno fue utilizado para el control de todo el proyecto, se realizó una comunicación con el software Labview que se explicará más adelante. La tarjeta tiene 14 entradas y salidas digitales de las cuales utilizamos seis como salidas para indicar la dirección y el paso a cada motor, una salida para dar la señal de encendido al electroimán, y dos entradas para la detección de los sensores en la posición home. Las salidas del arduino proporcionan un voltaje de 5V el cual es leído por el driver y el relevadores para indicar ciertas instrucciones.

Para el control de los pasos con el Arduino se utilizó un Driver Pololu A4988, ya que facilita en gran medida el funcionamiento de un motor de pasos. El driver debe estar alimentado con una fuente externa, que para nuestro caso fue de 14V y con el voltaje del arduino de 5V, el esquemático muestra la conexión que realizamos para cada driver y su motor de pasos.

  • La CNC Shield utilizada facilita las conexiones necesarias para utilizar los Driver A4988 ya que simplemente se conectan las 4 entradas de los motores a pasos tal y como se muestra en la imagen, 1 driver es necesario por motor.
  • Los limitswitches empleados son utilizado para establecer el origen de nuestro sistema y así evitar que los motores se sobre esfuercen al intentar pasar los límites físico del mismo.

Step 7: Sistema De Software - Comunicación Labview Y Arduino

La programación fue realizada en Labview 2015. Para este proyecto se utilizaron diferentes técnicas de programación. Programación para eventos y creación e implementación de subVI. Esta para reducir el espacio y simplificar la lógica para usuarios que no están familiarizados con el programa.

El primer paso es establecer la comunicación entre el arduino y el Labview. Este paso es primordial ya que de existir un error o un fallo, no tendrán comunicación los motores, lo cual dejaría la grúa inmóvil.

Una vez establecida la comunicación se conectan cada uno de los motores y las respectivas entradas y salidas. Es importante indicar con que # de pin se está comunicando el arduino. Y para los motores diferenciarlos con un # especifico de motor.

Step 8: Sistema De Software - Lógica De Programación

Para facilitar la ejercicio de programación, se utilizaron subVI. Estos ayudan con la limpieza del programa. Cada uno de ellos contiene los diferentes algoritmos que utiliza la grúa para ejecutar los comandos ordenados por el usuario a través de los botones del HMI.

Dentro de cada SubVI se empleó una serie de loops que nos permiten enviar las señales de pasos y dirección al arduino y a traves del cual es transmitido en pulsos a los motores de pasos y permiten su movimiento. Esto depende de cada programador ya que la organización de los diagramas de flujo en labview resulta complicado de transmitir.

Step 9: Consejos Generales

1. Se debe tener cuidado con la fuente de voltaje y los picos de corriente al driver, ya que los pueden quemar si no se manipulan con cuidado, es decir, no desconectar drivers si están alimentados, entre otros.

2. Para ayudar con la limpieza (y por lo tanto simplicidad) del programa es que todos los bloques que utiliza el arduino pueden utilizar un solo cable compartido de entrada Arduino Resource, ahorrando un montón de cables, Sin embargo cada bloque tiene que utilizar su respective bloque de cierre. Para este caso en particular, los subVI fueron muy útiles, pues ahorraron mucho espacio, lo cual hace más simple el proceso de entender y el programa y modificar algo si es necesario.