Desarrollo Electrónica DIYLILCNC

De Casiopea




Caso de Estudio
NombreViviana Acevedo
AutorJuan José Peters
PeríodoMarzo«Marzo» no es un número.-Diciembre«Diciembre» no es un número.
Palabras ClaveElectrónica, Juan José Peters, Código G, GRBL, DIYLILCNC, Drivers, Arduino, cnt, MadLab
RelacionadoCNC_DIY
Estudiado enCNC_DIY
Estudiado porJuan José Peters


Artículos Previos

Desarrollados por el MADLAB

  1. Proyecto DIYLILCNC
  2. Proyecto RepRap
  3. CNC_DIY


Desarrollo Electrónica DIYLILCNC

Especificaciones Técnicas

Fresadora DIYLILCNC

IMG 2797limpio.jpg

Alimentación

Corriente de alimentación………………10.5A.

Tensión de alimentación…………..... 220V ±10% 50 – 60 Hz. Monofásica.

Potencia instalada………………………(no calculada).

Fusibles provistos

Automático general…………………………… 15A a 220V/50Hz.

Fusible transformador 220/110V dremel……………………………………… 3A.

Área de Trabajo

Recorrido eje X (Longitudinalmente)…………………………………… 714mm.

Recorrido eje Y (Transversalmente)……………………………………….725mm.

Recorrido eje Z (Verticalmente)……………………………………………200mm.

Dimensiones

Dimensiones de la máquina (L * P * H)……………………760 x 1000 x 495 mm.

Altura de la mesa……………………………………812 mm.

Peso……………………………………………………………………… 60 Kg.

Accionamiento de los ejes

Motores de los ejes……………………………..…... Motores paso a paso bipolares.

Fuerza de empuje de los carros X e Y……………………………………….2.1 Nm.

Guiado de los carros X e ……………………correa dentada, patines de rodamiento.

Fuerza de empuje del carro Z……….……………………….……………… 4.3 Nm.

Guiado del carro Z………….…eje sinfín con acople simple, patines de rodamiento.

Rieles……………………...……………………………..…………. Barra cilíndrica.

Otros

Materiales principales de la máquina…………..…………. Trupan, terciado marino.

Precisión de tallado real………………………….….…..………………….. 0.1 mm. (Tallado varía para distintas durezas de material)

Exactitud en repetitividad de posicionamiento………....…..…….……….. 0.08 mm.

Velocidad de trabajo…………………………..……...………….. 0 – 2000 mm/min.

Avance rápido………………………………..………………………. 5000 mm/min.

Materiales aceptables para procesar: PVC, PCB, Plástico, Madera, latón y aluminio.



Especificaciones de motores de avance

Planosmaq1.png

Características físicas

Modelo…………………………………………….…….….23HS8430 (NEMA 23).

Configuración de bobinas………..…………………..…………….……….. Bipolar.

Resolución…………………200 pasos/rev. (400 pasos/rev. configurado por driver).

Ángulo de paso………...……………… 1.8° por paso (0.9° configurado por driver).

Largo…………………..……………………………………………..………. 76mm.

Ancho………………………...………………………….………………… 56.4 mm.

Alto…………………………..……………………………….…………… 56.4 mm.

Cables…………………………………..……………………………….….. 4 lineas.

Peso…………………………………………...……………………..………. 1.1 Kg.


Características eléctricas

Corriente de alimentación máxima…………….……………………………..…. 3A.

Resistencia de bobinas………………………………………………………. 1 Ohm.

Impedancia de Bobinas…………………………………...………………… 3.5 mH.


Características mecánicas

Par motor máximo a rotor bloqueado………………………………………. 1.8 Nm.

Torque de detención…………………………………………………….…… 6N/cm.

Momento de inercia del rotor……………………………………..……. 440 gr/cm2.



Especificaciones de motor de fresado

Planosmaq2diylilcnc.png

Características

Marca…………………………………..………………..………………….. Dremel.

Modelo………………………………..……………………………………….. 4000.

Tensión………………………………..………………………………………. 110V.

Potencia nominal de entrada……….…..…… 175W (protegido contra sobrecargas).

Velocidad de giro en vacio…………….………. 5.000 – 35.000 rpm. Seleccionable.

Abertura de mandril…………………… 1/32 a 1/8 de pulgada (ver manual dremel).

Peso ………………………….……………………………………..……… 0.66 Kg.

Configuración de pines en Arduino para GRBL

ArduinopreparadopinesDIYLILCNC.png

Características

Marca………………………………………………………………………Arduino.

Modelo…………………………………………………..…. Arduino UNO Rev. 3.

Microcontrolador………………………………………………..….. ATmega328P.

Tensión de operación……………………………………..………….…… 5V DC.

Tensión fuente de alimentación externa…………………….…….. 7 – 12 V DC.

Pines digitales (I/O)………………………… 14 (6 de ellos configurables a PWM).

Pines de entrada analógicos………………………………………………..……. 6.

Memoria flash…………. 32 KB (de los cuales 0.5 KB son usados por bootloader).

SRAM……………………………………………………………….………… 2KB.

EEPROM……………………………………………………………………… 1KB.

Velocidad de cristal………………………………………………..……… 16Mhz.

Cantidad máxima de motores…. hasta 3 motores (configuración software GRBL).

Interfase/comunicación………………………………………………..……. USB.

Firmware utilizado………………………………………………...………. Grbl.hex.

GRBL: SOFTWARE DE CONTROL NUMÉRICO COMPUTARIZADO PARA DIYLILCNC

Definición

GRBL es un controlador de fresadora CNC de alto rendimiento, libre y de código abierto, escrito en C optimizado y que se ejecuta en un Arduino.

Usuarios

Los ususarios ideales son los fabricantes que hacen fresado y necesitan un agradable y simple controlador para su sistema (y que pueda ser manejado amigablemente por el usuario, en una interfaz gráfica). Las personas que detestan el desorden de su espacio de trabajo con el legado de las torres de PC sólo para usar el puerto paralelo. Inventores que necesitan un controlador escrito en un ordenado, C modular como base para su proyecto.

Características agradables

GRBL está listo para la producción de poca potencia. Podemos usarla para todo nuestro fresado, ejecutándolo desde nuestros ordenadores portátiles utilizando un script de consola simple (incluido) para transmitir el código G. Está escrito en C optimizado utilizando todas las características inteligentes de los chips ATmega328P del Arduino para lograr la sincronización exacta y la operación asincrónica. Es capaz de mantener una frecuencia de pasos de más de 30 kHz y ofrece un flujo limpio, libre de jitter (variabilidad en los cantos de subida y bajada) de impulsos de control. Grbl es para máquinas de tres ejes. No hay ejes de rotación - simplemente X, Y y Z. El intérprete de código G implementa un subconjunto de la norma rs274/ngc NIST y se prueba con la salida de un número de Herramientas CAM sin problemas. Movimiento lineal, circular y helicoidal son totalmente compatibles.

G-Codes soportados en v0.7:

  1. Movimiento lineal (G0, G1)
  2. Movimientos de arco (G2, G3)
  3. Dwell (G4)
  4. Selección del plano (G17, G18, G19)
  5. Unidades (G20, G21)
  6. Go Homing * (G28, G30) * [realizado incorrectamente el ciclo homing]
  7. Modos Distancia (G90, G91)
  8. Modos de feedrate (G93, G94)
  9. Offset Coordinado (G92)
  10. Control de giro del cabezal (M3, M4, M5)
  11. Otros (G53, G80).

G-Codes soportados en v0.8

  1. Trabaja Sistemas de Coordenadas (G54, G55, G56, G57, G58, G59)
  2. Seleccionar offset de coordenadas de trabajo (G10 L2, G10 L20)
  3. Ir al punto previamente definido (G28, G30)
  4. Establecer posición predefinidos (G28.1, G30.1)
  5. Borrar offsets del sistema de coordenadas (G92.1)
  6. Pausa de programa y fin (M0, M2, M30)
  7. Control de enfriamiento (M8, M9)

La mayoría de las opciones de configuración se pueden establecer en tiempo de ejecución y se guardan en la memoria EEPROM entre sesiones e incluso conservadas entre las diferentes versiones de Grbl cuando se actualiza el firmware. Para obtener descripciones de estos códigos G, vaya a directrices de código g NIST. LinuxCNC.org también proporciona gran documentación de estos también. (G-codes) (M-codes) (Otros códigos).


Manejo de aceleración

La característica más solicitada que realmente queríamos que tuviera un agradable y avanzado administrador de aceleración look-ahead (Acelerador Anticipado, Predictivo). En las primeras versiones, algunos usuarios no pudieron ejecutar sus CNC a toda velocidad sin algún tipo de alivio. El administrador de máximas aceleraciones de GRBL con planificador look-ahead facilitará en los feed rares rápidos y frenará antes de las esquinas para un funcionamiento libre rápido pero jerk. En esto hubo mucho trabajo para asegurarse de que los movimientos sean sólidos. Aquí hay un enlace que describe el algoritmo de curvas de alta velocidad.


Limitaciones de diseño

Hemos limitado el apoyo de G-CODE para diseño. GRBL soporta todas las operaciones comunes que se encuentran en la salida de las herramientas CAM, pero deja algunos codificadores humanos de código g frustrados. No hay variables, no hay correcciones de herramienta, sin funciones, sin ciclos fijos, no hay aritmética y no hay estructuras de control. Sólo las operaciones básicas y capacidades de la máquina. Algo más complejo, creemos que las interfaces pueden manejar los con bastante facilidad y traducirlos para GRBL.


Nuevas características de GRBL V0.8

Han pasado muchas cosas desde la v0.7. Estamos empujando muy duro para crear un controlador CNC simple, pero potente para el venerable Arduino. He aquí una lista de las cosas nuevas que han llegado a la v0.8.

  1. Comandos multi-tarea de tiempo de ejecución: Pausa de un programa (Feed Hold) ejecutado con deceleración controlada para no perder la ubicación, reanudará después de la pausa del programa, Reinicia, y reporta los estados actuales.
  2. Advanced Cycle Homing: Un montón de opciones de configuración para los diferentes tipos de máquinas de como deben moverse los ejes cuando busca sus direcciones. Los interruptores de límite también se pueden usar como Hard limit también.
  3. Datos de sistema de coordenadas persistente: sistemas de coordenadas de trabajo (G54-G59) y de posiciones predefinidas (G28, G30) se llevan a cabo en la EEPROM, por lo que siempre se va a establecer como la última vez que los ha ajustado.
  4. Comprobación de modo G-Code: configure Grbl para ejecutar programas sin mover nada en la máquina, así que usted puede comprobar si usted tiene o no los errores que Grbl que no te guste.
  5. Mejor retroalimentación: informes de posición en tiempo real, lo que está haciendo Grbl, el estado del analizador de código g, y los valores coordinados de offset almacenados.
  6. Bloques de inicio: Auto-mágicamente el usuario ejecuta bloques de código g en el inicio o reinicio del programa. Se puede utilizar para establecer los valores predeterminados de la máquina.
  7. Pin-outs: Cycle start, Feed Hold, y abortar están ahora puestas en los pines de salida al A0, A1, A2. Sólo tiene que conectar un interruptor normalmente abierto al pin correspondiente y tierra. Eso es todo!
  8. Analizador de código g más robusto con comprobación de errores de realimentación.

GRBL está licenciado bajo la Licencia Pública General GNU y desarrollado por Simen Svale Skogsrud y Sungeun K. Jeon.


Cargar firmware de GRBL en Arduino

Esta sección está destinada a proporcionar diversas instrucciones sobre cómo cargar grbl a un Arduino. GRBL es un programa multiplataforma, por lo que puede ser utilizado tanto en Windows, Mac o Linux. Se presentará a continuación la instalación de GRBL en Windows (Para instalar GRBL en otras distribuciones de sistema operativo refiérase a la WIKI del desarrollador del software

Instalador.

Para Windows Cargar un archivo hex a tu Arduino es simple en Windows. En primer lugar, conectar el Arduino a cualquier puerto USB de su ordenador con Windows y luego determinar el puerto COM asignado del Arduino. Para determinar el puerto COM de la placa Arduino:

  • Windows XP: Haga clic derecho sobre " Mi PC ", seleccionar" Propiedades ", seleccione" Administrador de dispositivos ".
  • Windows 7: Haga clic en "Inicio" - haga clic derecho en > "ordenador "-> Seleccione" Administrar "-> Seleccione" Administrador de dispositivos "del panel izquierdo.
  • En el árbol, expanda " Puertos (COM & LPT) "
  • Tu Arduino será el puerto serie USB (COMX), donde la "X" representa el número de COM, por ejemplo COM6.
  • Si hay varios puertos USB de serie, haga clic en cada uno de ellos y comprobar el fabricante, el Arduino será "FTDI".

Para actualizar un hexágono grbl a un Arduino:

  1. Descargar y extraer XLoader .
  2. Abrir XLoader y seleccione el puerto COM de su Arduino desde el menú desplegable en la parte inferior izquierda.
  3. Seleccione el dispositivo apropiado en la lista desplegable titulada "Dispositivo".
  4. Compruebe que Xloader establece la velocidad de transmisión correcta del dispositivo: 57.600 para Duemilanove / Nano (ATmega 328) o 115200 para Uno (ATmega 328).
  5. Ahora utilice el botón Examinar en la parte superior derecha del formulario para buscar en el archivo hex grbl (puede descargarlo en ).
  6. Una vez seleccionado el archivo .hex grbl, haga clic en "Upload"

Tras hacer clic en cargar, verás las luces RX / TX parpadear intensamente en el Arduino. El proceso de carga general toma alrededor de 10 segundos para finalizar. Una vez finalizado, aparecerá un mensaje en la esquina inferior izquierda de XLoader que le dirá cuántos bytes se han subido. Si hay un error, se mostraría en lugar de los bytes totales cargados. Los pasos deben ser similares y puede ser hecho a través de la línea de comandos.


Conexión de driver de motores paso a paso a Arduino GRBL

Esta es una interfaz bastante sencilla para una máquina de eje 3. La "señal de tierra" para cada driver se conectan entre sí y se atan al pin GND del Arduino. No hay que confundir esto con la tierra del motor o cualquier otro tipo de conexión a tierra en el Driver CNC DIY. El pin 'Step' para los ejes X, Y y Z se unen a los pines digitales 2, 3 y 4 respectivamente. El pin 'Dir' para los ejes X, Y y Z se unen a los pines digitales 5, 6 y 7, respectivamente.

Conexión de drivers de motores paso a paso en Arduino

MapeoArdtoMAqDIYLILCNC.png



Interfáz gráfica de usuario (GUI) para GRBL

GRBL permite utilizar el software de Arduino (Arduino IDE) y otras interfaces de terminal serial para conectarse con GRBL (PuTTY, CoolTerm, etc.). Sin embargo, para aprovechar plenamente todas las capacidades de Grbl, los desarrolladores del software recomiendan utilizar uno de los tantos GUIs que los usuarios han escrito para transmitir sus programas en código G para Grbl. Uno de estos es la GUI llamada “Universal GcodeSender”, la cual se está utilizando en la máquina DIYLILCNC en su versión 1.0.6.

Interfáz gráfica de usuario “Universal GcodeSender”.

1.0.6 command tableDIYLILCNC.png

Universal GcodeSender es una interfaz gráfica de usuario con todas las funciones, desarrollado por @wwinder. Posee visualizador de código g y tiene un completo control y funcionalidad de comentarios para las características de alto nivel de Grbl. Está escrito en Java, lo que significa que se puede ejecutar en cualquier máquina con Java incluyendo la RaspberryPi. El grupo Grbl trabaja en estrecha colaboración con este proyecto y recomienda encarecidamente utilizar esta interfaz gráfica de usuario. Si usted encuentra cualquier problema o desea solicitar más características GUI, @wwinder ha hecho un trabajo maravilloso en la realización de muchas de las peticiones en el foro de la Wiki de GRBL.

Ventana de visualización de código g en “Universal GcodeSender”.

1.0.6 visualizerDIYLILCNC.png


CONFIGURACION DE HARDWARE DEL DRIVER DE MOTORES DIYLILCNC

El driver de motores paso a paso diseñado para la fresadora DIYLILCNC trabaja en base a 2 circuitos integrados complementarios y dedicados al manejo de motores paso a paso unipolares y bipolares. Estos chips son el Puente H doble L298 y el controlador de puente H L297. El trabajo pesado es desarrollado por el Circuito integrado L298, quien permite la conmutación de las bobinas de los motores para que estos giren, según las ordenes que le entregue el circuito integrado L297. Este chip es el cerebro del driver y permite una gran variedad de funciones para el manejo de motores paso a paso. Para la utilización de este driver en la fresadora DIYLILCNC no se utilizan todas sus funciones, sin embargo, se han dejado habilitadas todas en el hardware y pueden ser seleccionadas a partir de pequeños puentes o “Jumpers” incorporados en el driver. A continuación se presentarán las distintas configuraciones que posee este driver de motores paso a paso diseñado para esta máquina:


Pines de conexión y Jumpers de selección de funcionamiento

El driver de motores paso a paso ha sido diseñado en 2 placas, montadas una sobre otra y separadas por pernos.

Vista de driver conectado a un motor paso a paso

DiylilcncIMG 0009.JPG


Donde la placa inferior posee el hardware asociado al circuito integrado L298 y la placa superior posee el hardware asociado al circuito integrado de control L297. Los pines de conexión del driver y la configuración de funcionamiento de este se encuentran en la placa superior

Pines de conexión y Jumpers de configuración de hardware en el driver

Instrucciones3diylilcnc.png

Pines de conexión

El driver de motores paso a paso posee 12 pines de conexión, tanto de salida como de entrada de señales. Algunos son utilizados en el funcionamiento de la fresadora DIYLILCNC y otros no, pero han sido implementados en el diseño del driver en caso de una posible utilización futura o para el desarrollo de otro tipo de máquinas que requieran de las funciones adicionales entregadas por el L297.

A continuación se presentará las características de estos pines:

  • Pasos: Este pin recibe pulsos de señal, en el que cada pulso de entrada incrementa la secuencia del motor en una unidad. El paso se produce en el borde ascendente de esta señal.
  • Dirección: Este pin de entrada controla el sentido de giro del motor (dirección Reloj/contrareloj). La dirección física de rotación del motor también depende de la conexión de los devanados. La secuencia de pasos del motor se mantendrá o se invertirá si este pin se encuentra en nivel alto o bajo de tensión.
  • Enable: Entrada de habilitación del chip. Cuando esta entrada está en nivel bajo el driver permanecerá encendido, pero des energizará las bobinas del motor.
  • Control: Entrada de control que define la acción de regulación de corriente en los motores. Este pin de entrada no se utiliza, pues se configura por hardware en el mismo driver con Jumpers de configuración. Esta configuración interna se explicará más adelante.
  • HALF/FULL: Entrada de selección para paso completo o medio paso. Cuando se selecciona un nivel alto funciona en medio paso, cuando se selecciona un nivel bajo funciona en paso completo. Este pin de entrada no se utiliza, pues se configura por hardware en el mismo driver con Jumpers de configuración. Esta configuración interna se explicará más adelante.
  • Home: Pin de salida que indica cuando el driver se encuentra en la posición inicial de una secuencia (ABCD=0101). Cada vez que el driver se encuentra en una posición inicial de secuencia de pasos el pin HOME entrega nivel bajo y entrega nivel alto para el resto de la secuencia. Este pin de entrada no se utiliza, pues se configura por hardware en el mismo driver con Jumpers de configuración, conectando internamente la señal de HOME a un LED que se apaga cada vez que existe una posición inicial de secuencia. Esta configuración interna se explicará más adelante.
  • Sync: m Salida del oscilador de regulación de corriente del driver. Permite sincronizar varios drivers al mismo tiempo conectando una fuente de reloj externa común. Este pin de entrada no se utiliza.
  • GND: Pin de referencia de voltaje. Existen 2 pines de este tipo: uno para conectarse al Arduino y el otro para conectarse a la placa inferior, donde se encuentra el chip puente H doble L298. Estas conexiones son necesarias debido a que todos los circuitos electrónicos conectados entre sí deben tener un mismo nivel de tensión de referencia.
  • Vin_12V y Vout_5V: Este pin se utiliza para energizar los circuitos integrados de ambas placas del driver. Estos chips funcionan con una tensión de 5V, por lo que este pin recibe una tensión de 12V, tensión que será reducida a 5V por un transistor regulador de voltaje, el cual entregará el voltaje apropiado a cada chip. Este regulador está incorporado en la primera placa, por lo que la segunda placa recibirá directamente los 5V a partir del pin de salida de voltaje Vout_5V.
  • Reset: Este pin reinicia la secuencia de pasos de los motores si permanece en nivel bajo por unos instantes, por lo que el driver funcionará normalmente mientras este pin permanezca en nivel alto de tensión. Este pin de entrada no se utiliza, pues se configura por hardware en el mismo driver con Jumpers de configuración. Esta configuración interna se explicará más adelante.

Jumpers de selección de funcionamiento

Existen en el driver de motor paso a paso una selección de funcionamiento para los modos Control, Enable, Home, Reset y HALF/FULL. La selección se realiza a través de puentes entre pines los cuales se realizan por medio de “Jumpers”. Estas conexiones permiten configurar el driver para que los modos de funcionamiento mencionados se configuren de manera externa (a través de los pines corresponientes) o de manera interna (entregando nivel de voltaje alto o bajo a estos pines desde el mismo driver). Estas configuraciones de hardware se explican a continuación:

  • Control (Modo de funcionamiento “Control”. Modo externo y modo interno respectivamente)


Instrucciones4diylilcnc.png
Instrucciones5diylilcnc.png


Si se instala un jumper en la posición del ovalo verde permite utilizar el modo “Control” de forma externa, a partir del pin de control. Si se coloca un jumper en la posición del óvalo azul, la configuración del modo de control se realizará de forma interna desde el hardware. Junto a este jumper existe un segundo jumper el cual debe instalarse en la posición del rectángulo rojo (nivel alto de tensión para control de corriente desde ABCD) o en la posición del rectángulo negro (nivel bajo de tensión para control de corriente desde INH1 e INH2). La configuración de “Control”en la máquina DIYLILCNC debe ser interna de nivel bajo (ovalo azul – rectángulo negro).

  • Enable
Instrucciones6diylilcnc.png
Instrucciones7diylilcnc.png

Si se instala un jumper en la posición del ovalo verde permite utilizar el modo “Enable” de forma externa, a partir del pin de Enable. Si se coloca un jumper en la posición del óvalo rojo, la configuración del modo de Enable se realizará de forma interna desde el hardware conectando este pin interno directamente a nivel alto, para que el driver alimente los motores en todo momento. Si está recién aprendiendo a utilizar los drivers puede utilizar la configuración interna. GRBL permite la opción de desenergizar los motores cada vez que la máquina no se encuentre realizando movimientos de fresado, por lo que utilizaremos para la máquina la configuración externa (jumper en óvalo verde).

  • Home

Modo de funcionamiento “HOME”. Modo externo y modo interno respectivamente

Si se instala un jumper en la posición del ovalo verde permite entregar la indicación de la posición de secuencia “HOME” de forma externa, a partir del pin de salida HOME. Si se coloca un jumper en la posición del óvalo rojo, la señal de HOME se realizará de forma interna y será conectada a un LED, el cual indicará que el driver se encuentra en la posición inicial de una secuencia cada vez que se apague el LED.

Img

Img


  • Reset

Modo de funcionamiento “RESET”. Modo externo y modo interno respectivamente

Si se instala un jumper en la posición del ovalo verde permite utilizar el modo “RESET” de forma externa, a partir del pin de RESET. Si se coloca un jumper en la posición del óvalo azul, la configuración del modo de RESET se realizará de forma interna desde el hardware. Junto a este jumper existe un segundo jumper el cual debe instalarse en la posición del rectángulo rojo (nivel alto de tensión para funcionamiento normal del driver) o en la posición del rectángulo negro (nivel bajo de tensión para reinicio de la secuencia de conmutación de las bobinas). La configuración de “RESET” en la máquina DIYLILCNC debe ser interna de nivel alto (ovalo azul – rectángulo rojo), pues esta opción no es utilizada en la máquina.

img

img

  • HALF/FULL

Modo de funcionamiento “HALF/FULL”. Modo externo y modo interno respectivamente.

Si se instala un jumper en la posición del ovalo verde permite utilizar el modo “HALF/FULL” de forma externa, a partir del pin de HALF/FULL. Si se coloca un jumper en la posición del óvalo azul, la configuración del modo de HALF/FULL se realizará de forma interna desde el hardware. Junto a este jumper existe un segundo jumper el cual debe instalarse en la posición del rectángulo negro (nivel bajo de tensión para funcionamiento en modo de paso normal) o en la posición del rectángulo rojo (nivel alto de tensión para funcionamiento en modo de medios pasos). La configuración de “HALF/FULL” en la máquina DIYLILCNC debe ser interna de nivel alto (ovalo azul – rectángulo rojo). Esto permite que el driver duplique en los motores la cantidad de pasos por revolución y con esto aumente la resolución de la máquina.


CONFIGURACIÓN DE GRBL V0.8 PARA FRESADORA DIYLILCNC

Grbl tiene un sistema de comandos '$' para ajustar la configuración y los comandos de ejecución del disparador. Conectarse a Grbl utilizando una terminal serial de su elección (velocidad de transmisión 9600 a menos que desee cambiarlo en el archivo config.h) como el 8-N-1 (8 bits, sin paridad, y 1 bit de parada). Una vez conectado usted debe observar en la ventana terminal un mensaje de GRBL de la siguiente forma:

IMG

Escriba $ y pulse enter. Usted no debe ver ningún eco local del $ y enter, pero Grbl debe responder con un mensaje de ayuda:

IMG


De estos comandos, sólo cuatro de ellos se utilizan para configurar Grbl [IMG] mientras que el resto son comandos de tiempo de ejecución que, o bien informan del estado actual en Grbl o modificar el comportamiento.

Comandos de configuración: “$$”, $X=val, $N y $Nx=line

$$ (Ver la configuración Grbl) y $ x = val (Guardar configuración Grbl)

Cuando se conecte a Grbl, escriba $$ y presione enter. Grbl debe responder con una lista de los valores actuales del sistema, similar a como se muestra en la siguiente lista. Todos estos ajustes son persistentes y se mantiene en la EEPROM, por lo que si usted apaga el equipo, éstos se cargarán de nuevo la próxima vez que encienda el Arduino. [IMG] Para cambiar, por ejemplo, la opción de pulsos para paso de microsegundos a 10us usted debe escribir lo siguiente, seguido de enter: [IMG[

Si todo marcha bien, Grbl responderá con un 'ok', y esta configuración se almacenará en la EEPROM y se conservará para siempre o hasta que decida cambiarlo. Puede comprobar si Grbl ha recibido y almacenado la configuración correctamente escribiendo $$ para ver la configuración del sistema nuevamente.

$N (Ver los bloques de inicio) y $Nx=line (Guardar bloque de inicio)

$Nx son los bloques de inicio que Grbl ejecuta cada vez que se enciende Grbl o se resetea Grbl. En otras palabras, un bloque de partida es una línea de "código g" que se puede tener corriendo a Grbl auto-mágicamente para seleccionar tus valores predeterminados de código g, o cualquier otra cosa que usted necesite que haga Grbl cada vez que arranque el equipo. Por el momento, Grbl puede almacenar dos bloques de código-g por defecto en el sistema, pero se puede almacenar en cualquier lugar de 1 a 5, como una opción en tiempo de compilación (cambiando config.h y re-compilando). Por lo tanto, cuando se conecte a Grbl, escriba $ y luego enter. Grbl debe responder con un mensaje corto, como:

[IMG]

No hay mucho que seguir, pero esto sólo significa que no hay ningún bloque de código g almacenado en la línea $ N0 en Grbl para ser ejecutada en el arranque. $ N1 es la siguiente línea a ejecutar. (Si vuelve a compilar para tener más, se ejecutará en orden a $ N4). Para definir un bloque de arranque, escriba $ N0 = seguido de un bloque de código g válido y luego enter. Grbl ejecutará el bloque para comprobar si es válido y luego responderá con un ok o un error: para decirte si tuvo éxito o algo salió mal.

Por ejemplo, digamos que usted desea utilizar su primer bloque de arranque $ N0 para programar los modos de analizador de código de g como G54 coordenadas trabajo, modo pulgadas G20, G17 plano XY. Usted debería escribir $ N0 = G20 G54 G17 con un entra y usted debería ver una respuesta 'ok'. A continuación, puede comprobar si se consiguió almacenar escribiendo $ N y ahora debería ver una respuesta como$ N0 = G20G54G17. Una vez que tenga un bloque de arranque almacenado en la EEPROM de Grbl, cada vez que se arranque o restablecer verá su bloque de arranque impreso con usted y una respuesta de Grbl para indicar si funcionara bien. Así que para el ejemplo anterior, verá:

[IMG]

Si dispone de varios bloques de inicio de código de g, van a imprimir de nuevo a usted con el fin con cada inicio. Y si desea borrar uno de los bloques de inicio, escriba $ N0 = sin nada después del signo igual. Además, si usted tiene activado homing, los bloques de arranque se ejecutará inmediatamente después del ciclo homing, no en el inicio. IMPORTANTE: Tenga mucho cuidado al almacenar cualquier comandos de movimiento (G0/1, G2/3, G28/30) en los bloques de inicio .Estos comandos de movimiento se ejecutarán cada vez que se reinicie o encienda Grbl, así que si usted está en una situación de emergencia y tiene que ejecutar una parada de emergencia y reiniciar, un movimiento del bloque de inicio puede (y probablemente lo hará) empeorar las cosas rápidamente.

De Grbl $ x = val configuración y su significado

$0, $1 y $2 (pasos/mm de ejes X, Y y Z)

GRBL necesita saber cuán lejos cada paso desplazará la herramienta en la realidad. Para calcular los pasos/mm para cada eje de su máquina usted necesita saber:

  • Los mm por revolución del tornillo de avance
  • Los pasos completos por revolución de los motores paso a paso (normalmente 200)
  • Los micropasos por paso de su driver (normalmente 1, 2, 4, 8 o 16).

Consejo: Usando valores altos de micropasos (por ejemplo, 16) puede reducir el torque de su motor paso a paso, entonces utilice el valor más bajo que le de la resolución deseada en los ejes y propiedades de funcionamiento más cómodas. Los pasos/mm entonces se pueden calcular así:


FORMULA

Calcule este valor para cada eje y escriba estos valores en Grbl.


$3 - Pulsos de paso, microsegundos

Los drivers de motores paso a paso están clasificados para una determinada longitud de pulsos de paso mínima. Revise la hoja de datos o simplemente pruebe algunos números. ¿Quieres que pulsos muy cortos en los Drivers de motor paso a paso puedan ser reconocidos con fiabilidad?. Si los pulsos son demasiado largos podría encontrarse con problemas para ejecutar el sistema a altas velocidades de avance. Generalmente algo entre 5 y 50 microsegundos funciona bien.


$4 y $5 (Feed Rate y seek Rate por defecto, mm/min)

Esta configuración setea el seek rate por defecto (G0) y el feed rate (tasa de alimentación) (G1, G2, G3) después de encender Grbl e inicializar. El seek rate ( también conocidos como rápidos) se utiliza para moverse desde el punto A al punto B lo más rápido posible, por lo general para el desplazamiento a la posición. El seek rate debe ajustarse a la máxima velocidad a la que máquina puede ir en cualquier movimiento de los ejes. El feed rate por defecto normalmente no entra en la tabla como generalmente se especificarán los feed rate en el programa de código de g, pero si no, este feed rate por defecto se utilizará. NOTA: En versiones futuras, se eliminará la tasa de alimentación por defecto (default feed rate). La norma de código G no posee una tasa de alimentación por defecto (G1, G2, G3), pero entregará error de salida si no ha habido un comando de avance "F" especificado. La tasa de seek (también conocido como rápidos) se actualizará para que los usuarios puedan especificar la velocidad máxima a la cual cada uno de los ejes se pueda mover, en lugar de tener sólo una velocidad que limite a todos ellos.


$6 (Invertir puertos de entrada de paso por máscara, int: binaria)

Algunos controladores cnc-paso a paso necesita que sus entradas de nivel alto y y de nivel bajo invertidas tanto para la dirección y los pasos. Las líneas de señal son normalmente puestas en nivel alto o bajo para indicar la dirección de giro o puestas en nivel alto y pasando a nivel bajo un par de microsegundos para indicar un evento de paso. Para lograr esto, Grbl puede invertir los bits de salida para acomodarse a esas necesidades particulares. El valor invertido de la máscara es un byte el cual es negado con los datos de dirección y paso antes de que se envíe por el puerto de entrada de control de pasos del driver de motores. De esa manera usted puede utilizar este método tanto para invertir pulsos de paso o para invertir una o más de las direcciones de los ejes. Los bits de este byte corresponden a los pines asignados para la generación de pasos en el código del archivo config.h. Tenga en cuenta que los bits 0 y 1 no se utilizan para la inversión. Por defecto bits se asignan así:

IMG

Por ejemplo, si desea invertir las direcciones de X e Y en esta configuración se debe calcular un valor por bitshifting así (en su entorno de cálculo favorito):

IMG

Que es igual a 96, por lo que al enviar este comando los invertirá:

IMG

Ahora, al ver la configuración actual, debería ver esto en su línea de comandos de inversión de máscara con la representación binaria del número (bits 5 y 6 debería mostrar ahora un 1 para indicar la inversión.)

IMG

$7 (Retardo de ralenti de pasos, ms)

Cada vez que los motores paso a paso completen un movimiento y se detengan, Grbl deshabilitará los motores paso a paso de forma predeterminada. El tiempo de bloqueo de ralenti de los motores paso a paso es la longitud de tiempo en que GRBL mantendrá los motores paso a paso bloqueados antes de deshabilitar. Dependiendo del sistema, se puede establecer este a cero y desactivarlo. En otros, es posible que necesite 25 a 50 milisegundos para asegurarse de que sus ejes se detengan por completo antes de deshabilitarse. (Mi máquina tiende a desviarse ligeramente si no tienen activada esta función.) O, puedes mantener siempre los ejes activados todo el tiempo seteando este valor en el máximo de 255 milisegundos. Una vez más, sólo para repetir, se puede mantener todos los ejes siempre habilitados estableciendo $ 7 = 255.

$8 (Aceleración, mm/ seg^2)

Esta es la aceleración en mm/segundo/ segundo. Usted no tiene que entender lo que eso significa, basta decir que un valor inferior proporciona una aceleración muy suave mientras que con un valor superior producirá movimientos más ajustados y alcanzará feedrates mucho más rápido. En términos técnicos, esta es la aceleración punto a punto de la máquina, independientemente de los ejes. Seleccione este valor de aceleración tan alto como los límites de los ejes pueden dejarle sin perder CUALQUIER paso. Por lo general, le gustaría darse un poco buffer, ya que si pierdes pasos, Grbl no tiene ni idea de lo que ha sucedido (los motores paso a paso se controlan en lazo abierto) y sigue adelante.


$9 (Desviación de uniones, mm)

La desviación de unión de curvas es utilizada por el manager de aceleración para determinar la rapidez con que puede moverse a través de un camino. La matemática es un poco complicada, pero en general, los valores más altos da generalmente movimientos más rápido, posiblemente bruscos. Los valores más bajos hacen que el manager de aceleración sea más cuidadoso y dará lugar a un cuidadoso y lento movimiento en las curvas. Así que si llegas a tener problemas cuando el equipo trate de tomar una curva demasiado rápido, reduzca este valor para que sea más lento. Si desea que su máquina pueda moverse más rápido a través de los cruces, aumente este valor para acelerarlo. Para los técnicos, ir a este enlace para leer sobre el algoritmo de curvas de Grbl, que representa tanto la velocidad y el ángulo de cruce con un método muy simple, eficiente y robusto.


$10 (Arco, mm/segmento)

GRBL renderiza círculos y arcos mediante la subdivisión de ellos en líneas muy pequeñitas. Es probable que nunca tenga que ajustar este valor - pero si usted encuentra que sus círculos son demasiado irregulares (¿en serio? ¿una décima de milímetro no es lo suficientemente precisa para usted? ¿Está usted en la nanotecnología?) Usted puede ajustar esto. Los valores más bajos dan una mayor precisión, pero puede dar lugar a problemas de rendimiento.


$11 (Corrección de n-ésimo arco, int)

Esta es una opción avanzada que no se debe cambiar a menos que existan circunstancias que usted necesita. Para que sea posible hacer arcos G02/03 en Grbl, Grbl aproxima la ubicación del siguiente segmento de arco con una pequeña aproximación de ángulo. La corrección de n-ésimo arco es el número de segmentos de arco aproximados realizados antes de que Grbl calcule un segmento de arco exacto para corregir el drift de error de aproximación. Calcular estas ubicaciones exactas es computacionalmente costosa, pero hay algunos casos extremos en los que las pequeñas aproximaciones angulares pueden introducir suficientes error a notarse, con muy muy pequeños arcos con una gran longitud de segmento de arco. Cambie esta configuración sólo si encuentra problemas extraños con arcos, pero no es recomendable para ir por debajo de 3, ya que esto puede llevar al buffer a encontrarse vacío en algunos espacios de tiempo, donde los ejes desaceleren and hiccup. Sin embargo, los resultados pueden variar.


$12 (Decimal n-ésimo, int)

Selecciona cuantos de todos los decimales de los valores de punto flotante entregará Grbl. No es mucho más complicado que eso.


$13 (pulgadas reportadas, booleano)

GRBL v0.8 tiene una función de informe de posicionamiento en tiempo real para proporcionar a los usuarios una retroalimentación sobre donde se encuentra la máquina se encuentra exactamente en ese momento. Por defecto está configurado para informar en mm, pero enviando el comando= 1 $ 13, usted envia este indicador booleano como "verdadero" y la función de los informes de estado reportará ahora en pulgadas. Para ajustar nuevamente a mm $ 13 = 0.


$14 (Inicio automático, booleano)

En un entorno de CNC más profesional, los profesionales comienzan un trabajo cargando su programa y luego pulsando el botón"inicio del ciclo" (Cycle start) en su máquina. Se inicia el trabajo. Grbl hace lo mismo, pero no por defecto. Como una herramienta de aprendizaje, "auto inicio de ciclo' ejecutar cualquier comando de código G que el usuario envíe a Grbl, sólo para correr la máquina para ver si se mueven en la dirección que cree que debería ir o simplemente ver lo que la máquina puede hacer . Esto hace que sea más fácil de cargar código en su máquina con Grbl y observar como trabaja, en lugar de tener que presionar el botón "inicio del ciclo" cada vez que desee mover los ejes. Una vez que aprenda a usar el equipo y obtenga un buen manejo de código g, puede desactivar la función "auto inicio de ciclo 'enviando el comando $14=0 a GRBL. (Puede ser necesario un ciclo de soft-reset o un power cycle para cargar el cambio.) Otra forma de decirlo podría ser: Si $ 14 = 0, entonces algunos comandos Gcode como Xn, Yn etc. no resultarán cuando les aplique "enter" en un terminal serial. Si $ 14 = 1, entonces van a pasar los comandos de movimiento de Gcode. Al parecer en las grandes cnc no se ejecutará gcode hasta que el operador presione el botón de "inicio del ciclo". Los comandos Gcode se reciben, pero permanecen en cola y en espera al botón "inicio del ciclo". Tiene sentido, ¿no? Cuando $ 14 = 0, entonces así es como actúa grbl también.Necesita el botón! (En cuyo caso, instale el botón de feed-hold (alimentación retenida) también). Cuando $ 14 = 1, entonces el software grbl agrega automáticamente el código de software del "inicio del ciclo" cada vez que se pulse "Enter" a una línea de comandos gcode a través de un terminal serial. Esto se hace para que sea más conveniente para usted introducir comandos y ver que algo suceda sin tener que pulsar el botón.


$15 (Habilitación de paso invertido, booleano)

Por defecto, el pin de habilitación de motor paso a paso está en nivel alto para desactivar y bajo para habilitar. Si su configuración requiere lo contrario, simplemente invierta el pin de habilitación de motor paso a paso escribiendo $ 15 = 1. Desactivar con $ 15 = 0. (Puede ser necesario un "power cycle" para cargar el cambio).


$16 (Límites de fin de carrera o Hard Limits, booleano)

Los finales de carrera son una medida de seguridad para ayudar a evitar que su máquina viaje demasiado lejos de los extremos de recorrido y choquen o rompan algo caro. Básicamente se cablean algunos interruptores (mecánico u óptico) cerca del final de la carrera de cada uno de los ejes, o donde quiera que usted considere que podría haber problemas si el programa se desplaza demasiado hacia donde no debe. Cuando el interruptor se activa, se detendrá inmediatamente la marcha, el apagado del refrigerante y del cabezal (si están conectados), y entra en el modo de alarma, lo que obliga a revisar el equipo y reiniciar todo. Para utilizar los límites de final de carrera con Grbl, los pines de límite de final de carrera en arduino estarán en nivel alto con una resistencia pull-up interna, por lo que todo lo que tienes que hacer es cablear un interruptor normalmente abierto con el pin y tierra y habilitarlo con el comando$ 16 = 1 . Eso es todo.(Desactivar con $ 16 = 0 ) Si quieres limitar ambos finales de carrera en uno los ejes, sólo cablea dos interruptores en paralelo con el pin y tierra, por lo que si uno de los dos se activa, se disparará la acción de final de carrera. Sólo sé, que un evento de fin de carrera es considerado como evento crítico, donde los motores paso a paso paran inmediatamente y tendrán probablemente los pasos perdidos. Grbl no tiene ninguna información sobre la posición, por lo que no puede garantizar que tiene alguna idea de dónde está. Por lo tanto, si se activa un límite físico, Grbl entrará en un modo de alarma bucle infinito, que te da la oportunidad de ver la máquina y te obliga a reiniciar Grbl. Recuerda que es una medida de seguridad exclusivamente. Si tiene problemas con que el interruptor de límite de fin de carrera se dispara constantemente después de resetear, un soft-reset restablecerá Grbl en un estado de alarma, donde se puede acceder a la configuración y comandos Grbl, pero todo g-códigos y bloques de arranque serán bloqueado. Así que usted puede desactivar el ajuste de los límites de fin de carrera y luego con $ X desbloquear la alarma. O bien, puede conectar en un interruptor normalmente cerrado en serie con la tierra a todos los finales de carrera para desconectar los interruptores de forma temporal para que pueda poder mover con GRBL los ejes de los interruptores.


$17 (Ciclo de Homing, booleano)

Algo que ha sido muy necesario en Grbl desde hace largo tiempo. Está ahora plenamente compatible con v0.8. Para los que recién se inician en CNC, el ciclo de Homing se utiliza para localizar con exactitud y precisión la posición cero en una máquina (también conocido como cero de máquina) cada vez que arranque su Grbl entre sesiones. En otras palabras, usted sabe exactamente dónde se encuentra en cada momento, cada vez. Supongamos que partimos mecanizando algo o está a punto de iniciar el siguiente paso en un trabajo y se va la luz, se vuelve a iniciar Grbl y Grbl tiene ni idea de dónde está. Uno se queda con la tarea de averiguar dónde se encuentra. Si usted tiene homing, siempre tienes el punto de referencia cero de la máquina de localizar, por lo que todo lo que tienes que hacer es ejecutar el ciclo de homing y continuar donde lo dejó. Para configurar el ciclo de homing de Grbl, es necesario tener fines de carrera en una posición fija que no va a ser golpeada o movida, o bien su punto de referencia sea erróneo. Por lo general, se configuran en el punto más lejano de + x, + y, + z de cada uno de los ejes.Conecte los interruptores de límite con el pin de límite y de tierra, al igual que como hizo con los límites de final de carrera y habilite el homing. Si tienes curiosidad, puedes usar los interruptores de límite para ambos finales de carrera y homing. Ellos trabajan bien uno con el otro. De forma predeterminada, el ciclo de homing de Grbl mueve el eje Z positivo primero para borrar el área de trabajo y luego se mueve tanto en el eje X y eje Y, al mismo tiempo en la dirección positiva. Para configurar el comportamiento de su ciclo homing, hay más opciones de Grbl abajo de la página que describe lo que hacen (y las opciones de tiempo de compilación también.) Además, una cosa más para tener en cuenta, cuando homing esté activado. Grbl bloqueará todos los comandos de código G hasta que se realice el ciclo de homing. Significa que no hay movimiento de ejes, a menos que el bloqueo esté desactivado ($ X), pero lo veremos más adelante. La mayoría, si no todos los controladores CNC, hacer algo similar, ya que en su mayoría una medida de seguridad para ayudar a que los usuarios realicen correcciones de error de posicionamiento, que es muy fácil de hacer y es triste cuando un error arruina una pieza. Si usted encuentra esta molestia o encuentra algún error extraño, por favor háganoslo saber y vamos a tratar de trabajar en él para todo el mundo sea feliz. :) NOTA: Revise config.h para más opciones de homing para usuarios avanzados. Puede desactivar el bloqueo de homing al inicio, configurar los ejes que mueven primero durante un ciclo de homing y en qué orden, y mucho más.


$18 (Invertir dirección de Homing por máscara, int: binario)

De forma predeterminada, Grbl asume que sus finales de carrera son Homing en la dirección positiva, en primer lugar mueve el eje z positivo, entonces mueve los ejes x e y en dirección positiva antes de tratar de localizar exactamente el cero máquina yendo y viniendo lentamente alrededor del switch. Si la máquina tiene un interruptor de límite en la dirección negativa, la máscara de dirección homing puede invertir el sentido de los ejes. Funciona igual que en el la inversión de puertos de entrada de paso por máscara, donde todo lo que tienes que hacer es ajustar los pines de dirección de eje a "1" que desees invertir y que los ejes ahora busquen el pin límite en la dirección negativa.


$19 (Homing feed, mm/min)

El ciclo de homing primero busca el final de carrera a un seek rate alto (a una velocidad de desplazamiento alta), y después que los encuentra, se mueve a una velocidad de avance más lenta para poner a punto en la ubicación precisa el cero de la máquina. Avance de Homing significa que avance más lento. Ajústelo a cualquier valor de velocidad que proporcione una repetible y precisa localización del origen de la máquina.


$20 (Homing seek, mm/min)

La tasa de Homing seek es la tasa de búsqueda de ciclos de homing, o la velocidad a la que primero intenta encontrar los finales de carrera. Ajuste a cualquier tasa a la que se llegue a los finales de carrera en un tiempo suficientemente corto sin que se descarrile la máquina en los finales de carrera si viene demasiado rápida. Esta seek rate se comporta un poco diferente que el driver de motor paso a paso principal. En lugar de la tasa de punto a punto, sólo se mueven todos los ejes a la misma velocidad individual, independientemente de cuantos ejes se mueven al mismo tiempo. Por lo tanto, el movimiento seek XY parecerá moverse alrededor del 41% más rápido que si usted desee moverlo con un comando G1. (Se puede desactivar esto en el código del programa config.h si te molesta. Está ahí para acelerar el ciclo de homing.)


$21 (rebote de Homing, ms)

Cada vez que un interruptor se activa, algunos de ellos pueden tener ruido electro/mecánico que en realidad "rebotan" la señal en nivel alto y bajo durante unos milisegundos antes de asentarse. Para solucionar esto, es necesario para evitar el rebote de la señal, ya sea por hardware con algún tipo de Acondicionador de señal o por software con un pequeño retraso para que acabe el rebote de la señal. Grbl realiza una breve demora sólo en homing cuando localiza el cero de máquina. Establezca este valor de retardo a cualquier valor que su switch necesite para evitar una repetición de homing. En la mayoría de los casos, 5-25 milisegundos está bien.


$22 (Homing pull-off, mm)

Para trabajar bien con la función de los límites de carrera, donde homing puede compartir los mismos switches de fin de carrera, el ciclo de homing se moverá fuera de todos los switches de límite por este viaje de pull-off. En otras palabras, ayuda a prevenir el disparo accidental del límite de carrera después de un ciclo de homing. El rate de homing seek selecciona una forma de controlar cuán rápido una maniobra de pull-off se mueve, como en un comando G1.


Comandos internos de GRBL $G, $# y ?

Técnicamente, los comandos Grbl restantes no son comandos de configuración, pero vamos a explicarlo aquí no por una buena razón, que no sea por completar.

GRBL proporciona tres comandos para informar de su estado actual y dónde se encuentra. De los tres, uno de ellos está en tiempo real, respondiendo con la posición actual. Los otros dos no lo son, sino que responden a cómo los bloques entrantes serán procesados en función de los seteos estados seleccionados por código g, configuraciones, o switches. La razón por la que no son en tiempo real es que Grbl tiene un buffer interno que almacena y planea los movimientos almacenados en ella. Los bloques Gcode entrantes sólo generaran en un nuevo movimiento al final del buffer cuando se tiene espacio en él. El buffer básicamente garantiza que los movimientos en Grbl se muevan a las tasas más rápidas y más seguras posibles, re-calculando constantemente en tiempo real los movimientos finalizados y los nuevos que vienen.


$G (Estado del analizador de g-code de visualización)

Este comando imprime todos los modos Gcode activos que el analizador interpretará de cualquier comando entrante. Estos modos incluyen los modos de pulgadas/mm G20/G21, los sistema de coordenadas de trabajo activo G54-G59, los modos de movimiento activo G0/G1/G2/G3, la selección de plano activo G17/G18/G19, los de modos absoluto G90/G91, los de modo de feed rate inversos G93/G94, los de flujo del programa M0/M1/M2, los de estado del cabezal M3/M4/M5, los de estado de refrigeración M8/M9, los de número de herramienta T y los de feed rate activo F. También indicará cualquier switch GRBL activo $ Sx , así como bloque borrado $ S1. Cuando se llama, Grbl devolverá una línea como esta: [ G0 G54 G17 G21 G90 G94 M0 M5 M9 T0 F500 0,000 ]


$# (Parámetros g-code de visualización)

Los parámetros en código G por lo general almacenan los offsets de coordenadas de trabajo G54-G59 y las posiciones iniciales G28/G30 (que no debe confundirse con el cero por Homing y el cero de máquina. Estas posiciones iniciales pueden ser seleccionadas en cualquier parte del espacio de la máquina por los comandos G28.1/G30.1). La mayoría de estos parámetros se escriben directamente en la memoria EEPROM en cualquier momento que se cambien y permanecen almacenados. Lo que significa que van a seguir siendo la misma, independientemente del apagado de la máquina, hasta que se modifiquen explícitamente. Las coordenadas de trabajo G54-G59 se pueden cambiar a través del comando G10 L2 Px o G10 L20 Px definido por el estándar gcode NIST y el estándar EMC2 (linuxcnc.org). Las posiciones iniciales G28/G30 se pueden cambiar a través de los comandos G28.1 y G30.1, respectivamente. Tenga en cuenta que G92 no es permanente o almacenada en la memoria EEPROM según las normas de código g, y se restablecerá a cero cuando Grbl se reinicie. Por favor, lea estos estándares de código de g para entender cómo se utilizan. Cuando se llama a la función $#, Grbl responderá con los offsets almacenados de las coordenadas de la máquina para cada sistema de la siguiente manera

IMG

En su mayor parte, estos offsets no son particularmente útiles a menos que tenga habilitado homing. Si tiene habilitado homing, estos son maravillosamente impresionantes, porque una vez que el inicio, siempre se puede volver a la misma posición de almacenamiento mediante el uso de los sistemas de coordenadas de trabajo dentro de la precisión de la máquina. O si usted está haciendo múltiples partes y tiene una trayectoria de la herramienta para sólo una parte, todo lo que tienes que hacer es configurar tu sistema de coordenadas de trabajo en la ubicación donde la próxima parte va a ser fabricada y volver a ejecutar el mismo código. 4.3.3 ? (Estado actual) El comando ? devuelve inmediatamente los estados activos de Grbl y la posición actual en tiempo real, tanto en coordenadas de máquina como en coordenadas de trabajo. Esto puede ser enviado en cualquier momento y funciona de forma asíncrona con todos los demás procesos que Grbl está haciendo. la selección de seteo $13 de Grbl determina si se declara en milímetros o en pulgadas. Cuando ? es presionado, Grbl responderá inmediatamente con algo como lo siguiente:

IMG

Los estados activos en Grbl que pueden estar son: inicio, cola, Run, Hogar, Reloj, Hora:

  • Idle (reposo): Todos los sistemas están listos y ya está listo para cualquier cosa.
  • Queue: Movimiento (s) se ponen en cola en el planificador de buffer esperando por el ciclo de inicio de marcha que se emitirá. Algunos procesos como el modo de verificación de código de g no se puede ejecutar mientras está en la cola algo. Restablezca para borrar la cola.
  • Run: Indica que un ciclo está en marcha.
  • Hold: Un feed hold se encuentra en proceso de ejecución, o desacelerando hasta detenerse. Después de que el hold se haya completado, Grbl entrará en un estado de cola, en espera de un ciclo de inicio para reanudar el programa.
  • Home: En la mitad de un ciclo de homing. NOTA: Las posiciones no se actualizan en vivo durante el ciclo de homing, pero se setearán a [0,0,0] una vez haya terminado.
  • Alarm : indica que algo ha salido mal o Grbl no sabe su posición. En este estado se bloquean todos los comandos de códigos g, pero le permite interactuar con la configuración de Grbl si es necesario. el bloqueo Kill Alarm '$ X' publica este estado y pone a Grbl en estado de reposo, lo que permitirá mover cosas de nuevo. Como se dijo antes, tenga cuidado de lo que está haciendo después de una alarma.
  • M Check : Grbl está en modo de chequeo de código g. Se procesará y responderá a todos los comandos de códigos de g, pero no moverá o encenderá cualquier cosa. Una vez que lo desactive con otro comando '$ C', Grbl se reseteará a sí mismo.

Otros comandos: $C, $X, $H, ~, !, Ctrl-X

$C (El modo gcode de Chequeo)

Esto cambia el analizador de gcode del Grbl para tomar todos los bloques de entrada procesándolos por completo, como lo haría en una operación normal, pero sin que se mueva ninguno de los ejes, ignorando la demora, y se apagan el husillo y el ventilador. Esto está pensado como una manera de proporcionar al usuario una manera de comprobar cómo el nuevo programa de código G fares con el analizador de GRBL y monitor de los errores de GRBL. (Y, eventualmente, este también chequeará violaciones de soft limits.) Al desactivarse, Grbl realizará un soft-reset automático (^ X). Esto es para dos propósitos. Simplifica la gestión de código un poco. Pero, también evita que los usuarios inicien un trabajo cuando sus modos de código g no son lo que ellos piensan que son. Un reinicio del sistema siempre le da al usuario un limpio, inicio consistente. NOTA: Eventualmente, el modo de chequeo de gcode podría ser re-factorizado para tener en cuenta la opción de "reanudar el programa" en Grbl. Esto significa que Grbl podría iniciar un programa de código G en cualquier lugar. Iría internamente a través de todo el programa de código g hasta el punto de reanudación dentro del programa deseado para setear todos los estados del analizador y de reanudación, se moverá hasta ese punto de inicio, y comenzará la ejecución/movimiento desde ese punto. Por ejemplo, digamos que tiene una E-Stop (parada de emergencia) en medio de un programa porque se le olvidó algo o tiene la herramienta equivocada en el cabezal. Su pieza está muy bien y tiene que reiniciar el programa. En este momento, tendrá que iniciar el programa desde el principio y que se mueva físicamente y correr hasta el punto en que se produjo la parada de emergencia. Si usted tiene un programa largo, esto puede tomar un tiempo. En cambio, una "reanudación de programa" sólo pasará por el comienzo del programa internamente, sin mover nada, y sólo comenzar a moverse desde el punto de reanudación.


$X (Bloqueo de Kill alarm)

El modo de alarma de Grbl es un estado en el que algo ha salido críticamente mal, como llegar a un límite de carrera o al abortar durante el ciclo, o si Grbl no sabe su posición. Por defecto, si tiene habilitada Home y enciende el Arduino, Grbl entrará en estado de alarma, ya que no conoce su posición. El modo de alarma bloqueará todos los bloques de código de g hasta que se haya realizado el ciclo de homing '$ H'. O si un usuario necesita anular el bloqueo de alarma para mover sus ejes fuera de sus finales de carrera, por ejemplo, el bloqueo de kill alarm '$X' anula los bloqueos y permite que las funciones de código de g trabajen de nuevo. Pero, andar con cuidado! Esto sólo se debe utilizar en situaciones de emergencia. La posición probable se haya perdido y Grbl puede que no esté donde tú creas que esté. Por lo tanto, es aconsejable utilizar el modo incremental G91 para hacer movimientos cortos. A continuación, realice un ciclo de homing o restablezca inmediatamente después.


$H (Ejecutar ciclo de homing)

Este comando es la única forma de realizar el ciclo de homing en Grbl. Anteriormente (versiones anteriores de GRBL), G28 y G30 iniciaba automáticamente el ciclo de Homing, pero esto es incorrecto de acuerdo a los estándares de código de g. Homing es un comando completamente independiente manejado por el controlador. G28 y G30 sólo mueven a una posición de inicio predefinida que se almacena en los parámetros de código g, que pueden estar ubicados en cualquier parte de la máquina. SUGERENCIA: Después, ejecute un ciclo de homing, en vez de correr manualmente todo el tiempo a una posición en la mitad de su volumen de trabajo. Puede establecer una posición predefinida G28 o G30 que sea su posición post-homing, cerca de donde usted estará mecanizando. Para establecer estos, primero tendrá que refrescar la máquina en el lugar que se desea que se mueva a después de homing. Escriba un comando G28.1 (o G30.1) para tener almacenada esa posición en GRBL. Así que después de un homing "$H ", usted podrá entrar con" G28 "(o" G30 ") y se moverá hasta allí auto-mágicamente. En general, me gustaría simplemente mover el eje XY del centro y dejar el eje Z hacia arriba. Esto asegura que no hay posibilidad de que la herramienta en el husillo no se enganche en cualquier cosa.


~ (Inicio del ciclo)

Este es el ciclo de iniciar o reanudar el comando que se puede emitir en cualquier momento, ya que es un comando en tiempo real. Cuando Grbl tiene movimientos en cola en su memoria y está listo para ir, el ~ de comandos de inicio del ciclo se iniciará la ejecución de la memoria intermedia y Grbl comenzarán desplazamiento de los ejes. Sin embargo, por defecto, inicio de ciclo automático se activa, por lo que los nuevos usuarios no necesitarán este comando a no ser que se realice una bodega de alimento. Cuando se ejecuta una bodega de alimentación, inicio del ciclo se reanudará el programa. Inicio del ciclo sólo será eficaz cuando hay movimientos en el buffer listo para ir y no funcionarán con cualquier otro proceso, como mensajera.


! (Feed Hold)

El comando Feed Hold llevará el ciclo activo a parada a través de una desaceleración controlada, de manera de no perder la posición. También está en tiempo real y puede ser activado en cualquier momento. Una vez terminado o estando en pausa, Grbl esperará hasta que se emita una orden de inicio de ciclo para continuar con el programa. Feed Hold sólo puede pausar un ciclo y no afectará el homing (la posición de inicio) o cualquier otro proceso. Si usted necesita detener un programa a la mitad de un ciclo y no puede permitirse perder la posición, realice un Feed Hold para que Grbl conduzca todo a una parada controlada. Una vez que haya terminado, usted puede emitir un reset. Siempre trate de ejecutar un feed hold cuando la máquina está en funcionamiento antes de un hitting reset, excepto, por supuesto, si hay alguna situación de emergencia.


Ctrl-x (Reseteo de Grbl)

Este es el comando de soft reset de Grbl. Está en tiempo real y puede ser enviado en cualquier momento. Como su nombre lo indica, se resetea Grbl, pero de una manera controlada, retiene la posición de la máquina, y todo se hace sin necesidad de apagar el Arduino. Las únicas veces que un soft-reset podría perder la posición es cuando se generan problemas como si los steppers murieran mientras se estaban moviendo. Si es así, se informará si el seguimiento de Grbl de la posición de la máquina se ha perdido. Esto se debe a que una desaceleración descontrolada puede conducir a pasos perdidos y Grbl no tiene realimentación para saber cuántos perdió (este es el problema con los motores paso a paso en general). De lo contrario, Grbl se reinicializará, colocará las líneas de inicio y continuará en su feliz recorrido. Tenga en cuenta que se recomienda hacer un soft-reset antes de comenzar un trabajo. Esto garantiza que no hay ningún modo de código g activo que debiese estar trabajando al rededor o seteando su máquina. Por lo tanto, el equipo siempre comienza fresco y coherente, y la máquina hace lo que usted espera.


Configuración de GRBL para la máquina DIYLILCNC

A continuación se explicará y justificará la configuración realizada en el software GRBL a partir de los comandos de configuración para trabajar y calibrar la máquina DIYLILCNC. En nuestro caso no es necesario modificar todos los comandos mencionados en las secciones anteriores.


Pasos por milímetro para ejes X, Y y Z

La relación entre el número de pasos y la cantidad de milímetros recorridos por los ejes X e Y se establecen a partir del número de pasos que posee el motor paso a paso, los micropasos que entregue el driver de motor y el diámetro efectivo de los engranes conectados a las correas de cada eje. La primera tarea consiste en establecer el diámetro de las poleas. Para el engrane del motor paso a paso ubicado en el eje X, el diámetro efectivo del engrane es de 12.3 mm.

Medida del diámetro efectivo del engrane en el eje X. IMG

De esta información, podemos obtener el perímetro efectivo recorrido por la correa en una revolución o la cantidad de mm por revolución:

FORMULA

Como los motores paso a paso utilizados en DIYLILCNC entregan 200 pasos por vuelta y los drivers se encuentran configurados para trabajar en ½ de paso entonces el número de pasos que se necesita para avanzar 1 mm en el eje Y es:

FORMULA

Este valor es el que debemos incorporar en GRBL para que la máquina establezca el número de pasos que debe generar para recorrer 1 mm en el eje X. Para incorporar el comando, se ejecutará la instrucción:

IMG

El cual quedará almacenado en GRBL permanentemente, hasta que se decida cambiar nuevamente este valor.

Para la polea del eje Y, el diámetro efectivo de la polea es de 16mm.

Medida del diámetro efectivo del engrane en el eje Y. IMG

De esta información, podemos obtener el perímetro efectivo recorrido por la correa en una revolución o la cantidad de mm por revolución:

FORMULA

Este valor es el que debemos incorporar en GRBL para que la máquina establezca el número de pasos que debe generar para recorrer 1 mm en el eje X. Para incorporar el comando, se ejecutará la instrucción:

IMG

El cual quedará almacenado en GRBL permanentemente, hasta que se decida cambiar nuevamente este valor. En caso de querer estimar los valores de paso por milímetro, se puede utilizar una simple regla de tres, comparando los valores actuales configurados en la máquina con los valores deseados e iterar varias veces hasta lograr un fresado correcto.

La relación entre el número de pasos y la cantidad de milímetros recorridos por el eje Z se estableció en esta oportunidad a partir de una regla de 3. La configuración inicial de pasos por milímetro almacenada en GRBL fue de $3 = 150 (pasos por mm). Se fresó una pieza de trupán estructural de baja densidad indicándole a la máquina que recorriera 9 mm. Al presar la plancha, la fresa recorrió 16 mm por lo que se puede concluir que el valor de pasos por milímetro está desajustado. Para corregir esto, se utilizará una simple regla de tres, mediante la siguiente ecuación:

FORMULA

Este valor es el que debemos incorporar en GRBL para que la máquina establezca el número de pasos que debe generar para recorrer 1 mm en el eje X. Para incorporar el comando, se ejecutará la instrucción:

IMG


Feed Rate y Seek Rate

El avance rápido durante el fresado (Feed Rate) y el avance rápido de la máquina en desplazamientos largos dentro de la base de trabajo (Seek Rate) se ha configurado por observación. Los valores configurados por defecto hacen que la máquina se mueva de manera brusca, por lo que se ha establecido los valores:

IMG


Como valores apropiados. Con estos valores la máquina no avanza muy lento ni presenta movimientos briscos en el desplazamiento de los ejes.


Auto Start

Las máquinas CNC comerciales incorporan un botón de partida, el cual debe presionarse cada vez que se requiera comenzar el fresado, independientemente de que haya sido cargado un programa de corte. GRBL también incorpora esta opción, conectando un interruptor en el pin A2 de Arduino y adicionalmente incorpora una segunda opción (configurado por defecto) la cual permite ejecutar un código g inmediatamente se cargue un programa, sin necesidad de utilizar un botón de partida. Se utilizará esta opción predefinida inicialmente. Por lo tanto, se mantiene la configuración por defecto

IMG

En el futuro se incorporará un botón de partida.


Orden de Enable invertida para Drivers de motores paso a paso

En la configuración de habilitación (o Enable) de los drivers de motores paso a paso por defecto se establece que Arduino presentará nivel bajo de tensión en el pin de habilitación de drivers para que los drivers se habiliten y energicen los motores y entregará un nivel alto de tensión para deshabilitar los drivers. Este tipo de habilitación y deshabilitación de drivers es utilizado por algunos drivers de motores paso a paso comerciales. En el caso del driver diseñado para DIYLILCNC, la habilitación y desabilitación de los drivers funciona de manera inversa. GRBL permite ser configurado para invertir estas órdenes. Para ello, debemos escribir el siguiente comando:

IMG


Límites críticos o Hard Limits

GRBL permite habilitar o deshabilitar los interruptores de inicio y fin de carrera. Por defecto esa opción viene deshabilitada, por lo que al conectar los switches a la placa de Arduino GRBL no los reconocerá. Para habilitar esta opción se debe escribir el siguiente comando:

IMG