Escolar Documentos
Profissional Documentos
Cultura Documentos
2.1 EMC2
Es un sistema linux especfico para CNC, de tiempo real y preparado
para controlar motores paso a paso por el puerto serie. Disponible
como CD-Live. Dispone del sistema de visualizacin y control. Es el
ordenador el que realiza todas las tareas de control de los motores, y
conectando en el puerto paralelo unos drivers de potencia podremos
controlar los motores paso a paso. Es un sistema tcnicamente muy
bueno, pero est pensado para tener un PC dedicado al control de la
fresadora (si actualizas linux puede dejar de funcionar) , y adems
controla directamente los motores paso a paso a travs del puerto
paralelo, puerto que se va quedando obsoleto hoy en da.
http://linuxcnc.org/
2.2 REP-RAP
Es un sistema de impresin 3D preparado para funcionar en Windows,
Linux y Mac, ya que est realizado en Java. El objetivo es el realizar
una mquina autoreplicante.
Para poder usarlo en un sistema multitarea, el ordenador tiene
cargado un programa denominado Rep-Rap que enva comados
Gcode a un microprocesador Arduino (Sanguino). El Arduino tiene
cargado un programa que interpreta los comandos y manda seales
de control a unos drivers de potencia que controlan los motores paso
a paso.
Este sistema tambien permite utilizar ReplicatorG para enviar datos al
microprocesador. Este sistema con mucho apoyo por parte de la
comunidad tiene el objetivo de crear extrusionadoras de plstico para
crear formas 3D, y utiliza una versin de Arduino especial: Sanguino
(con chip ATMega644 con chip SMD).
http://reprap.org/wiki/Main_Page
http://replicat.org/
2.4 TxapuCNC
Es un sistema derivado de Contraptor CNC, con las siguientes
modificaciones.
El programa de envo de datos TxapuGcodeTX es una transcripcin en
gambas del programa original del Contraptor CNC realizado en
Processing. (Creo que se podra utilizar el programa de envo de
contractor en TxapuCNC, que al estar realizado en Processing-Java
permite su uso en sistemas windows).
El Sketch de recepcin de datos cargado en Arduino, se ha modificado
para permitir utilizar controladoras de motor paso a paso primitivas
(paperSteppers), es decir con dos hilos de control (D1 y D2), en vez
de utilizar Drivers avanzados (y ms caros) con seales de STEP y
DIR.
La fresadora se realiza con madera segn las indicaciones de David
Carr. La fresadora casera ms sencilla de fabricar, segn mi opinin.
Los componentes necesarios son:
3 TxapuCNC_TX
TxapuCNC_TX es un programa realizado en Gambas que es
simultneamente un editor de texto, un simulador y una consola de
control CNC:
Editor de programas
Es un sencillo editor de textos con resaltado para comandos Gcode,
con una caracterstica fundamental: enva por el puerto serie ( USB
con serie virtual) una a una las lineas del editor esperando
previamente a recibir la seal de OK del Controlador (Arduino).
Simulador
Es un visualizador de programas Gcode (slo 2D) que muestra el
recorrido en el plano XY. Dispone de zoom, Desplazamiento,
simulacin rpida y con retardo, Simulacin del dimetro de la fresa...
Control
Es una consola de mando desde donde puedes manejar directamente
la fresadora, moviendo los motores, activando el cabezal, ...
Este programa reconoce archivos con coordenadas absolutas o
relativas (G90/G81), en milmetros o pulgadas (G21/G20) y con
parmetros (#).
Aqu vemos el programa en funcionamiento
La fresadora funcionando
y por ltimo el resultado
Nota: Como puedes ver, el resultado tiene fallos en el eje Z (haba sujetado el
motor Z con cinta de espuma adhesiva de doble cara y generaba mucha holgura)
3.1 Instalacin
3.2 Componentes
Un editor de cdigos G
Un simulador de Cdigos G.
3.2.2 Editor
Es configurable desde el men/Preferencias/Editor.
El editor tiene una barra de herramientas con los comandos ms
usuales en este tipo de programas.
Hay que destacar los ltimos 5 controles, que son los especficos de
CNC.
NOTA: Como el botn de impresin no tiene visualizacin previa,
siempre podemos instalar una impresora pdf (paquete cups-pdf) y ver
el archivo creado en home/usuario/pdf
NOTA: En archivos muy grandes el proceso de impresin puede durar
varios minutos. Se paciente por favor.
3.2.3 Simulador
3.2.4 Control
Con estos botones hacemos que el CNC vaya a los lmites del
mecanizado (los valores representados en negro) a la velocidad
indicada por el desplazable Avance Por ejemplo si apretamos el
primer botn teniendo el archivo de ejemplo cargado de la derecha,
enviara el siguiente comando al CNC:
G1 X0 Y58.17 F500
Con estos pulsadores movemos un paso el eje en el sentido indicado
y a la velocidad de avance especificada por el desplazable.
El tamao del paso ser el indicado en la lista desplegable Tamao
de paso.
Si en este control hemos seleccionado la opcin Continuo, el control
enviar repetidamente al CNC la orden de moverse 0,1mm ( 0,01'
pulgadas si las unidades son pulgadas) en el sentido especificado
mientras mantengamos pulsado un botn.
Por ejemplo, si apretamos Y- enviaremos al CNC el siguiente
comando: G1 Y X(actual-5) F500.
Estas teclas (X-, X+, Y-, Y+) pulsadas con el ratn se pueden pulsar
directamente en el teclado. Si adems pulsamos la tecla Control, el
paso ser ms pequeo, y si pulsamos simultaneamente la tecla
Maysculas, el paso ser mayor.
Con este pulsador activaremos o pararemos el motor del cabezal.
Enviando bien M3 M5
Por ltimo, el cuadro de texto y el botn situado a su derecha
permiten enviar al CNC cualquier comando que escribamos en el
cuadro de texto.
NOTA: Hasta que no se haya establecido una conexin con el Arduino, no estarn
accesibles ninguno de los botones y comandos que permiten enviar comandos
Gcode al Arduino. Slamente podemos utilizar el programa como un sencillo editor
de texto para modificar programas Gcode.
Descripcin
TX
RX
G0
G0 X10
Si
Si
G1,G01
Si
Si
G2,G02
Si
Si
G3,G03
Si
Si
G4,G04
G4 P200
Si
Si
G20
G20
Si
Si
G21
G21
Si
Si
G28
G28
Ir a Origen
Si
Si
G30
Si
Si
G90
G90
Si
Si
G91
G91
Si
Si
G92
G92
Si
Si
M0
M0
Si
No
M3,M03
M3
Si
Si
M5,M05
M5
Si
Si
4 TxapuCNC_RX
Para que el programa TxapuCNC_TX funcione 100%, es decir para
que mueva los motores del CNC, es necesario instalar un Skech en el
Arduino (o Paperduino).
Este programa se encarga de leer los comandos que le enva
TxapuCNC_TX, los interpreta (los comandos que conoce) y en
consecuencia manda las rdenes oportunas a los drivers del CNC o al
motor. Cuando la mquina llega a la posicin de destino,
TxapuCNC_RX enva el mensaje de ok al PC para que TxapuCNC_TX
lo sepa, y pueda enviar el siguiente comando.
NOTA: La velocidad de los motores generada por TxapuCNC_RX es
constante, es decir no genera rampas de aceleracin/deceleracin
que eviten fallos de sincronismo en el arranque y parada. Por lo que
la velocidad mxima de los motores no podr ser muy elevada.
4.1 Instalacin
Simplemente carga el Skech TxapuCNC_RX_xx.pde en el entorno
Arduino, y desde ah, con el Arduino conectado, crgalo en la placa
pulsando el botn sealado en la imagen
Al Abrir el programa TxapuCNC_RX_xx.pde, se abrirn
automticamente 4 archivos en el Editor de Arduino.
NOTA:Como ves en la imagen, el programa de Arduino es una
modificacin realizada por Carlos Guilarte y Diego Colonello de un
programa previo, para poder utilizarlo con drivers de CNC sencillos
como los PaperSteppers. Es decir, no utiliza seales de "STEP" (Pulso)
y "DIR" (Direccin) como en los drivers sofisticados, sino que utiliza
dos pulsos (D1 y D2) que hay que conmutar sincronizadamente para
activar las bobinas correspondientes del motor paso a paso (ver
PaperSteppers).
NOTA: He "remodificado el programa", por si alguien quiere utilizar
drivers que utilicen seales "STEP" y "DIR" tipo Pololu Easydriver, lo
podeis descargar en: TxapuCNC_RX_Pololu
Deberemos modificar los parmetros especificados en el Archivo _init
en funcin de las caractersticas de nuestros motores paso a paso:
#define X_STEPS_PER_MM 160
Para calcular este valor:
si utilizamos varilla roscada de M8 para mover los ejes, sabemos que
el paso es de 1,25, es decir por cada vuelta del eje una tuerca
insertada en l se movera 1,25mm. Calcularemos lo que hay que
girar el eje para que se desplaze 1mm:
si 360 => 1,25
con X =>1
X=360/1,25=288
Luego son necesarios girar el eje 288 para que se mueva la tuerca
1mm.
Si en cada paso de nuestro motor el eje gira 1,8
288/1,8= 160 Pasos.
Luego sern necesarios 160 pasos para mover la tuerca (la
plataforma) 1 mm.
#define X_STEPS_PER_INCH 4064
Para el caso de pulgadas, simplemente multiplicamos por 24,5
160x24,5=4064
Repetiremos este proceso para los otros dos ejes.
//our maximum feedrates
#define FAST_XY_FEEDRATE 2400
#define FAST_Z_FEEDRATE 2400
En esta instruccin pondremos los valores de velocidad (Avance)
mxima para los ejes X,y y Z. Este valor es emprico. Simplemente
desde el control (TxapuCNC_TX) vete moviendo los ejes y
aumentando el avance hasta que veas que se pierde sincronismo (el
motor hace ms ruido y no se mueve), coloca aqu un valor
ligeramente ms bajo. Este valor ser la velocidad con el que el
Arduino mover los motores al recibir una instruccin G0 (Movimiento
a velocidad mxima).
// Units in curve section
#define CURVE_SECTION_INCHES 0.019685
#define CURVE_SECTION_MM 0.5
Estos son los segmentos rectos mnimos en los que el CNC
descompone una curva (El cnc siempre mueve los motores en lneas
rectas). Normalmente no es necesario modificar estos valores.
// Set to one if sensor outputs inverting (ie: 1 means
open, 0 means closed)
// RepRap opto endstops are *not* inverting.
#define SENSORS_INVERTING 0
Si utilizas sensores finales de carrera para cada eje, tienes la
posibilidad de utilizar normalmente abiertos o normalmente cerrados.
(Yo no los he utilizado por simplificar, pero TxapuCNC_RX est
preparado para utilizarlos).
Y ya slo nos queda definir los pines del Arduino:
/
***********************************************************
*
* digital i/o pin assignment
* this uses the undocumented feature of Arduino:
* pins 14-19 correspond to analog 0-5
***********************************************************
*/
//cartesian bot pins
#define X_STEP_PIN 8
#define X_DIR_PIN 9
#define X_MIN_PIN 4
#define X_MAX_PIN 2
#define X_ENABLE_PIN 15
//Pin Analog 1
#define
#define
#define
#define
#define
Y_STEP_PIN 10
Y_DIR_PIN 11
Y_MIN_PIN 3
Y_MAX_PIN 5
Y_ENABLE_PIN 15
#define
#define
#define
#define
#define
Z_STEP_PIN 12
Z_DIR_PIN 13
Z_MIN_PIN 7
Z_MAX_PIN 6
Z_ENABLE_PIN 15
//Pin Analog 1
//Pin Analog 1
Gcodetools
Para la realizacin de las rutas utilizo inkscape con un plug-in que convierte los dibujos
en archivos G-code que pueden ser ledos por TxapuCNC_TX.
El plug-in original en ingls est desarrollado por Nick Drobchenko y lo puedes
descargar en http://cnc-club.ru/forum/viewtopic.php?t=35
Aqu puedes descargar un pequeo manual de uso en castellano de este plug-in, y en
este otro puedes descargar el plug-in traducido al espaol.
NOTA: no he probado el funcionamiento del control de Arduino bajo windows, para eso ser necesario
que instales tambien el VirtualBox Extension Pack.
Enlaces de Inters
Blog de David Carr donde se explica como construir una fresadora casera: make your
bot.
Pgina de EMC2, dedicada al mecanizado en linux.
RepRap, creacin de una mquina autoreplicante. Realizacin de piezas por deposicin
de material.
ReplicatorG, programa para producir cdigo para RepRap a partir de ficheros stl
Contraptor realizacin de una fresadora utilizando perfiles perforados.
Aplicacin en "processing" utilizada por contraptor para enviar archivos Gcode al
controlador Arduino.
Gcodetools: Plug-in para inkscape que genera Gcode a partir del dibujo vectorial que
hayamos dibujado (casi todos los archivos de ejemplo de TxapuCNC_TX los he creado
con este fantstico plug-in). Ahora en espaol y con ayuda!
HersheyFonts: Plugin para inkscape que genera textos con carcteres de una linea
simple, ideales para simplificar el mecanizado.
PyCAM: Programa que genera archivos Gcode a partir de archivos STL (3D) o
Archivos DXF o SVG (2D).
PaperStepper L298N: Uno de los drivers posibles para utilizar en TxapuCNC.
PaperStepper L293: Otro de los drivers posibles para utilizar en TxapuCNC (Yo he
utilizado ste para la realizacin de la fresadora).
PaperStepper Unipolar: Otro de los drivers posibles para utilizar en TxapuCNC.
PaperStepper Unipolar: Otro de los drivers posibles para utilizar en TxapuCNC.
PaperRel: Placa utilizada para gobernar el motor del cabezal.
PaperduinoStripboard: Posible placa de Arduino para controlar TxapuCNC.
PaperduinoPerfboard: Posible placa de Arduino para controlar TxapuCNC.
PaperduinoPCB: Posible placa de Arduino para controlar TxapuCNC.
CableFTDI: Si utilizas un Paperduino, ser necesario que tengas un cable USBRS232(TTL) para comunicarte con el PC.
VirtualBox: Programa de virtualizacin sistemas operativas, es decir te permite ejecutar
Windows en Linux, Linux en Windows, Mac en Linux, ...
Ubuntu: Sistema operativo GPL
Listado de programas generadores de gcode, y aqu otro listado.
Los chicos de FABLAB Italia nos muestran aqu como realizar un PCB en fritzing,
exportarlo en pdf e importarlo en Inkscape para poder modificarlo y posteriormente con
gcodetools poder generar un programa gcode, que pueda entenderlo TxapuCNC.
Informacin legal
1. Propiedad intelectual
Todos los derechos de propiedad intelectual del contenido de
Txapuzas elctronicas, estn bajo una licencia Creative Commons
Share-Alike, cuyo contenido podis revisar en este enlace.
Por tanto queda permitido copiar, distribuir, comunicar pblicamente
la obra y hacer obras derivadas de la misma, siempre que se respeten
los trminos de la licencia arriba reseada.
3. Actualizaciones y modificaciones de Txapuzas electrnicas
El autor se reserva el derecho a actualizar, modificar o eliminar la
informacin contenida en Txapuzas elctrnicas, y la configuracin o
presentacin del mismo, en cualquier momento, sin previo aviso, y sin
asumir responsabilidad alguna por ello.
4. Indicaciones sobre aspectos tcnicos
El autor no asume ninguna responsabilidad que se pueda derivar de
problemas tcnicos o fallos en los equipos informticos, que se
produzcan a causa de los circuitos e ideas expuestos en el blog de
txapuzas electrnicas, as como de los daos que pudieran ocasionar.
El autor se exime de toda responsabilidad ante posibles daos o
perjuicios que pueda sufrir el usuario a consecuencia de errores,
defectos u omisiones en la informacin facilitada.