Máquina de dibujo

En esta entrada vamos a construir un robot capaz de dibujar sobre un papel. Para ello emplearemos el sistema de automatización CNC (control numérico computarizado). Este sistema permite almacenar un conjunto de instrucciones que el robot ejecutará secuencialmente para completar el dibujo.

Usando el software adecuado, podemos generar esta secuencia de instrucciones a partir de una imagen jpg, por ejemplo

La mayor parte de las piezas que usaremos son elementos estándar como perfiles de aluminio o deslizadores y poleas. Sin embargo, para realizar el mecanismo de subida y bajada del lápiz, necesitaremos algunas piezas especiales que podemos realizar con una impresora 3D.

Características generales

  • Alimentación: 12V
  • Consumo máximo: 2A
  • Superficie de trabajo: 100 x 100mm (fácilmente expandible usando unos perfiles y correas más largos)
  • Elemento de dibujo: bolígrafo, lápiz, rotulador, etc.

Una vez montada, nuestra máquina de dibujo tendrá el aspecto siguiente:

Nuestra máquina de dibujo funcionando

Montaje

Básicamente, nuestro robot está compuesto por dos ejes idénticos (ejes X e Y) montados perpendicularmente. Estos ejes se encargan de posicionar el lápiz sobre el papel en las coordenadas adecuadas. El lápiz tiene dos posiciones, en la posición ON el lápiz está sobre el papel y deja su marca, en la posición OFF el lápiz está levantado y no pinta. A este movimiento vertical lo llamaremos eje Z.

Los ejes X e Y están compuestos por un perfil de aluminio 2020, un slide o deslizador, un motor Nema 17 y una polea. El montaje es sencillo, tal como se ve en la imagen. Notar que el eje X está montado con el motor a la derecha y el eje Y está montado con el motor a la izquierda.

Antes de meter el deslizador en el perfil hay que aflojar los tornillos que sujetan las ruedas. Una vez metido el deslizador en el perfil, apretar los tornillos para que no quede holgura pero que se mueva fácilmente.

Tenemos que cortar la correa dentada a una longitud suficiente para que circule entre el motor y la polea. La cerramos y anclamos sobre el deslizador, ver imagen. Es importante que quede suficientemente tensa para que el deslizador se mueva sin problemas.

Detalle del eje Y

Los ejes X e Y se unen usando dos tornillos M4 y tuercas de martillo. El eje X se aloja sobre la plataforma del deslizador del eje Y dejando espacio suficiente para el paso de la correa del eje Y.

Los ejes X e Y se unen con tornillos M5

Debemos fijar el eje Y a la base con tornillos M4 y tuercas de martillo, separándolo con un par de arandelas para que los tornillos que sujetan las ruedas del deslizador no rocen sobre la base en su desplazamiento.

Arandelas de separación en la base del eje Y

El eje Z está formado por unas piezas especiales impresas en impresora 3D. Si tienes impresora y quieres imprimirlas, puedes descargar el archivo .stl aquí.

El eje Z se aloja sobre el deslizador del eje X con dos tornillos M4 de cabeza avellanada. Incluye un servo MG90S y el soporte para el lápiz. El servo se fija con tornillos M2 y el soporte del lápiz con tornillos M3. La pieza fija del eje Z aloja dos rodamientos de 3mm a través de los que pasa el eje del basculante. El brazo del servo empuja al basculante para subir y bajar el lápiz.

Como eje del basculante usaremos un tornillo M3 con grover-arandela-tuerca para evitar que se afloje.

Eje del basculante del eje Z
Detalle del eje Z

Conexiones

El primer paso será alojar la CNC Shield sobre la placa de Arduino UNO como se ve en la imagen

Dado que sólo necesitamos controlar dos motores paso a paso (ejes X e Y), sólo necesitamos instalar dos controladores A4988 sobre la shield. Antes de instalar los controladores, debemos colocar los tres jumpers que controlan el microstepping. Hay que poner tres jumpers bajo cada controlador. Ahora podemos insertar los controladores en los conectores dupont hembra marcados como X e Y, quedando los conectores Z y A vacíos. Hay que tener en cuenta la posición del controlador, mantener el potenciómetro de ajuste en la parte inferior, como se ve en la figura anterior.

Las conexiones a realizar podemos verlas en la siguiente figura

Los motores paso a paso Nema 17 los conectamos directamente a la shield con el cable que incluyen poniendo el cable negro en la parte inferior. Los tres cables del servo se conectan de la siguiente manera: el negro a GND, el rojo a 5V y el naranja a Z+ como se ve en la figura. Dado que el cable del servo tiene un conector de 3 pines hembra, necesitaremos un cable dupont de 3 hilos macho-hembra para conectar el servo a la shield.

Es conveniente distribuir los cables de los motores con bridas evitando que puedan enredarse con las correas pero que tengan suficiente holgura para permitir el movimiento de los deslizadores.

El alimentador de 12V debemos conectarlo a la entrada de alimentación de la shield. OJO, no al conector de alimentación del Arduino. Hay que cortar el conector del alimentador y conectar los cables a la shield. Cuidado con la polaridad, es importante conectar el positivo y el negativo en los terminales + y – respectivamente. Probablemente necesitaremos un multímetro para averiguar la polaridad de los cables.

Programación

Vamos a usar una distribución de GRBL para Arduino especial. Está modificada para soportar un servo sobre el eje Z. Puedes descargarla aquí.

Si tienes alguna otra distribución de GRBL en tu máquina, deberías borrarla. Mira si en la carpeta «Documentos/Arduino/libraries» hay alguna carpeta llamada GRBL, si la hay, bórrala.

Descomprimir el archivo, abrir la carpeta MIGRBL y abrir el archivo MIGRBL.ino con el IDE de Arduino. Conectar la placa de Arduino UNO al ordenador con su cable USB y subir el archivo. Esto es todo, nuestra máquina está deseando empezar a dibujar.

Software

Para manejar el robot podemos usar cualquier programa de trazado laser compatible con GRBL, por ejemplo LaserGRBL. Esta es una herramienta gratuita que permite obtener el código GRBL desde archivos de imagen (jpg, png, etc) y enviarlos directamente a un dispositivo compatible. En la web del programador tenemos un manual de uso muy fácil de leer. Una vez instalada la aplicación, conectaremos con nuestro robot con el botón Conectar (arriba a la izquierda) y ya podemos probar manualmente el funcionamiento de los ejes X e Y con los controles destinados para ello. A estas alturas, nuestros motores ya deberían responder posicionándose adecuadamente. Debemos mover los deslizadores con la mano para situarlos en la posición inicial (coordenadas 0, 0) de la máquina, el eje X totalmente a la izquierda y el eje Y totalmente abajo.

LaserGRBL – Jogging

Antes de enviar nuestro primer dibujo tenemos que ajustar el eje Z. Tenemos que posicionar el brazo del servo para que levante y baje el lápiz cuando sea necesario. Para ello crearemos dos botones personalizados para levantar y bajar el lápiz manualmente. Pinchamos con el botón derecho en la barra inferior del programa y cogemos la opción Agregar botón personalizado.

Introducimos los parámetros indicados en la siguiente imagen como Laser ON y aceptamos. Repetimos la operación para añadir otro botón Laser OFF. Pulsando estos botones deberíamos notar como el servo del eje Z se mueve.

Si ya hemos montado el basculante del eje Z, ahora debemos desmontarlo para ajustar el servo. Pinchamos sobre el botón Laser On para que el servo se ponga en la posición «lápiz abajo» y atornillamos el brazo del servo en posición horizontal. Si ahora pinchamos en el botón Laser OFF veremos como el brazo del servo sube cierto ángulo. Ahora ya podemos montar el basculante del eje Z.

Nuestro primer dibujo

Si todo ha ido bien ya podemos empezar a dibujar. Vamos a seguir algunos pasos sencillos para realizar nuestro primer dibujo. Es importante que usemos dibujos silueteados, nuestra máquina no es capaz de dibujar degradados, por ejemplo podemos usar este (o cualquier otro, podemos buscar en google «silueta popeye», por ejemplo).

Si pinchamos con el botón derecho sobre la imagen anterior podemos descargarla a nuestro ordenador. En el programa LaserGRBL, en el menú Archivo cogeremos la opción Abrir archivo e introducimos los parámetros que se indican en la imagen

Pinchamos en Siguiente y se muestra la siguiente ventana

Es importante poner el parámetro Laser ON en M3 y Laser OFF en M5 ya que son los comandos que usa la distribución de GRBL que estamos usando para mover el servo. También son importantes los parámetros S-MIN y S-MAX que indican el ángulo que debe mover el servo para mover el basculante del eje Z. En la parte inferior indicaremos el tamaño al que queremos hacer el dibujo, es importante no poner un tamaño mayor de 100 x 100 mm ya que es el límite de nuestra superficie de trabajo. Por fin, pincharemos en Crear.

Ahora solo nos queda pinchar en el botón Ejecutar programa para que nuestra máquina empiece a dibujar. Antes de empezar a dibujar deberíamos asegurarnos de que el lápiz se encuentra en la posición de inicio (deslizadores a la izquierda y abajo) y que tenemos un papel esperando a ser dibujado.

Aquí podemos ver algunos ejemplos de dibujos pintados con nuestro flamante robot

También te podría gustar...

9 Respuestas

  1. Carlos dice:

    Que gran artículo, gracias por compartirlo, voy a intentar hacerlo.

  2. Naiara dice:

    Donde puedo encontrar más vídeos o dibujos acabados de esa máquina? Alguna web o red social?

    • Vicente Gras dice:

      Hola Naiara.
      No tenemos más vídeos de la máquina, la desmonté hace tiempo. ¿Te interesa conocer algún aspecto en particular?

  3. iaburn dice:

    Hay algún vídeo con instrucciones detalladas para el montaje? Gracias.

  4. Alex Bernal dice:

    gran articulo, quiero hacerlo pero tendrían mas imágenes de como debe quedar la placa de Arduino sin montar la placa CNC shield

    • Vicente Gras dice:

      Hola Alex. La placa de Arduino no tiene mayor interés. Se trata de una placa de Arduino UNO tal cual, sin ninguna modificación. Puedes usar una original o una compatible, no tiene importancia en este proyecto.

  5. DIEGO MONTAÑO dice:

    que tipo de lapicero husaste

    • Vicente Gras dice:

      Las pruebas las hicimos con un boli Bic. Puedes usar cualquier tipo de lápiz o boligrafo, los rotuladores no nos dieron buen resultado porque cuando se para el rotulador sobre el papel, suelta tinta y deja manchas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *