You are on page 1of 22

Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

staticboards.es

Guía definitiva para dominar GRBL [actualizado a


la versión 0.9]

¿No sería increíble que pudieses crear tu propia maquina robotizada casera?

Siempre has tenido ganas de montar una, estoy seguro.

Hoy voy a enseñarte el software que necesitas para convertir un sencillo Arduino
en una controladora para tus motores paso a paso.

No hay nada que nos fascine más que tener nuestro propia máquina controlada por
ordenador. Yo mismo me paso horas asombrado mirando como se mueve la
impresora 3D.

En este mega post vas a aprender todo lo que necesitas para configurar tu
propia máquina.

La teoría es sencilla. Necesitas unos motores paso a paso, unas correas, unas
poleas, unos drivers y un Arduino que controle todo.

Pero cuando te pones a buscar motor paso a paso es cuando la cosa se complica.
Que si hay que mandar un pulso, que si el driver va a 12V, que si la interrupción

1 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

del timer…

Te encuentras con una cantidad enorme de datos, técnicas, y lo que es peor, líneas
y líneas de código fuente.

Por eso existe GRBL

Hablar el mismo lenguaje que el motor paso a paso

La teoría de los motores paso a paso es sencilla. Cuando el Arduino manda un


pulso al driver del motor, este avanza un pasito.

Esta técnica es muy popular en las máquinas robotizadas porque como sabes
cuantos pulsos has enviado, sabes cuánto ha avanzado la máquina.

Lo que necesitas es pasar de un lenguaje de pulsos, a algo más sencillo de explicar,


como son las coordenadas de los motores.

Por decirlo de alguna manera, cuando hablamos con el motor, le decimos: quiero
que avances 200 pulsos. Pero asi es difícil saber lo que va a hacer la máquina
exáctamente.

Lo que queremos es decir avanza 10 centímetros. Mucho más útil.

Lenguaje G-CODE

La forma más o menos estándard de comunicarse con un robot es usando el


lenguaje G Code. Es un sencillo sistema de texto con los movimientos de la
máquina. Es uno de los formatos más veteranos, ya que su primera versión se
remonta a los años 50.

CNC y G-Code
Las máquinas robotizadas se denominan CNC, y viene de “Computador de
Control Numérico”. Es la forma común para no decir “maquina robotizada con
motores”.
El lenguaje universal de las máquinas CNC se llama G-Code. Es un fichero de

2 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

texto con todos los movimientos de la máquina.

No voy a entrar en los detalles del g code, pero para que os hagáis una idea, os voy
a poner unos comandos de ejemplo:

G00 X0Y0Z0

Esto nos lleva a la posición 0,0,0

G01 Z1 F5

Esto avanza lentamente la altura 1 mm, a la velocidad de 5 mm/minuto (feed rate)


G00 es avance rápido.

Avanza todos los ejes de tal forma que llegue lo antes posible.

¿Qué ocurre en ese caso? Que la velocidad de movimiento es la máxima, pero los
movimientos no van en línea recta. Si los motores X e Y avanzan la velocidad
máxima (por ejemplo, a 200 mm por minuto) la máquina hace una linea de 45º,
hasta que uno de los motores llega al borde.

Este comando se usa cuando la CNC no está cortando, y queremos mover el


cabezal a una posición concreta, y no nos importa la ruta que tome, sólo la
velocidad.

G01 es avance en línea recta. Se usa cuando estamos cortando y si que nos
importa la ruta que tome la máquina.

Si queremos que la máquina haga una línea recta, uno de los motores tiene que ir
más lento que el otro, para que se mantenga por el rumbo que queremos.

Lo mejor es verlo con esta infografía (no seáis muy malos conmigo):

3 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

La buena noticia es que no tenemos que escribir el G Code a mano. La mayoría de


programas tienen formas de exportar y generar G Code por nosotros.

Puedes diseñar sus logotipos en Adobe Illustrator, Corel Draw o Inkscape (si
quieres tener todo Open Source) y exportar a G-code usando un plugin.

Si estás usando una impresora 3D, programas como Cura o Slic3r, precisamente lo
que hacen es convertir tu modelo 3D en un programa de G-Code que luego
enviamos a la impresora.

Aqui te dejo un completo tutorial para generar código G-Code desde un logotipo,
usando Ink Scape

GRBL aparece en la escena del Arduino

El autor original del firmware GRBL es el noruego Simen Svale Skogsrud. En el


2007 se encontró exáctamente con el mismo problema que tienes ahora: cómo
controlar un motor paso a paso. Así que decidió investigar, diseñar un planificador
(usando el software mathematica) y comenzó a desarrollar para Arduino, que
estaba haciéndose popular en aquel tiempo. Además está basado en el chip de
Atmel AVR (que estoy seguro que no sabías que se diseñó en Noruega!)

Poco tiempo después de publicar el código, Sonny Jeon estaba buscando una
forma de controlar sus motores, y descubrió este firmware. En menos de un año, se
convirtió en uno de los principales desarrolladores del firmware.

Puedes ver este hangout con Sonny Jeon, contando su experiencia con el firmware,

4 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

ideas para futuros desarrollos, etc.

Porqué deberías usar GRBL

Todo el mundo tiene un Arduino cerca para cacharraear y probar. Y el entorno de


desarrollo es popular y muy documentado.

GRBL es un firmware que está funcionando en muchos proyectos, con una base de
usuarios importante. Si tienes dudas o algo no te funciona, va a ser muy fácil
encontrar ayuda.

Asi que, con un Arduino, una placa preparada para CNC (hablaremos de esto en
muy poco tiempo!), unos drivers como los Pololu A4988 o los más potentes
DRV8825, y unos motores paso a paso, ya tienes toda la electrónica para empezar.

Una comunidad enorme


GRBL está presente en multitud de proyectos y es sencillo encontrar mucha
gente que te puede ayudar.

¿Qué proyectos usan GRBL?

La lista es enorme, y no voy a intentar hacer un recopilación de proyectos que usan


GRBL. Es un poco excesivo.

Pero voy a destacar el más popular de todos: la CNC Shapeoko. Esta CNC tiene un
precio muy asequible, sobre los $1000, y tiene una comunidad muy potente detrás.
Es bastante normal ver una Shapeoko en los fablabs más conocidos.

Si quieres algo más lowcost, un proyecto muy barato (menos de $60) es Cartesio,
un plotter que hace unos dibujos artísticos muy buenos, con unas piezas impresas
en 3D, dos motores paso a paso y un servo.

¿Quieres una aceleración suave? Este es tu firmware

5 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

La primera vez que pensamos en mover motores paso a paso, nos imaginamos el
arduino enviando un pulso para mover el motor. Pero aquí hay un problema: la
inercia.
Cuando el motor está parado, cuesta mucho trabajo hacer que la máquina pase de
estar en reposo a estar en movimiento. Por este motivo, tenemos que ir acelerando
poco a poco (igual que cuando arrancamos el coche).

Al principio del movimiento, el firmware va subiendo la velocidad poco a poco


hasta llegar a la velocidad deseada, y ahí se mantiene hasta que va llegando al final
del movimiento. Entonces va decelerando poco a poco hasta que se para, o
comienza un nuevo segmento.

Lo que hace el GRBL es convertir cada movimiento en una lista de trapecios.

Este es el núcleo del algoritmo de GRBL. Despedazar los movimientos en


trapecios para cada motor. Dividir los movimientos en una lista de líneas rectas y
calcular la aceleración y frenada de cada segmento, en cada eje.

La lista de trapecios se envían a la parte más importante del programa, la

6 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

interrupción de timer, donde se transforman esos trapecios en pulsos, a una


velocidad perfectamente definida para que los motores se muevan de forma
coordinada. Todo esto se tiene que ejecutar de forma perfectamente sincronizada.

Qué es el Look Ahead Planning y porqué lo necesitas

Hablamos de la aceleración en un movimiento sencillo, pero el GRBL va un paso


más allá y calcula las aceleraciones según los movimientos futuros de la
máquina. Una característica fundamental para que las líneas y las curvas sean
suaves y fluidas.

El G-Code nos define los movimientos línea a línea. Avanza tantos centímetros a
la derecha, ahora avanza en otra dirección, y así hasta terminar de cortar nuestra
pieza

Imagínate que el programa le dice que avance en linea recta a toda velocidad
durante un buen rato. El cabezal de la máquina irá a toda pastilla hasta el final.

Entonces pueden pasar 2 cosas.

La primera opción es que el siguiente movimiento sea un giro brusco, por ejemplo,
en una esquina. El cabezal tiene que empezar a frenar mucho antes de llegar al la
esquina, si no, con la inercia, se pasará de frenada y nos quedará una marca fea.

¿Pero qué pasa si la en vez de un giro brusco, la línea continua pero con una
mínima diferencia? Por ejemplo, si solo nos desviamos unos grados de nuestro
rumbo. Entonces no hace falta frenar, el cabezal puede mantener la velocidad y
todo irá más suave. Incluso las marcas serán más limpias.

Lo que hace GRBL es leer las siguientes líneas del programa, y recalcular la lista
de trapecios y sus aceleraciones, teniendo en cuenta los siguientes movimientos.
De esta forma, el cabezal frenará antes, porque conoce lo que le va a venir más
adelante.

Recalcular la aceleración
GRBL lee los siguientes movimientos de la máquina, y ajusta la aceleración y

7 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

frenada para que todo vaya suave y fluido.

Adaptive Multi-Axis Step Smoothing

GRBL usa el algoritmo de Bresenham para calcular el movimiento de los ejes. Los
que sepan algo de programación gráfica conocerán este popular algoritmo. Lo que
hace GRBL es subdividir los movimientos rectos, y suavizarlos (como el antialias
de los videojuegos, pero aplicado a CNC). Esto se nota especialmente cuando un
eje es dominante en el movimiento. El único problema es que ahora hay una
velocidad mínima de avance. Si tu máquina necesita ir muy despacio (1 mm por
minuto o algo asi) entonces no podrás usar esta técnica, pero bueno, tu movimiento
ya será suave de todos modos

Linux y Máquinas CNC

Estoy seguro que en algún momento te has preguntado porqué no usar un

8 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

procesador más potente para mover una CNC. Por ejemplo, porqué no usar una
Raspberry Pi para hacer los cálculos.

El problema está en cómo linux maneja el tiempo.

En un procesador más avanzado (que ejecuta linux), es el kernel quién gestiona la


interrupción del timer, y bloquea el acceso al resto de programas. Y esto es algo
positivo, ya que es lo que permite que podamos usar las Raspberry Pi o un
ordenador normal. Si un programa logra tomar el control de esta interrupción, es
posible que bloquee todo. Y cuando digo todo, digo absolutamente todo: el ratón,
la tarjeta de video, la conexión de internet, etc. Por eso el kernel nos protege para
que eso no ocurra.

El kernel de linux asigna un tiempo a cada programa. El servidor web, el gestor de


ventanas, etc. Según la CPU disponible, y los recursos que están usando en ese
momento, permite ejecutar un programa u otro.

Por este motivo, dependemos del resto de programas para garantizar que todo se
llama a tiempo. Si un programa pide mucha CPU, el kernel haría que nuestro
programa funcionase más lento. Y si estamos cortando un círculo con la CNC,
puede que perdamos pasos, y el circulo se parezca más a un huevo.

En todo lo que tiene que ver con motores usamos un procesador tipo Arduino.
Técnicamente lo llamamos de tiempo real, porque si programas para que se lance
una interrupción cada 100 milisegundos, va a hacerlo exactamente en ese
momento.

Linux
Las máquinas con linux no sirven para controlar una máquina CNC por la
forma en la que gestiona la multitarea.

Marlin para la Impresora 3D

Estoy seguro que has escuchado alguna vez sobre el firmware Marlin para las
impresoras 3D. Es el firmware más usado para la RAMPS 1.4, por ejemplo.

9 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

Pues si miras el código, sobre todo la parte de movimientos, verás que el Marlin no
es más que un GRBL con vitaminas.

La base es la misma. Lo que han añadido los programadores es toda la gestión de


temperaturas, lo que mantiene el extrusor caliente mientras hacemos la pieza.
También han metido la parte del menú y la pantalla LCD, que es un trabajo
importante.

Además de eso, el GCODE tiene una sección de comandos, M (de “machine”). Por
decirlo de alguna manera, cada máquina tiene sus peculiaridades. Por ejemplo, una
máquina puede necesitar que hagamos un pitido. En el caso de Marlin, han
programado el comando M300.

M300 S300 P1000

Aqui tienes la lista de comandos GCODE que se usan en Marlin y en los


firmwares más comunes de impresoras 3D.

Versión compatible con Arduino Mega

El firmware GRBL está pensado para trabajar con Arduino Uno. Todos los pines
de salida está ocupados, y el pobre, ya no puede más.

Pero si estás pensando en usar 4 ejes, y necesitas más potencia, hay versiones
adaptadas para Arduino Mega.

Yo no las he probado, tengo que decirlo, pero me parece interesante mencionar


este enlace: https://github.com/dguerizec/grbl-Mega-4axis

Ahora te toca Instalar GRBL

GRBL mantiene toda su configuración en la memoria EEPROM, que es una


memoria permanente que llevan los procesadores. Puede pasar que en algún caso,
los datos que ya estaban almacenado en el arduino, afecte a la configuración por
defecto. Si has usado el Arduino antes, es aconsejable borrar la memoria
EEPROM.

10 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

Compilar GRBL

Este proyecto está muy testeado y ya ha pasado por varias revisiones completas.
Afortunadamente, el código se compila sin problema desde el IDE de Arduino.

Lo primero de todo es descargar el código fuente de GRBL desde github.com y


descompirir el ZIP

Descarga el fichero https://github.com/grbl/grbl/archive/master.zip

11 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

Descomprime el fichero GRBL, y fijate que hay otra carpeta GRBL

Lo que vamos a hacer es agregar el GRBL como una librería. Para ello,
añadimos la carpeta grbl desde el menú add library en el IDE de Arduino.

Agrega la libreria como un ZIP (aunque sea una carpeta!)

12 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

Selecciona la carpeta GRBL

Una vez hagamos esto, si queremos compilar el GRBL, tenemos que ir al menú de
programas de ejemplo de Arduino, y buscar el grbl (sí, al agregar la librería, te
agrega automáticamente el GRBL como programa de ejemplo!)

13 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

GRBL como programa de ejemplo

Recuerda que hay que seleccionar la placa Arduino Uno! (GRBL por defecto viene
preparado para esta placa)

Y antes de compilar, seleccionamos el puerto serie donde tenemos conectado el


Arduino.

Ya está! Le damos a compilar y upload, y nos subirá el nuevo firmware a nuestro


Arduino.

Ahora podremos ver si está correctamente configurado, simplemente


conectándonos al puerto serie (recuerda que la velocidad es de 115200 baudios)

Compilar GRBL desde línea de comandos (para usuarios expertos)

Si estás usando linux, no es necesario que compiles desde Arduino, puedes hacerlo
desde línea de comandos, siempre que tengas instalado el avr-gcc (el compilador
de c para AVR) y el paquete avr-libc. Para enviar el binaro a nuestro arduino
usaremos avrdude. La propia distribución de GRBL incluye las instrucciones para
compilar todo.

14 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

make clean
make grbl.hex
sudo avrdude -p m328p -D -P /dev/ttyUSB0 -c arduino -b 115200 -U
flash:w:grbl.hex

Cómo Configurar GRBL

Para comunicarnos con el GRBL, lo podemos hacer directamente a través de un


terminal serie, como minicom. Pero si preferimos algo más gráfico, podemos usar
el programa Universal-G-Code-Sender

Otro programa que está muy de moda es el bCNC. En windows es algo más
complicado de instalar porque funciona con python, y hay que instalar alguna
libería. Te lo recomiendo sólo si eres un usuario experimentado.

Si utilizas windows, para conectarte por primera vez y ver si el GRBL funciona, te
recomiendo usar putty. Es un ejecutable muy sencillo que nos abre el puerto serie
sin tener que instalar nada.

Esta es una aplicacion en Java que nos permite enviar ficheros gcode e interactuar
con nuestra CNC de forma sencilla.
GRBL interpreta directamente G-CODE, pero para configurar tu CNC, el
intérprete incluye una serie de comandos especiales.

$$ : Esto nos muestra una lista con todos los parámetros que podemos
configurar.

Lo primero es ajustar los pasos por milímetro. Esto es, cuantos pasos tiene que
enviar el Arduino al motor para que tu CNC avance 1 mm.

Vamos a hacer los cálculos. El motor stepper normalmente es de 200 pasos. Esto
quiere decir que con 200 pasos, el motor da una vuelta completa.

Necesitamos el paso de nuestra varilla roscada. Una varilla de 8mm tiene un paso
de 1.25mm. Esto quiere decir, que en cada vuelta, avanza 1.25mm (tienes que
mirar el paso de la varilla que has comprado)

15 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

Si es de 8mm, con 200 pasos avanzaremos esos 1.25 mm.

Los drivers suelen tener micropasos. Esto es, que dividen 1 paso completo, en 16
pequeños avances, para que el movimiento sea más suave y fluido. Asi que, si
tenemos una varilla roscada de 8mm, con un motor de 200 pasos, a 16 micropasos,
la fórmula seria :

(200*16) / 1.25 = 2560 pasos!

De este modo, para configurar el eje X, escribiremos:

$101 = 2560

Sencillo verdad! Y además, automáticamente queda almacenado en la memoria


EEPROM.

El siguiente valor que vamos a cambiar es la velocidad por defecto. Esto depende
muchísimo de nuestra máquina. Si está bien engrasada, si usa husillos o patines
lineales, etc.

$4 es para la velocidad de avance. Imaginad que estamos cortando madera con


la máquina, o metacrilato con el láser. Con este comando calibramos la velocidad
máxima a la que podemos realizar este corte (el comando G1 en gcode). Esto
quiere decir que, aunque el gcode diga que vamos a cortar a 1000mm por minuto,
nosotros nunca pasaremos de 500mm/min.

Con esto nos aseguramos que el taladro no se va a romper cuando está cortando,
porque pusimos demasiada velocidad en el gcode, o que el láser va a pasar
demasiado rápido sobre el metacrilato, por poner un ejemplo.

$5 es la velocidad de búsqueda. Esto es el movimiento cuando la maquina no


está cortando (el comando G0 en gcode). Por ejemplo, cuando le decimos que
vaya a una posición antes de bajar para cortar.

Obiamente, podemos ir más rápido cuando la maquina no está cortando, que

16 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

cuando estamos cortando.

Lo mejor es bajar la velocidad, como a 50 mm/min. Probamos, y vamos subiendo.

Si nos pasamos, lo que va a ocurrir es que el motor no es capaz de ir tan rápido, y


se bloqueará. Asi que tenemos que ir buscando la velocidad adecuada.

Si estamos cortando, lo que nos va a pasar es que se va a romper la fresa, o el láser


no va a quemar suficientemente. Pero depende también del material, y de la fresa
que estemos usando.

A mi me ha pasado que una máquina parece que está bien calibrada, pero cuando
se calienta, por ejemplo, o al funcionar durante una hora, la fricción hace que le
cueste más esfuerzo a los motores moverse, y acaban bloqueados.

Mi consejo personal aquí es que si estás empezando, no vayas a lo más rápido


posible. Primero acostúmbrate a usar la CNC y céntrate en que el resultado del
corte sea bueno y limpio. No pasa nada porque tarde una hora más en terminar.
Cuando esto lo tengas dominado, ya irás subiendo velocidad. Pero tendrás un
resultado anterior para comparar si te merece la pena ir más rápido.

Si quieres profundizar en las opciones que hay disponibles, en este enlace tienes
toda la información sobre cómo configurar GRBL

En la propia página del projecto también tenéis una lista de programas para usar
GRBL.

Lista de comandos de GRBL


$$ (mostrar los parámetros de GRBL)
$# (mostrar los parametros #)
$G (mostrar el estado del parseador de GCODE)
$I (mostar la informacion del firmware, build, etc)
$N (mostrar los bloques de inicio)
$x=value (almacenar un valor el la EEPROM)
$Nx=line (almacenar un bloque de inicio)

17 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

$C (comprobar el modo actual de GCODE)


$X (desactivar el bloqueo de alarma)
$H (hacer un ciclo homing)
! (pausar el avance)
~ (reiniciar un ciclo o el continuar despues de la pausa)
? (mostrar el estado actual, posicion, etc)
ctrl-x (reiniciar GRBL)

Qué es y cómo configurar el Homing

Una de las operaciones más importantes en una CNC es el Home. Cuando


encendemos la máquina, el Arduino no tiene ni idea de donde está y no sabe desde
donde tiene que empezar a contar.

Para poder hacer esto, tenemos que incluir unos botones que nos indican donde
está exáctamente el principio del movimiento.

La máquina se mueve despacio hasta que hace click en el botón, y entonces sabe
que tiene que empezar desde ese punto. Por este motivo, los botones se denominan
límites.

Homing es el proceso de buscar estos botones y poner la posición en cero.

GRBL comienza buscando la Z máxima (para subir el cabezal si tenemos una


fresadora), y asi nos podemos mover tranquilamente sin saber que vamos a tocar
nada. Después buscamos el eje X y el eje Y.

Nota sobre los límites


GRBL por defecto espera unos límites que conecten los pines de la placa a GND.
Hay que comprobar que los configuramos de esta forma:
Cuando no está pulsado, el pin debería de medir 5V.
Cuando está pulsado, el pin debería de medir 0V.
La mayoría de los límites (microswitches) tienen 3 patas que se llaman: C (common), NO
(normally open), NC (normally closed).
Deberías de usar C y NO, y dejar la patilla NC sin conectar.

18 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

Si activamos el Homing, la máquina estará bloqueada hasta que hagamos el


Homing! Esto es importante saberlo. Yo me pasé un buen rato enviando comandos
sin recibir respuesta (forever alone!). Con esto nos defendemos de error de
posicionamiento.

Para activar el Homing, usaremos el comando $22=1 , para ejecutar el


homing, usamos el comando $H .

En una CNC casera, ajustar los límites de la X y la Y no es tan crítico, pero el


límite de la Z es muy importante. Nos dice dónde está la punta de la fresa. Y tiene
que estar exáctamente en la posición adecuada si quieres que los cortes tengan la
profundidad que has configurado. Mi consejo es invertir un poco en un sensor
inductivo (si tenemos algo de metal) o un sensor capacitivo para que detecte
siempre la Z en el mismo punto. Yo he perdido incontables horas de pruebas y
ajustes por culpa de esto.

Os dejo aquí un vídeo en castellano para configurar el GRBL paso a paso.

Conectando los drivers a mano

Si usas una placa tipo Arduino CNC Shield, no tienes más que conectar los
drivers en el lugar adecuado.

Pero quizás estás montando tu propio proyecto, y vas a conectar los drivers
mediante cables, porque quieres probar antes, o por el motivo que sea.

En ese caso, te dejo el esquema de cómo conectar los pines del Arduino Uno, al
driver de los motores, limites, etc.

19 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

Esquema de coneexión de Arduino uno y gbrl

Cómo Hackear el GRBL y hacer tus propios comandos

Huy, aquí ya nos metemos en el siguiente nivel.

Si realmente quieres llevar tu proyecto al siguiente nivel, y tienes algo de


conocimientos de programación, puedes ir un paso más allá y escribir comandos de
GCODE específicos para tu proyecto.

20 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

¿A qué me refiero? igual que la impresora 3D tiene comandos para encender y


apagar el extrusor o la cama caliente, tu robot puede necesitar un comando especial
para que empiece a bailar o para que se autodestruya (muahahaha!)

¿Cómo puedes hacerlo? Muy sencillo.

En el código del grbl hay un fichero de texto, gcode.c, donde se analizan los
comandos que vamos recibiendo.

Si miras la parte donde se analizan los comandos de tipo M (de machine), ves que
tiene un gran case donde va configurando los valores. Como es muy especifico de
la máquina, hay muy pocos.

Ahí es donde meteremos nuestras garras.

Si quieres hacer algo especifico, tienes que asignarte un numero, por ejemplo, el
1234, y escribir:

case 1234:
{
}

Ahi meteríamos el código de lo que queremos ejecutar cuando recibimos el


G-CODE M1234 ,por ejemplo, encender un pin de Arduino, o lo que se te
ocurra. (ya te veo pensando la cantidad de cosas que puedes hacer con este truco!)

Como os he dicho, esto ya depende de vuestro proyecto, y de vuestra capacidad


para programar. La ventaja del GRBL es que ya hace todo lo demás, como el
parseado de los comandos o la lectura del puerto serie.

Ahora te toca a tí

Madre mía!!!

21 de 22 17/12/17 18:27
Guía definitiva para dominar GRBL [actualizado... about:reader?url=https://www.staticboards.es/...

Si has llegado hasta el final del artículo, entonces sí que tienes ganas de usar
GRBL y montar tu CNC casera.

Asi que ya sabes, sólo necesitas unos perfiles de aluminio, unos motores paso a
paso, un Arduino, una controladora, y ganas de montar tu propia máquina.

¿Porqué no escribes un comentario y nos cuentas qué te ha parecido? Tu opinión es


lo más importante para mejorar el blog y los contenidos futuros.

Por ejemplo, si ya conocías el GRBL, o si ya tienes una CNC, nos puedes contar tu
experiencia.

Y si además, este post te ha ayudado a decidirte sobre tu próxima CNC, tienes que
decirlo!

Un saludo y nos vemos en el próximo artículo!!!

22 de 22 17/12/17 18:27

You might also like