Electrónica de una CNC


Cada  vez se  nos pone mas sencillo    interactuar con  el mundo físico , no solo desde el punto de vista  de complejidad, sino también debido a  la  simplicidad  conseguida gracias a  la elevada miniaturización, lo cual  que  se suele traducir en precios muy bajos y diseños sencillos, especialmente  en la parte de la electrónica necesaria.

Como ejemplo usando Arduino se pueden construir muchos tipos de proyectos CNC  gracias al ingenio de muchas personas  así como la ayuda de  la electrónica necesaria  que puede condensarse   simplemente en este escudo   con el que se   pueden  controlar  por medio de un Arduino   3 motores paso a paso gracias a que los propios  módulos de controladores pueden  insertarse en cada zócalo  proporcionando así  la capacidad al eje motor de impulsión 3 motores  paso a paso (X, Y y Z).

cnc_shield_v3_2

En este escudo  para Arduino,  los motores paso a paso se pueden conectar con conectores molex de 4 pines o también se  pueden soldar los cuatro  hilos de cada motor directamente al conector  en su lugar

A propósito de las conexiones soldadas del motor  : la conexión o desconexión de los cables de un motor paso a paso mientras el driver  está alimentado puede destruir al driver  (por ejemplo   soltando por accidente algún hilo, cruzando  entre si  hilos , etc) así que es buena idea que los cables de los  motores estén sólidamente  conectados a la placa.

Asimismo al  igual que otras controladoras, esta placa se alimenta aparte de la fuente de Arduino con una tensión continua entre 12-36V DC.  En este punto es de destacar que por el momento sólo los controladores DRV8825 pueden manejar hasta 36V , por lo que considere un  voltaje de funcionamiento menor  para  alimentar al escudo.

Respecto a los drivers de cada motor como se puede ver en la foto , son enchufables   para facilitar su remplazo en caso de avería o fallo  y   están basados en  controlados de motores paso a paso del tipo   A4988  o DRV8825. Cada driver incluye puentes para configurar el Micro-Stepping para los controladores paso a paso con cinco modos de paso seleccionables: full, 1/2, 1/4, 1/8 y 1/16. (algunos controladores como el DRV8825 pueden hacer hasta 1/32 micro-stepping)

Resumidamente estas son las características de este nuevo escudo controlador multi-driver:

  • Compatibilidad con Arduino GRBL
  • Baja salida RDS (On)
  • Se puede utilizar para una máquina de grabado
  • Es compatible con GRBL 0.9 (Firmware de código abierto que se ejecuta en un Arduino UNO que convierte los comandos de código G en señales para  los motores paso a paso)
  • Soporte de 4 ejes (X, Y, Z, A-Puede duplicar X, Y, Z o hacer un 4to eje completo con firmware personalizado usando los pins D12 y D13)

 

En la siguiente imagen  de un Arduino  vemos la correspondencia con los pines del escudo para el control de los tres motores:.

cnc_shield_v3_3

 

Excepto todos los pines  citados ,  este escudo ( Arduino CNC Shield V3.0 ) contiene otros pines que admiten más funciones:

Arduino-CNC-Shield-Scematics-V3.XX_

Arduino-CNC-Shield-V3-Layout

Las funciones de los pines extras son los siguientes:

  • Interruptor de límite de pines ha sido duplicado por que cada eje tenga un «Top / +» y «fondo /-«. Esto hace más fácil de instalar dos interruptores de límite para cada eje.(usar con un interruptor normalmente abierto)
  • EStop – estos pines se pueden conectar a un interruptor de parada de emergencia. Esto hace lo mismo que el botón RESET en la placa Arduino. ( también puede ser instalado un botón adicional de emergencia que corta la corriente a toda la maquinaria. )
  • Control del husillo y el refrigerante tiene sus propios pins.
  • Comando Pin externos GRBL  se han quitado lo que le permite añadir botones de pausa/espera, reanudar y abortar.
  • Los pines serie (D0-1) y  los de I2C (A4-5) tienen su propia salida   para futuras ampliaciones. Por ejemplo  I2C se podría implementar software para  controlar cosas como la velocidad del huso o control del calor.
  • Versión 3.00 añadió unos jumpers para configurar el eje 4 (clon el otro eje o pin D12-13), comunicaciones (RX+TX, I2C) y una cabecera de control paso a paso (todos los pines necesitan para ejecutar 4 steppers)

Instalación de hardware

Se deben observar las siguientes advertencias:

  • Inversión de la polaridad de la alimentación o conectar incorrectamente la energía destruirá el  escudo
  •  Siempre asegúrese de insertar conexiones en la a orientación correcta y en la toma adecuada  correctamente
  • El escudo de CNC Arduino es compatible con fuentes de alimentación hasta 36V. Eso significa que todos los drivers de chip paso a paso NO se deben alimentar con  ese valor pues  controladores A4988  no están diseñados para funcionar a 36V de modo que si lo alimenta con ese valor  puede destruirlos.  Alimentación de  36V son para los drivers  como la Pololu DRV8825 que pueden funcionar con + 36V

ESQUEMA CONEXIONES PARA MODULO A4988

A4988

ESQUEMA CONEXIONES PARA MODULO DRV8824/DRV8825

DRV8825

ESQUEMA CONEXIONES PARA MODULO TMC2100

TMC2100

Instalación del software

1) Obtener código GRBL en Arduino

Descargar el código GRBL desde enlace:grblmain.zip descomprimir el archivo y copiar a la carpeta de las bibliotecas de arduino IDE, haga clic en abierto arduino IDE File -> ejemplos -> grblmain -> GRBLtoArduino, elegir la mesa correcta y COM, luego cargar el código de GRBLtoArduino a UNO

2) Instalar software de controlador grbl

Descargar software de controlador grbl desde enlace:GrblController.exe , descarga e instala, abra el software de controlador grbl como sigue

grblcontroller361 (2)

Conectar el  Arduino UNO al PC con cable USB, seleccione el puerto correcto, ajustar la velocidad de Baute como «9600», haga clic en «Abrir», una vez conectado, el botón «Abrir» cambiará a «Cerrar/Reset» con color de fondo rojo. Haga clic en «seleccionar archivo» para seleccionar el archivo, haga clic en «Begin» para empezar a  el grabado  (si  es que los motores están configurados en una maquina CNC   al que se haya acoplado un diodo láser  como por ejemplo esta maquina hecha con piezas de CD’s )

Como construir una maquina CNC a partir de piezas recicladas


A veces las partes viejas de ordenadores pueden ser muy útiles para muchas cosas pero sobre todo es muy destacable    las fuentes de alimentación (tanto de portátiles como  de ordenadores fijos )  de las que tantas veces hemos hablado en este blog , no solo para  usar la salidas de 12 y 5V , sino incluso para hacer asociaciones de  varias fuentes  para generar fuentes con tensiones o intensidades mayores .
El reciclaje de las piezas de un ordenador  no queda en la fuente,  pues hay un sinfín de  otras piezas  útiles  que podemos  reciclar en un viejo ordenador, como por ejemplo:
  •  Las pantallas de los portátiles  que  pueden usarse  con una controladora barata como un  monitor.
  • Las memorias  que pueden utilizarse para otros aparatos electrónicos.
  • Los ventiladores  y radidadores  usados para refrigerar las CPU  nos pueden servir para refrigerar nuestros circuitos o  incluso para otras aplicaciones con celulas de Peltier
  •  Las cajas ATX  tienen un sinfín de aplicaciones
  • De los lectores de CD / DVD podemos usar los motores,la mecánica  y el láser
  • De las viejas disqueteras   podemos usar los motores,la mecánica
  • Tornillos , herrajes ,etc

En el post de hoy a vamos a  ver como es posible construir una maquina  CNC o una impresora 3D     con la mecánica  de dos  o tres lectores dvd ( o incluso incluyendo una disquetera) invirtiendo muy poco dinero, pues tan solo necesitaríamos una mínima  electronica de control aparte.

Las partes hardware que necesitamos son:
  •  3 lectores de CD o DVD que no usemos
  • 1 Arduino (Uno en nuestro caso)
  • 3 controladras de motor paso  a paso
  • Fuente de alimentación  de 5v DC ( nos vale una vieja fuente de PC)
El sofware necesario seria el siguiente:
2. X loader para cargar el archivo .hex
4. Makercam para hacer los diseños de impresion

Ensamblaje

Para empezar  con este proyecto  lo primero  es desmontar  los  lectores de CD o DVD
disco1
Como vemos  ,en su interior vamos a ver encontrar una placa  metálica con un motor paso paso (compuesto por  dos bobinados independientes ) y cuyo eje es un tornillo sin  fin , lo cual es la pieza clave  para   reciclar . Asimismo necesitaremos las carcasas de dos de ellas  y los componentes necesarios para fijarlos al chasis (  el laser  y los otros motores no son necesarias).
Cada motor va a simular cada uno de los ejes de la maquina (X,Y,Z)  por los que en los contactos de cada motor  soldaremos un cablecillo  a cada contacto para hacer las 4  conexiones  con las controladoras ( podemos eliminar el cable de cinta flexible que suelen llevar pues es muy difícil que den la medida).
En este punto es interesante identificar mediante una sencilla de prueba de continuidad con un polímetro   usándolo en modo  resistencia  para  saber cuales son los dos bobinados  ( entre si   no deben tener continuidad )
 cables.JPG
Una vez tengamos el cableado hecho de los motores nos tocaría la parte mecánica la cual quizás sea la parte mas engorrosa  y difícil de llevar a cabo   pues realmente no existe una única solución  a este problema   a la hora de afrontar el ensamblaje  que básicamente  consiste en  fijar los carros con  los motores paso a paso en los tres ejes x, y , z  para formar un único conjunto.
En primer  lugar  , nos centraremos en lo que será el eje Y  . Usando  una carcasa colocaremos uno de los  carros junto con el motor  por medio de  soportes tratando de alinearlo lo mas cercano a uno de los bordes  y centrándolo sobre este.
Los soportes pueden ser metálicos roscados ( se pueden comprar en ferreterias)  o separadores de plástico de los usadas para las placas madre.
ejey
De un modo similar  también fijaremos otro carro con su motor a otras de las carcasas de manera que crearemos para el eje X (obviamente la idea  es montarlo perpendicularmente al montaje del eje y). Asimismo también debemos fijarlos  a una de los bordes en la parte superior y centrados sobre este cuerpo.
Los soportes usados también  pueden ser metálicos roscados ( se pueden comprar en ferreterias)  o separadores de plástico de los usadas para las placas madre.
ejex.png
Ahora nos toca el eje z  que se diferencia   de los dos anteriores  que debe ir colocado sobre  uno de los ejes: más  concretamente el eje x.
El eje Z a diferencia de los otros dos lo instalaremos en una placa  liviana ( por ejemplo de vaquelita ,plástico, metílica,etc  ) para luego  montarla en los soportes del eje X
ejez.png
Una vez que tenemos los tres ejes es hora de  unir  ambas carcasa  por  las  base del eje Y y X  formando un angulo recto.
Normalmente muchos aficionados usan escuadras metálicas   e incluso pequeños perfiles metálicos entre ambas carcasas  : todo depende de lo solido que haya quedado la unión así que  quizás  no sea tan necesario en función de como queden fijadas ambas partes
escuadras1.png
Una vez que hayamos ensamblados  lso tres ejes , nuestro proyecto ha tomando toda su  forma, por  lo que solo nos queda conectar  los motores paso a paso a  los controladores   y estos a la placa Arduino Uno.
Las conexiones de cada motor irán a cada driver  de motor  paso  a paso y las entradas  de estos  a la placa Arduino Uno según las siguientes  conexiones digitales:
  • Eje x: puertos 3 y 6, GND
  • Eje Y : puertos 4 y 7,GND
  • Eje Z: puertos 5 y  8;GND

Asimismo no debemos olvidar las conexiones de alimentacion de la placas de los drivers (+5V) que se recomienda no se obtengan de Arduino  sino directamente desde  la fuente auxiliar

El esquema electrico final seria el  siguiente:
Diagramas
Cuando hayamos  conectado e instalado, lo que quedaría seria ir configurando el software necesario para hacerla funcionar.
En youtube podemos encontrar  miles de videotutoriales  que explican con detalles estos pasos por lo que no lo vamos a repetir aquí
Como pinceladas  dejamos dos vídeos muy claros al respecto para que sirvan  como guía:
Con eso concluimos  de este proyecto, lo cual es la base para diferentes usos como puede ser un plotter , una fresadora o incluso colocando un extrusor una impresora 3D,una grabadora láser , etc
final.png