Diseño e implementación
de una máquina CNC para la fabricación de placas de circuito impreso para
componentes SMD
Design and implementation of a CNC machine for the manufacture of
printed circuit boards for SMD components
Projeto e implementação de máquina CNC para fabricação de placas de circuito impresso
para componentes SMD
Correspondencia: ccjhonny@gmail.com
Ciencias Técnicas y Aplicadas
Artículos de investigación
*Recibido: 20
de julio de 2021 *Aceptado: 30 de agosto
de 2021 * Publicado: 30 de septiembre
de 2021
I.
Ingeniero en Electrónica Control y Redes Industriales, cursando una
maestría en Diseño, Gestión y Dirección de Proyectos de Cooperación
Internacional en UNINI-MX, Campeche, México.
II.
Ingeniero en Electrónica Control y Redes Industriales, Escuela Superior
Politécnica de Chimborazo, Egresado de Maestría en Electricidad mención
Sistemas Eléctricos de Potencia de la Universidad Técnica de Cotopaxi, Ecuador.
III.
Ingeniero en Mecatrónica, Master universitario
en Ingeniería del Software e Inteligencia Artificial - Universidad de Málaga,
Málaga, España.
IV.
Ingeniero en Mecatrónica - Universidad de las
Fuerzas Armadas ESPE - Ecuador, Master universitario en Ingeniería Mecánica -
Universidad Politécnica de Valencia – España. Candidato PHD en Ingeniería
industrial y de Materiales - Universidad Jaime I – España.
Resumen
Se diseñó e implementó una máquina de control numérico computarizado (CNC)
para el tallado de placas de circuito impreso (PCB) para elementos de montaje
superficial (SMD) con una precisión de 0.2mm. Esta investigación busca abaratar
los costos de implementación de placas electrónicas con la utilización de
software libres. Para su implementación se usó la estructura mecánica de una
máquina CNC modelo 3020T, existente en el mercado. El control del maquinado se
lleva a cabo con una placa Arduino UNO programado con
el software GRBL diseñado para el control de máquinas CNC, el mismo que recibe
las instrucciones o comandos de un ordenador a través del puerto USB; estas
instrucciones son producto de un código G, que se obtiene a través de un
software libre denominado FlatCam. El control de
movimiento de los ejes se realiza a través de un controlador JP-382A. En las
pruebas de fresado, los resultados obtenidos fueron muy satisfactorios, tomando
en cuenta que placas de esta precisión se manufacturan en máquinas laser.
Palabras claves: Diseño; máquina; placas; código; circuito; implementación.
Abstract
A computerized
numerical control (CNC) machine was designed and implemented for carving
printed circuit boards (PCB) for surface mount elements (SMD) with a precision
of 0.2mm. This research seeks to lower the cost of implementing electronic
boards with the use of free software. For its implementation, the mechanical
structure of a model 3020T CNC machine, existing on the market, was used. The
machining control is carried out with an Arduino UNO
board programmed with the GRBL software designed for the control of CNC
machines, the same that receives the instructions or commands from a computer
through the USB port; These instructions are the product of a G code, obtained
through free software called FlatCam. The movement
control of the axes is carried out through a JP-382A controller. In the milling
tests, the results obtained were very satisfactory, taking into account that
plates of this precision are manufactured on laser machines.
Keywords: Design; machine; plates; code; circuit;
implementation.
Resumo
Uma máquina de controle numérico computadorizado (CNC) foi
projetada e implementada para esculpir placas de
circuito impresso (PCB) para elementos de montagem em superfície
(SMD) com uma precisão de 0,2 mm. Esta pesquisa
busca baratear o custo de implantação
de placas eletrônicas com a
utilização de software livre.
Para sua implantação foi utilizada a estrutura mecânica de uma máquina CNC
modelo 3020T, existente no mercado. O controle da usinagem
é feito com
uma placa Arduino UNO
programada com o software GRBL desenvolvido
para o controle de máquinas CNC, a mesma que recebe
as instruções ou comandos
de um computador através da
porta USB; Estas instruções são
produto de um código G, obtido através de um software gratuito denominado FlatCam.
O controle do movimento dos eixos
é realizado através de um
controlador JP-382A. Nos testes de fresagem, os
resultados obtidos foram
bastante satisfatórios, visto que as placas desta precisão são fabricadas em máquinas a
laser.
Palavras-chave: Design; máquina; pratos; código; o circuito; implementação.
Introducción
En el presente artículo se explicará el diseño e
implementación de una máquina (CNC) para la fabricación de placas de circuito
impreso para elementos de montaje superficial (SMD). El control numérico
computarizado permite realizar un seguimiento de la posición de un elemento
durante todo el proceso. La máquina consta de elementos mecánicos eléctricos,
electrónicos y software. Este conjunto de elementos hace posible la fabricación
de placas de circuito impreso con líneas de conducción de 0,2mm.
El proceso de manufactura de una placa es controlado
principalmente por un Arduino UNO que se encarga de
interpretar el código G generado por un software CAM, este a su vez envía las
órdenes de movimiento a un controlador de motores que los traduce en dirección
y numero de pasos, pudiendo así realizar un ciclo de fresado.
El sistema se comunica con la computadora a través del
puerto USB, facilitando el uso de computadoras personales a diferencia de las
máquinas anteriores que utilizaban puerto paralelo.
Los métodos utilizados son el
científico para el diseño del gabinete de control y adaptaciones mecánicas, y
el método experimental para las respectivas pruebas de funcionamiento y el
cálculo de errores absolutos y relativos.
Desarrollo
Diseño e implementación
En el sistema
de control de una máquina CNC se compone básicamente de tres elementos en
general: el ordenador personal, la unidad de control y la máquina herramienta.
Figura 1. Sistema
de una máquina CNC, autores.
En base a este
esquema se puede iniciar con la descripción de la implementación.
A.
Software.
Arduino UNO necesita de un código libre
para poder interpretar el código G, este software se llama GRBL.
El
firmware de GRBL es multiplataforma por lo que funciona en Linux, Mac y Windows
en este apartado se explicará la instalación en Windows.
Para
cargar el firmware de GRBL en una placa arduino
debemos seguir las siguientes instrucciones:
·
Primero, conectar la placa Arduino UNO a cualquier puerto USB del ordenador.
·
Descargar el firmware.hex
de GRBL (se ha utilizado la versión v0.8).
·
Descargar el archivo XLoader y luego descomprimirlo.
·
Abrir XLoader
y seleccionar el puerto COM asignado para la placa arduino
en la parte inferior izquierda del menú.
·
Seleccione el dispositivo
apropiado en la lista despegable llamada “Device
(Dispositivo)”.
·
Comprobar la velocidad de transmisión
correcta del dispositivo (Arduino UNO atmega328/
115200 Baudios.
·
Hacer clic en el botón examinar
para buscar la dirección del archivo GRBL v 0.8.
·
Utilizar el botón Upload para subir el código a la placa Arduino
UNO.
Después
de hacer clic en cargar código se verá en la placa Arduino
parpadear intensamente los leds TX/RX y finalmente se
mostrará la cantidad de bytes subidos en la parte inferior de Xloader.
·
Interfaz Gráfica De Grbl (Gcodesender).
GRBL
tiene que ser configurado, para esto se necesita de una interfaz gráfica de
usuario. GCODESENDER es la que se eligió, esta brinda un control del software
completo tanto en mandos manuales como en funciones específicas; permite cargar
el código G de la placa a fresar y hacerle un seguimiento en tiempo real
mediante su visualizador gráfico. Está escrito en Java lo que significa que es
multiplataforma.
Figura 2. Visualizador
Gráfico de Gcodesender.
·
Configuración De Grbl.
Por medio de
comandos $$ se puede configurar los parámetros de GRBL, estos necesitan estar
bien configurados para garantizar el correcto funcionamiento de la máquina. A
continuación, todos los parámetros configurados.
$0=400.0000 (x,
step/mm)
$1=400.0000 (y,
step/mm)
$2=400.0000 (z, step/mm)
$3=10 (step pulse, usec)
$4=1000.0000 (default feed, mm/min)
$5=1000.0000 (default seek, mm/min)
$6=96 (step port invert mask, int: 01100000)
$8=100.0000 (acceleration, mm/sec^2)
$10=0.1000 (arc, mm/segment)
$12=3 (n-decimals, int)
$13=0 (report inches, bool)
$15=0 o 1 (invert step enable, bool)
$16=1 (hard limits, bool)
B.
Hardware.
En cuanto al
hardware necesario para el funcionamiento de la máquina CNC, se tiene como
principal elemento a la placa Arduino UNO que se
conecta con el controlador de los motores JP-382A por medio de un cable
paralelo, como se muestra en el siguiente esquema.
Figura 3. Conexión de Arduino
con JP-382A.
Tabla 1. Descripción de pines de conexión.
PINES (LPT) |
PINES ARDUINO |
DESCRIPCIÓN |
2 |
2 |
PASOS
EJE X |
3 |
5 |
DIRECCIÓN
EJE X |
4 |
3 |
PASOS
EJE Y |
5 |
6 |
DIRECCIÓN
EJE Y |
6 |
4 |
PASO
EJE Z |
7 |
7 |
DIRECCIÓN
EJE Z |
10 |
A0 |
PARO |
18-25 |
GND |
TIERRA
(GND) |
Para la
conexión del Arduino UNO con cualquier driver de
motores paso a paso compatible, se tiene una imagen que muestra la distribución
de los pines usados por el firmware GRBL (cargado anteriormente) para poder
controlar los movimientos de la máquina.
Figura 4. Pines de Arduino para
GRBL.
Dirección X-Axis: Pin que da la dirección para el
motor del eje-X.
Dirección Y-Axis: Pin que da la dirección para el
motor del eje-Y.
Dirección Z-Axis: Pin que da la dirección para el
motor del eje-Z.
Step Pulse X-Axis: Pin que da el número de pasos para el motor del eje-X.
Step Pulse Y-Axis: Pin que da el número de pasos para el motor del eje-Y.
Step Pulse Z-Axis: Pin que da el número de pasos para el motor del eje-Z.
Limit X-Axis: Pin de conexión con final de carrera que indica el límite máximo del eje
X.
Limit Y-Axis: Pin de conexión con final de carrera que indica el límite máximo del eje
Y.
Limit Z-Axis: Pin de conexión con final de carrera que indica el límite máximo del eje Z.
Reset/Aabort: Pin de conexión con el botón de paro de emergencia.
·
Controlador De Motores Y
Regulación De PWM Husillo.
El controlador
de motores JP-382A encargado de los movimientos de los motores paso a paso,
está hecho a base de circuitos integrados TB6560AHQ; como se dijo anteriormente
este controlador tiene como salida un puerto paralelo.
Figura 5. Imagen
del controlador JP-382A.
Figura 6. Diagrama esquemático del
JP-382A.
Características principales del JP-382A:
·
RoHS/PBF/compatible sin plomo.
·
Motor paso a paso circuito
integrado.
·
Fabricante: Toshiba, Geniune, no falsificación.
·
Corriente nominal: 3A.
·
Tensión de pico 40 V.
·
Tensión nominal: 34 V.
·
Micro-paso de Precisión: 1/2,
1/8, 1/16.
·
Estabilidad chip: alta.
El puerto
paralelo del controlador se conecta a la placa de control con Arduino UNO como se muestra en la figura 3.
El PWM del
motor del husillo se controla con el módulo JP-1482, este tiene como principal
componente el circuito integrado STC15W408. Al analizar el comportamiento del
PWM se notó un ligero desbalance entre la resistencia del potenciómetro y el
movimiento del motor, por este motivo se realizó una toma de datos para poder
interpretar el respectivo funcionamiento.
La resistencia
máxima del potenciómetro es 3.312K, el PWM no empezó hasta que la resistencia
cayó a un valor de 3.125K, que según los cálculos en el divisor de voltaje
equivale a 1.7V. El PWM inició aproximadamente en 20% y aumentó linealmente a
100% mientras la resistencia se redujo a un valor de 0.
Un análisis más
detenido hizo notar que el movimiento en el potenciómetro no produce cambios
inmediatos en el PWM, tarda alrededor de 4 segundos, esto significa que el 80%
utilizable del PWM se reparte en 4 segundos; haciendo una división simple se
puede estimar que el PWM aumenta un 1% cada 50 milisegundos. También se notó
que la frecuencia del PWM es de 1.28KHz aproximadamente.
Todos estos
datos se pueden notar en las imágenes posteriores.
Figura 7. Gráfica
de resistencia vs PWM.
Tabla 2. Valores
de datos para analizar PWM.
Resistencia (Ohm) |
Voltaje V |
Tiempo (us) |
Porcentaje (%) |
3312 |
1,78 |
0 |
0 |
3208 |
1,74 |
0 |
0 |
3125 |
1,71 |
148 |
18,95 |
3005 |
1,67 |
172 |
22,02 |
2895 |
1,63 |
188 |
24,07 |
2793 |
1,59 |
212 |
27,14 |
2664 |
1,54 |
232 |
29,71 |
2512 |
1,48 |
256 |
32,78 |
2373 |
1,42 |
288 |
36,88 |
2207 |
1,34 |
316 |
40,46 |
2001 |
1,25 |
356 |
45,58 |
1840 |
1,17 |
388 |
49,68 |
1616 |
1,06 |
444 |
56,85 |
1462 |
0,98 |
464 |
59,41 |
1218 |
0,84 |
524 |
67,09 |
998 |
0,71 |
568 |
72,73 |
820 |
0,6 |
604 |
77,34 |
616 |
0,47 |
652 |
83,48 |
394 |
0,31 |
704 |
90,14 |
199 |
0,16 |
744 |
95,26 |
5 |
0 |
781 |
100 |
Figura 8. Gráfica
de ciclo de PWM y Voltaje.
C.
Mecánica.
Para la parte
mecánica se utilizó la estructura de la máquina CNC modelo 3020T, a esta
estructura se le añadió una base de madera MDF para facilitar sostener las
baquelitas, también se incorporó finales de carrera para asegurar el área de
trabajo y evitar que los motores lleven a los ejes más allá del límite físico
pudiendo ocasionar daños en las juntas o en los motores.
Características principales de la máquina 3020T:
·
Dimensiones del área de trabajo:
200mm*300mm.
·
Unidades de conducción de los
ejes X Y Z: tornillos trapezoidales 1204.
·
Materiales marco: aleación de
aluminio 6063 y 6061
·
Tipo de motor paso a paso: 57 de
dos fases 1.45A-2A ,1.8°.
·
Pinza principal del eje: ER11 /
3,175mm.
·
Exactitud de repetición: 0.05mm.
·
Precisión del husillo: agudezas
radiales de 0.03mm.
·
Interfaz de comunicación: a
través de la conexión en paralelo con el ordenador.
Figura 9. Máquina
CNC 3020T.
Resultados
Para la
realización de la etapa de pruebas se determinó que el tamaño muestral para la estimación de resultados es 3,98 muestras.
A.
Pruebas de comunicación entre software y hardware.
Estas
pruebas fueron necesarias para saber si los elementos de control en la máquina
tenían una comunicación sin problemas con el software.
Prueba de
interruptores finales de carrera.
Los
interruptores finales de carrera están conectados directamente a la placa de
control, para comprobar su correcto funcionamiento se envió un movimiento en el
eje X/Y, mientras se ejecutaba el movimiento se activó manualmente uno de los
finales de carrera para observar si el movimiento se detenía inmediatamente y
el software respondía con su mensaje correspondiente.
Efectivamente
el movimiento de los ejes fue interrumpido y el software respondió con el
mensaje que se muestra en la imagen siguiente.
Figura 10. Mensaje
de respuesta de GRBL
Prueba de botón de paro de emergencia.
Al igual que
la prueba anterior el botón de paro de emergencia debe hacer una función muy
similar que los interruptores finales de carrera. Los movimientos de los ejes
deben pararse inmediatamente pulsado el botón; si el operario nota alguna
anormalidad en la ejecución del trabajo.
Figura 11. Mensaje
de respuesta de GRBL.
B.
Prueba de repetibilidad de movimiento con
respecto a la velocidad.
Para esta
prueba fue necesario la ayuda de un calibrador de precisión digital acoplado a
el eje X de la máquina CNC, el cual se encargaba de tomar la medida del
desplazamiento de dicho eje.
Al ver la
figura siguiente se puede notar que a velocidades bajas la máquina es muy
inestable, mientras que a velocidades altas a partir de 500 mm/min empieza a
estabilizarse.
Figura 12. Gráfica
velocidad vs distancia.
C.
Prueba de profundidad de fresado en el eje Z.
Prueba a
0.05mm
Una vez
determinado el punto cero del eje Z, se envió a ejecutar un código donde se
especificaba la profundidad de fresado en 0.05mm. Esta profundidad fue sin duda
la que mejor resultado dio; la máquina pudo fresar sin problema la PCB sin que
haya lugares donde no se eliminó el cobre por completo. El resultado fue el
siguiente.
Figura 13. Resultado
a 0.05mm.
Figura 14. Resultado
a 0.04mm.
En la prueba
de 0.04mm se notó que en partes de la placa no se logró fresar todo el cobre,
quedando esta medida descartada.
1.
Prueba de fresado con fresa de 0.2mm a 10°
En esta prueba era necesario saber la precisión de fresado
con pistas de conducción de 0.2mm de ancho, para esto se utilizó un diseño
hecho en Proteus donde se le dio 8th que son aproximademante 0.203mm de ancho.
Una vez realizado el trabajo por la máquina, el siguiente
paso era medir lo mas exacto posible el ancho real de las pistas de conducción
fresadas. Para este propósito se utilizó el software Solidworks, donde se
insertó una imagen de una fotografía en alta calidad, posteriormente se tomó
dos medidas en partes estratégicas de la placa y se aplicó una regla de tres
con una medida real conocida tomada con un calibrador digital de alta
precisión, como se muestra en la imagen siguiente.
Figura 15. Medición
del valor de la pista.
Se tomó tres
muestras más para realizar un cálculo de errores, estos datos se pueden
evidenciar en la siguiente tabla.
Tabla 3. Cálculo
de errores.
MEDIDAS(mm) |
ERRORES ABSOLUTOS |
ERRORES REALIVOS |
0.1655 |
0.1655-0.1641=
0.0014mm |
(0.0014/0.1641)X100%=0.85% |
0.1610 |
0.1610-0.1641=-0.0031mm |
(0.0031/0.1641)X100%=1.88% |
0.1651 |
0.1651-0.1641=0.0010mm |
(0.0010/0.1641)X100%=0.61% |
0.1648 |
0.1648-0.1641=0.0007mm |
(0.0007/0.1641)X100%=0.42% |
PROMEDIO |
0.00155mm |
0.94% |
Analizando
los datos de errores que se obtuvieron podemos notar que la máquina tiene en
promedio con las fresas de 0.2mm un error absoluto de 0.00155mm y un error
relativo porcentual promedio de 0.94% que para nuestro proyecto va bastante
bien.
1.
Otro resultado del fresado.
Se probó
un fresado de la placa arduino nano, en este caso la
cara top que está disponible en la página oficial de Arduino.
Estas están diseñadas en Eagle, se obtuvo el archivo gerber
de este diseño y se fresó en la máquina CNC; el diseño y el resultado se
muestra en la siguiente imagen.
Figura 16. Placa
cara top Arduino nano.
Conclusiones
Seleccionar
la estructura mecánica de una máquina CNC modelo 3020T, considerando los
parámetros más importantes como: el paso de la rosca del husillo, los pasos por
revolución de los motores paso a paso, aseguró conseguir una precisión de 0.2mm
de fresado.
Al
investigar los diferentes procesos que pueden realizarse con una máquina CNC,
así como los diferentes materiales en los que puede realizar el fresado, se
determinó el correcto algoritmo a seguir para el diseño y construcción de
nuestro prototipo puliendo los diferentes procesos para lograr un maquinado de
trabajo preciso y conciso, acorde a las necesidades requeridas por los
usuarios.
El uso del
JP-382A brindó la capacidad de soportar el pico máximo de corriente de los
motores paso a paso de los tres ejes de la máquina; también la utilización del
controlador JP-1482 para el control de PWM del husillo, la rectificación de la
corriente de alimentación de todo el sistema y la regulación de voltajes para
los diferentes dispositivos en el gabinete de control, no dejaron de ser menos
importantes.
Durante la
comprobación de los resultados del fresado a 0.2mm, se pudo notar que la
máquina cumple con los requerimientos, con un error mínimo totalmente aceptable
en la fabricación de placas PCB.
Recomendaciones
Verificar
las conexiones de los motores y sensores de la máquina a la caja de control y a
su vez la conexión del interfaz de comunicación entre el gabinete de control y
el ordenador, esto para que al momento del fresado no existan perdidas de
material para mala conexión de la misma.
El tiempo de fresado de la máquina no debe exceder
a 20 minutos como límite porque los motores se calientan excesivamente; si el
fresado de la PCB no ha terminado aún, se puede pausar
el proceso a través de GCODESENDER y apagar la caja de control por un lapso de
tiempo; luego de esto se puede continuar con el fresado.
Para las puntas de fresa finas de 0.1mm y 0.2mm de
diámetro se recomienda utilizar una velocidad de fresado no mayor a 80mm/min.
Esta velocidad se puede especificar al momento de crear el código G en el
software FlatCam.
Hacer trabajar a la máquina bajo supervisión para
evitar el daño de la misma, ante cualquier problema que se presente. Una forma
muy recomendable de responder ante un problema es usando el botón de paro de
emergencia que se halla ubicado en la caja de control.
Referencias
1.
PETERS, JUAN JOSÉ. Desarrollo Electrónica
DIYLILCNC [En Línea]. Chile: Juan José Peters, 21 de
diciembre 2013. [Consulta: 15 de septiembre 2015]. Disponible en: http://wiki.ead.pucv.cl/index.php/Desarrollo_Electr%C3%B3nica_DIYLILCN
2.
HARPER, G. E. El ABC de las máquinas
Eléctricas. 1ra Ed. Balderas95-México: Limusa S.A,
2004, pp. 17.
3.
ACUÑA C., Fausto V., & SÁNCHEZ O.,
Wilson E. Diseño y construcción de un prototipo de una maquina taladradora de
control numérico computarizado (Tesis). Escuela Politécnica del Ejercito SEDE
Latacunga, Latacunga, Ecuador. 2005. pp. 10-16.
4.
TERUEL CRUZ, F. En control numérico y
programación: Sistemas de fabricación de máquinas automatizadas. 2da. Ed.
Barcelona-España: Marcombo, 2004, pp. 1-3.
5.
GÓMEZ MILLAN, S. fabricación por arranque
de viruta. 1ra. Ed. Madrid-España: Paraninfo S.A, 2012, pp. 250-294.
©
2021 por los autores. Este artículo es de acceso abierto y distribuido según
los términos y condiciones de la licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0)
(https://creativecommons.org/licenses/by-nc-sa/4.0/)