Introduction: RoboPicasso

Nuestro proyecto, RoboPicasso consiste en una máquina capaz de replicar cualquier imagen en cualquier superficie, es decir, se puede escribir o dibujar con un plumón o pluma cualquier imagen digitalizada. Se puede utilizar cualquier tipo de plumón, pluma, lápiz, entre otros. El área de trabajo de la máquina, es decir, el área en la que se plasmará el dibujo, puede ser cualquier tipo de papel de cualquier tamaño. Es una versión de un plotter que tiene movimientos en el eje X y Y utilizando una banda y dos motores a pasos.

El proyecto es muy versátil ya que se pueden tener múltiples aplicaciones, desde escribir una carta, realizar algún dibujo o incluso realizar circuitos si se utiliza una pluma con tinta conductora. También se podría cambiar la base que sujeta la pluma por otra base diferente. Si se aplicara una base para un diodo de láser también funcionaria como una cortadora láser. El proyecto es muy versátil en ese aspecto.

Step 1: Lista De Materiales

A continuación, se muestran los materiales y cantidades utilizados en el proyecto.

  • (2) Motor NEMA 17
  • (1) 8 mm varilla redonda 7.9 mm 1.5 m
  • (2) GT2 Poleas
  • (10) F623ZZ Balero flange
  • (8) SC8UU Balero lineal
  • (1) Fuente de 12V 2 A
  • (1) Micro Servo SG90 (plus a 250mm cable extender)
  • (1) Arduino UNO
  • (1) CNC shield
  • (2) Pololu a4988
  • (1) GT2 Banda 1.4 metros
  • (2) Perfil de aluminio 20 mm lado
  • (1) Cable usb para Arduino
  • Aluminio para maquinar
  • Tornillos

Step 2: Diseño

Para la elaboración de RoboPicasso, fueron diseñadas piezas que se desarrollaron con diferentes técnicas. Entre estas, se encuentran impresión 3D, corte láser y piezas maquinadas con fresadora.

  • Impresión 3D
  • Corte láser
  • Piezas maquinadas

Step 3: Ensamble De Partes Mecánicas

  1. Se deslizan dos baleros LM8UU en cada varilla. En este caso son 2 para el eje X.
  2. Ahora haremos el mismo proceso de los baleros LM8UU con las dos varillas restantes para formar el eje Y.
  3. Ya con los baleros insertados ahora se atornillan los LM8UU en una base cuadrada (impresa en 3D) para fijar las varillas en el eje X. Lo mismo se hace con las dos varillas restantes para formar el eje Y.
  4. Los motores se atornillan en bases impresas en 3D para que cada motor esté fijado en los ejes X y Y.
  5. Se mide la distancia que cubrirá la banda para las poleas de los motores. La distancia depende mucho de las medidas de los ejes X y Y. Al tener la medida se corta la banda y se unen, formando un círculo por ahora.
  6. La parte difícil: Ahora se utilizarán 4 tornillos de 30 mm tipo M30 para unir las dos bases cuadradas. Dentro de cada tornillo se colocarán rodillos para que se pueda mover la banda.
  7. En este caso se fabricaron 4 rodillos y se utilizaron varias tuercas para que los rodillos estuvieran nivelados a la altura de la polea de los motores.
  8. Antes de atornillar los 4 tornillos M30, primero se colocan los 4 en la base Y se atornillan los rodillos. Al final se nivelan y se necesita tener cuidado al insertarlos a la base del eje X ya que son espacios muy pequeños y de difícil acceso. Ya que estén bien posicionados se atornillan los 4 tornillos M30 para fijar las dos bases. La otra parte complicada es acomodar la banda junto con los rodillos. Lo que se hizo al principio era tener una medida aproximada de la banda y al unir las bases X y Y se estiran y se acomodaron con las poleas de los motores. La forma de la banda ahora será de una cruz o “X” y al final se fija con la base que une las dos varillas del eje Y al dejar dos ranuras: una que marca el comienzo de la banda y la otra el final. Se fijaron al atornillarlos en esa pequeña base.
  9. Ahora se colocará la base que guardará el Arduino. En nuestro caso lo colocamos en la parte izquierda del eje X y los cables se protegieron con termofit para que se vea con más orden el proyecto.

Step 4: Programación

Se utilizaron 5 programas para la elaboración de este proyecto:

  1. Inkscape: programa para edición de imágenes. Después de bajar imágenes de internet se utiliza este programa para filtrar y vectorizar la imagen y tenerlas en formato “.svg”.

Link de descarga: https://inkscape.org/es/descargas/

2. Makercam: página para creación de código G. Esta página permite importar los vectores con formato “.svg” crear recorridos de maquinado y exportar un código G. Se ajusta el tamaño al deseado, se utiliza la función de profile para hacer contornos y pocket para rellenar y se ajusta el paso de bajada para que solo baje una sola vez. Se calcula todo y se exporta el código G.

Link de descarga: http://www.makercam.com/

3. Notepad: una vez que se exporta el código G se remplazan todas las Z positivas por M03S70 y todas las Z negativas por M05 con la función replace all de notepad. Esto es porque esos códigos en el código G son para prender o apagar el usillo en una CNC pero en nuestra maquina eso maneja las posiciones del servo. De esta forma las Z positivas se cambian por la instrucción que sube el servo y las negativas por la que lo baja.

4. Universal Gcode sender: este programa crea una comunicación serial con el Arduino y le manda instrucción por instrucción el código G. También tiene una interface que permite ajustar parámetros, hacer movimientos en cada eje por pasos, mandar instrucciones , llamar la función de homing y visualizar el recorrido de las trayectorias.

***requiere java***

Link de descarga: https://github.com/winder/Universal-G-Code-Sender

5. GRBL-servo-master (v0.9i): Este programa se carga al Arduino y le permite recibir el código G para controlar los motores a pasos por medio del CNC shield y los drivers. Este es un código abierto y puede ser modificado, se intentó modificar para cambiar como hacer la función de homing y para corregir los problemas de que el motor se trabara al recibir frecuencias debajo de 10kHz (en algunos cambios de ruta). Resultó que el software ya tenía una función para corregir el problema de los choques del motor, pero aun que el código consideraba nuestro arreglo de motores (coreXY) al manejarlo no lograba suavizar las trayectorias para este arreglo.

***requiere arduino IDE ***

Link de descarga: https://github.com/misan/grbl-servo

Tips:

Revisar https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9 para configurar mas facilmente el grbl en la interface del universal gcode sender en settings.

Para inkscape revisar ayuda, tutoriales, vectorizar.

Step 5: Electrónica

Se colocó el CNC Shield sobre el Arduino, al igual que los dos drivers Pololu a4988 para los motores.

Se realiza la conexión del servo que consta de tres cables, que van a voltaje, tierra y al pin digital. También se conectan los cuatro cables de los dos motores a pasos en los headers correspondientes X y Y del CNC shield. Se anexa una imagen en la que se ilustran las conexiones mencionadas anteriormente.

Step 6: Pruebas

Una vez realizados los pasos anteriores, se puede proceder a realizar dibujos, cartas, replicar imágenes, tu imaginación es el límite. :)