viernes, 6 de junio de 2014

Construyendo mi fresadora CNC (Interfaz mini CNC V1.0 con PIC16F628)


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:




19 comentarios:

  1. olles amigo no me podras ayudar a hacerlo pero con el pic 16f84

    ResponderEliminar
    Respuestas
    1. Hola Kevin, para utilizar el pic 16f84 es necesario modifica algunos fuses ya que el código es compatible, ademas se debe utilizar el pic 16f84 que trabaja hasta 20 Mhz. En estos momentos no estoy en casa pero en cuanto pueda te doy mas detalles.
      Saludos...

      Eliminar
  2. muchas gracias amigo mira yo tambien te explico yo tenia pensado hacerlo con motores pap y hacerlo de 3 ejes basicamente solo quiero que haga un cuadrado de 5 cm por 5cm y 1 cm de profundidad ese es lo que me dejaron hacer no soy muy conocedor del codigo asm apenas estoy leyendo sobre el crees que me pudiereas pasar el codigo para lo que necesito porfa

    ResponderEliminar
  3. hermano como estas olles si me ayudas porfa

    ResponderEliminar
  4. genial!! desarme la misma impresora y lo primero que encontre fue tu pagina para usar los drivers

    ResponderEliminar
    Respuestas
    1. Si te dan algún problema, aquí estamos para ayudar, saludos.

      Eliminar
  5. hola una consulta se podría modificar para utilizar el usb? ya que no cuento con puerto paralelo, y de ser así ya no podre utilizar el Match3 ?

    ResponderEliminar
    Respuestas
    1. Hola boris cristian, si se puede realizar una interfaz con USB pero tendrías que usar un micro controlador con dicho periférico como el 18F4550. En la red hay muchos proyectos con interfaz USB pero usan una tarjeta de ARDUINO y se usa un software diferente.
      El programa de Match 3 solo se puede usar con interfaces con puerto paralelo.
      Saludos.

      Eliminar
    2. Hola mandame un correo a este jun111_20@hotmail.com, necesito tu ayuda quiero hacer un cnc con pic y sera pagado t5u ayuda saludos Junior Rivas

      Eliminar
  6. hola carlos, tienes imagenes de la cnc terminada?

    ResponderEliminar
  7. hola carlos como estas, estoy interesado en construir la fresadora, compre tres driver l298n por ebay (espero y me lleguen), bien ya en un pequeño chasis sera que así como están montados me sirven?
    http://www.ebay.com/itm/Dual-H-Bridge-DC-Stepper-Motor-Drive-Controller-Board-Module-Arduino-L298N-HG-/281551893660?hash=item418dccf49c:g:sm8AAOSwYGFUsJ9I

    ResponderEliminar
  8. hola que tal estoi trabajando con los driver l6219 segun el datashet es muy parecido alos driver que utilizaste de la impresora, me podrias explicar como hacer que el motor gire, cual es la combinacion de los pines
    saludos

    ResponderEliminar
  9. ¿el match 3 sirve con el db37?
    se podria modificar al db25

    ResponderEliminar
  10. Hola amigo crees que sea posible que me pudieras pasar el archivo de engle
    ??
    mi correo es luna_ro_si@hotmail.com

    ResponderEliminar
  11. Boa noite amigo gostaria de uma ajuda a mas de sua parte!
    Os circuito PIC16f628 acima funciona independente do circuito da impressora..
    LIM X, LIM y, LIM Z, funciona como fim de curso

    ResponderEliminar
  12. Muy buenas ideas para reutilizar controladores epson, pero como son las conexiones que se deben hacer? hay un plano mas detallado en donde se deben soldar las resistencias, a que parte van conectados los cables que salen, se deben cortar pistas, etc. estoy en mi proyecto de fresadora cnc con dremmel.
    Como se configura MACH3 para operar, hay ejemplos.
    Cualquier informacion adicional es bienvenida


    Saludos

    Javir H. Rozo

    ResponderEliminar
  13. hola como seistala el controador driver .DSN

    ResponderEliminar
  14. Buenas tardes muy bueno, yo tengo un proyecto con una de esas impresora

    ResponderEliminar