Icono del sitio AranaCorp

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

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

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 :

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.

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.

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.

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).

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

Notas sobre el cálculo de los parámetros

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 )

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)

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

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».

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:

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

Salir de la versión móvil