fbpixel
Etiquetas: ,

En este tutorial veremos cómo configurar el firmware GRBL 0.9 para Ramps 1.4 con Arduino Mega 2560 e interactuar con LaserGRBL. Para controlar tu CNC o MPCNC con LaserGRBL, necesitas instalar y configurar el firmware en tu placa Arduino, para que pueda interpretar correctamente las órdenes y comandos de tu software de grabado.

Este tutorial es la continuación de este otro: Instalación y cableado de una tarjeta Ramps 1.4 para un MPCNC.

Hardware

  • Arduino MEGA 2560
  • Tarjeta RAMPS 1.4
  • 1 láser de 20 W: LD4070HA
  • 5 motores paso a paso: 17HS15-1504S-X1
  • 3 controladores de motor paso a paso: DRV8825

Software

Limpieza de la EEPROM

Antes de descargar y cargar GRBL en tu tarjeta, tienes que asegurarte de que se limpian todos los valores almacenados. Para ello, necesitas el siguiente código para restablecer la configuración predeterminada de tu tarjeta:

/*
 * EEPROM Clear
 *
 * Sets all of the bytes of the EEPROM to 0.
 * Please see eeprom_iteration for a more in depth
 * look at how to traverse the EEPROM.
 *
 * This example code is in the public domain.
 */

#include <EEPROM.h>

void setup() {
  // initialize the LED pin as an output.
  pinMode(13, OUTPUT);
  
  /***
    Iterate through each byte of the EEPROM storage.
    Larger AVR processors have larger EEPROM sizes, E.g:
    - Arduino Duemilanove: 512 B EEPROM storage.
    - Arduino Uno:         1 kB EEPROM storage.
    - Arduino Mega:        4 kB EEPROM storage.
    Rather than hard-coding the length, you should use the pre-provided length function.
    This will make your code portable to all AVR processors.
  ***/

  for (int i = 0 ; i < EEPROM.length() ; i++) {
    EEPROM.write(i, 0);
  }

  // turn the LED on when we're done
  digitalWrite(13, HIGH);
}

void loop() {
  /** Empty loop. **/
}

Brancher votre carte Arduino en liaison série avec son câble USB, copier et coller ce code dans votre IDE Arduino et puis uploader pour nettoyer l’EEPROM.

Modificación del GRBL para Ramps

Puedes descargar GRBL for Ramps desde este repositorio de Github. Si no sabes usar Git, puedes seguir este tutorial para aprender lo básico.

El firmware GRBL ha sido modificado en algunos puntos para adaptarlo a nuestro MPCNC. Antes de cargar el firmware con el IDE de Arduino, aquí están los parámetros a comprobar para su instalación:

// Enables variable spindle output voltage for different RPM values. On the Arduino Uno, the spindle
// enable pin will output 5V for maximum RPM with 256 intermediate levels and 0V when disabled.
// NOTE: IMPORTANT for Arduino Unos! When enabled, the Z-limit pin D11 and spindle enable pin D12 switch!
// The hardware PWM output on pin D11 is required for variable spindle output voltages.
#define VARIABLE_SPINDLE // Default disabled. Uncomment to enable.<----------------------------------- Uncommented for Ramps 1.4 

Aquí, descomentamos la línea #define VARIABLE_SPINDLE en el archivo config.h para tener control PWM sobre el láser.

/*-----------------------------------------------------------suite du code---------------------------------------------------*/
// Define spindle enable and spindle direction output pins.
#define SPINDLE_ENABLE_DDR   DDRH
#define SPINDLE_ENABLE_PORT  PORTH
#define SPINDLE_ENABLE_BIT   6  // MEGA2560 Digital Pin 9 <---------- Modified for Ramps 1.4. Orignal was BIT 3 for Digital Pin 6
#define SPINDLE_DIRECTION_DDR   DDRE
#define SPINDLE_DIRECTION_PORT  PORTE
#define SPINDLE_DIRECTION_BIT   3 // MEGA2560 Digital Pin 5

// Define flood and mist coolant enable output pins.
// NOTE: Uno analog pins 4 and 5 are reserved for an i2c interface, and may be installed at
// a later date if flash and memory space allows.
#define COOLANT_FLOOD_DDR   DDRH
#define COOLANT_FLOOD_PORT  PORTH
#define COOLANT_FLOOD_BIT   5 // MEGA2560 Digital Pin 8
#ifdef ENABLE_M7 // Mist coolant disabled by default. See config.h to enable/disable.
#define COOLANT_MIST_DDR   DDRH
#define COOLANT_MIST_PORT  PORTH
#define COOLANT_MIST_BIT   3 // MEGA2560 Digital Pin 6 <---------- Modified for Ramps 1.4. Orignal was BIT 6 for Digital pin 9
/*-----------------------------------------------------------suite du code--------------------------------------------------*/

Aquí, en el archivo titulado cpu_map.h, debe hacer bien la atención a los pines de salida para el «Spindle» que aquí coincidirá con el pin para activar o desactivar Láser.

#define SPINDLE_PWM_DDR		DDRB // <------------------------------ Modified for Ramps 1.4. Orignal was DDRH
#define SPINDLE_PWM_PORT    PORTB // <--------------------------- Modified for Ramps 1.4. Orignal was PORTH
#define SPINDLE_PWM_BIT		5 // MEGA2560 Digital Pin 11 <--------- Modified for Ramps 1.4. Orignal was BIT 6 for Digital Pin 9
#endif // End of VARIABLE_SPINDLE

Configuración del pinout de la tarjeta

Todavía en el mismo archivo, cpu_map.h, modificamos el pin de control de potencia del láser PWM para que coincida con nuestro cableado.

Para entender estos cambios, tenemos que mirar los diagramas estructurales de la placa Ramps 1.4 y el Arduino MEGA 2560 :

arduino-mega-pinout-diagram Instalación y configuración de GRBL para Ramps 1.4 (MPCNC)
Ramps_1.4_Mapping Instalación y configuración de GRBL para Ramps 1.4 (MPCNC)

Nótese que los pines digitales utilizados para alimentar el láser (Pin Digital 9) y el utilizado para controlarlo (Pin Digital 11) se definen a través de su PUERTO, de ahí la necesidad de definirlos por sus números de Puerto, respectivamente 6 en el PORTH y 5 en el PORTE (PH6 y PE5 en el diagrama). La modificación de PH3 para el pin digital 6 sólo se utiliza para liberar el pin digital 9 que se utiliza como base para un sistema de refrigeración que no está en nuestra configuración.

Ahora que entiendes los cambios realizados en el firmware, puedes subirlo a tu placa Arduino. Ten en cuenta que puede tardar varios minutos en compilarse, así que ten paciencia.

Menú de configuración GRBL

Una vez instalado LaserGRBL, abre la aplicación y conéctate a través del enlace serie USB a tu placa Arduino Mega.

GRBL-menu Instalación y configuración de GRBL para Ramps 1.4 (MPCNC)

A continuación, haga clic en Configuración Grbl, que corresponde a los parámetros específicos del CNC que está conectado. Sólo podrá modificar y reescribir valores cuando LaserGRBL esté conectado a su CNC.

Tendrás acceso a los parámetros de tu CNC, valores que se guardarán en tu placa Arduino.

Parametres-GRBL Instalación y configuración de GRBL para Ramps 1.4 (MPCNC)

Nota: si utilizas varias máquinas u ordenadores, puedes exportar e importar tus parámetros de configuración.

Desactivación de los límites de posición

En primer lugar, desactive los Límites Blandos poniendo a 0 el valor de la línea Soft limits enable (&20 y $21). Esto facilitará las primeras pruebas sin que LaserGRBL piense que su máquina está fuera de sus dimensiones.

Soft-Limits-Off Instalación y configuración de GRBL para Ramps 1.4 (MPCNC)

Configuración de parámetros

Los parámetros importantes aquí son todos los relativos a los ejes X, Y y Z. Para establecer el valor de resolución de recorrido para cada eje, consulte la ecuación: Resolución de recorrido = (Pasos por revolución * Reducción mecánica).

  • Pasos por revolución: Es el número de pasos que da el motor para completar una rotación completa (aquí 200 pasos por revolución).
  • Reducción de engranajes: Si tu sistema utiliza engranajes o poleas para reducir o aumentar el par, debes tener en cuenta la relación de reducción mecánica. Esto afectará a la resolución de desplazamiento efectiva del eje. Nosotros utilizamos correas con una relación de reducción mecánica de 40:1.
  • Microstepping: Algunos controladores de motores paso a paso admiten microstepping, que permite dividir cada paso eléctrico. Esto proporciona una mejor resolución. Los valores posibles son 1

Para la aceleración, consulte el valor indicado en la ficha técnica del motor.

Notas sobre el cálculo de los parámetros

  • Resolución

Para una polea del sistema (20dents) correa (no 2mm) con micro-pas (1

( 200 * 32 )

Para un sistema de tornillo sin fin con una relación de 8 mm por revolución y un micropaso (1

( 200 * 32 )

  • velocidad máxima

Para la velocidad máxima, es decir, la Tasa Máxima, puede utilizar la siguiente ecuación:

Velocidad máxima = (Pasos por revolución * Frecuencia máxima de impulsos por paso)

En nuestro casoVelocidad máxima = ( 200*36 000)

  • zona de trabajo

El tamaño máximo del recorrido depende de la superficie de trabajo real de su CNC. Para medirlo :

  • Configure primero los ajustes anteriores
  • Utilizando las flechas de la interfaz de usuario de LaserGRBL, mueva el cabezal de su CNC a la esquina inferior izquierda.
  • Enciende el láser con el botón Focus y marca el punto al que apunta, encendiendo el láser a alta potencia, por ejemplo.
  • repita la operación en todas las esquinas.
  • Mida la superficie de trabajo con una regla o cinta métrica.

Modificar y añadir botones en LaserGRBL

Para modificar un botón, basta con hacer clic con el botón derecho del ratón y elegir «Editar botón».

edit-focus Instalación y configuración de GRBL para Ramps 1.4 (MPCNC)

También puedes cambiar el GCode enviado por el botón. Para que el Enfoque Láser y el Parpadeo funcionen al 3% de su potencia, puedes configurar estos GCodes de la siguiente manera.

; pour GCode
M3 S30
G1 F1000
; pour GCode2
M5 S0
G0

Para crear su propio botón, puede hacer clic con el botón derecho del ratón en un área vacía de la interfaz de usuario donde no haya ningún botón y elegir «Añadir un botón personalizado». Esto puede ser útil, por ejemplo, para añadir algo para manipular el eje Z si desea cambiar la altura de su herramienta CNC:

Create-Z-button Instalación y configuración de GRBL para Ramps 1.4 (MPCNC)
  • Introducir: permite elegir si se trata de un botón que se activa pulsando una vez sobre él, manteniéndolo pulsado, que se activa y se activa pulsando sobre él, etc.
  • Caption: este será el nombre que se mostrará para su botón
  • Tooltip: describe la función del botón
  • Activado: permite saber cuándo se desbloqueará el botón, aquí Ralentí significa que sólo estará activo si el CNC está conectado y desbloqueado.
  • GCode: aquí es donde pones las líneas de comando que tu botón enviará a tu CNC. Aquí hay diferentes GCodes para 6 botones para mover el eje Z con diferente precisión:
G91 Z-10 ; Monter l'axe Z de 10mm
G91 Z10 ; Descendre l'axe Z de 10mm
G91 Z-5 ; Monter l'axe Z de 5mm
G91 Z5 ; Descendre l'axe Z de 5mm
G91 Z-1 ; Monter l'axe Z de 1mm
G91 Z1 ; Descendre l'axe Z de 1mm

Fuentes

  • https://planet-cnc.com/how-to-setup-cnc/
  • https://blog.orientalmotor.com/motor-sizing-basics-part-3-acceleration-torque-and-rms-torque
  • https://lasergrbl.com/configuration/
  • https://docs.v1e.com/learn/gcode/
  • https://www.youtube.com/watch?v=erXw09OcdeU