Autor Tema: Re:Placa de potencia adaptada a CNC, para maquinas de C.C. Optimum/Quantum‏‏‏‏  (Leído 117562 veces)

Desconectado Valen

  • Aprendiz
  • *
  • Join Date: Dic 2009
  • Mensajes: 1514
  • Ubicación: Madrid (y Palencia, cuando puedo....)
Programación de los microcontroladores: Compiladores.

Para programar los microcontroladores, hemos de valernos de un software específico para esta tarea, que se suele conocer como "Compilador".
En el caso que nos ocupa, un chip de Atmel, existen diferentes herramientas disponibles. Voy a nombrarlas y a dar una opinión muy personal de sus ventajas o inconvenientes.

Voy a referirme todo el tiempo a sus características de compatibilidad y uso con la placa Arduino Uno, ya que es la que empleo para cargar el software en el chip ATMega328P.

Compilador Ardiuno.
El proyecto de hardware libre denominado Arduino, pone a disposición de todos nosotros un compilador sencillo pero muy bien organizado y muy práctico. Además se ofrecen innumerables librerías de funciones hechas, así como una comunidad de usuarios con foros muy activos, en los que consultar las dudas, etc.



Esto hace que se programe en C, en una capa por encima del hardware, que facilita mucho el trabajo. Claro que si queremos cosas muy específicas, no habrá más remedio que bajar a la capa inferior, con los registros, interrupciones, etc. El compilador te permitirá hacerlo, aunque no ofrece herramientas específicas de depuración.
Otra ventaja es que puedes pinchar el chip de Atmel ATMega328P  en la placa Arduino Uno, y cargar los programas con facilidad, y todo ello sin necesidad de configurar nada a mano.

Compilador AVR 4.
Es la opción más equilibrada para quienes quieran desarrollar código avanzado para estos chips. El compilador está basado en el software de Microsoft Visual C++, que es una herramienta magnífica. Este compilador AVR es también una herramienta muy estable y madura.




En la página 21 del documento indicado a continuación, se explica -en español- cómo adaptar AVR 4 a la programación del chip Atmel ATMega328P  aprovechando las librerías del entorno Arduino, y los que es más importante, pudiendo cargar directamente los programas en la placa Arduino Uno:

http://download.lpmagazine.org/es/2010/Linux_06_2010_ES.pdf
 

Compilador AVR 5.
Basado en el entorno Visual Studio 2010 de Microsoft, es una herramienta muy potente, y con un entorno visual claramente más avanzado que su versión anterior AVR 4.
Sin embargo, es bastante difícil de poner en marcha con el entorno Arduino y la placa Arduino Uno. A partir del artículo indicado en el apartado anterior, y de este otro:

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=110776

es posible lograrlo, con un poco de tenacidad.....



En mi opinión, al compilador AVR 5 le faltan todavía algunos "service packs" para ser una versión realmente definitiva.


Integración de placa Arduino en compiladores AVR.
Esta imagen es para mostrar que con un poco de trabajo, podemos llegar a crear un botón en el menú, con el que la carga del software en el chip de la placa Arduino, se haga de forma totalmente automatizada:





Compatibilidad entre progarmas desarrollados en los diferentes entornos.
En principio, todo aquello que esté desarrollado en lenguaje C habría de ser compilado en cualquiera de los tres compiladores, sin obtener diferencias. Sin embargo, no siempre es así, ya que, por ejemplo, el compilador de Arduino es mucho más tolerante ante pequeños incumplimientos de las reglas que impone el lenguje C, lo que provoca que un código fuente que compila perfectamente en el entorno Arduino, pueda generar un gran número de errores al compilarlo en un entorno AVR.

Por ej. en el entorno Arduino, una variable global, definida en un determinado fichero de C, puede ser empleada sin problemas en otro fichero de C, del mismo proyecto.
Sin embargo, esto provoca un error en un compilador AVR, ya que al ser más estrictos, se exige que esa variable sea declarada como "extern" en el otro fichero donde la queremos emplear.


Mis reflexiones sobre este tema.
A pesar de haber empleado ampliamente las herramientas Visual C++ y Visual Studio durante una fase ya pasada de mi vida profesional, el entorno AVR5 me ha resultado bastante complicado de poner en funcionamiento con mi placa Arduino Uno. Esto no ha ocurrido con el compilador AVR4, que está mucho más maduro.

Quiero resaltar aquí que las capacidades de depuración que ofrecen los entornos AVR se vuelven prácticamente inútiles cuando tenemos que depurar un software que interactúa con una placa como la nuestra, que es la que le va dando los valores de entrada, etc.

Por ello, la característica que más valoro de los entornos AVR es su editor de código, que te ayuda a cosas como buscar dónde aparece una determinada variable, o a ver dónde está definida, etc. también lo bien que identific
« última modificación: 19 Septiembre 2011, 08:31 por Valen »
Torno Optimum 180x300 Vario CNC, Fresadora Quantum BF16 CNC

fausto

  • Visitante
Hola Valen,
como siempre un trabajo impresionante (te metes en cada fregao), lo seguiré atentamente.

Saludos.
Fausto

Desconectado stylusptk

  • Aprendiz
  • *
  • Join Date: Jul 2010
  • Mensajes: 1973
  • Ubicación: Tenerife
Una vez mas me dejas de piedra Valen .ereselmejor, estare muy atento a la evolucion .bien

Salu2 y gracias por tomarte las molestias de ilustrarlo todo tan bien .ereselmejor
Warco WM240 ; Sieg X3 ; Unimat 3 ; Unimat SL que espero convertir a CNC ; Pequeño Soldador Punto a Punto

Trogolito

  • Visitante
Buenass

Incluso con los componentes montados sobre el papel, tu placa tiene mejor pinta  .bien .bien .bien .bien

Dale caña a esos chinos!!!!

Saludoss

Tou

  • Visitante
Me quito el sombrero por tan ambicioso proyecto  .ereselmejor
Pero no sé si te refieres "solo" a mejorar lo que regula las rpm en la placa de origen
Citar
El control de la velocidad del husillo se hace una necesidad cuando queremos disponer de un sistema CNC completo.
O tambien a utilizar velocidad de corte constante (G96) o de alguna manera sincronizar el motor con un eje de la máquina  :o :o :o .yupi para roscar  .baba

Seguro que pregunto algo obvio pero puesto que algún forero ha comentado el mal resultado de su motor de origen ¿valdría esta placa para un motor CC "pata negra"?
 

Desconectado Calambres

  • Aprendiz
  • *
  • Join Date: May 2010
  • Mensajes: 387
  • Ubicación: Venturada, Madrid
MUY interesante.

Seguiré este hilo con mucho interés  .bien
Torno FERVAL 600-A y fresadora Optimum BF20-L. Sierra Femi 780-XL, taladro de columna chinorri, amoladora, soldadura de arco, compresor, radiales, pulidora, fresadora manual y demás chismes para llenar el taller, hacer ruido y dejarlo todo hecho un asco.

Desconectado Valen

  • Aprendiz
  • *
  • Join Date: Dic 2009
  • Mensajes: 1514
  • Ubicación: Madrid (y Palencia, cuando puedo....)
Hola Tou,
la filosofía principal es cambiar todo el sistema de control y eléctrico de las máquinas Optimum/Quantum, por uno totalmente actualizado. Digamos que es una puesta al día completa. La electrónica original Optimum/Quantum se basa en 4 amplificadores operacionales con diferentes configuraciones, que forman el núcleo de control. La potencia es un sencillo puente semicontrolado de tiristores.

Ahora, El control estará formado por dos micro-controladores conectados en bus, que ejecutarán unos programas de control diseñados específicamente para estas máquinas. Esto aporta una gran flexibilidad, que permite particularizar diferentes actuaciones para cada situación. De esta forma, toda la máquina herramienta será "más inteligente", y el usuario lo notará de múltiples formas. Por ejemplo, si se conecta la pantalla, te podrá informar incluso de la corriente consumida, jajaja en fin, lo que quieras programar, claro.

Otra ventaja es que el software de los micro-controladores se puede modificar, ya sea para corregir errores, por simple mejora, o para añadir nuevas funcionalidades.


La tensión de alimentación que se aplicará al motor se obtendrá a partir de una continua (en bornes del condensador grande), que a continuación es troceada a elevada frecuencia por el IGBT (El componente negro grande con tres patillas, a la derecha de la foto). Este troceado varía según la velocidad de giro que deseemos, variando así la tensión media en el motor, y por tanto su velocidad.
Y este es una de las diferencias con un DSP específico: En estos se trocea a una frecuencia de KHz, mientras que nosotros lo haremos a unos cientos de Hz. Por ello, tenemos cierta dependencia de que la inductancia propia del motor sea suficiente para mantener estable la corriente por la máquina (sin grandes picos). Creo que sí, pero ya veremos.

El sistema de control es válido para cualquier motor de corriente continua, alimentando la placa con la tensión adecuada a esa máquina. Por lo anteriormente dicho, en motores de muy baja inductancia podría llegar a ser necesario poner en serie una bobina, pero creo que esto es solo una condición teórica, que no se nos dará en la práctica, y que en cualquier caso, afectaría a todas las placas de control de gama equivalente.

Los motores de continua trabajan con velocidades constantes, y esto es más cierto en máquinas con estátor de imanes permanentes. Aquí la velocidad es proporcional a la fuerza electromotriz E, que se calcula como la tensión aplicada a la máquina U, menos la caída de tensión en el bobinado del rotor, Rbobinado*I, producido por la corriente que circula I.

Es decir:  E = U - Rbobinado*I

Como la Resistencia del devanado (Rbobinado) del rotor es baja, el término R*I es pequeño, y entonces casi se puede decir que la velocidad de la máquina es proporcional a la tensión aplicada al motor.

Cuando el esfuerzo del mecanizado consiga hacer caer la velocidad de giro, el sistema de control lo detectará ya que la placa lleva un sensor hall para la medida de corriente en la carga. Con este dato, ejecutará un bucle de regulación automática que ajustará el nivel de tensión aplicado, de forma que la velocidad se recupere y mantenga en el valor deseado.


En cuanto al sincronizado entre el motor que acciona el plato de garras, y el husillo de cilindrado, requiere el empleo de un tacómetro integrado con el sistema de control, que permita al micro-controlador conocer la velocidad exacta de giro (y no inferirla a partir de la corriente consumida y la tensión aplicada), para ir ajustando hasta lograr el valor real que deseamos.
Todo este equipamiento está previsto en la placa de control, aunque otro tema es que a la larga funcione bien con motores tan pequeños. El problema es que su velocidad de giro no es 100% estable, sino que oscila ligeramente, debido, entre otras cosas, a la poca masa del rotor, que hace que el tensor de inercia sea pequeño, por lo que no actúa como volante de inercia con la suficiente eficacia.
« última modificación: 23 Julio 2011, 11:14 por Valen »
Torno Optimum 180x300 Vario CNC, Fresadora Quantum BF16 CNC

Momentaneo

  • Visitante
Enhorabuena por lo fino que suena este trabajo aunque no entiendo mucho.

Es como algo destinado a un provecho económico industrial al colocarlo en miles de máquinas, por recuperar la inversión de tiempo y conocimientos, así que si es solo por afición aún lo veo más meritorio.

Desconectado Valen

  • Aprendiz
  • *
  • Join Date: Dic 2009
  • Mensajes: 1514
  • Ubicación: Madrid (y Palencia, cuando puedo....)
Gracias a todos....!  ;)

Momentaneo, esto de los hobbys es así, no tienen un retorno real en dinero.....


Bueno, estoy haciendo las primeras pruebas para crear los planos de masa y de tensión de mando:

Planos de masa (GND) y de tensión de mando (+5v).
La función de estos planos es la reducción del ruido eléctrico (el conocido como ruido de masa), las interferencias al exterior, perturbaciones, etc. así como evitar que los efectos de este tipo que se produzcan en la zona de potencia, afecten a la zona de mando.

Hay que fijarse que la zona de potencia trabajará con más de 300 voltios, mientras que la de mando, solo con 5 voltios. Por ello, las perturbaciones generadas en los componentes de potencia, pueden llegar a afectar muy seriamente a los componentes de mando, llegando a funcionar mal o a destruirse.

En la zona de potencia, el semiconductor IGBT conmuta muy rápidamente, generándose picos de tensión debido a reactancias parásitas, y por tanto hay que controlar estos efectos para evitar que lleguen al sistema de mando.

Vemos como la zona de mando y de potencia tienen planos de masa completamente separados, que solo se unen en la alimentación de la placa. De esta forma las corrientes que retornan a través de cada masa, lo hacen por caminos diferentes.

Técnicas como las de los planos de masa han de ser apoyadas con otras medidas, como el uso de algún condensador de polipropileno, especialmente diseñados para trabajar a altas frecuencias, y que se encargan de cortocircuitar picos bruscos de tensión, hacia la masa (GND) de la zona de potencia. En el caso de esta placa, se ve un condensador de este tipo, en la esquina superior derecha de la imagen, en forma de caja rectangular. Es bastante grande, debido a las tensiones con las que trabajamos.
Vemos que el Condensador de polipropileno está en paralelo con el condensador electrolítico. Parece una contradicción... ¿Si ya hay un c electrolítico, para qué hace falta este otro en paralelo con él? Bueno pues la explicación es que los condensadores electrolíticos presentan muy mala respuesta ante altas frecuencias, picos bruscos, etc. (de hecho, su circuito equivalente incluye una bobina en serie con él...!) así que ese trabajo se lo deja al de polipropileno.

En este caso, el condensador de polipropileno se ha situado entre el C electrolítico y el IGBT, muy cerca de ambos, para proteger a los dos de picos de tensión, pero principalmente al IGBT. Sin él, al producirse sobretensiones debido a inductancias parásitas y a la brusca conmutación del IGT, el componente se vería obligado a soportar estas sobretensiones...... si es capaz de hacerlo.

Planos de masa y de tensión de mando, en la placa:
Hay dos imágenes con la placa de color rojo, que muestran su cara superior.
en la primera de ellas, están el plano de +5v (zona inferior de la imagen) y una masa para la parte de potencia (zona  superior de la imagen). Ambas separadas por la línea negra que se ve por medio de la placa, a lo largo de toda ella.

Otra posibilidad es la mostrada en la segunda imagen, que consiste en tener en la cara superior dos planos de masa, uno de mando y otro de potencia.

En el plano inferior, la masa de mando y la de potencia, separadas a lo largo de toda la placa (se unen solo en en la alimentación).

Texas Instruments en su documentación para placas de potencia controladas por micro-controladores, etc. recomienda, entre otras cosas, unir los planos de masa superior e inferior mediante vías separadas unos centímetros, a lo largo de la placa.

También conviene que el + y el – del bus de potencia de Corriente Continua (la salida de alimentación al motor) sean zonas amplias, para reducir la inductancia parásita del bus  (supongo que servirán zonas de cobre en lugar de las chapas de aluminio, que es lo que se usa en equipos profesionales....).

Y además tengo que pensar en cambiar la posición de las vías que unen las pistas de potencia de ambas caras de la placa, para hacerlas más accesibles....


Todavía están si incluir este tipo de mejoras, porque en realidad estoy intentando crear una primera versión que me permita depurar. Y lo que me interesa ahora ver es si puedo fresar la placa con la máquina CNC, o la tengo que fabricar mediante el método tradicional de fotolito/insoladora/revelado/ataque ácido.
Aunque tengo insoladora desde tiempos inmemoriales, ahora la uso para fotograbar latón, y así fabricar detalles para mis maquetas de barcos, y no me apetece mucho ponerme a insolar, a pegarme con el cloruro férrico, puffff......... qué malos recuerdos.....


Cara superior, plano de masa en la zona de potencia y de +5v en la zona de mando.



Cara superior, dos planos de masa.




Cara inferior.


« última modificación: 24 Julio 2011, 15:46 por Valen »
Torno Optimum 180x300 Vario CNC, Fresadora Quantum BF16 CNC

miguelinssrc

  • Visitante
Valen, si no quieres tardar mucho con las placas y tienes una laser, imprimelos directamente desde el eagle con unas laminas azules de transferencia, yo las habia comprado en coelma y solo necesitas imprimirlas en la laser, transferirlas con una plancha y al acido, te evitas el revelado.
animo con el engendro

Desconectado Valen

  • Aprendiz
  • *
  • Join Date: Dic 2009
  • Mensajes: 1514
  • Ubicación: Madrid (y Palencia, cuando puedo....)
Hola, creo que te refieres al "Press n Peel", las usé hace tiempo, ya no me acordaba de ellas..... Sí, es una opción a tener muy en cuenta, gracias...!
« última modificación: 24 Julio 2011, 17:44 por Valen »
Torno Optimum 180x300 Vario CNC, Fresadora Quantum BF16 CNC

minibob

  • Visitante
Valen, eres un máquina. .bien

Momentaneo

  • Visitante
Se ha caído la segunda imagen.

Soyjulio

  • Visitante
Eres único a la hora de presentar algún trabajo, no entiendo casi nada de electronica, pero, se aprecia el trabajo pulcro y la presentación  .bien  .bien.

saludos y sigue así

Desconectado tio_gil

  • Global Moderator
  • Oficial 1ª
  • ****
  • Join Date: Sep 2009
  • Mensajes: 3099
  • Ubicación: Madrid - España
Valen, vaya pechá de curre que te vas a meter !!! ahora, también te digo que no se parece en nada con la "dichosa" placa original (yo ya lo hice y estoy muy contento)
Consejo:  dale más separación a las pistas en la zona de alta, no sea que te lleves un susto. (y si fresas entre la conexiones, mejor)
No usas un driver de IGBT/Mosfet?
Torno Optimun D240x500 modificado, Fresa BF20L Vario modificada, mucha otra herramienta... y pocas ganas de trabajar !!