Upload
javier-estremera-perez
View
256
Download
1
Embed Size (px)
Citation preview
Titulo: CNC-DUINO
Javier Estremera Pérez
José Carlos Estremera Pérez
26 edición del Premio
Página 2
Prologo
Se ha creado un Blog, donde se encuentran videos,
Imágenes y todo lo relacionado con este proyecto.
Para visualizar el contenido digital.
http://cncduino.blogspot.com.es/
Página 3
INDICE INTRODUCCION ............................................................................................................................. 4
LA IDEA .......................................................................................................................................... 5
FUNCIONAMIENTO DEL CONJUNTO ............................................................................................. 8
Mecánica ................................................................................................................................... 8
Electrónica ............................................................................................................................... 11
Motores paso a paso........................................................................................................ 11
Modulo Puente H L298N ................................................................................................. 11
Fuente de alimentación ...................................................................................................... 13
Arduino ............................................................................................................................... 13
Esquema de conexiones. ..................................................................................................... 14
Software .................................................................................................................................. 15
PLANOS ........................................................................................................................................ 22
Página 4
INTRODUCCION
En este proyecto se ha marcado el objetivo principal construir y programar una CNC
(control numérico computarizado), buscando, además, que sea posible la utilización de
estas máquinas CNC en las aulas de institutos y FP para el aprendizaje y manejo de
movimientos en el espacio a través de 3 ejes (X, Y y Z) a un bajo precio.
Este prototipo tendrá como cerebro el controlador Arduino y para realizar los
movimientos consta de 3 motores paso a paso y de sus controladores. Arduino es un
microcontrolador de bajo coste y altas prestaciones.
El microcontrolador, hará que los motores se muevan para desplazar el taladro a la
posición adecuada y ajustando, además, la altura de éste. Además, acciona el motor
del taladro.
La información que necesita el dispositivo para posicionarse (coordenadas) y señal
para activar el taladro se transmite por una interfaz que comunica con el puerto serie
(USB) del ordenador.
Finalmente la maquina vuelve al origen de coordenadas, su punto inicial, para poder
hacer un trabajo similar al anterior y de esta manera podemos hacer piezas en serie.
Página 5
LA IDEA
El principal motivo que nos ha llevado a realizar este proyecto es la necesidad de
hacer placas PCB más profesionales y no con ácidos, ya que el repaso con
rotuladores indelebles nunca sale todo lo bien que queremos, también observamos
cuando pasábamos por el aula de tecnología de la ESO que los alumnos estaban
realizando una maqueta, y para ello calcaban las piezas en madera y luego las
cortaban con seguetas. Una maquina de estas características haría este trabajo más
preciso y los alumnos aprenderían el movimiento de una maquina y su codificación.
Las alternativas comerciales de una CNC para este fin, ronda unos 2000€ las más
barata, esto es difícilmente asumible para un uso didáctico. Además, a esta inversión
habría que añadir el software necesario para el control de la misma.
Estar cursando estudios de F.P. en Sistemas de Regulación y Control Automáticos y
una gran curiosidad por saber cómo controlar el movimiento de una máquina. Nos ha
llevado a intentar desarrollar un prototipo de máquina asequible.
Lo primero que tuvimos que investigar es cómo podríamos comunicarnos con ella
desde un PC, había varios métodos, desde unas placas prefabricadas de las cuales al
final necesitarían de programas de pago como el MACH3 o la opción más económica
que es a través de un Arduino, un microcontrolador de bajo coste (20€).
El sistema Arduino era totalmente nuevo para nosotros, llevamos investigando sobre él
desde comienzo del curso y viendo que usa un lenguaje de programación basado en
C++. Tener conocimiento en C++ hizo más sencillo trabajar con el entorno de
programación de este microcontrolador.
Una vez encontrado el sistema de comunicación que íbamos a usar el siguiente reto
seria encontrar unos motores que nos dieran precisión. Buscando posibles soluciones,
descubrimos que se necesitan motores paso a paso. Siguiendo la idea inicial de
Página 6
conseguir precios económicos. Encontramos uno que se dedica a el reciclaje de los
mismo, adquirimos 3 motores PAP por 40€. Un precio bastante más bajo que la media
del mercado que rondaban los 25€ cada motor. Estos motores necesitan para su uso
unos driver controladores que también nos facilitó la misma empresa.
Para la estructura mecánica de la CNC nos han sido muy útiles los conocimientos de
carpintería en madera por haber trabajado durante años en esa profesión. Esto nos
llevó a decidir realizar la CNC, en un principio, de madera. Sin embargo, una posterior
reflexión, nos hizo pensar que la madera es un material que con el roce tiende al
desgaste y para una máquina de precisión no es muy adecuado ya que nos variaría
los resultados. Pasamos a buscar una alternativa en material más resistente pero a la
vez con características similares a la madera para trabajar en él. Optamos por el
metacrilato que es un material plástico que con las mismas sierras y fresas de la
carpintería podría ser cortado y mecanizado. Este material fue donado lo que ayudaba
a mantener la idea de bajo coste.
Todos estos materiales no han superado los 180€ y permiten construir máquinas CNC
de una precisión similar a las comerciales. Este coste hace posible el uso didáctico
desde la ESO hasta las FP y enseñar con sistemas automatizados el control de trabajo
en espacios de tres ejes.
Página 7
TABLA DE COSTES CNC-Duino
Cantidad Material
Precio
Und.
Precio
Total
1 Arduino UNO v3 (Controladora) 26,00 € 26,00 €
1 Fuente Alimentacion 22,00 € 22,00 €
3 Controlador Driver Motor L298N 8,00 € 24,00 €
3 Motores Paso a Paso 13,00 € 39,00 €
1 Relé 5V 5,99 € 5,99 €
14 Rodamientos 0,99 € 13,86 €
3 Barras roscada M8 3,00 € 9,00 €
1 Componentes electronicos varios 12,00 € 12,00 €
1 Taladro de Mano 15,00 € 15,00 €
1 Ferreteria varios 18,50 € 18,50 €
1 Materiales Varios (Hardware) 35,00 € 35,00 €
1 Software 0,00 € 0,00 €
Total 220,35 €
TABLA DE COSTES CNC Comercial
Cantidad Material
Precio
Und.
Precio
Total
1 FRESADORA SOBREMESA HQ-5838 1.936,00 € 1.936,00 €
1 Software MACH3 181,00 € 181,00 €
Total 2.117,00 €
COMPARACION DE COSTES
CNC-DUINO 220,35 €
CNC COMERCIAL 2.117,00 €
En las tablas de arriba contemplamos una comparativa de precios de una maquina
comercial con respecto a nuestra CNC-Duino, observando una diferencia en un 90%
del costo. Indicar que la maquina comercia es de es de las más pequeñas que existen
en el mercado a diferencia de nuestra CNC que es adaptable al tamaño deseado, mas
fácil de controlar y más sencilla de aprender a usar.
Página 8
FUNCIONAMIENTO DEL CONJUNTO
En este apartado realizaremos la descripción de nuestra maquina CNC,
descomponiéndola en partes, para detallar su funcionamiento.
Mecánica
La parte mecánica está hecha a partir de un diseño previo realizado por ordenador
y basado en CNC comerciales, el material elegido para la construcción ha sido el
metacrilato. El motivo es que es un material fácilmente manejable y al alcance de
nuestras capacidades, y de poco desgaste con el rozamiento. Las piezas fueron
sacadas a partir de un bloque macizo de metra quilato de 8x15x60, esta pieza fue
cortada en varias partes para la construcción de las guías del eje Y, de la guía del
eje X y de los soportes para el desplazamiento del tornillo sin fin. (Piezas
recogidas en planos)
Piezas ya cortadas
Página 9
El desplazamiento se realiza atreves de unos
tornillos sin fin de M8 con paso 1,25mm. Este último
dato es muy importante porque es del que hay
realizar los cálculos de las vueltas que tendría que
dar un motor para mover un milímetro, ya que esto
nos dará la precisión que buscamos en nuestra
CNC.
Para el desplazamiento sobre las guías de los elementos trasportadores se han
usado unos rodamientos, de esta manera el desplazamiento se realiza de modo
limpio y sin mucho reten entre las piezas, para los ejes de los rodamientos se ha
usado un tornillo de diámetro 12, el cual se ha cortado y torneado para usarlo
como ejes.
El soporte de taladro se ha realizado con el mismo
material de metacrilato y para realizar la pieza se
ha empleado el sistema de control numérico de
nuestro centro. La sujeción firme del taladro se ha
logrado con un tornillo pasante. Apretando sobre
un espacio mínimo y así fijando fuerte el taladro.
Página 10
El sistema de cadenado de cables(los
trasporta cables) ya que su precio era
realmente caro, se optó por realizarlos,
basándonos en los comerciales. El
sistema diseñado ha sido, el corte de
pequeños cuadrados unidos por el
mismo cable, aprovechando la forma de estos cables ha resultado muy sencillo
realizarlo, ya que al ser planos y unidos entre ellos ofrece un gran soporte para su
pegado. Estas cadenas trasporta-cables parten desde el centro de su movimiento
para así evitar en el desplazamiento, el cruzamientos de cables ya que esto podría
llevarnos a un error o incluso a la desconexión de los cables. Estas cadenas van
sobre una base plana, para que así tenga su propio espacio para el
desplazamiento.
CNC-DUINO
Página 11
Electrónica
Para la electrónica se han usado una serie de elementos descritos a continuación:
Motores paso a paso , son los idóneos para realizar con
exactitud posiciones del mismo, se han usado uno por
cada eje. Las características de los motores usados son
de 1,8º el paso del motor, son motores unipolares, pero se
han transformado en bipolares, ya que de esta manera era
más sencillo controlarlos mediante la programación. Para realizar esto, lo único
que hemos tenido que realizar es localizar los comunes de cada bobinado y
eliminarlos de esta manera solo uso 4 hilos.
Modulo Puente H L298N , Usa el chip L298N de ST como chip controlador, el
modulo tiene grandes características como controlador de motores DC, baja
perdida en calentamiento y baja interferencia.
Este modulo puede utilizar su 78M05 integrado
para no usar 2 fuentes diferentes, utilizando
solo la fuente de potencia (siempre y cuando
esta no sea mas de 12V), pero es
Página 12
recomendable utilizar una fuente externa de 5V cuando la fuente de potencia es
mayor a 12V para evitar el daño del 78M05.
La principal función de este driver o controlador es la de mover el motor paso a
paso e ir activando bobinas en un orden determinado para crear movimientos
coherentes del paso del motor.
Los L298N usan cuatro entradas para la activación de las bobinas, nosotros
solo hemos usados dos de esas entradas para activar el bobinado de las
cuatro que hay, de este modo no usamos muchas salidas del Arduino ya
que nuestro modelo, Arduino UNO, sólo tiene 13 salidas. Para realizar esta
operación se han realizado unos circuitos para cada uno de los driver.
Con este circuito delante del chip L298N, hacemos que con solo dos entradas se
controlen las cuatro bobinas. En esta tabla vemos la activacion de las bobinas de
los motores una vez pasando por el circuito
electrico indicado arriba. Para que la bobina 4
no se encutre siempre en activo, ya que esto
probocaria calentamiento del motor, los
L298N permaneceran inactivos mientras no se
usan, a traves del enable
BOBINAS Int1 Int2 Int3 Int4
Bobina 1 0 0 0 1
Bobina 2 0 1 0 0
Bobina 3 0 1 0 1
Bobina 4 0 0 0 0
Página 13
Fuente de alimentación, para la suministración de corriente, se ha usado una
fuente de alimentación de un ordenador, una
ATX. Este tipo de fuente de alimentación,
proporciona los amperios necesarios para
alimentar los driver y los motores. La fuente se
ha preparado eliminando todos los cables que no
eran necesarios y sólo se ha dejado los
imprescindibles para nuestro circuito.
Para que las fuentes ATX funcionen sin estar conectadas al ordenador hay que
puentear el PS-ON con GND de esta manera siempre estaría funcionando nuestra
fuente de alimentación. El PS-ON es el cable Verde, siempre es así.
Arduino es una plataforma de hardware libre, basada en una placa con un
microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la
electrónica en proyectos. El Arduino que usamos en la CNC es el Arduino UNO
V3, este Arduino usa el microcontrolador Atmega 328, que tiene una capacidad de
32KB, el Arduino Uno tiene 13 salidas digitales y 6 analógicas, para este proyecto
es suficiente ya que no hacen falta más. El Arduino lo comunicamos mediante
puerto USB, para enviarle y recibir datos de él, con este mismo conector se
alimenta nuestro Arduino.
Conectores de
entradas L298N
Conectores de
enables de L928N
Página 14
Esquema de conexiones.
Página 15
Software
La programación que maneja la CNC esta realizada en lenguaje Arduino ya que es
nuestro microcontrolador. En el programa definimos los cálculos:
• El paso de vuelta de nuestro tornillo, que es de 1,25mm.
Para el cálculo se usan los grados del motor y la vuelta del tornillo. En nuestro
caso tenemos un motor PAP 1,8º y un tornillo de paso 1,25 mm
CALCULO:
360º/1,25mm de paso=288
288/1,8º=160
160 lo definiríamos como 1 mm es decir 160º del motor son 1mm en nuestro
movimiento, de esta manera conseguimos la precisión en la CNC.
• La velocidad máxima de movimiento de nuestro motor, esto dependerá del tipo
de motor que usemos, si la velocidad es muy rápida es posible que el motor no
se mueva ya que las bobinas se activan tan rápido que no le da tiempo a
descargarse y el motor no se movería.
• Los pines de comunicación con los diferentes driver de los motores el cual
definimos 3 por motores, uno de envió, otro de recepción y otro de enables.
Este último nos conecta y desconecta el driver, de esta manera evitamos que
los motores estén siempre activos, evitando así el calentamiento innecesario
del mismo.
• El lenguaje de comunicación a usar, definimos los comandos a traducir, es
decir para el control de una CNC se realiza a través de una serie de
comandos, activar y desactivar el taladro, movimientos giratorios, movimientos
lineales etc.…, estos comandos definidos a continuación:
Comando
G0
G1,G01
G2,G02
G3,G03
G4,G04
G20
G21
G28
G30
G90
G91
G92
M0
M3,M03
M5,M05
El código es creado por un software
es un software que trabaja en vectores y es muy sencillo de usar
para generar el código
extensión llamada GCodeTool.
Ejemplo de una Imagen realizada por Inkscape
Página 16
Descripción
Movimiento lineal Rápido
Movimiento lineal Controlado (Avance: 100)
Movimiento curvo (sentido horario) Controlado
Movimiento curvo (anti horario) Controlado
Pausa con retardo (Retardo: 200ms)
Definir Unidades en Pulgadas
Definir Unidades en milímetros
Ir a Origen
Ir a Origen a través de un punto
Definir Coordenadas absolutas
Definir Coordenadas relativas
Definir punto actual como origen
Paro (Pausa programada)
Marcha del cabezal
Paro del cabezal
El código es creado por un software libre ya existente. INKScape
es un software que trabaja en vectores y es muy sencillo de usar,
para generar el código del dibujo vectorizado lo realiza una
extensión llamada GCodeTool.
Ejemplo de una Imagen realizada por Inkscape
Página 17
Generar Código.
Paso 1 .-Para generar el código de nuestro dibujo, lo
primero es crear 2 puntos de referencias, esto lo
realizamos desde Extensiones>gcodetool>puntos de
orientación. Generando en el margen inferior una
referencias .
Indicándonos que ya podemos realizar el siguiente paso. En caso de que no se nos
haya generado. Debemos revisar el dibujo, ya que puede que hay un conflicto.
Paso 2 .- Indicación de fresa que vamos a usar, que software
nos ofrece un gran posibilidad de herramientas a usar,
cónicos, cilindros, plasmas… muy importante identificar
correctamente el tipo de herramienta que va a realizar el
fresado. Ya que sobre esta información se creara un código
de una manera u otra. Para ello vamos a
Extensiones>gcodetool>librería herramientas.
Y se nos generara en el dibujo una ventana verde con la información de las medidas
que va usar nuestra fresa, la cual hay que modificar según convenga.
Página 18
Paso 3 .- Este paso es el último y es el más importante, pues es el que nos genera el
código. En éste establecemos cuánto bajara Z, para ello vamos a
Extensiones>gcodetool>generar código (path to
gcode), indicamos donde vamos a guardar el archivo,
y generamos el código dándole a aplicar. Una vez
creado nuestra imagen se verá cubierta de muchas
flechas estableciendo el recorrido.
Si nos vamos a la carpeta donde le hemos dicho que nos genere el código,
encontraremos un archivo .gnb que debemos convertirlo a .txt y eliminándole toda las
cosas que se encuentre entre paréntesis y unir todas las líneas, ya que si no
realizamos este trabajo, el programa que envía el archivo no es capaz de leer
espacios y paréntesis. Pues no se encuentran dentro de la programación de Arduino.
Diámetro de nuestra
herramienta
Velocidad de Avance
Velocidad de penetración
Software de comunicación.
Para enviar las instrucciones al
software llamado CNC DUINO
permite comunicarnos a través del puerto serial con el
Una vez conectados podemos manejar la CNC de modo manual, por coordenadas o
enviando un archivo .txt. Si entramos en el modo manual veremos una especie de
joystick y una pestaña que nos permite establecer el avance en milímetros. De esta
manera podemos poner el punto cero de manera manual pulsando Establecer punto 0.
Si entramos en el modo por Coordenadas veremos una pestaña que nos pide el eje X,
Y, Z y avance. De esta manera iremos directamente al punto establecido de manera
lineal. Este modo también sirve para establecer el punto 0 o para ir a un punto
específico de la CNC.
Página 19
Software de comunicación.
Para enviar las instrucciones al Arduino desde nuestro ordenador hemos creado un
CNC DUINO a través de Visual Basic Studios .NET 2010 que nos
permite comunicarnos a través del puerto serial con el Arduino.
Una vez conectados podemos manejar la CNC de modo manual, por coordenadas o
enviando un archivo .txt. Si entramos en el modo manual veremos una especie de
joystick y una pestaña que nos permite establecer el avance en milímetros. De esta
manera podemos poner el punto cero de manera manual pulsando Establecer punto 0.
en el modo por Coordenadas veremos una pestaña que nos pide el eje X,
Y, Z y avance. De esta manera iremos directamente al punto establecido de manera
lineal. Este modo también sirve para establecer el punto 0 o para ir a un punto
sde nuestro ordenador hemos creado un
a través de Visual Basic Studios .NET 2010 que nos
Una vez conectados podemos manejar la CNC de modo manual, por coordenadas o
enviando un archivo .txt. Si entramos en el modo manual veremos una especie de
joystick y una pestaña que nos permite establecer el avance en milímetros. De esta
manera podemos poner el punto cero de manera manual pulsando Establecer punto 0.
en el modo por Coordenadas veremos una pestaña que nos pide el eje X,
Y, Z y avance. De esta manera iremos directamente al punto establecido de manera
lineal. Este modo también sirve para establecer el punto 0 o para ir a un punto
Página 20
Enviando un archivo nos pedirá su ubicación, una vez seleccionada la misma le
daremos a enviar, este botón nos abrirá una nueva pestaña y descompondrá el
archivo .txt en líneas independientes. Esto es así para poder enviar al Arduino línea
por línea para no colapsar el puerto serial ya que si enviáramos el archivo de una sola
vez, este solo leería las 5 primeras líneas y luego dejaría de procesar el resto de
líneas, debido a la memoria del procesador solo es capaz de memorizar y ejecutar las
5 primeras líneas.
En la nueva pestaña le damos a comenzar y el programa enviará la primera línea,
cuando el Arduino lo recibe manda un mensaje al programa para que este espere al
siguiente mensaje para enviar la próxima línea y así sucesivamente hasta el final del
código.
Arduino recibe las líneas del programa CNC DUINO una a una, está programado de
forma que cada línea la descompone en diferentes caracteres. Si Arduino recibe una
línea “G00 X10.000 Y10.000” significa que debe mandar a los motores X e Y que
vayan a la máxima velocidad (velocidad establecida en programacion) ya que Arduino
al descomponer la línea lee primero la G y su código 00 que significan ir directamente
al punto a la máxima velocidad. Luego lee la X y guarda la información a continuación
de esta en la variable x de destino. Después lee Y para guardar su variable de destino
en la variable y de destino. Tras hacer esta operación Arduino empieza a mandar a los
motores señales de dirección y paso. Al ser salidas digitales establece que cuando la
dirección es 1 la CNC tiene que ir a una posición que está a su derecha en caso de la
X, adelante en el caso de la Y o arriba en caso de la Z. si es 0 simplemente cambiara
la dirección.
Página 21
Página 22
PLANOS
Página 23