P. 1
Cnc Duino Memoria

Cnc Duino Memoria

|Views: 244|Likes:

More info:

Published by: Javier Estremera Perez on Mar 05, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

08/23/2013

pdf

text

original

Titulo: CNC-DUINO Javier Estremera Pérez José Carlos Estremera Pérez

26 edición del Premio

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 2

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 3

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 4

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 5

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 6

TABLA DE COSTES CNC-Duino
Cantidad Material 1 Arduino UNO v3 (Controladora) 1 Fuente Alimentacion 3 3 1 14 3 1 1 1 1 1 Controlador Driver Motor L298N Motores Paso a Paso Relé 5V Rodamientos Barras roscada M8 Componentes electronicos varios Taladro de Mano Ferreteria varios Materiales Varios (Hardware) Software Precio Precio Und. Total 26,00 € 26,00 € 22,00 € 22,00 € 8,00 € 13,00 € 5,99 € 0,99 € 3,00 € 12,00 € 15,00 € 18,50 € 35,00 € 0,00 € Total 24,00 € 39,00 € 5,99 € 13,86 € 9,00 € 12,00 € 15,00 € 18,50 € 35,00 € 0,00 € 220,35 €

TABLA DE COSTES CNC Comercial
Cantidad Material 1 FRESADORA SOBREMESA HQ-5838 1 Software MACH3 Precio Precio Und. Total 1.936,00 € 1.936,00 € 181,00 € 181,00 € Total 2.117,00 €

COMPARACION DE COSTES CNC-DUINO CNC COMERCIAL

220,35 € 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 7

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 8

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 9

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 10

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 11

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 Bobina 1 Bobina 2 Bobina 3 Bobina 4 Int1 0 0 0 0 Int2 0 1 1 0 Int3 0 0 0 0 Int4 1 0 1 0

Página 12

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 enables de L928N

Conectores de entradas L298N

Página 13

Esquema de conexiones.

Página 14

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:

Página 15

Comando G0 G1,G01 G2,G02 G3,G03 G4,G04 G20 G21 G28 G30 G90 G91 G92 M0 M3,M03 M5,M05

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 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 16

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 17

Diámetro de nuestra herramienta Velocidad de Avance Velocidad de penetración

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 to Z, para ello vamos a

Extensiones>gcodetool>generar

código

(path

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.

Página 18

Software de comunicación. Para enviar las instrucciones al Arduino desde nuestro ordenador hemos creado un sde software llamado 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. 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

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 20

Página 21

PLANOS

Página 22

Página 23

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->