Autor Tema: Proyecto: Fresadora CNC controlada por Arduino  (Leído 20343 veces)

pacol

  • Visitante
Proyecto: Fresadora CNC controlada por Arduino
« en: 09 Octubre 2012, 12:28 »
Hola a todos

Hace algún tiempo convertí mi torno Quantum 250x550 a CNC y le construí un control basado en el PIC Arduino: http://foro.metalaficion.com/index.php/topic,7147.0.html

Ha llegado el momento de darle un hermanito. Después de modificar la parte mecánica de la fresadora: http://foro.metalaficion.com/index.php/topic,7766.0.html, le he construido un control similar con base en el mismo PIC.

El control:  8)



El software no está acabado (aún le queda un trecho) pero ya funciona operativamente.

Funciones actuales:

-Movimiento manual de la mesa y del cuarto eje (plato divisor)
-Círculos
-Movimiento automático del plato divisor en cualquier ángulo
-Polígonos

El estado actual del software es v0.0.1beta. En este hilo iré colgando las actualizaciones.
En mi carpeta SkyDrive he colgado un simulador para PC con el que estoy desarrollando el proyecto:
https://skydrive.live.com/?cid=6AD42DDB4C344A5B&id=6AD42DDB4C344A5B!152&sc=documents#cid=6AD42DDB4C344A5B&id=6AD42DDB4C344A5B!217&sc=documents

Un par de videos.

Movimiento manual de los ejes:

Fresadora CNC controlada por Arduino. Movimiento manual de la mesa y 4º eje. PARTE 1

Círculos y polígonos:

Fresadora CNC controlada por Arduino. Círculos y polígonos. PARTE 2

Un saludo
 
« última modificación: 09 Octubre 2012, 17:05 por pacol »

Desconectado pacomuson

  • Oficial 2ª
  • ***
  • Join Date: May 2010
  • Mensajes: 4223
  • Ubicación: IBIZA
Re:Proyecto: Fresadora CNC controlada por Arduino
« Respuesta #1 en: 09 Octubre 2012, 12:58 »
Eres un CRAK !! .ereselmejor .ereselmejor  .palmas .palmas

okabum

  • Visitante
Re:Proyecto: Fresadora CNC controlada por Arduino
« Respuesta #2 en: 09 Octubre 2012, 13:05 »
impresionante lo bien que se mueve. Si cambias el tamaño de las ruedas de los encoders verás que ganas en precisión. por lo demás es una autentica pasada.

pacol

  • Visitante
Re:Proyecto: Fresadora CNC controlada por Arduino
« Respuesta #3 en: 09 Octubre 2012, 13:38 »
Gracias a los dos

@okabum
¿Crees que disminuyendo la masa de las manivelas los motores se moverán mejor? Lo probaré, aunque el del eje Y está un poco difícil.
De todas formas las velocidades que se alcanzan actualmente en los ejes X-Y están en torno a 12 mm/s y no creo que pueda alcanzar mucho más con este hardware (el del Arduino). A final de mes aparece el Arduino DUE que es muchísimo más potente que el que he usado en el proyecto. En cuanto pueda pillo uno y lo adaptaré al proyecto  :)

Desconectado tio_gil

  • Global Moderator
  • Oficial 1ª
  • ****
  • Join Date: Sep 2009
  • Mensajes: 3099
  • Ubicación: Madrid - España
Re:Proyecto: Fresadora CNC controlada por Arduino
« Respuesta #4 en: 09 Octubre 2012, 13:41 »
 .palmas .palmas .palmas
curiosidad:
a) a quele llamas un circulo exacto?
b) tu control ataca a las controladoras de los PAP, es decir, simulas el PC (das dirección y pulsos), correcto?
Torno Optimun D240x500 modificado, Fresa BF20L Vario modificada, mucha otra herramienta... y pocas ganas de trabajar !!

okabum

  • Visitante
Re:Proyecto: Fresadora CNC controlada por Arduino
« Respuesta #5 en: 09 Octubre 2012, 13:52 »
yo trabajaria sin manivelas, en todo caso usaria los mass dumpers que  se publicaron en el foro hace unos dias para el tema de armonicos. Ten en cuenta que cuanto mayor es el peso de la manivela hace incercia e interviene en la aceleración , que es lo que realmente marca la velocidad en el mecanizado. http://foro.metalaficion.com/index.php/topic,7865.msg91257.html#msg91257

Lo que te decia, es aumentar el tamaño de la rueda del potenciometro de control de ejes, A mayor diametro más precisión.

720mm/min es una buena velocidad. Solo ten en cuenta que con el cabezal que usas a 4000 rpm poco mas puedes moverte mecanizando aluminio, para plasticos y madera si que es corta, pero no creo que sea tu caso.

Fundamental que equilibres el peso de Z, ganaras en velocidad en ese eje, que luego es el que manda para los mecanizados, sobre todo para los taladrados. Ayer por ejemplo estuve haciendo un cajeado y para evitar meter fresa a saco, primero hago un contorno del circulo con broca. 40 agujeros en 6082 de 27mm en 5 minutos. Podia haber hecho lo mismo en 2minutos  aumentando la velocidad de giro a 5000 rpm (en lugar de 3000)  y bajado Z a 900 en lugar de 600.

borondes2010

  • Visitante
Re:Proyecto: Fresadora CNC controlada por Arduino
« Respuesta #6 en: 09 Octubre 2012, 13:57 »
pacol eres un el rey del arduino,como siempre un crack,te felicito amigo .ereselmejor .ereselmejor .ereselmejor .ereselmejor .ereselmejor .ereselmejor .brinda .brinda

pacol

  • Visitante
Re:Proyecto: Fresadora CNC controlada por Arduino
« Respuesta #7 en: 09 Octubre 2012, 15:21 »
.palmas .palmas .palmas
curiosidad:
a) a quele llamas un circulo exacto?
b) tu control ataca a las controladoras de los PAP, es decir, simulas el PC (das dirección y pulsos), correcto?

LLamo círculo exacto al algoritmo que da la precisión mayor en el trazado de arcos. He desarrollado en el control dos algoritmos para los arcos: el exacto traza pequeñas rectas de longitud parametrizada (de 0.5 a 0.05 mm) a lo largo del perímetro del arco, es el más exacto, pero es más lento. El otro lo llamo interpolado, que es el primero que se muestra en el video, la velocidad angular de los motores va variando de forma continua a lo largo del trazado del arco, es el más rápido y suave pero es menos preciso, Lo suyo es trazar el arco con pasadas interpoladas y dar una última pasada con el algoritmo exacto.
El control actúa directamente sobre las controladoras: pulsos, dirección y "enable", como bien dices sustituye al PC.

@okabum
Vale, lo he pillado. Ya conocía el post que citas sobre los dampers, pero creo que no es necesario, para mí va bien así  :)

@Borondes2010
Gracias

El control también admite el control desde el PC a través de USB/Bluetooth, de forma que se puede (estoy en ello) realizar una aplicación para PC/Android  para realizar tareas más complejas con control remoto. :o

Desconectado tio_gil

  • Global Moderator
  • Oficial 1ª
  • ****
  • Join Date: Sep 2009
  • Mensajes: 3099
  • Ubicación: Madrid - España
Re:Proyecto: Fresadora CNC controlada por Arduino
« Respuesta #8 en: 09 Octubre 2012, 17:34 »
Vale,el que yo uso entonces es el interpolado que tu dices, sólo que yo trabajo directamentre con grados (es decir, me da lo mismo el tamaña del circulo, siempre hay 360 divisiones). Si el circulo es muuuy grande se nota (con mi sistema) pero con circulos de tamaño pequeño apenas.

otra cosa: aceleras los motores? lo digo porque van "rapidito" incluso para un circulo pequeño (que no daría tiempo a subir la rampa de aceleración)
Torno Optimun D240x500 modificado, Fresa BF20L Vario modificada, mucha otra herramienta... y pocas ganas de trabajar !!

okabum

  • Visitante
Re:Proyecto: Fresadora CNC controlada por Arduino
« Respuesta #9 en: 09 Octubre 2012, 17:36 »
tio_gil. creo qu no los acelera, fijate que son nema23 a 3nm, son suficientes con esa desmultiplicación para mover la mesa en vacio.

pacol

  • Visitante
Re:Proyecto: Fresadora CNC controlada por Arduino
« Respuesta #10 en: 09 Octubre 2012, 17:43 »
Vale,el que yo uso entonces es el interpolado que tu dices, sólo que yo trabajo directamentre con grados (es decir, me da lo mismo el tamaña del circulo, siempre hay 360 divisiones). Si el circulo es muuuy grande se nota (con mi sistema) pero con circulos de tamaño pequeño apenas.

otra cosa: aceleras los motores? lo digo porque van "rapidito" incluso para un circulo pequeño (que no daría tiempo a subir la rampa de aceleración)

Creo que el que usas es el modo exacto, ya que dices que se notan las aristas al crear círculos grandes. En el interpolado, no es el término más exacto lo reconozco, el acabado es suave pero menos preciso.
Los motores aceleran con una rampa lineal hasta su velocidad de trabajo y luego los freno con rampa también. Si no se hiciese así se perderían pasos. Puedes ver bien como trabajan los motores en el simulador para PC que he colgado el mi página SkyDrive.
« última modificación: 09 Octubre 2012, 17:46 por pacol »

taladrino

  • Visitante
Re:Proyecto: Fresadora CNC controlada por Arduino
« Respuesta #11 en: 09 Octubre 2012, 18:02 »
Muy bueno Pacol, lo has echo no mas, felicitaciones... .bien

Desconectado tio_gil

  • Global Moderator
  • Oficial 1ª
  • ****
  • Join Date: Sep 2009
  • Mensajes: 3099
  • Ubicación: Madrid - España
Re:Proyecto: Fresadora CNC controlada por Arduino
« Respuesta #12 en: 09 Octubre 2012, 18:14 »
Pacol, estoy borracho. He confundido los términos, llevas razón.
Mis problemas son con los circulos principalmente. No consigo que la velocidad vaya "fina". Yo parto de una velocidad mínima de 75 mm/min, velocidad muy muy lenta y a partir de ahí genero la rampa (creo que en 500 ms llego a velocidad programada)
tu rampa es fija? partes de cero?

P.S.: lo del skydrive es lo de microsoft?
Torno Optimun D240x500 modificado, Fresa BF20L Vario modificada, mucha otra herramienta... y pocas ganas de trabajar !!

okabum

  • Visitante
Re:Proyecto: Fresadora CNC controlada por Arduino
« Respuesta #13 en: 09 Octubre 2012, 18:17 »
Cuando Gil ha preguntado por acelerar, he supuesto lo que estuvimos hablando el otro dia comiendo, rampa de aceleración tiene que llevar por supuesto, lo otro que yo entendí mejor que lo explique Tio_gil, pero estaba mas enfocado a servos.

pacol

  • Visitante
Re:Proyecto: Fresadora CNC controlada por Arduino
« Respuesta #14 en: 09 Octubre 2012, 18:23 »
Sí es de Microsoft, en el primer post tienes el enlace a la carpeta.

Los motores parten de velocidad angular cero. Y van acelerando hasta la velocidad programada con un periodo cada vez menor de acuerdo a una rampa lineal. Para ser exactos son dos rampas  ::), no es totalmente lineal, a partir de una cierta velocidad la rampa se suaviza para permitir una mayor velocidad sin pérdida de pasos. Esto lo he afinado en base a la experiencia. Aquí tienes un buen documento para implementar esa rampa:http://www.embedded.com/design/mcus-processors-and-socs/4006438/Generate-stepper-motor-speed-profiles-in-real-time, este documento también está en una publicación de Atmel.

Añado:
Si el motor ya está en marcha y quieres variar su velocidad debes hacerlo con rampa, lo más fácil es usar la misma para acelerar y decelerar. Si quieres pongo algo de código en C que muestra los cálculos.

Un saludo
« última modificación: 09 Octubre 2012, 18:33 por pacol »