Herramientas de usuario

Herramientas del sitio


octaviotron:cnc

CNC

Documentación de la Comuna Don Luis Zambrano para la construcción de máquinas de impresión 2D, 2.5D y 3D

Introducción

Para potenciar el desarrollo tecnológico, productivo, industrial de Venezuela es necesario disminuir las dependencia de importaciones y consumo a la que se acostumbra. Se requiere la conciencia del pueblo y de cada ingeniero, artesano, tecnólogo, diseñador, técnico pueda aportar ideas y desarrollos de proyectos que permitan crear artículos de diversos índoles, y reproducirlos en el país con nuestros recursos. No es una tarea fácil, requiere mucha dedicación, conciencia y voluntad de querer formar parte de la solución.

Las tecnologías libres han sido a través de los años una alternativa viable frente a los desarrollos tecnológicos privativos, que siempre han sido orientados al neto beneficio económico del desarrollador. Las tecnologías libres permiten la libre adquisición, distribución, y modificación de los productos, lo que permite que a través del tiempo puedan ser mejorados y adaptados a las necesidades. El desarrollo de software libre desde hace algunos años ha avanzado hasta el punto de tener herramientas para todas las necesidades de los usuarios, pero no hay software sin hardware, y es precisamente ese punto el que ha sido poco abordado en el mundo.

Hemos tomado la iniciativa de promover la investigación de hardware libre, y crear herramientas que permitan ayudar a incrementar la producción industrial del país, así como también acabar con la inercia de consumo que solo ha permitido la prosperidad de quienes tienen el medio de producción.

El fin fundamental del siguiente proyecto es aportar a esa iniciativa, desarrollando un producto que puede ser utilizado en muchos sectores de la producción de los pequeños y medianos productores. Un control numérico computarizado (CNC) es una máquina que permite el movimiento de una partícula a través del espacio por medio de herramientas computacionales que le dan autonomía a la hora de elaborar el trabajo. La elaboración de su mecánica de trabajo es muy sencilla y puede ser adaptada a la necesidad del área de trabajo donde se necesite. El sistema de control del CNC siendo una tecnología libre puede ser construida por quien la necesite.

Básicamente, para hacer un CNC hay que tomar en cuenta tres principales áreas o disciplinas:

  • El Software
  • La Mecánica
  • La Electrónica

El Software

Es simple la elección del software que se usará, puesto que LinuxCNC es, a todas luces la mejor opción en Software Libre. El asunto consiste en decidir en qué tipo de hardware se ejecutará.

La vía más sencilla (y la más recomendada) es hacer uso de un computador con un puerto Paralelo DB25. Allí LinuxCNC conseguirá una forma directa de comunicarse con nuestro CNC.

Otra opción probada fue hacer uso de una tarjeta RaspberryPI pero la misma requiere modificaciones importantes al sistema operativo para poder hacer uso de un kernel RT. Para lograr esto, es necesario tener corriendo Raspbian con Wheezy e instalar LinuxCNC en la RaspBerry:

sudo apt-get install git
git clone git://git.mah.priv.at/emc2-dev.git
git branch --track rtos-integration-preview3 origin/rtos-integration-preview3
git checkout rtos-integration-preview3
sudo apt-get update
sudo apt-get install gettext autoconf libpth-dev bc gcc g++ make git libncurses5-dev libxaw7-dev \
  libreadline-dev tcl8.5-dev tk8.5-dev bwidget libgtk2.0-dev python-dev python-tk python-lxml \
  libboost-python-dev libtk-img python-imaging-tk python-xlib python-configobj python-gnome2 \
  python-glade2 python-numpy libgl1-mesa-swx11 libgl1-mesa-swx11-dev python-gtkglext1 python-opengl \
  freeglut3 libglu1-mesa libglu1-mesa-dev
cd emc*/src
./autogen.sh
./configure --with-threads=posix --with-platform=raspberry --enable-drivers --enable-simulator \
  --enable-run-in-place

Luego será necesario instalarle un Kernel RT o de lo contrario sólo se podrá ejecutar LinuxCNC en modo simulación. En ESTA página están las instrucciones de cómo hacerlo.

La Mecánica

En esta sección se describe paso a paso la construcción de los CNC que hemos hecho en nuestro proyecto.

Primer Prototipo

El primer paso fue desarmar unas impresoras viejas:

Allí se recuperaron varias piezas que en la primera versión del CNC se usaron completas y otras piezas que desensambladas se convirtieron en partes de otras estructuras posteriormente.

Los motores encontrados (arriba a la derecha en la foto) son motores llamados “paso-paso” y sus detalles se describirán ampliamente pues hubo necesidad de investigar distintos temas para lograr el movimiento de los ejes del CNC usando estos muy importantes componentes.

Se procedió a armar un primer prototipo, procurando usar la mayor cantidad de piezas recicladas, empezando por su estructura básica que se derivó de una mesa doblada y oxidada de modo que se modificó, se pulió y se pintó esa estructura para usarla como base del primer CNC hecho en casa:

Luego se le colocaron los primeros rieles:

Y Arriba se colocó otro riel con un cabezal rotatorio equivalente al eje Z. Este modelo, aunque hizo su trabajo inicial, tuvo un error en el diseño de este eje y quedó como pendiente modificarlo para mejorar su precisión y su firmeza.

Este primer CNC recibió el nombre código “CALEMBE” como un apodo gracioso que hace ironía a su sincrética composición de piezas y partes.

Segundo Prototipo

Posteriormente, antes de emprender el cambio necesario en el Eje Z de “Calembe”, decidimos usar el esfuerzo y el tiempo en hacer otro CNC, usando como base una estructura metálica de aluminio la cual uniendo ángulos con remaches fue definiendo lo que sería la segunda máquina construida para este proyecto.

Nuevamente el Eje Z del CNC tuvo que ser modificado, pues cuando llegó el taladro de mano hubo que adaptarlo a las nuevas dimensiones del cabezal:

Tercer Prototipo

Con los conocimientos adquiridos durante la fabricación de los dos prototipos anteriores, se obtuvieron los conocimientos necesarios para emprender la contrucción del tercer prototipo, con el objetivo de lograr una máquina CNC con un nivel de precisión profesional y con estructura en capacidad para incidir sobre materiales metálicos.

Primero, resolvimos los rieles del eje X:

photo_2016-06-06_18-44-17.jpg photo_2016-06-06_18-44-09.jpg photo_2016-06-08_22-09-56.jpg photo_2016-06-08_22-13-07_.jpg

Y presentamos los rieles para visualizar cómo quedará la estructura:

photo_2016-06-06_18-44-21.jpg photo_2016-06-10_10-26-32.jpg

Partes para el Eje Z:

Trabajo en Progreso (junio 2016)

La Electrónica

la construcción del controlador (driver) de los motores es un paso necesario. Acá describimos todo lo necesario para construir uno.

Los Motores

Primero conozcamos cómo funcionan los motores PASO-PASO necesarios para un CNC

Se usaron en su mayoría motores “Shinano-Kenshi” modelo stp-42d221-03, que la empresa EPSON denomina con el modelo EM-336. Hay muy poca documentación sobre este motor. Hasta donde la vaga información que se maneja en los foros y comparando modelos, el em336 es el equivalente al estándard Numa17.

Al no haber una carta de especificaciones, se desconocían entonces alguno de los valores apropiados de impediancias y voltajes con lo cual se pueden calcular óptimamente la intensidad y duración de los pulsos que deben ser enviados a los motores para lograr la mejor relación velocidad-aceleración-fuerza de cada motor.

El “modo” de los motores define el tipo de respuesta que tendrá a cada patrón de señales que se les envíe. Estos modos permiten una precisión de 1.8 grados o 0.9 grados por pulso recibido. Es decir, una vuelta completa del motor requiere, dependiendo de cómo se configuren sus entradas, 200 o 400 pulsos de señal por revolución.

Estos modos son tres:

  • FULL STEP: 200 pasos por revolución. Rotación de 1.8° por pulso. Un pulso equivale a un paso completo en este modo.
  • HALF STEP: 400 pasos por revolución. Rota 0.9° en cada puso. Este modo disminuye en un 30% el torque (fuerza) del motor. El motor se comporta más silenciosamente en este modo.
  • MICROSTEP: Subdivisiones magnéticas que permiten ángulos menores por cada pulso. Cada subdivisión reduce el torque significativamente.

El Controlador

Ya el CNC estaba resuelto básicamente en sus funciones físicas de movimientos.

Comenzamos a diseñar entonces un circuito electrónico que movería los 3 motores.

En ese momento las señales para los movimientos de avance y retroceso de los ejes se generarían desde un PLC en el cual se grabaría un patrón cíclico.

Ese primer diseño usó integrados “Puente H” para conmutar las señales y convertirlas en los patrones necesarios que deben ser recibidos luego por una etapa posterior de potencia que alimentará los pines del motor con el patrón recibido.

Luego el diseño lo modificamos y quedó compuesto de la siguiente forma:

  • Etapa de control, en la cual cada pulso recibido desde la entrada es transformado en las señales que activarán las bobinas de los motores mediante integrados que reciben un pulso y una señal de dirección y lo secuencian a 4 salidas con los patrones para cada modo del motor (full, half o micro)
  • Etapa de potencia, donde las señales emitidas hacia las bobinas se elevan al voltaje y amperaje necesario para mover los motores

control.jpg potencia.jpg photo72818692763789503.jpg

En este punto tomamos la decisión de usar el puerto paralelo y no USB ya que el desarrollo de este último no está aún completamente implementado para el nivel de estabilidad que se necesita.

Este controlador entonces se conecta directamente al puerto paralelo de un computador, usando una interfaz de simples cables en un conector DB25 estándar

Entre otras opciones posibles está el uso de ethernet para el envío de las señales pero es un desarrollo también en proceso y no recomendado aún para aplicaciones que tengan como meta la producción. Asimismo, hay desarrollos como HAL2Arduino el cual usa un Arduino a través del puerto USB como pasarela hacia el controlador. Esta opción aún no la hemos explorado en este proyecto (pero lo haremos).

NOTA: nuestra investigación arrojó que NO es posible usar una interfaz DB25-USB de las que venden comercialmente para tener un puerto paralelo en cualquier computador portátil moderno. No es posible puesto que los tiempos de latencia interna de estos dispositivos es muy alto para las necesidades de LinuxCNC.

octaviotron/cnc.txt · Última modificación: 2016/06/19 13:41 por octaviotron