Después de indagar por diferentes sitios de la red
buscando información respecto a fresadoras CNC caseras por fin puede obtener el
conocimiento necesario para fabricar mi fresadora CNC empleando materiales comunes y en desuso con
el fin de tener un mínimo costo de fabricación. Así que junté el material que me podría servir para construir
la parte mecánica de la mini CNC, como por ejemplo: impresoras, placas de
plástico, DVD, motores eléctricos de electrodomésticos, ángulos de aluminio,
motores Brushlees, entre otros. Sin embargo, material electrónico como controladores
de motores paso a paso (PAP) con señales de control paso y dirección es casi
imposible encontrar en equipos electrónicos dañados, por lo que esta parte se
tiene que comprar y en mi caso será la
más costosa.
Una solución para minimizar los gastos en la
electrónica es emplear el software Txapuzas que emplea como interfaz una placa
arduino (se comunica por el puerto USB) y utiliza driver paperSteppers, con señales de control D1 y
D2, que son más económicos respecto a los que utilizan señales paso (step) y dirección (dir). En el siguiente enlace podremos encontrar información
detallada respecto al tema:
Pese a la solución
anterior, finalmente me incline por utilizar el software Match3 debido a que
tiene muy buenas opiniones en la red y aunque tengo poco tiempo trabajando con
él, puedo decir que es uno de los mejores programas para CNC, si no es que el
mejor. Pero no todo es color de rosa, pues no es gratis, además de que la
interfaz se realiza por puerto paralelo por lo que el problema del costo de los
driver aún no está resuelto.
En esta página http://esteca55.com.ar se puede encontrar
unos driver para motores PAP bipolares que emplea un PIC16F84A para convertir
las señales paso y dirección en la secuencia correspondiente para hacer girar
el eje del motor PAP. Al ver este proyecto me surgió la idea de utilizar un
solo PIC para controlar por lo menos a tres motores PAP, pero al analizar la
idea también surge la duda: ¿el microcontrolador será lo suficientemente rápido
para poder procesar las tres señales de
paso simultáneamente y no perder pasos en los motores?
El microcontrolador
elegido para hacer pruebas ha sido el PIC16F628, obviamente se programara en
ensamblador para ejecutar el código lo más rápido posible, además el PIC
funcionara overclock, a 24 Mhz. Partiendo del código utilizado para el driver “Driver Bipolar 16f84a-LB1845” de esteca, he realizado el código con las
siguientes características
*Señales de
entrada paso y dirección.
*Señales de
salida a través de dos hilos D1 y D2 compatibles con driver paperSteppers.
*Una señal de salida para
activar los tres Driver. Si después de 7.5 segundos no se recibe una señal de entrada,
la salida cambia a nivel bajo, desactivando los driver.
Las pruebas
las he realizado en Proteus, simulando tres señales de paso con la misma
frecuencia que recibe simultáneamente el PIC16F628. En las salidas D1 que
corresponden a los motores PAP e colocado tres contadores, de esta forma si
alguna entrada pierde pasos se verá reflejada en el valor del contador con un
valor menor que los demás, si no hay perdida de pasos los tres contadores
tendrán el mismo valor. El diagrama es el siguiente:
Circuito de prueba
para para conocer la duración de los pulsos “step”, que evita perder pasos en
los motores.
De esta
prueba he concluido que la mínima duración del pulso de entrada requerido para no
perder pasos es de 11.5 µs (periodo de 23 µS), esa condición es para el caso de
que las tres señales de paso ocurran al mismo tiempo, pero sino es así, el
tiempo del pulso puede ser menor y no habrá perdida de pasos.
Ya sabiendo
cual debe de ser el tiempo mínimo del pulso de la señal de paso, lo siguiente
es averiguar si el programa de Match3 permite realizar esta configuración. Para
esto vamos al menú Config y seleccionamos Motor Tuning, aparecerá la siguiente
ventana.
Como vemos
dentro del círculo rojo aparece el valor de la duración del pulso paso en la
cual aparentemente no dice que el valor puede estar dentro del rango de 1 a 5
µS; por lo que no será suficiente para evitar perder pasos, no obstante si
colocamos un valor superior a 25 y seleccionamos SAVE AXIS SETTINGS
automáticamente lo corregirá a 25, entonces este es el valor máximo permitido y
por lo tanto más que suficiente para evitar que nuestro driver pierda señales
de paso incluso con una cristal de 20 Mhz. Cabe mencionar que he comprobado la
máxima duración del pulso de 25 µS con el analizador lógico que incorpora el
programador Pickit 2.
Con la
seguridad de que nuestro driver funcionara correctamente lo que sigue es
diseñar la interfaz para el puerto paralelo, para esto me he guiado nuevamente
del proyecto Interfaz CNC v 1.4 de la
página de esteca55.com.ar (¡qué buena página!); resultando el siguiente esquema
y PCB.
Esquema
eléctrico de la interfaz “mini CNC V1.0”
PCB de la
interfaz “mini CNC V1.0”
Distribución
de entradas y salidas
Como se observar es una interfaz muy sencilla pero a
la vez cumple con la mayoría de los requerimientos de una fresadora CNC de
tamaño mediano ya que presenta las siguientes características:
· Cinco
entradas aisladas en las cuales se conectan los límites de cada eje, los
interruptores de Home y el botón de paro,
· Una
salida a relé para activar el huesillo (taladro)
· Dos
salidas complementarias para activar los drivers de motores PAP. Como ya se mencionó
los desactiva si en 7.5 segundos no se recibe alguna señal.
· Tres
salidas para drivers con señales de control D1 y D2
Una duda que podría surgir del esquema es ¿por qué a
partir de la salida para activar los drivers se generó otra negada? La razón es
que si utilizamos circuitos integrados (CI) diferentes a los clásicos L298 y
L293 como por ejemplo el LB1845, será muy útil la salida negada pues estos CI
necesitan un nivel bajo para activarse. En mi caso utilice dos CI LB1845 y un
L298N.
En cuento a la configuración del puerto paralelo he
optado por la misma que la del proyecto Interfaz CNC v 1.4 la cual es:
N° Pin
|
E/S
|
FUNCION
|
2
|
S
|
X PASO
|
3
|
S
|
X DIR
|
4
|
S
|
Y PASO
|
5
|
S
|
Y DIR
|
6
|
S
|
Z PASO
|
7
|
S
|
Z DIR
|
10
|
E
|
LIM X
|
11
|
E
|
LIM Y
|
12
|
E
|
LIM Z
|
13
|
E
|
HOME
|
14
|
S
|
RELE
|
15
|
E
|
STOP
|
Construcción de los driver de potencia
Como anteriormente te comente, los controladores de
potencia que implemente fue un L298N y dos LB1845.Para el LB298 la conexión fue
tipo paperSteppers:
Esquema del driver de potencia para motor PAP bipolar
(http://txapuzas.blogspot.com.ar)
Mientras que los driver de potencia
LB1845 los recupere, tal cual, de la placa de control de una impresora EPSON
STYLUS COLOR480, solamente modifique algunas entradas para que trabajen a dos
hilos como se especifica en su hoja de datos
Tabla de verdad del driver LB1845
Del diagrama de la
siguiente figura los pines nombrados I01, I11, I02, I12 se conectan a tierra,
ENABLE1 y ENABLE2 se juntan y los pines de entrada PHASE1 y PHASE2 son
equivalentes a las entradas D1 y D2. El valor de Vref se ha fijado a 2.5 Volts
para obtener una corriente de salida de 0.5 Amp con RE=0.51 ohm.
Circuito propuesto para
el driver LB1845
Presento las siguientes
imágenes para que observen como obtuve los driver LB1845 y como quedo la
controladora CNC de bajo costo.
Aquí se observa la fuente
de poder y la placa de control en el chasis de la impresora EPSON
Nuevamente vemos la placa
de control más de cerca, las líneas rojas indican la zona que debemos de cortar
para obtener el circuito útil de los dos LB1845. Observen como el encapsulado
de los circuitos es diferente al que indica la hoja de datos, tal vez estos soportan
menos corriente, aun así solamente los configuramos para una corriente máxima
de 1 Amp. De esta placa también hemos recuperado el conector hembra para puerto
paralelo además de una memoria RAM, dos transistores, algunos capacitores y
otras cositas ¡no hay que desperdiciar nada! J.
Finalmente, la controladora CNC terminada con la “mini
CNC V1.0” los driver de potencia, los reguladores de tensión, y una terminal de
conexiones montados en el mismo chasis de la EPSON. ¡No quedo muy prolijo pero
lo importante es que funciona!
Instalamos dos
reguladores de tensión un 7812 seguido de un 7805. EL de 5 V no hace falta
decir que es para alimentar la interfaz
y la parte de control de los driver (ya lo dijeJ); y el de 12 V es para
los ventiladores de los motores y de los drivers de potencia; estos se activan
junto con los motores por medio de un transistor que recibe la seña ENABLE de
la interfaz.
Por el momento, la
controladora se alimenta con una fuente de poder de 15 volts aunque es
recomendado alimentar los driver LB1845, que tienen un control de corriente por
PWM, con una tensión de por lo menos el doble ya que así obtendremos mayor
velocidad y torque en los motores, no obstante la fuerza que generan los
motores con esta tensión al parecer es suficiente para mis propósitos.
Supongo que no ha pasado desapercibida
la forma en que soldé los elementos en la placa mini CNC V1.0 (por el lado
donde está el cobre), esto es porque la he realizado con la misma fresadora
recién construida y al tener poca experiencia generando el código G en Eagle me
ha sucedido que genere el código invertido (o reflejado, como se entienda
mejor) y no me di cuenta hasta el momento en que quise colocar las piezas que obviamente
no coincidían con el PCB esperado, casi me da un infarto del coraje J. En fin para no repetir
el proceso tuve que castigarme armando la placa de esta forma, que al final no
tuvo más problemas.
Bueno, si ya terminaste
de reír con mi gran error J te menciono que en la siguiente entrada estaré
presentando la descripción de la mini CNC y los métodos utilizados para su
construcción, pero por el momento es todo. Me olvidaba, el proyecto completo lo
puedes descargas más abajo el cual incluye el código en ensamblador, el archivo
hex, el circuito de prueba en Proteus 7.9, el esquema y PCB en Eagle 6.3.
Recuerda preguntas o comentarios son bien
recibidos, hasta la próxima...
Descarga: