Upload
javier-estremera-perez
View
102
Download
4
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 ............................................................................................. 7
Mecánica ................................................................................................................................... 7
Electrónica ............................................................................................................................... 10
Motores paso a paso ........................................................................................................... 10
Modulo Puente H L298N ..................................................................................................... 10
Fuente de alimentación ...................................................................................................... 12
Arduino ................................................................................................................................ 12
Esquema de conexiones. ..................................................................................................... 13
Software .................................................................................................................................. 14
PLANOS ........................................................................................................................................ 21
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. 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
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.
Página 6
Para la estructura mecánica de la CNC nos han sido muy útil 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
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.
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 que los valores del devanado 2
es el invertido del 1 y que los del devanado 4
son los invertidos del 3, por lo que si invertimos
la señal del L1 obtenemos la señal de control
necesaria para L2 y de la misma manera si
invertimos la señal de L3 obtendremos la señal
de control de L4, con lo que la tabla para poder mover el motor quedaría de la
forma siguiente:
Nº devanado Int1 Int2 Int3 Int4
Deva 1=-Deva 2 1 1 0 0
Deva 3=-Deva 4 1 0 0 1
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 todo 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
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:
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
15
Descripción
Movimiento lineal Rápido
Movimiento lineal Controlado (Avance: 100)
Movimiento curvo (sentido horario) Controlado
Movimiento curvo (antihorario) 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
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
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
Página
18
Software de comunicación.
Para enviar las instrucciones al Arduino desde nuestro ordenador hemos creado un
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.
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 el Arduino solo leería las 5 primeras líneas y luego dejaría de procesar el resto de
líneas, debido a la memoria del Arduino 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,
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
los motores X e Y que vayan
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
información a continuación de
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
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
19
no recibe las líneas del programa CNC DUINO una a una,
programado de forma que cada línea la descompone en diferentes caracteres. Si
recibe una línea “G00 X10.000 Y10.000” significa que Arduino
los motores X e Y que vayan a la máxima velocidad (velocidad establecida en
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 Arduino 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
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.
no recibe las líneas del programa CNC DUINO una a una, Arduino está
programado de forma que cada línea la descompone en diferentes caracteres. Si
Arduino debe mandar a
a la máxima velocidad (velocidad establecida en Arduino)
al descomponer la línea lee primero la G y su código 00 que significan
lee la X y guarda la
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
empieza a mandar a los motores señales de dirección y paso. Al ser salidas
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
Página
20
Página
21
PLANOS
Página
22