Fabricación de Circunferencias y Círculos

Introducción.

La diferencia entre una circunferencia y un círculo, es que la primera es una línea, mientras que el segundo es una superficie.

Para mecanizar una circunferencia, necesitaremos que la fresa siga la trayectoria de dicha circunferencia.

Para mecanizar un círculo, mecanizaremos una circunferencia, y seguidamente realizaremos un vaciado de su interior.

El chip-drive que controla cada motor paso a paso, se caracteriza por ejecutar movimientos a velocidad constante, de longitud conocida, con una aceleración inicial, un desplazamiento, y una deceleración.

Es decir, la forma de trabajar de nuestos chip-drive, excluye la posibilidad de ejecutar un movimiento continuo a lo largo de toda la trayectoria de la circunferencia, modulando la frecuencia de los pulsos.

Como consecuencia, todas las trayectorias se han de conseguir componiéndolas mediante segmentos de pequeña longitud que, en conjunto, formarán una figura geométrica muy aproximada a la que realmente queremos obtener.






Es imprescindible preparar un completo entorno de test.

Generación de Circunferencias.

La trayectoria se genera mediante trigonometría, usando las funciones Seno y Coseno.

Empezamos definiendo una granularidad de ángulo. Ésta granularidad será el valor de ángulo que corresponde a cada segmento con el que construiremos la circunferencia.

Para cada incremento de ángulo considerado, utilizamos trigonometría para calcular la posición x,y del comienzo y del final del segmento correspondiente. También calculamos la velocidad a la que han de girar los motores paso a paso, para que la fresa siga la trayectoria lineal del segmento, evitando que primero haga el recorrido en un eje y luego en el otro, ya que esto daría como resultado un acabado superficial irregular.

Una vez se ha recorrido el primer segmento, se calcula y se recorre el siguiente segmento, y así sucesivamente.

Codificar este algoritmo es trabajoso, y además admite muchas mejoras sobre el código básico. Una de ellas, que hemos empelado en este proyecto, consiste en tabular las funciones Seno y Coseno, ya que las funciones que proporcionan los compiladores de C son muy lentas. Con la mejora implementada, la obtención del valor de un seno o un coseno, simplemente consistirá en leer un dato de una determinada posición de un array, el cual estará almacenado en la memoria Flash.

Además, el código se debe simplificar usando las propiedades de ángulos suplementarios, complementarios y opuestos, lo que nos permitirá reducir enormemente el tamaño del código fuente.




Una forma sencilla de verificar si el algoritmo está correctamente implementado, es substituir la fresa del cabezal por un lápiz, y ejecutar el programa.

Generación de Círculos.

En nuestro algoritmo, generamos la trayectoria componiendo una circunferencia con un posterior vaciado mediante una espiral.

En realidad, el algoritmo para generar una espiral se puede emplear para generar ambas figuras: En una espiral, a medida que vamos girando, vamos reduciendo el radio, dando lugar a la conocidad forma geométrica. Si hacemos cero esta reducción, pasaremos a generar una circunferencia.

Este es precisamente el mecanismo que hemos empleado para llevar a cabo el fresado de un círculo.






Es necesario hacer muchas pruebas, hasta lograr la espiral de vaciado que necesitamos.

Pruebas de fabricación.

Una vez ajustados todos los algoritmos, tenemos que verificar que el software es realmente capaz de fabricar una circunferencia o un círculo.






Habitualmente, para las pruebas, utilizo una pieza de resina de poliuretano, y le aplico un poco de Azul de Prusia, para mejorar el contraste visual del mecanizado.

En esta prueba, vamos a fabricar un círculo de diámetro 20mm y de 1m de profundidad. La fresadora mecanizará la circunferencia, y a continuación la vaciará mediante una espiral.

La fresa ya está mecanizando la espiral de vaciado.

La pieza ya terminada.