Cómo configurar GRBL y controlar la máquina CNC con Arduino
Si está pensando o está en el proceso de fabricar su propia máquina CNC, lo más probable es que se encuentre con el término GRBL. Entonces, en este tutorial, aprenderemos qué es GRBL, cómo instalarlo y cómo usarlo para controlar su máquina CNC basada en Arduino.
Además, aprenderemos a usar Universal G-code Sender, un popular software de controlador GRBL de código abierto.
¿Qué es GRBL?
GRBL es un software o firmware de código abierto que permite el control de movimiento para máquinas CNC. Podemos instalar fácilmente el firmware GRBL en un Arduino y obtener instantáneamente un controlador CNC de bajo costo y alto rendimiento. El GRBL usa código G como entrada y genera control de movimiento a través de Arduino.
Para una mejor comprensión, podemos echar un vistazo al siguiente diagrama:
En el diagrama podemos ver dónde tiene lugar el GRBL en el "panorama general" del principio de funcionamiento de una máquina CNC. Es un firmware que necesitamos instalar o subir al Arduino para que pueda controlar los motores paso a paso de la máquina CNC. En otras palabras, la función del firmware GRBL es traducir el código G en movimiento del motor.
Hardware requerido Arduino – Como ya dijimos, necesitamos un Arduino para instalar el GRBL. Específicamente, necesitamos una placa Arduino basada en Atmega 328, lo que significa que podemos usar Arduino UNO o Nano.
Motores paso a paso – Obviamente, los motores paso a paso proporcionan el movimiento de la máquina.
Conductores – Para impulsar los motores paso a paso necesitamos controladores y las opciones comunes cuando se trata de máquinas CNC de bricolaje más pequeñas (que usan motores paso a paso NEMA 14 o 17) son los controladores A4988 o DRV8825.
Escudo Arduino CNC – Para conectar los controladores paso a paso al Arduino, la forma más fácil es usar un Arduino CNC Shield. Utiliza todos los pines de Arduino y proporciona una manera fácil de conectar todo, los motores paso a paso, el eje/láser, los interruptores de límite, el ventilador de refrigeración, etc.
Tenga en cuenta que estos son solo los componentes electrónicos básicos que necesitamos para entender cómo funciona una máquina CNC.
En realidad, como ejemplo de cómo se debe conectar todo, podemos echar un vistazo a mi máquina cortadora de espuma CNC de bricolaje.
Puede verificar y obtener los principales componentes electrónicos necesarios para construir esta máquina CNC aquí:
Motor paso a paso:NEMA 17………………
Controlador paso a paso A4988……………………..…
Escudo Arduino CNC …………………………. Amazonas / Banggood / AliExpress
Arduino Uno………………………………..…
La herramienta principal de esta máquina CNC es un alambre caliente que puede derretir o cortar fácilmente una espuma de poliestireno y hacer cualquier forma que queramos. Para obtener más detalles sobre cómo hice la máquina y cómo funciona todo, puede consultar el tutorial en particular.
Sin embargo, usaremos esta máquina como ejemplo a lo largo de este artículo, porque el mismo principio de funcionamiento se aplica a cualquier otra máquina CNC, ya sea fresadora o láser.
Cómo instalar GRBL
Primero, para poder instalar o subir el GRBL al Arduino necesitamos el IDE de Arduino.
Luego podemos descargar el firmware GRBL desde github.com.
Descárguelo como archivo .ZIP y luego siga estos pasos:
Abra el archivo grbl-master.zip y extraiga los archivos
Abra el IDE de Arduino, vaya a Sketch> Incluir biblioteca> Agregar biblioteca .ZIP...
Navegue a la carpeta extraída "grbl-master", allí seleccione la carpeta "grbl" y haga clic en el archivo abierto. Ahora tenemos GRBL como una biblioteca de Arduino.
A continuación, vaya a Archivo> Ejemplos> grbl> grblUpload. Se abrirá un nuevo boceto y debemos cargarlo en la placa Arduino. El código puede parecer extraño ya que es solo una línea, pero no se preocupe, todo sucede en segundo plano en la biblioteca. Entonces, solo tenemos que seleccionar la placa Arduino, el puerto COM y presionar el botón de carga y listo.
Configuración GRBL
En este punto debemos configurar o ajustar el GRBL a nuestra máquina. Podemos hacerlo a través del Serial Monitor del Arduino IDE. Una vez que abramos Serial Monitor, obtendremos un mensaje como "Grbl 1.1h ['$' for help]". Si no puede ver este mensaje, asegúrese de cambiar la velocidad de transmisión a 115200.
Si escribimos “$$” obtendremos una lista de comandos o configuraciones actuales, y aparecerán algo como esto:
$100=250,000 (x, paso/mm) $101=250,000 (y, paso/mm) $102=3200,000 (z, paso/mm) $110=500,000 (x tasa máxima, mm/min) $111=500.000 (velocidad máx. y, mm/min) 112$=500.000 (velocidad máx. z, mm/min) 120$=10.000 (aceleración x, mm/seg. ^2) $121=10,000 (y aceleración, mm/seg^2) $122=10,000 (z aceleración, mm/seg^2)
Todos estos comandos pueden o deben ajustarse de acuerdo con nuestra máquina CNC. Por ejemplo con el primer comando, $100=250.000 (x, paso/mm), podemos ajustar los pasos por mm de la máquina, o podemos especificar cuantos pasos debe dar el motor para que nuestro eje X se desplace 1 mm.
Sin embargo, sugeriría dejar estas configuraciones como están. Hay una manera más fácil de ajustarlos de acuerdo con nuestra máquina utilizando el software del controlador, que explicaremos en la siguiente sección.
Controlador GRBL
Entonces, una vez que hayamos instalado el firmware GRBL, ahora nuestro Arduino sabe cómo leer el código G y cómo controlar la máquina CNC de acuerdo con él. Sin embargo, para enviar el código G al Arduino necesitamos algún tipo de interfaz o un software controlador que le diga al Arduino qué hacer. En realidad, hay muchos programas comerciales y de código abierto para ese propósito. Por supuesto, nos ceñiremos al código abierto, así que como ejemplo usaremos el Univarsal G-code Sender.
Cómo usar Universal G-code Sender
Para este ejemplo, usaré la versión de la plataforma 2.0. Una vez que lo descargamos, debemos extraer el archivo zip, ir a la carpeta "bin" y abrir cualquiera de los archivos ejecutables "ugsplatfrom". Este es en realidad un programa JAVA, por lo que para poder ejecutar este programa, primero debemos instalar JAVA Runtime Environment.
Una vez que abrimos el remitente de código G universal, primero debemos configurar la máquina o configurar los parámetros GRBL que se muestran anteriormente. Para ese propósito, utilizaremos el Asistente de configuración de UGS, que es mucho más conveniente que escribir comandos manualmente a través del Monitor en serie del IDE de Arduino.
El primer paso aquí es seleccionar la tasa de baudios, que debe ser 115200, y el puerto al que está conectado nuestro Arduino. Una vez que conectamos el Universal G-code sender con el Arduino, en el siguiente paso podemos comprobar la dirección de movimiento de los motores.
Si es necesario, podemos invertir la dirección a través del asistente o cambiando manualmente la conexión del motor en Arduino CNC Shield.
En el siguiente paso podemos ajustar el parámetro pasos/mm que mencionamos anteriormente. Aquí es mucho más fácil entender cómo ajustarlo porque el asistente de configuración calculará y nos dirá a qué valor debemos actualizar el parámetro.
El valor predeterminado es 250 pasos/mm. Esto significa que si hacemos clic en el botón mover “x+”, el motor dará 250 pasos. Ahora, dependiendo de la cantidad de pasos físicos que tenga el motor, la resolución de pasos seleccionada y el tipo de transmisión, la máquina se moverá una cierta distancia. Usando una regla, podemos medir el movimiento real que hizo la máquina e ingresar ese valor en el campo "Movimiento real". En base a esto, el asistente calculará y nos indicará a qué valor debemos cambiar el parámetro pasos/mm.
En mi caso, para la máquina CNC DIY que hice, la máquina se movió 3 mm. Según esto, el asistente sugirió actualizar el parámetro pasos/mm a un valor de 83.
Con este valor actualizado, la máquina ahora se mueve correctamente, 1 mm en el software significa 1 mm para la máquina CNC.
En la consola de UGS, a medida que realizamos cada acción podemos ver los comandos que se ejecutan. Podemos notar que al actualizar el parámetro pasos/mm, el programa UGS en realidad envió al Arduino, o al firmware GRBL, el comando que mencionamos anteriormente. Este era el valor predeterminado:$100=250.000 (x, paso/mm), y ahora lo actualizamos a un valor de 83 pasos por mm:$100=83.
En el siguiente paso, podemos habilitar los interruptores de límite y probar si funcionan correctamente.
Dependiendo de si son conexiones Normalmente Abiertas o Normalmente Cerradas, también podemos invertirlas aquí.
Aquí vale la pena señalar que a veces necesitamos desactivar el interruptor de límite del eje Z. Ese fue el caso con mi máquina de corte de espuma CNC DIY donde no necesitaba el interruptor de límite del eje Z y tuve que desactivarlo para poder ubicar correctamente la máquina. Entonces, para hacer eso, necesitamos editar el archivo config.h que se encuentra en la carpeta de la biblioteca de Arduino (o Documents\Arduino\libraries).
Aquí necesitamos encontrar las líneas del ciclo de inicio y comentar el conjunto predeterminado para la máquina CNC de 3 ejes y descomentar la configuración para máquinas de 2 ejes. Para que los cambios surtan efecto, debemos guardar el archivo y volver a cargar el boceto grblUpload en nuestra placa Arduino.
No obstante, en el siguiente paso podemos habilitar o deshabilitar el inicio de la macización CNC.
Usando el botón "Intentar volver a casa", la máquina comenzará a moverse hacia los interruptores finales de carrera. En caso de que vaya en sentido contrario podemos invertir fácilmente la dirección.
Finalmente, en el último paso del asistente de configuración, podemos habilitar límites flexibles para nuestra máquina CNC.
Los límites suaves evitan que la máquina se mueva más allá del área de trabajo establecida.
Conclusión
Entonces, gracias al firmware GRBL y al Arduino, podemos configurar y hacer funcionar nuestra máquina CNC de bricolaje fácilmente. Por supuesto, cubrimos solo los conceptos básicos en este tutorial, pero creo que eso fue suficiente para comprender cómo funcionan las cosas y cómo poner en funcionamiento nuestra primera máquina CNC.
Por supuesto, hay muchas otras configuraciones y funciones disponibles, ya que GRBL es un firmware de controlador CNC realmente capaz. La documentación de GRBL explica todo eso en detalle, por lo que siempre puede consultarlos en su página wiki en github.com.
Además, hay muchos otros programas de controlador GRBL de código abierto como Universal G-code Sender, y aquí hay algunos:GRBLweb (navegador web), GrblPanel (GUI de Windows), grblControl (GUI de Windows/Linux), Easel (basado en navegador), etc. Deberías explorarlos y ver cuál te conviene más.