Uso y experiencia Grbl

Con la adquisición de la CNC 3018 y despues de un par de prototipos de maquinas DIY CNC, que en un princiio expuse, y despues opte por omitir, me quedo con lo aprendido y por eso quiero hacer un resumen de mis experiencias como viene siendo gala en mis exposiciones.

Consideraciones:

Primero quiero remarcar mi mala experiencia con el shield V3 de arduino uno y Shield V4 de arduino nano,pues solo me dieron dolores de cabeza , el primero por las interferencias emi y el segundo por el error de diseño de su placa. Pero señalar que la shield v3 me sirvio para aprender el pinedo de los drivers A4988 y TMC2208.

Por eso aconsejo que compreis cualquier control board tipo ” Woodpecker” CNC Router” como la que lleva nuestra CNC 3018 y se puede conseguir por unos 25€ si quereis montar vuestra propia DIY CNC. Este router viene actualmente con la versión 1.1F de GRBL.

puesto que la CNC3018 viene con su cableado de fabrica y terminales de insersión de una sola posición no tendras problemas a la hora de conectar los motores. Pero vamos a suponer que has comprado la placa aisladamente y tienes varios motores perdidos por los cajones de tu taller.

En la imagen de abajo, vemos un cablaedo tipico de motores paso a paso. Son cuatro hilos, puesto que un motor bipolar tiene dos bobinados. Cada fabricante puede o no respetar el orden de los hilos. Lo normal es que los pares negro-verde y rojo- azul correspondan a cada bobina, pero a veces hay que cruzar el azul y el verde. Siempre podremos identificar los bobinados utilizando un tester.

Sobre los tipos de motores paso a paso que se suelen usar.

Como vemos, los motores tienen diferencias en su voltaje de funcionamiento, pero eso no nos debe preocupar porque los drivers llevan unos ajustes que van reflejar una tensión de referencia que será menor en función del consumo de corriente del motor. Personalmente ese ajuste lo hago partiendo del motor sin giro,sin fuerza amentando poco el valor hasta obtener la fuerza deseada . Como ejemplo indicare que para un motor de 1,2A el valor del potenciometro para un TMC2208 es de 0,43V y para un motor de 0,4A como el popular 17HD48002H-22B el ajuste es de 0,17V

Configuración para una CNC DIY

Supongamos el montaje de una CNC casera de doble eje Y movible y varillas roscadas T8 , o sea 8mm de avance por revolución. Los valores en negrita son los modificados. La maquina dispondría de tres hards limit y utiliza el ciclo homing.

VERSION GRBL 1.1F

$0 – Pulso de paso, microsegundos
Los controladores paso a paso están clasificados para una cierta longitud mínima de pulso de paso. Consulte la hoja de datos o simplemente pruebe algunos números. un valor de 10 useg es la mejor opción.

$1 – Retardo de inactividad del paso, milisegundos
Cada vez que sus steppers completen un movimiento y se detengan, Grbl retrasará la desactivación de los steppers por este valor. O bien, siempre puede mantener sus ejes habilitados (alimentados para mantener la posición) configurando este valor al máximo de 255 milisegundos. Nuevamente, solo para repetir, puede mantener todos los ejes siempre habilitados configurando $ 1 = 255. Los motores consumiran la corriente maxima que se haya ajustado previamente.

El tiempo de bloqueo de inactividad del paso a paso es el tiempo que Grbl mantendrá los pasos bloqueados antes de desactivarlos. Dependiendo del sistema, puede establecerlo en cero y deshabilitarlo. En otros, es posible que necesite de 25 a 50 milisegundos para asegurarse de que sus ejes se detengan por completo antes de desactivarlos. Esto es para ayudar a tener en cuenta los motores de las máquinas a los que no les gusta permanecer encendidos durante largos períodos de tiempo sin hacer nada. Además, tenga en cuenta que algunos controladores paso a paso no recuerdan en qué micropaso se detuvieron, por lo que cuando vuelva a habilitarlos, es posible que vea algunos pasos “perdidos” debido a esto. En este caso, simplemente mantenga sus motores paso a paso habilitados a través de $1=255.

Settings and sample valuesDescription
$0=10Step pulse, microseconds
$1=25Step idle delay, milliseconds
$2=0Step port invert, mask
$3=5Direction port invert, mask
$4=0Step enable invert, boolean
$5=0Limit pins invert, boolean
$6=0Probe pin invert, boolean
$10=2Status report, mask
$11=0.010Junction deviation, mm
$12=0.002Arc tolerance, mm
$13=0Report inches, boolean
$20=0Soft limits, boolean
$21=1Hard limits, boolean
$22=1Homing cycle, boolean
$23=1Homing dir invert, mask
$24=25Homing feed, mm/min
$25=500Homing seek, mm/min
$26=250Homing debounce, milliseconds
$27=1Homing pull-off, mm
$30=1000Max spindle speed, RPM
$31=0.Min spindle speed, RPM
$32=0Laser mode, boolean
$100=400X steps/mm
$101=400Y steps/mm
$102=400Z steps/mm
$110=1000X Max rate, mm/min
$111=1000Y Max rate, mm/min
$112=600Z Max rate, mm/min
$120=30X Acceleration, mm/sec^2
$121=30Y Acceleration, mm/sec^2
$122=30Z Acceleration, mm/sec^2
$130=185X Max travel, mm
$131=135Y Max travel, mm
$132=47Z Max travel, mm

Direction port invert, mask

$3=5…Segun la mascara los ejes estan invertidos excepto el eje Y. Si cambiamos el orden de insersión,seria lo contrario. El hecho deque el eje Y este invertido o no se debe a que al mverse el eje positivo se invierte por dicha razon. Recordemos que optamos por positivo los movimientos a la derecha y hacia arriba

Setting ValueMaskInvert XInvert YInvert Z
000000000NNN
100000001YNN
200000010NYN
300000011YYN
400000100NNY
500000101YNY
600000110NYY
700000111YYY
mascara

$10=2, status report

Por ejemplo, el informe predeterminado con la posición de la máquina y sin configuración de informes de datos de búfer es $ 10 = 1. Si se desean la posición de trabajo y los datos del búfer, la configuración será $ 10 = 2.

Report TypeValueDescription
Position Type0Enable WPos: Disable MPos:.
Position Type1Enable MPos:. Disable WPos:.
Buffer Data2Enabled Buf: field appears with planner and serial RX available buffer.

$21=1 ,activa los “hard limits” que hayas instalado. Veremos que por cada eje hay dos pares de pines, ya que se podrían instalar hasta seis, correspondientes a los finales del movimiento de cada uno.Cuidado con esta placa que viene con un error, ya que donde indica el eje Z es el eje X y viceversa.

$22=1, activa el ciclo Homing.

$23=1, nos indica segun la siguiente tabla que ejes se invertiran para que en Home la maquina vaya a la esquina que deseemos. En mi caso quiero que la posición Homesea la esquina superior izquierda, o sea que solo quiero que se invierta el movimiento X, que tiene que quedarse a la izquierda,porque tanto el eje Y como el Z buscaran el tope en el sentido positivo.

Homing directionValue
X+ Y+ Z+0
X- Y+ Z+1
X+ Y- Z+2
X- Y- Z+3
X+ Y+ Z-4
X- Y+ Z-5
X+ Y- Z-6
X- Y- Z-7

$24 a $27, son parametros de velocidad, tiempo de rebote con el tope y distancia de separacion del limite cuando se separe.

$30 y $31 ,nos daran la velocidad maxima y minima del spindle en RPM.Son los limites superior e inferior de la velocidad de giro que limitaran parametros posteriores.

$100 a $102, son valores de ajuste que no podemos equivocarnos, lo que no debemos olvidar es que estos motores necesitan 200 pasos para completar 360 grados de giro, y que un paso equivale a 1,8 grados. Lo que nos define es la cantidad de pasos que necesita para desplazarse 1 mm-. Tambien necesitamos saber el tipo de varilla roscada que utilizamos: si marca T8, quiere decir que en una revolucion se desplaza 8 mm. Luego con una simple division de 200/8= 25, entonces de donde sale el valor 400?.

Asi aprovechamos para entender lo del “Microstepping”. Si queremos que el motor no sea ruidoso a bajas velocidades, los drivers tienen unos pines marcados como ms, que si estan a nivel alto nos daran el maximo numero de micropasos posible que son 16. O sea que un paso lo divide en 16 micropasos, entonces 1 revolución seria 200×16=3200 micropasos que dividido entre 8 mm de deslazamiento se convertiran en 400 micropasos para poder desplazarse 1 mm.

La CNC 3018 utiliza varillas roscadas T4, entonces este valor se ajusta a 800, repetimos 800 micropasos necesarios para completar 1 mm de desplazamiento.

resumen;

T81 revolucion/8mm deslazamiento 3200/8=400 micropasos / mm de desplazamiento
T41 revolucion/4mm dsplazamiento3200/4=800 micropasos / mm de desplazamiento

MICROSTEP 16(16*200=3200 micropasos)

Cada revolución de nuestro motor estara relacionado con un desplazamiento igual al cociente 3200/valor $100.

$100mmrevoluciones
40081
80041
x3200/x1
La imagen tiene un atributo ALT vacío; su nombre de archivo es a4988-3.jpg
A4988
La imagen tiene un atributo ALT vacío; su nombre de archivo es stepconfig-1024x330.jpg
TMC2208

$110 A $112…..Estableceremos la velocidad maxima que podrán alcanzar los motores de los tres ejes en mm/minutos-

$120 a $122....Valor de la aceleracion, se establecio en 30 porque se comprobó que es aceptable.

$130 a $132…. Los valores introducidos son aproximadamente los recorridos maximos de los ejes, pero solo tienen interes si se activan los soft limits que en mi caso no lo hice pero prefiero ponerlos porque corresponden a los parámetros de ‘Coordenadas de la máquina’ en grblControl.

APLICACIONES USO GRBL

Fundalmente,creo que se diseño pensando en las maquinas CNC, pero podemos buscar otras aplicaciones donde se necesite un control muy ajustado del movimiento que se quiera transmitir usando los comandos jogging a traves de un enlace serial.

Instalación en Arduino Nano:

  • Buscaremos la ultima release;

https://github.com/gnea/grbl/releases

  • Descargue y extraiga la carpeta ZIP que contiene el firmware GRBL desde la página de GitHub en su PC.
  • Buscar carpeta grbl y copiala a arduino librerias
  • Haga clic en el menú Archivo. Luego ve a Ejemplos > grbl > cargar grbl. Aparecerá una nueva ventana de Arduino IDE.
  • Conecta tu Arduino a la computadora.
  • Asegúrese de que la placa se muestre como Arduino Nano

Es muy importante limpiar la memoria eeprom antes de cargar el software grbl, para ello iremos otra vez al menu Archivo y “ejemplos” y buscaremos EEPROM, desplegamos y aparecerá “limpiar eeprom”.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Translate »