Páginas

Txapu-CNC: Software

Descripción

Ahora también en versión para gambas3 !!


 
TxapuCNC es una fresadora casera de 2,5D. Es decir permite realizar mecanizados sobre una superficie (X,Y) a distintas alturas (Z).
TxapuCNC se compone de varias partes:
La propia fresadora, realizada con madera según las indicaciones de David Carr en su blog: make your bot.
Un programa realizado en gambas para sistemas linux denominado TxapuCNC_TX,
que consta de un editor de programas Gcode, un simulador para ver visualmente el funcionamiento de los programas que realicemos y un subprograma de envío de dichos comandos Gcode a la fresadora.
Entre el programa de mando ( TxapuCNC_TX) y la fresadora , necesitamos un Interface que decodifique los comandos y en consecuencia envíe las señales de control oportunas a los motores paso a paso que gobiernan los ejes de la fresadora.
Este interface está compuesto por un Paperduino (Arduino), que en su interior tiene cargado un Skech (TxapuCNC_RX)que comunica con el programa de mando, decodifica los comandos Gcode y manda las señales de control a los motores paso a paso. Estas señales de control son amplificadas por unos drivers de potencia que (PaperStepper y PaperRelé) que controlan los motores paso a paso y el motor del cabezal de la fresadora (un taladrín).

2. Estado del arte

Actualmente existen varios métodos de control de sistemas libres CNC:

 

2.1 EMC2

Es un sistema linux específico 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 visualización 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 técnicamente muy bueno, pero está pensado para tener un PC dedicado al control de la fresadora (si actualizas linux puede dejar de funcionar) , y además controla directamente los motores paso a paso a través del puerto paralelo, puerto que se va quedando obsoleto hoy en día.


2.2 REP-RAP

Es un sistema de impresión 3D preparado para funcionar en Windows, Linux y Mac, ya que está realizado en Java. El objetivo es el realizar una máquina autoreplicante.
Para poder usarlo en un sistema multitarea, el ordenador tiene cargado un programa denominado Rep-Rap que envía comados Gcode a un microprocesador Arduino (Sanguino). El Arduino tiene cargado un programa que interpreta los comandos y manda señales 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 plástico para crear formas 3D, y utiliza una versión de Arduino especial: Sanguino (con chip ATMega644 con chip SMD).


2.3 Contraptor CNC

Es una variante del sistema Reprap para su utilización con mini fresadoras. La fresadora se construye mediante perfiles perforados. Tiene un programa realizado en Processing que permite el envío de programas Gcode al Arduino.

 

2.4 TxapuCNC

Es un sistema derivado de Contraptor CNC, con las siguientes modificaciones.
El programa de envío de datos TxapuGcodeTX es una transcripción en gambas del programa original del Contraptor CNC realizado en Processing. (Creo que se podría utilizar el programa de envío de contractor en TxapuCNC, que al estar realizado en Processing-Java permite su uso en sistemas windows).
El Sketch de recepción 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 más caros) con señales de STEP y DIR.
La fresadora se realiza con madera según las indicaciones de David Carr. La fresadora casera más sencilla de fabricar, según mi opinión.
Los componentes necesarios son:
  • Un ordenador con sistema linux, gambas2 y el programa TxapuCNC_TX instalado.
  • Un Arduino (o Paperduino) que tenga instalado el skech TxapuCNC_RX.
  • Una fresadora casera en el que los ejes se muevan por motores paso a paso con dos señales de control , no con señales DIR y PASO como la Mantis-CNC (Con drivers Papersteppers)
  • 3 PaperStepper, que suministren la potencia necesaria que permitan mover los motores.
  • 1 PaperRelé (si quieres controlar el motor del cabezal por software).

 

3 TxapuCNC_TX

TxapuCNC_TX es un programa realizado en Gambas que es simultáneamente 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 característica fundamental: envía por el puerto serie (ó USB con serie virtual) una a una las lineas del editor esperando previamente a recibir la señal de “OK” del Controlador (Arduino).
Simulador
Es un visualizador de programas Gcode (sólo 2D) que muestra el recorrido en el plano XY. Dispone de zoom, Desplazamiento, simulación rápida y con retardo, Simulación del diámetro 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 milímetros o pulgadas (G21/G20) y con parámetros (#).

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 (había sujetado el motor Z con cinta de espuma adhesiva de doble cara y generaba mucha holgura) 

TxapuCNC_TX  es traducible. El programa detecta el idioma de tu sistema y si está traducido a tu idioma lo muestra, si nó lo visualiza en inglés.
De momento está disponible en inglés y en castellano. Si quieres traducirlo a otro idioma (o corregir una traducción) aquí tienes las instrucciones.

3.1 Instalación

Puedes descargar el programa TxapuCNC_TX al final de este documento, en la sección de descargas
Como TxapuCNC_TX está realizado en gambas2, es necesario que tengas instalado al menos el runtime de gambas2, pero creo que lo más sencillo es instalar el programa gambas2 completo.
Para instalar el programa del PC, descarga e instala el programa gambas2 desde el “Centro de software de ubuntu”
Una vez lo tengas instalado, simplemente haciendo doble click sobre el programa que has descargado previamente TxapuCNC_TX_xx.gambas se ejecutará.
También están disponibles para la descarga los archivos fuente (en gambas2) del programa dentro del directorio TxapuCNC_TX03, con lo que puedes ejecutarlo desde gambas2.
De esta manera podrás modificarlo, traducirlo, corregir los fallos que encuentres, e incluso mejorarlo (eso seguro!!).

NOTA: TxapuCNC_TX necesita que tengas instalado en tu sistema el componente de gambas2 gb.net (gambas2-gb-net), si nó te mostrará un error:
unKnown identifier:Serialport at line 10 in FMain.class
(Si has instalado gambas2 completo y quieres compilarlo de nuevo, debes activarlo desde Menu/Proyecto/Propiedades/Componentes/gb.net)

3.2 Componentes

Excluyendo el menú principal, podemos dividir TxapuCNC_TX en cuatro componentes:
  • Un control para mover directamente la fresadora.
  • Una consola de salida que nos muestra mensajes informativos sobre el estado del sistema.
  • Un editor de códigos G
  • Un simulador de Códigos G.


3.2.2 Editor


Es configurable desde el menú/Preferencias/Editor.
El editor tiene una barra de herramientas con los comandos más usuales en este tipo de programas.
Hay que destacar los últimos 5 controles, que son los específicos de CNC.
NOTA: Como el botón de impresión no tiene visualización 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 impresión puede durar varios minutos. Se paciente por favor.

El primero visualiza en el simulador el programa cargado en el editor. Este proceso se ejecuta automáticamente al cargar un programa G-Code.
El segundo Ejecuta el programa en la máquina , es decir envía los comandos al Arduino, y simultáneamente lo visualiza en el simulador.
El tercero es el pulsador de parada, que detiene tanto la simulación como el envío de datos al controlador Arduino.

NOTA: El programa considera que se ha apretado este botón al pulsar la tecla "barra de espacio” del teclado del ordenador.
Este control modifica el parámetro de velocidad de avance leído del archivo y que se enviará al controlador. Es decir mediante este control podemos modificar la velocidad especificada en cada linea del programa desde el 10% al 1000%. Se puede utilizar para no tener que cambiar el programa si vemos que el material a mecanizar es demasiado duro o blando.
Mediante las teclas + y – podemos modificar este valor en saltos del 25%.
NOTA: Si hacemos doble clik sobre el deslizador , o click sobre el valor numérico situado a su derecha, resetearemos este control (100%) y enviará al CNC la velocidad exacta que especifican las órdenes del programa.

 

3.2.3 Simulador

Esta ventana muestra una visualización del archivo cargado en el editor.
Para que se visualice el archivo (si se ha cargado un archivo se visualiza automáticamente) es necesario apretar el botón de simulación situado en la barra de herramientas del editor
La simulación puede ser instantánea o pausada para ver la ejecución de cada instrucción. 
El modo pausado se activa al apretar el botón con la imagen de un caracol. Al activarse se puede modificar el tiempo de espera entre la visualización de cada paso expresado en centésimas de segundo.
También nos puede interesar que el programa simule el diámetro de la herramienta de mecanizado.
Al activarlo podemos modificar el diámetro de la herramienta expresado en décimas de milímetro.
NOTA: Una vez modificado será necesario apretar el botón de simulación situado en el editor para ver su efecto.
Si quieres analizar una parte del mecanizado puedes arrastrarlo con el ratón (haciendo click con el botón izquierdo y arrastrándolo mientras se mantiene pulsado) y también puedes hacer zoom (desplazándo la rueda del ratón).
Si queremos que la simulación ocupe toda la ventana se puede apretar el botón situado en la parte inferior derecha de la pantalla.
En la parte inferior izquierda del editor existe otro botón que coloca la simulación en el origen (no modifica la escala de dibujado).
En la parte derecha de la ventana del simulador vemos una representación de la herramienta de mecanizado y su posición en el eje Z. Los números situados encima y debajo de la imagen, son los valores máximos y mínimos del eje Z, encontrados en el archivo cargado en el editor.
El color de la herramienta de mecanizado varía para indicar si el motor del cabezal está encendido o apagado.

3.2.4 Control

La última ventana es la del control
Desde aquí podemos mandar comandos independientes al controlador (Arduino). Algunos de estos comandos disponen de un botón propio.
NOTA: Los indicadores de posición situados en la parte superior, no indican la posición real mientras el CNC se está moviendo. Solamente cuando ha llegado a la posición de destino. Mientras se mueve el CNC, se muestran los puntos de destino , y éstos parpadean indicando que se está moviendo. Al ser el controlador (Arduino) el encargado de mover los motores, TxapuCNC_TX no sabe la posición del CNC, sólamente cuando recibe la orden “ok” TxapuCNC_TX conoce que el CNC ha llegado a la posición especificada.
Define el origen de coordenadas del CNC, enviando el comando: “G28 X0 Y0 Z0”
Si previamente se ha definido el origen de coordenadas, el programa podrá mandar la orden de ir al origen, “G0 X0 Y0 Z0”.
Con estos botones hacemos que el CNC vaya a los límites del mecanizado (los valores representados en negro) a la velocidad indicada por el desplazable “Avance” Por ejemplo si apretamos el primer botón teniendo el archivo de ejemplo cargado de la derecha, enviaría 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 tamaño del paso será el indicado en la lista desplegable “Tamaño de paso”.
Si en este control hemos seleccionado la opción “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 botón.
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 ratón se pueden pulsar directamente en el teclado. Si además pulsamos la tecla “Control”, el paso será más pequeño, y si pulsamos simultaneamente la tecla “Mayúsculas”, 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 botón 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 conexión con el Arduino, no estarán accesibles ninguno de los botones y comandos que permiten enviar comandos Gcode al Arduino. Sólamente podemos utilizar el programa como un sencillo editor de texto para modificar programas Gcode.
No obstante puedes utilizar TxapuCNC_TX para enviar comandos a otros sistemas como el Contraptor CNC. (de hecho el sketch TxapuCNC_RX es una modificación del sketch de Contraptor que permite utilizar PaperStepper como drivers para los motores paso a paso).
En realidad el sistema completo es una adaptación de diversos proyectos existentes en internet, modificados con el objetivo de simplificar la fabricación.
TxapuCNC_TX reconoce Archivos en milímetros y pulgadas, con coordenadas absolutas o relativas.
TABLA de comandos G reconocidos por Txapuzas CNC

Comando Ejemplo Descripción TX RX
G0 G0 X10 Movimiento lineal Rápido Si Si
G1,G01 G1 X10 Y15 Z0 [F100] Movimiento lineal Controlado (Avance: 100) Si Si
G2,G02 G02 X60 Y30 I30 J-10 F02 Movimiento curvo (sentido horario) Controlado Si Si
G3,G03 G03 X60 Y30 I10 J20 Movimiento curvo (antihorario) Controlado Si Si
G4,G04 G4 P200 Pausa con retardo (Retardo: 200ms) Si Si
G20 G20 Definir Unidades en Pulgadas Si Si
G21 G21 Definir Unidades en milímetros Si Si
G28 G28 Ir a Origen Si Si
G30 G30 X10 Y20 Z30 Ir a Origen a través de un punto Si Si
G90 G90 Definir Coordenadas absolutas Si Si
G91 G91 Definir Coordenadas relativas Si Si
G92 G92 Definir punto actual como origen Si Si
M0 M0 Paro (Pausa programada) Si No
M3,M03 M3 Marcha del cabezal Si Si
M5,M05 M5 Paro del cabezal Si Si


Lista de teclas de acceso rápido
Tecla Función Descripción
Escape Paro
Detiene la visualización/ejecución del programa
Barra de Espacio Pausa
Realiza una pausa en la visualización/ejecución del programa
F1 Ayuda
Muestra el archivo de ayuda
F2 Maximizar
Aumenta al máximo la ventana de TxapuCNC
F3 Buscar Muestra el cuadro de diálogo “buscar”
+ % Velocidad + Aumenta un 25% especificada la velocidad del programa
- % Velocidad - Disminuye un 25% especificada la velocidad del programa
Flecha arriba* Y+ Mueve el CNC en el sentido positivo del eje Y
Flecha abajo* Y- Mueve el CNC en el sentido negativo del eje Y
Flecha izquierda* X- Mueve el CNC en el sentido negativo del eje X
Flecha derecha* X+ Mueve el CNC en el sentido positivo del eje Y
Control Disminuir paso Al pulsarla junto a alguna flecha mueve el eje un “micropaso”
Mayúscula Aumentar paso Al pulsarla junto a alguna flecha mueve el eje un “macropaso”
Inicio Define Inicio Define la posición actual del CNC como origen de coordenas.




Nota: Las teclas de acceso rápido no están disponibles si estamos en en control de edición de texto. Para activarlos, mover el cursor del ratón sobre la ventana hacia una zona que no sea de edición de texto. La disponibilidad de las teclas de acceso se visualiza con una tecla situada entre los botones de control.

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 envía 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 máquina llega a la posición de destino, TxapuCNC_RX envía 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 aceleración/deceleración que eviten fallos de sincronismo en el arranque y parada.  Por lo que la velocidad máxima de los motores no podrá ser muy elevada.

4.1 Instalación

Simplemente carga el Skech TxapuCNC_RX_xx.pde en el entorno Arduino, y desde ahí, con el Arduino conectado, cárgalo en la placa pulsando el botón señalado en la imagen
Al Abrir el programa TxapuCNC_RX_xx.pde, se abrirán automáticamente 4 archivos en el Editor de Arduino.

NOTA:Como ves en la imagen, el programa de Arduino es una modificación 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 señales de "STEP" (Pulso) y "DIR" (Dirección) 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 señales "STEP" y "DIR" tipo Pololu ó Easydriver, lo podeis descargar en: TxapuCNC_RX_Pololu

Deberemos modificar los parámetros especificados en el Archivo _init en función de las características 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 movería 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 serán 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 instrucción pondremos los valores de velocidad (Avance) máxima para los ejes X,y y Z. Este valor es empírico. Simplemente desde el control (TxapuCNC_TX) vete moviendo los ejes y aumentando el avance hasta que veas que se pierde sincronismo (el motor hace más ruido y no se mueve), coloca aquí un valor ligeramente más bajo. Este valor será la velocidad con el que el Arduino moverá los motores al recibir una instrucción G0 (Movimiento a velocidad máxima).

// Units in curve section
#define CURVE_SECTION_INCHES 0.019685
#define CURVE_SECTION_MM 0.5
Estos son los segmentos rectos mínimos en los que el CNC descompone una curva (El cnc siempre mueve los motores en líneas 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 sólo 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 Y_STEP_PIN 10
#define Y_DIR_PIN 11
#define Y_MIN_PIN 3
#define Y_MAX_PIN 5
#define Y_ENABLE_PIN 15    //Pin Analog 1

#define Z_STEP_PIN 12
#define Z_DIR_PIN 13
#define Z_MIN_PIN 7
#define Z_MAX_PIN 6
#define Z_ENABLE_PIN 15   //Pin Analog 1

#define MOTOR_PIN 19 //Encendido/apagado cabezal (Pin Analog 5)

Como ya se ha indicado, el programa está preparado para finales de carrera que impidan que la máquina supere esos topes máximos. X_MAX, X_MIN, YMAX, Y_MIN, Z_MAX, Z_MIN. (no los he utilizado)
Todos los pines _ENABLE se han unido para ahorrar pines, y los uniremos a los respectivos enables de los PaperStrepper.
Los pines EJE_STEP y EJE_DIR son en realidad las entradas de control D1 y D2 de los PaperStepper de cada eje. No he modificado el nombre, ya que así era el programa original de Carlos Gilarte y Diego Colonnello. Internamente el programa (skech) está modificado para que funcione por pulsos de control en vez de STEP y DIR.
Por último el PaperRelé está conectado al Pin 19 (AN5) que controla el motor del cabezal. (Si quieres simplificar puedes manejar el taladrín a mano y olvidarte de esta señal).

Gcodetools

Para la realización de las rutas utilizo inkscape con un plug-in que convierte los dibujos en archivos G-code que pueden ser leídos por TxapuCNC_TX.
El plug-in original en inglés está desarrollado por Nick Drobchenko y lo puedes descargar en http://cnc-club.ru/forum/viewtopic.php?t=35
Aquí puedes descargar un pequeño manual de uso en castellano de este plug-in, y en este otro puedes descargar el plug-in traducido al español.



Utilización Bajo Windows

En la imagen siguiente podeis ver una prueba de uso de TxapuCNC_TX en Windows, instalando ubuntu bajo VirtualBox.
 
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 Interés

Blog de David Carr donde se explica como construir una fresadora casera: make your bot
Página de EMC2, dedicada al mecanizado en linux.
RepRap, creación de una máquina autoreplicante. Realización de piezas por deposición de material.
ReplicatorG, programa para producir código para RepRap a partir de ficheros stl
Contraptor realización de una fresadora utilizando perfiles perforados.
Aplicación 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 fantástico plug-in). ¡ Ahora en español y con ayuda!
HersheyFonts: Plugin para inkscape que genera textos con carácteres 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 realización 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 USB-RS232(TTL) para comunicarte con el PC.
VirtualBox: Programa de virtualización 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.


Información legal


1. Propiedad intelectual
Todos los derechos de propiedad intelectual del contenido de Txapuzas eléctronicas, están bajo una licencia Creative Commons Share-Alike, cuyo contenido podéis revisar en este enlace.
Por tanto queda permitido copiar, distribuir, comunicar públicamente la obra y hacer obras derivadas de la misma, siempre que se respeten los términos de la licencia arriba reseñada.
3. Actualizaciones y modificaciones de Txapuzas electrónicas
El autor se reserva el derecho a actualizar, modificar o eliminar la información contenida en Txapuzas eléctrónicas, y la configuración o presentación del mismo, en cualquier momento, sin previo aviso, y sin asumir responsabilidad alguna por ello.
4. Indicaciones sobre aspectos técnicos
El autor no asume ninguna responsabilidad que se pueda derivar de problemas técnicos o fallos en los equipos informáticos, que se produzcan a causa de los circuitos e ideas expuestos en el blog de txapuzas electrónicas, así como de los daños que pudieran ocasionar.
El autor se exime de toda responsabilidad ante posibles daños o perjuicios que pueda sufrir el usuario a consecuencia de errores, defectos u omisiones en la información facilitada.

Descargas


Los programas (con fuentes) y archivos de ayuda están disponibles en el siguiente enlace:

Si tienes problemas con el enlace anterior, aquí puedes descargar todos los archivos de txapuzas

NOTA: En la zona de descargas tienes varias versiones:
- 20c TxapuCNC Software 03: última versión del programa para utilizar con gambas2
- 20d TxapuCNC_RX_Pololu_01: Sketch de Arduino modificado para utilizar con drivers STEP-DIR (es decir que no sean PaperSteppers)
- 20e TxapuCNC Software 10: Versión del programa para utilizar con gambas3    
Notas
Para la realización de este proyecto se han utilizado los programas: Arduino, Inkscape, Openoffice, Gimp, Picasa, FritzingGambas
Si encuentras algún fallo, se te ocurre alguna mejora, o simplemente quieres hacer algún comentario, te lo agradeceré: Gracias :-)

439 comentarios:

  1. Magnífico trabajo, tal vez hecho de menos un pequeño tutorial de la construcción del soporte así como el conexionado de todos los motores, por lo demás de lo mejorcito.

    ResponderEliminar
  2. Totalmente de acuerdo, hecho de menos los esquemas habituales. Por fin un proyecto en castellano

    ResponderEliminar
  3. Tranquisss, que voy poco a poco!!

    Los esquemas están en el blog PaperCNC Hardware (N21)

    ResponderEliminar
  4. Me encanta el grafismo de los proyectos. Buen trabajo.

    ResponderEliminar
  5. Al compilar sketchme da los siguientes errores:

    TxapuCNC_RX-01.cpp:50: error: 'X_STEPS_PER_MM' was not declared in this scope
    TxapuCNC_RX-01.cpp:51: error: 'Y_STEPS_PER_MM' was not declared in this scope
    TxapuCNC_RX-01.cpp:52: error: 'Z_STEPS_PER_MM' was not declared in this scope
    TxapuCNC_RX-01.cpp:53: error: 'CURVE_SECTION_MM' was not declared in this scope
    TxapuCNC_RX-01.cpp: In function 'void init_process_string()':
    TxapuCNC_RX-01.cpp:65: error: 'COMMAND_SIZE' was not declared in this scope
    TxapuCNC_RX-01.cpp:66: error: 'palabra' was not declared in this scope
    TxapuCNC_RX-01.cpp:67: error: 'serial_count' was not declared in this scope
    TxapuCNC_RX-01.cpp: In function 'void process_string(char*, int)':
    TxapuCNC_RX-01.cpp:266: error: 'X_STEPS_PER_INCH' was not declared in this scope
    TxapuCNC_RX-01.cpp:267: error: 'Y_STEPS_PER_INCH' was not declared in this scope
    TxapuCNC_RX-01.cpp:268: error: 'Z_STEPS_PER_INCH' was not declared in this scope
    TxapuCNC_RX-01.cpp:269: error: 'CURVE_SECTION_INCHES' was not declared in this scope
    TxapuCNC_RX-01.cpp:276: error: 'X_STEPS_PER_MM' was not declared in this scope
    TxapuCNC_RX-01.cpp:277: error: 'Y_STEPS_PER_MM' was not declared in this scope
    TxapuCNC_RX-01.cpp:278: error: 'Z_STEPS_PER_MM' was not declared in this scope
    TxapuCNC_RX-01.cpp:279: error: 'CURVE_SECTION_MM' was not declared in this scope

    Usando la version 0022 de arduino y un Arduino UNO

    Gracias de antemano.

    Un Saludo desde Canarias.

    ResponderEliminar
  6. Solucionado quitando los espacios y guines bajos del nombre del sketch y los directorio donde esta ubicado.

    Un Saludo a todos

    ResponderEliminar
  7. Hola Anónimo,
    Creo que el problema es que el IDE de Arduino no reconoce el guión en el nombre de la carpeta y del archivo, y por eso no carga el archivo TxapuCNC_RX-01.

    Renombra la carpeta de TxapuCNC_RX-01 a TxapuCNC_RX01
    y el archivo contenido en su interior de TxapuCNC_RX-01.pde a TxapuCNC_RX01 (debe tener el mismo nombre que la carpeta).

    Deberás tener los siguientes archivos:
    *TxapuCNC_RX01
    - TxapuCNC_RX01.pde
    - _init.pde
    - process_string.pde
    - stepper_control.pde

    El Skech está dividido en varios subprogramas, que tienen que estar en la misma carpeta, de forma que al abrir el TxapuCNC_RX se abren también en otras pestañas el resto de subprogramas.

    Perdona el error, en breve lo corregiré en el archivo zip de descargas.

    Saludos y gracias

    ResponderEliminar
  8. Hola Ulises,
    Ya he eliminado el guión del nombre de archivo del Skech, para que no de problemas.
    Gracias de nuevo

    (Perdona, antes te he contestado a una pregunta a la que tu ya habías encontrado la solución).

    ResponderEliminar
  9. Hola, me podrías decir como has echo el calibrado del taladrín ?

    ResponderEliminar
  10. Hola Mister_geek
    ¿A que te refieres con el calibrado del taladrin?

    ResponderEliminar
  11. hola, te voy a plantear la pregunta de otra forma

    ¿ como sabe el programa de "impresión" en que posición está el "taladrin" ?

    como lo calibraste en un punto para que a partir de ahí empiece a "grabar"?

    porque me imagino que tiene que tener una posición 0,0 de donde parte para que arduino sepa en que posición están los motores y demás (me imagino que lo calibrarás mediante el programa no ? )

    nosé si me explico

    otra duda:

    donde has conseguido los ejes de 8mm de dm?

    otrá más: has intentado controlar la cnc desde windows?

    ResponderEliminar
  12. Hola Iñigo, ante todo felicitarte por tu gran trabajo. Tengo un problemilla, en ubuntu tengo instalado ya el gambas, descomprimo los archivos pero al darle doble click no hace nada, y si intento abrirlo como proyecto de gambas tampoco me lo reconoce.

    ResponderEliminar
  13. Hola misterGeek
    Siempre al arrancar el programa hay que definir el origen (Home). Es decir, decirle al programa que la posición en la que se encuentra el taladrin es la 0,0,0.
    Este punto se define mediante el botón con el símbolo de la casa.
    Los ejes son trozos de varillas calibradas de 1 metro y Métrica 8 (~1,5€ en Leroy Merlin), que es bastante fácil de encontrar en ferreterías.
    No, no lo he intentado, pero no creo que tengas problemas utilizando como emisor el programa de Processing: http://www.contraptor.org/forum/t-287260/gcode-sender-program y como receptor el TxapuCNC_RX. Otra posibilidad sería usar VirtualBox con Linux en Windows (no lo he probado)

    Saludos

    ResponderEliminar
  14. Muchas gracias por tu ayuda, y siento si soy un poco pesado, pero me gustaría informarme bien de todo antes de su montaje, asi que si no te importa te hago unas preguntillas más

    al inciar el programa antes de calibrarlo puedes mover con motor a la posición que tu quieres que sea la 0,0,0?

    cuando te preguntaba acerca de los ejes, te preguntaba acerca de los ejes lisos, no de la varilla roscada (gracias de todas formas ;) ) asi que te vuelvo a preguntar, te ha sido muy dificil encontrar las varillas de acero inox lisas, que sirven de "guias"

    consideras que han quedado resistentes los casquillos pegados con araldit?

    de nuevo muchas gracias y un gran trabajo :)

    ResponderEliminar
  15. Hola Mister_geek
    Exacto. Es el proceso habitual en todas las CNC. Mover la fresadora hasta el punto que consideres en tu programa de mecanizado como (0,0,0), y definirlo como origen de coordenadas.
    Para eso TxapuCNC_TX dispone de unas teclas de control de dirección (las flechas).
    Una vez definido el origen de coordenadas, se manda ejecutar el G-code(que suele tener como origen el 0,0,0)

    Con respecto a las guías, son una varilla de hierro normal cromadas que encontré en la chatarra. No es necesario que sean cromadas, puede ser una varilla o tubo de acero normal sin cromar que también puedes comprar en una ferretería, si lo pules con lija muy fina quizás tenga un poco más de rozamiento, pero bien engrasadas no creo que tengas problemas.

    Cuando ví la solucíón de Araldit propuesta por David Carr, me pareció sencilla y muy práctica, ya que así los casquillos están perfectamente alineados. En principio yo también tenía dudas de su resistencia, y pensé en clavar unos clavos en la madera junto a los casquillos para que queden unidos con el adhesivo a los casquillos y refuercen la unión, pero sin ellos me aguantan perfectamente.

    Saludos

    ResponderEliminar
  16. Gracias por tu ayuda, ya tengo todo más claro

    ResponderEliminar
  17. Hola San,
    Perdona con la tardanza en contestar.

    ARCHIVOS FUENTE
    He comprobado que al realizar los archivos zip, no había copiado los archivos ocultos de gambas que son los que indican al IDE de gambas que es un directorio ejecutable.
    Ya lo he corregido.
    También he simplificado la estructura de directorios para que sólo sea necesario descomprimirla una vez.

    ARCHIVO EJECUTABLE
    Dentro del directorio que se genera al descomprimir el archivo de descargas, tenemos el archivo ejecutable:
    TxapuCNCSoftware_01a/TxapuCNC_TX01/TxapuCNC_TX01.gambas
    Simplemente hacer doble click sobre él.

    ResponderEliminar
  18. Gracias Iñigo, ya me funciona, y ya puedo abrir los fuentes. Sin embargo al ejecutarlo desde gambas me aparece en ingles aunque le cambie en preferencias del proyecto a español. He ido a la opción de traducciones y me aparece que todas las cadenas están sin traducir, y no encuentro el archivo con extensión op para traducirlo. La verdad es que estoy muy verde en Gambas. Me podrías comentar como lo haces tu?.
    Saludos...

    ResponderEliminar
  19. Hola Patuli
    Perdona, pero he comprobado que ahora no están los .mo y .po de las traducciones !!!???
    Vaya lío que me estoy montando con los archivos!!!, en algún momento he reorganizado los directorios y me he olvidado de los archivos ocultos. Así que estoy copiándolos de versiones anteriores y puede que haya algún problema.

    Ya lo he subido corregido

    Los archivos .mo y .po están en:
    TxapuCNC Software01a/TxapuCNC_TX01/.lang/...

    Perdona las molestias

    NOTA1: El propio gambas detecta tu lenguaje y selecciona el PO adecuado.

    NOTA2: Como es un directorio oculto (.lang) tienes que apretar Ctrl+H para que se visualice.

    ResponderEliminar
  20. Muchisimas gracias, eres un fenomeno. Ya he logrado que me funcione todo el Software correctamente, ahora me voy a hacer la electrónica y la máquina, ya veremos como se da :).
    Saludos...

    ResponderEliminar
  21. Gracias a tí hombre!
    Ya nos contarás...

    Hasta pronto

    ResponderEliminar
  22. disculpa pero al correr el software en gambas2 me devuelve el siguiente error

    Faltan algunos componentes: gb.net

    de antemano gracias
    PD. Excelente pagina

    ResponderEliminar
  23. Hola Hiram_zell

    Tienes que cargar el componente gb.net desde el centro de software.
    Si instalas en megapaquete "gambas2" ya te instala todos los componentes.
    Tienes más información en:
    http://gambas.sourceforge.net/en/main.html => Getting started => Installation page

    Saludos

    ResponderEliminar
  24. Buenos dias.

    Para los usuario de Arduino UNO decirles que Ubuntu por ejemplo reconece nuestra placa en el puerto /dev/ttyACM0 y el Software de esta CNC va a buscar la controlodara al /dev/ttyUSB0 por lo cual os dara error al iniciar, se soluciona con el siguiente comando en la consola, haciendo un enlace de un puerto a otro con:

    sudo ln -s /dev/ttyACM0 /dev/ttyUSB0

    debeis hacerlo siempre antes de empezar a trabajar con el Software de este proyecto.

    Espero que a alguien le sirva de ayuda.

    Un Saludo desde Canarias.
    Ulises.

    ResponderEliminar
  25. Aaaahhh... otro tema que se olvidaba, que motores usais con el driver unipolar que teneis en la web con el ULN2003, mis motores consumen muchisimo, 2A min, y los ULNs se abren de par en par a los 30seg :P

    ResponderEliminar
  26. Hola Ulises
    Gracias por tu solución.
    Otra forma para que TxapuCNC reconozca al puerto ttyACM0, es escribirlo en el campo "Puerto" del diálogo de configuración de puerto serie. Como la configuración se guarda en un archivo, la próxima vez que lo abrás ya lo tendrás asignado.

    Si no me equivoco (tendría que mirar el datasheet) el ULN2003 admite 600mA como máximo, para duplicarlo podrías soldar dos chips uno encima del otro (no lo he probado pero debería funcionar), de todas formas si tu motor consume 2A con ésto tardará un poco mas en quemarse. :-(

    Saludos

    ResponderEliminar
  27. Lo que pasa con TxapuCNC es que si no detecta ttyUSB al clickar en el dialogo puerto, a mi me pasa, me dice:

    Lo siento, no encuentro un puerto serie libre
    Tienes el cable USB conectado?

    Y no me da opcion a cambiar el puerto, asique la unicasolucion es linkar el ACM0 al USB0.

    Respecto a los ULNs ni siquiera con 3 ULNs montados a caballo tira, voy a probar a sustituir los ULNs por transistores darlinton tipo BDX35 o alguno similar que bien disipados dan varios Amp. y ya te comentoel resultado y te paso el esquema.

    Un saludo.
    Ulises.

    ResponderEliminar
  28. Hola Ulises,
    Si, tienes razón, el programa sólo detecta ttyS y ttyUSB (y si no encuentra ninguno pone como defecto valores de ttyUSB0), y además no te deja acceder al puerto serie.
    En un intento de simplificar el funcionamiento creo que lo he complicado.
    (Me lo apunto en la lista de deberes)

    Una posible solución sería añadir al archivo de configuración:
    /home/USUARIO/.config/gambas/TxapuCNC_TX-01.conf
    lo siguiente:
    [Serie]
    Puerta=/dev/ttyACM0 (esto creo que funcionará)

    Con esto simplemente cargará ese puerto, pero seguirá sin dejarte acceder al cuadro de diálogo.

    Gracias por todo y ya me comentarás.

    ResponderEliminar
  29. Hola de nuevo Ulises,
    Respecto a controlar el stepper con transistores de potencia, yo te recomendaría utilizar algún mosfet (tipo IRF520) en vez de un NPN, ya que además de ser mucho más baratos, de integrar diodo de clamping, se te van a calentar bastante menos. (con intensidades tan grandes,es conveniente trabajar con bastante margen)

    Un saludo

    ResponderEliminar
  30. Hola a Todos
    He corregido el TxapuCNC_TX para que reconozca a Arduino UNO, con lo que no es necesario linkar ttyUSB0 a ttyACM0 como indica Ulises (o al menos eso espero).
    Como no tengo Arduino-UNO, si algún alma caritativa prueba su correcto funcionamiento, le estaría agradecido.

    Saludos

    ResponderEliminar
  31. Hola que tal.
    Tengo un problemilla bastante gordo al cual no le encuentro explicación. El caso es que monté 3 paperstepper l298 y una placa rele, y me funcionaba todo a la perfección, hasta que de repente el eje X solo gira en una dirección.
    No es fallo ni de el paperstepper ni de los motores, ya que aunque los intercambies solo falla una direccion de X, ademas si uso el ejemplo del paperstepper funciona bien.
    Ya ha probado de todo, desde cambiar el arduino por otro, el cable usb, los cables, probar en varios PC's, cambiar la asignación de salidas a otras que no sean la 8 y la 9, ya no se me ocurre nada.

    Alguna idea?

    Por cierto, tengo Arduino Uno y no funciona la modificación que hiciste del puerto. Yo lo tengo solucionado cambiando el puerto en los fuentes del programa y creando otro ejecutable.

    Un saludo.

    ResponderEliminar
  32. Hola San
    Recuerdo que eso me pasó al principio con el eje Y, pero como no me volvió a pasar no le dí importancia, pensé que era una mala conexión.
    Este fin de semana le voy ha dar un vistazo de nuevo.

    Con respecto a la modificación que hice, recuerdas si al arrancar por primera vez TxapuCNC_TX, en el inicio te decía que no había encontrado un puerto disponible, pero al ir al diálogo de conf del puerto serie ¿aparecía en la lista del combo "Puerto" un ttyACM, para poder elegirlo?
    ¿Si lo elegías funcionaba el programa?

    Gracias

    ResponderEliminar
  33. Hola Iñigo,
    No, no salia el puerto ttyACM0 en el combo de elección del puerto al ir a la configuración.
    Un saludo.

    ResponderEliminar
  34. Hola San,
    perdona por la molestia, pero...
    ¿Podrías decirme el resultado de ejecutar en un terminal:
    "dmesg | grep tty"
    después de haber conectado Arduino-UNO al ordenador?

    y ¿y el mensaje que genera al ejecutar el mismo comando después de desconectar el Arduino-UNO?

    Gracias de antemano

    ResponderEliminar
  35. Ahí te va:
    Con el arduino conectado:

    [ 0.000000] console [tty0] enabled
    [ 0.252762] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
    [ 0.253106] 00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
    [ 14.017600] cdc_acm 1-3.4:1.0: ttyACM0: USB ACM device

    Con el arduino desconectado:

    [ 0.000000] console [tty0] enabled
    [ 0.252762] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
    [ 0.253106] 00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
    [ 14.017600] cdc_acm 1-3.4:1.0: ttyACM0: USB ACM device


    Y no es ninguna molestia, si necesitas algo mas no tienes mas que decirlo.
    Un Saludo.

    ResponderEliminar
  36. Hola San
    He modificado TxapuCNC_TX para que reconozca a Arduino-UNO (Ahora creo que sí)
    Creo que ahora funcionará, es un poco menos automático que antes (no elimina los puertos desconectados, pero creo que dará menos problemas).
    El funcionamiento es (o creo que será).
    Al arrancar Txapucnc_TX carga el puerto que se utilizó y guardó la última vez, si no está disponible da un aviso de error y te indica que tienes que cambiar de puerto.
    Al cargar la vantana de configuración del puerto serie ejecuta "dmesg | grep tty" y mira en la respuesta los puertos que hay en el ordenador, y los va cargando en el combo. Reconoce ttyUSB (Arduino), ttyS (Arduino Serial) y ttyACM (Arduino-Uno
    Al salir de esta ventana guarda los valores, para que los reconozca en el próximo arranque.
    NOTA:
    Como el número de puerto USB varía en función de los periféricos que estén conectados, puede ser que en el siguiente arranque del programa haya que elegir de nuevo el puerto USB.

    Con respecto al fallo de funcionamiento del eje X que me has comentado, he repasado el programa y no he encontrado la razón para ese mal funcionamiento. No obstante puede ser un fallo del funcionamiento de los pulsadores de gambas2 (he tenido bastantes problemas con ellos, y me han complicado bastante el programa).
    Como el autor de gambas está a punto de sacar una nueva versión de gambas. Cuando la saque, como tengo la intención de portar TxapuCNC_TX, reharé la parte de control. Espero entonces resolver el problema.

    Gracias y perdona por el rollo!!

    ResponderEliminar
  37. Hola Iñigo.
    Creo que ya se como hacer para que no me falle lo del eje X.
    Le tengo que poner alimentación externa al Arduino, y ademas conectarlo al PC antes de conectarle los paper-stepper.
    Hecho así lo he probado varias veces y no me ha fallado, no se si por casualidad o no.
    Un saludo.

    ResponderEliminar
  38. Hola de nuevo,
    Se me olvido comentarte en el mensaje anterior que ahora si funciona correctamente la modificación que hiciste para el puerto serie con Arduino uno.
    La primera vez que entras dice que puerto no encontrado, pero se va a configurar puerto y si sale en el combo, además al salir del programa lo guarda y las siguientes veces ya entra directamente.
    Un Saludo.

    ResponderEliminar
  39. Hola San
    En mi correo anterior quería decir:
    !Por fin funciona! y no quisiera que entendieras que lo que quería decir es que que por fin me contestas.
    Muchas gracias de nuevo.

    ResponderEliminar
  40. Hola Iñigo,
    No te preocupes que lo había interpretado como que ya funcionaba por fin.

    Un saludo.

    ResponderEliminar
  41. Hola,
    Perdona que te moleste, pero es que vuelvo a tener problemas con lo del eje X, y me preguntaba si puede ser porque el programa cree que está activado el final de carrera (los cuales no los tengo implementados) del eje X en ese sentido.
    No se si se puede modificar el código del arduino para que no haga la comprobación de los finales de carrera o cambiar la logica de NO a NC y tenerlos puenteados, y así salir de dudas.

    Un Saludo.

    ResponderEliminar
  42. Hola, yo lo he probado, y el eje x, y el eje y no rulaba, pero sin embargo, poniendo al eje z, este sin funcionaba perfectamente, es por dar alguna pista, ya os comento, lo que cambiaba eran los dos pines del x del y y del z, y en este último funcionaba correctamente.

    ResponderEliminar
  43. Hola.

    Al Final el problema del eje X era que el arduino detectaba que estaba activada la entrada del final de carrera.
    Cambiando los pines y poniéndolos igual al eje Y, hasta el momento no ha vuelto a fallar.

    un saludo.

    ResponderEliminar
  44. Do you plan a port to GAMABS 3 ?

    ResponderEliminar
  45. Hello.
    Yes, but when gambas 3 is a stable version.

    ResponderEliminar
  46. Buenas noches,y gracias por la web Iñigo, creo que tiene mucho de provecho. El caso es que haciendo una CNC basada ( en parte ) el la TxapuCNC, pero en lugar de usar los drivers de paperStepper, me compré unos de estos de pololu, con una entrada de dir y una de Step, por lo que no me va (logicamente) el interprete de Gcode de TxapuCNC. Busqué del de la contraptor, pero o lo han cambiado de sítio o no soy capaz de encontrarlo, he intentado instalar el de la mendel, pero no me compila. ¿ No conservarás el que usaste de base para generar tu TxapuCNC_RX ?

    ResponderEliminar
  47. Hola Anónimo

    El TxapuCNC_RX ya estaba modificado para trabajar con drivers de 2 señales de control. No obstante podrías re-modificar la subrutina de control del motor:
    (void do_step(byte pinA, byte pinB, byte dir))

    Teniendo en cuenta que "pinA" =STEP y "pinB"=DIR y el sentido de DIR está almacenado en la variable "dir".

    (como no tengo las Pololu no puedo comprobar su funcionamiento)

    Las últimas versiones del Sketch de RepRap ocupa mucho y necesita un Sanguino o Arduino mega, pero puedes utilizar alguna versión anterior que ocupe menos para poderlo meter en un ATmega328P o ATmega168.

    Tienes descargas disponibles en(no los he comprobado):

    http://code.google.com/p/rsteppercontroller/downloads/list

    http://www.contraptor.org/arduino-gcode-interpreter

    http://contraptor.svn.sourceforge.net/viewvc/contraptor/trunk/firmware/

    http://sourceforge.net/projects/reprap/files/Arduino%20Firmware/

    Saludos

    ResponderEliminar
  48. Hola de nuevo anónimo

    He realizado una variante de TxapuCNC_RX para ser utilizado por drivers STEP y DIR. (tipo pololu).

    No puedo comprobar su funcionamiento ya que no tengo esas placas.

    Lo puedes descargar en el enlace siguiente:

    http://cid-b625350fa60e2d43.office.live.com/self.aspx/.Documents/Txapuzas/20d%20TxapuCNC^_RX^_Pololu^_01.zip

    Si te funciona correctamente, dímelo y lo pongo en la web.

    Gracias

    ResponderEliminar
  49. Gracias Iñigo, voy a probar el que has modificado y si funciona te lo hago saber, por supuesto.

    ResponderEliminar
  50. Hola de nuevo Iñigo, el TxapuCNC_RX01_Pololu_ parece funcionar muy bien. Lo he probado enviando comandos GCODE desde el "Serial monitor" del IDE de arduino,y los motores se mueven alegremente ( y con fundamento ), muchas gracias otra vez.

    ResponderEliminar
  51. hola Iñigo, ya he ensamblado mi fresadora, instalado gambas y conectado todo pero tengo un problema, y es que mis motores solo giran hacia un lado, he comprobado todo varias veces y no se que hacer que puede ocurrir?, gracias y un saludo.

    ResponderEliminar
  52. ¿Te sucede lo mismo en los 3 motores?
    Si cargas en el Arduino el sketch de ejemplo stepper_oneRevolution (tienes que indicar las patillas de salida que has utilizado)¿Cómo te funciona?

    ¿Has utilizado Finales de carrera para detectar los topes? A simple vista, sólo se me ocurre que el programa detecte que algunos finales de carrera están activos. (prueba a poner a masa los pines de los finales de carrera).

    Saludos

    ResponderEliminar
  53. hola felicidades por ese proyecto que es fantastico, solo que tengo unas pequeñas dudas queria ver si me puedieras ayudar, lo que pasa es que ya tengo instalado el gambas2 ya abri el documento TXapuCNC_TX pero al momento de compilarlo me dice que tengo un error en la linea 10, entonces trato de abrir el FMain y me dice que falta el FForm.CreateControl.1073 no se si me puedas ayudar de antemano muchas gracias y felicidades.

    ResponderEliminar
  54. Hola Raphael,
    El error de la linea 10: PUBLIC Sport AS SerialPort
    parece que es porque no tienes el componente gb.net
    activalo en: Gambas/Menú/Proyecto/Propiedades/Componentes=> gb.net

    ResponderEliminar
  55. Hola Iñigo muchas gracias por la ayuda, me sirvió mucho, ya corre el programa busque donde me dijiste y no encontré el gb.net pero active otro y con eso me funciona ya el programa y ya corre a la perfección, pero fíjate que probé con la version del arduino 0022 y cuando cargo el programa a mi arduino no me lo reconoce yo tengo el arduino UNO, pero un amigo tiene el arduino dueminilove y no me lo deja cargar en mi computadora solo en la computadora de mi amigo, por eso es que pude darme cuenta de que ya servia el programa, no se si me pudieras ayudar y gracias por tu tiempo de postear y ayudar a la comunidad, te comento que la maquina virtual me reconoce el arduino UNO y al momento de cargarlo lo configuro en tools para ponerle el puerto s1 y le digo que es ardunino UNO gracias...

    ResponderEliminar
  56. Hola Raphael
    No entiendo tu duda.
    ¿Utilizas una máquina virtual? ¿Linux sobre windows?
    ¿Cual es el problema?, ¿No puedes cargar el sketch en el Arduino UNO, a través de la máquina virtual?
    El sketch lo puedes cargar desde cualquier sistema que reconozca el Arduino-IDE.

    NOTA: Te rogaría que utilizaras frases cortas para hacer más comprensible el texto.

    ResponderEliminar
  57. Hola perdon por tanta revuelta te explico:

    1.-Utilizo ubuntu en una maquina virual
    2.-No me deja cargar el programa al arduino UNO, el problema es que reconoce el arduino cuando lo conecto a mi maquina pero al momento de cargarlo me dice que no lo puede cargar, ya intente cambiarle todos los puertos por lo que se conecta, puertos(S0, S1) si el programa lo cargo desde otra computadora me deja y ya me corre el programa bien, ahora que problema crees que me este causando mi arduino UNO para que no me deje cargar el programa desde mi computadora.
    espero que no te haya dado mucha revuelta de nuevo y espero que este mas entendible y perdona por la molestia.

    ResponderEliminar
  58. Hola de nuevo Raphael
    Para saber que puerto serie virtual crea el Arduino UNO en linux, haz lo siguiente:
    - Abre una consola (menu/accesorios/consola) y sin el arduino conectado teclea: dmesg | grep USB.
    -Después conectas el arduino al puerto usb y vuelves a teclear lo mismo.
    - En el nuevo listado aparecerá una entrada nueva donde te dirá el nombre del puerto serie. - Ese nombre es el que debes elegir en el listado del Arduino-IDE.

    Si haces lo mismo con el comando lsusb simplemente ves si el Arduino ha sido detectado o no.

    NOTA: lo que me extraña es que si el programa TxapuCNC_TX reconoce la placa Arduino, no lo haga el propio Entorno Arduino.


    Saludos

    ResponderEliminar
  59. Hola Iñigo, ya he solucionado lo de los motores, era por los fines de carrera, los he conectado directamente a masa y solucionado, estoy haciendo mis primeras pruebas de corte y tengo que pulir un poco la parte mecánica. Un saludo.

    ResponderEliminar
  60. Parte 1 de 2
    Hola Iñigo.
    Retomando los temas del puerto serie, me veo en la necesidad de realizar un proceso determinado para que el Arduino sea detectado por linux y luego arrancar TxapuCNC_TX.

    Os lo comento:

    PC utilizado: Maquina virtual
    PC anfitrión: iMAC OS X v10.6.7
    PC virtual: Ubuntu 10.10 32 bit
    Arduino: UNO
    IDE Arduino: V.0022 tanto en el PC anfitrión como en el PC virtual
    Sistema de virtualización: VirtualBox v.4.0.8r71778 + Extensión Pack de la misma versión.

    En el equipo anfitrión (iMAC) Arduino UNO OK. Desde este equipo ha sido utilizado para programar Arduino con la aplicación TxapuCNC_RX.

    Tras la creación del equipo virtual, he instalar las tools de VirtualBox. En Configuración de la máquina virtual he habilitado la compatibilidad de USB 2.0 (para eso las extensión Pack) y le he indicado que filtre el USB indicando que detecte el dispositivo Arduino. En principio da igual si filtra o no, pero lo he habilitado para que la máquina no vea cosas que no le competen de la máquina real.

    En el equipo virtual (Ubuntu) Si lo enciendo con el Arduino conectado, el IDE de Arduino tiene su submenú "puerto" desabilitado, y la aplicación TxapuCNC_TX no lista ningún puerto. Si ejecuto en comando "lsusb" obtengo lo siguiente:

    Bus 002 Device 002: ID 80ee:0021
    Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    Si suelto el Arduino del USB, se muestra lo mismo.
    Si coloco de nuevo el Arduino en el USB, se muestra lo siguiente:

    Bus 002 Device 003: ID 2341:0001
    Bus 002 Device 002: ID 80ee:0021
    Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    Ahora lo ha detectado como "Bus 002 Device 003: ID 2341:0001" Si intento seleccionar el puerto en el IDE de Arduino, ahora si tengo puerto denominado "/dev/ttyACM0".

    En el caso de la aplicación "TxapuCNC_TX", cuando compruebo con el comando "lsusb" que se a añadido el dispositivo "Bus 002 Device 003: ID 2341:0001", lanzo la aplicación y muestra el mensaje "No puedo abrir el puerto /dev/ttyACM0 ! Ajusta las preferencias del puerto serie. " con el botón "ok". Tras pulsar "ok" en "preferencias/puerto serie", en el apartado "puerto:" se ve seleccionado "/dev/ttyACM0" y si desplegamos el campo no hay más puertos. Pulso "Aceptar" y ahora comunica correctamente a 19200 con el texto "CNC Detectado y Funcionando :-) ".

    Si salgo y entro en la aplicación, el puerto se mantiene sin problemas, no generando errores.

    Con todo OK, si desconecto el Arduino y lo conecto otra vez, todo OK, no hay mensajes de ningún tipo.

    Conclusión:

    Parece ser que ha Ubuntu virtualizado (no he probado a realizarlo en un Ubuntu "fisico"), no le gusta que el Arduino este conectado antes de arrancar, y tiene que forzarse una auto detección cuando el S.O ya esta arrancado.

    Por otra parte, TxapuCNC_TX parece comportarse de una manera similar. El primer intento de utilización del puerto parece no gustarle demasiado, y hasta que no es pulsado el botón de "aceptar" en la ventana de configuración del puerto, no consigue hacerse amigo de el ;-)

    ResponderEliminar
  61. Parte 2 de 2

    Conociendo los pasos, al final lo pongo en marcha, pero ¿alguien sabría si hay posibilidad y como normalizar el comportamiento del puerto tanto a nivel de Linux como TxapuCNC_TX?.

    El procedimiento hasta ahora es:

    1º Arrancar el equipo virtual
    2º Conectar Arduino por USB cuando este el equipo arrancado.
    3º Lanzar TxapuCNC_TX
    4º Aceptar el error
    5º Entrar en menú puerto serie
    6º Aceptar los valor por defecto
    7º A trabajar ;-)

    Anexo Tormenta de ideas:

    ¿Puede que el P&P de linux no se ejecute correctamente en el inicio?
    ¿Puede ser que la electrónica USB del Arduino tenga que reiniciarse para que el S.O la detecte en algún punto del fujo de encendido?
    ¿Y si la funcionalidad del botón "aceptar" del menú puerto, se copia en el proceso de lanzado de la aplicación TxapuCNC_TX, para que introduzca el puerto a pelo?
    ¿Y si en el error en el arranque se coloca el menú desplegable del device más un botón salir, para que, tras seleccionarlo se cargue correctamente el interface a la primera? Si se quiere cambiar velocidad de puerto, entonces sí entramos en el menú de puerto.

    Espero que no os duelan mucho los ojos después de leer toda esta parrafada ;-)

    Un Saludo,


    Ángel.

    ResponderEliminar
  62. Hola Angel Andrés
    1.- Creo que el problema de detección del puerto P&P debe de ser del VirtualBox. A mi me lo detecta correctamente.
    2.- ??
    3.- El programa TxapuCNC_TX busca por defecto el puerto que se haya guardado en el archivo de configuración (por defecto ttyUSB0), y si no lo puede abrir muestra el mensaje de error.
    Al abrir la ventana de configuración del puerto serie, TxapuCNC ejecuta el comando siguiente "dmesg | grep tty", y busca en la salida de dicho comando las cadenas siguientes: "tty"(puerto serie), "ttyUSB"(puerto serie virtual USB-Arduino2009) y "ttyACM" (Puerto serie virtual-ArduinoUNO). Si encuentra una de estas cadenas las pone en el combo para que puedas elegirlas. (Es imposible saber si lo tienes conectado al tty0 o al ttyUSB3, ...).
    Al apretar el botón aceptar de esta ventana de configuración, el puerto elegido se guarda en un archivo de configuración (situado en /home/usuario/.config/gambas/TxapuCNCTX_xx.conf), de forma que en el próximo arranque (si se conecta al mismo puerto) no sea necesario repetir el proceso.
    No creo (o al menos a mí no se me ocurre) que se pueda automatizar más este proceso. Ya que tú puedes tener conectado un ratón serie, un disco USB, y el Arduino, y en el siguiente arranque sin el disco, la asignación de puertos cambia. Lo que he intentado es que por defecto intente ir a ttyUSB0 que es el utilizado por ArduinoDuemilanove o Paperduino (que son los que tengo, Je,Je), y en este caso no es necesario hacer nada.

    4.- Tomo nota, cuando lo pase a gambas3, intentaré que salga directamente la ventana de configuración con la lista de puertos cuando se produzca el error, y con configuración simple (sin acceso a velocidades, y demás patrañas).

    Espero haberte contestado a todo. :-)
    Saludos y gracias

    ResponderEliminar
  63. No te sientas obligado a contestar a todas las preguntas. La sección "Anexo Tormenta de ideas" son preguntas que han venido a mi cabeza de repente, sin pensar, y las he puesto en común para que, entre todos, nos hagan pensar un poquito más en el proyecto.

    Le dedicaré un poco más de tiempo a mirar el problema de la detección de Arduino en el arranque de Ubuntu virtualizado, y sino, asumiremos proceso que tampoco molesta mucho sabiendo como hacerlo ;-)

    P.D: Estoy todavía pegándome con el corte de las piezas. las he cortado con sierra de calar, pero como no tengo una zona cómoda donde apoyar para hacer los cortes, no han salido todo lo resto que necesitaría.

    Lo intentaré de nuevo, pero ya que me voy a meter en gastos en comprar maderas.

    ¿Alguien conoce alguna carpintería o persona con equipo CNC que haga cortes precisos en madera facilitandole los planos? Zona de Guipúzcoa o que envíe por transporte/correos, ... ?

    Gracias.

    Un saludo,

    Ángel

    ResponderEliminar
  64. Hola Ángel Andrés
    En la zona de guipúzcoa suelo mandar trabajos (por temas laborales) a Mecanizados ELGARRESTA:
    Elgarresta s.l.
    Machimporta Kalea Nº 20, Urretxu, GUIPUZCOA 20700 Goierri
    p: 943 721 826 f: 943 722 854
    http://www.elgarresta.com
    Aunque no sé si realizarán trabajos únicos.

    Quizás te resulte más sencillo, buscar en las páginas amarillas cualquier taller de corte por láser, que están acostumbrados a realizar piezas únicas y a precios económicos. Les puedes enviar el archivo DXF por correo electrónico.
    NOTAS:
    Normalmente la madera la tienes que poner tú.
    Algunos talleres no quieren cortar maderas o plásticos por los humos que se generan.
    Aunque no te hayan quedado las piezas completamente rectas, el diseño es bastante "permisivo", siempre que los agujeros de las guías estén equidistantes y las barras paralelas (si los taladras simultáneamente seguro que lo consigues). Por lo que te aconsejaría intentar escuadrar las piezas con una buena lija y un taco de madera y darle caña (aunque te queden más pequeñas las piezas).

    Saludos

    ResponderEliminar
  65. Hola!Primero quisiera agradecerte el hecho de que compartas todos estos conocimientos.

    Tengo una duda, en los códigos de ejemplo veo que se repite la instrucción Z-1.000... en la mayoría de líneas. Esto no debería hacer bajar 1mm el eje Z cada vez que se ejecuta? TxapuCNC_TX hace alguna conversión?
    Tiene algo que ver con las coordenadas absolutas?

    A ver si me puedes sacar de la duda, gracias.

    ResponderEliminar
  66. Hola Jesús Pérez
    Todos los ejemplos están realizados con coordenadas absolutas (tienen un G90 al inicio). El programa si no le indicas nada considera por defecto que el código está escrito en coordenadas absolutas.

    En coordenadas absolutas el comando G00 Z1,00 quiere decir: "sube al plano Z=1"

    TxapuCNC_TX hace la conversión de datos paramétricos a comandos G normales, ya que TxapuCNC_RX no reconoce archivos parametrizados. (el ejemplo del GNU).

    Saludos

    ResponderEliminar
  67. Buenas noches Iñigo.
    Comentarte que he seguido paso a paso tu esquema y me ha surgido un problema. En el sketch se indica que los Enables vayan al pin 15 del arduino, sin embargo los motores no responden correctamente, sólo se mueve el motor Y en una sola dirección, el X y el Z, ni caso.
    He probado con el esquema del L298N, para comprobar, tanto los motores como los paperstepper y el funcionamiento es perfecto, sin embargo en este esquema el Enable lo colocas a 5V. He probado lo mismo, pero ya con el esquema perteneciente a la CNC y va como la seda.
    Le ha pasado a algún compañero lo mismo?. Supongo que si funciona correctamente no lo he de tocar. Quisiera saber tu opinión sobre esto.
    Un fuerte saludo desde Tenerife.
    Toño.

    ResponderEliminar
  68. Hola Toño
    El programa TxapuCNC_RX.pde se encarga de activar la salida 15 (enable) de los PaperStepper cuando los va a mover, y cuando pasa más de un minuto sin mover los motores, pone a cero la patilla 15 para desactivalos (así no consumen).
    Cuando pones los pines enable a 5v activas permanentemente los motores paso a paso.
    Quizás exista algún problema que yo no he detectado (voy a mirar el programa con detenimiento a ver si encuentro el problema).
    Saludos

    ResponderEliminar
  69. Hola de nuevo Toño
    He recordado que a otra persona le sucedió parecido, y el problema estaba en los finales de carrera, que aunque no existan están definidos en el programa, y si el pin de entrada de Arduino está al aire podrían dar señales incorrectas. Dependiendo de tu configuración en el _init, puedes poner las patillas a masa o a 5v y comprobar que ese no es el problema.

    Saludos de nuevo

    ResponderEliminar
  70. Buenos días Iñigo.
    He solucionado el problema. Con los Enables a 5V notaba un soblecalentamiento excesivo de los motores. He vuelto a colocarlo en el AN1, y el negativo colocado junto al D2, a una entrada negativa de la propia placa Arduino. Se ha solucionado,los motores apenas se calientan, y todo va correctamente.
    No uso finales de carrera, pero mi intención es la de colocarlos. Ahora lo que me sucede es que me estoy haciendo un lio con el tema de las coordenadas, sobre todo en el tema del Origen. Bueno, te iré comentando y pidiendo ayuda si la necesito. Muchas gracias por todo.
    Desde Tenerife un fuerte saludo.
    Toño.

    ResponderEliminar
  71. Hola Toño
    Cuando arrancas el programa TxapuCNC_TX considera que la posicion (0,0,0) origen es la posición en la que está el taladrín (esto sucede también cuando pulsas el botón "Home"). Para definir un nuevo origen, debes mover manualmente el taladrín (con los botones del interface), y apretar el botón "Home" con lo que ésta será la nueva posición origen (en realidad lo que ocurre es que TxapuCNC_TX envía un comando G92 a TxapuCNC_RX).
    Cuando mandas mecanizar, si no partes del origen, o el programa no tiene al inicio una instrucción de ir al origen (G28), te saldrá desplazado todo el mecanizado.
    NOTA:
    Por defecto TxapuCNC trabaja con coordenadas absolutas.

    Saludos

    ResponderEliminar
  72. hola Iñigo !! me llamo pablo gracias por tanta info y tan buen blog!! tengo problemas para intalar el TxapuCNC_TX01.gambas en ubuntu!! se me habre el gambas2 pero cuando le doy a make installation package me dice:unKnown identifier:Serialport at line 10 in FMain.class.
    en fin ... no puedo hacer el ejecutable!gracias de antemano

    ResponderEliminar
  73. Hola Iñigo.

    Antes de preguntar duda te felicito por el trabajo que has realizado. Llevo bastante tiempo detrás de hacer una CNC y gracias a tí he visto luz en este proyecto...GRACIAS!!

    Mi problema es sencillo(supongo...). Tengo instalada la última version de Ubuntu, la 11.04. Una vez instalado todo y actualizado voy a por el gambas y lo hago desde el centro de software de Ubuntu. Se me baja e instala correctamente y tengo ahora la version 2.21 del gambas2.

    Leyendo los posts de la gente que por aquí te ha comentado veo que dejas un enlace a la página web del gambas, y hay una versión superior. La he descargado pero no consigo instalarla. Tengo conocimientos de programación e informática pero no he utilizado mucho linux y estoy un pelin perdiete la verdá...

    Una vez que sabes el estado de mi equipo te digo que tengo el mismo problema que muchos...unKnown identifier:Serialport at line 10 in FMain.class...y no puedo ejecutar el TxapuCNC_TX01.gambas.

    Nada más que eso, agradezco que puedas leer esto y contestarme cuanto antes puedas.

    PD: lo mejor de todo...el nombre del blog: TXAPUZAS!!!

    ResponderEliminar
  74. lo conseguí!!

    lo instalé a través del Synaptics...y ejecuto el TxapuCNC_TX03.

    solo e falta probarlo con los motores....

    ResponderEliminar
  75. Hola Iñigo!
    Muchas gracias por la información, ya tengo lista la la CNC y funciona a la perfección. He utilizado varilla calibrada del 10 ya que un amigo mio que trabaja en inyección de plastico disponia de casquillos para ese tamaño, no obstante la CNC funciona bastante bien. Con el minitaladro he tenido bastante suerte, ya que me lo ha regalado el de la tienda de electronica ya que le comente lo que estaba haciendo y me regalo una que estaba rota (ahora ya no,jeje).

    Pero queria hacerte una pregunta ¿Que fresa es la mejor para quitar el cobre de las placas y que profundidad Z seria la adecuada?

    MUCHAS GRACIAS!!

    Pero queria hacerte una pregunta. ¿Que fr

    ResponderEliminar
  76. holaaa que tal antes que nada muy buen post, tengo un problema instale el gambas2 desde el centro de software y no se porke no me abre el programa TxapuCNC_TX03.gambas alguien sabe por que?

    ResponderEliminar
  77. Carlos a mi me pasó lo mismo...vete al gestor de paquetes de Synaptics, busca por gambas y actualizalo todo lo que puedas.


    Espero que te sirva, un saludo ;-)

    ResponderEliminar
  78. q honda alvarooo de antemano gracias por tu ayuda y rapida respuesta toy actualizando como me dijiste leyendo los comentarios anteriores si exactamente tengo el mismo problema q tenias haber q pasa q paso como anda tu proyecto si funciono?? haber si mas adelante dengo mas dudas me puedas ayudar gra

    ResponderEliminar
  79. ya actualize todo lo q pude por synaptics y pues igual si abre el programa per al momento de apretar f5 para ejecutar me sale nKnown identifier:Serialport at line 10 in FMain.clas tengo q tener conectado el arduino para q funcione ?? o solo asi deveria de ejecutar el programa?

    ResponderEliminar
  80. holaaa q tal yaa lo volvi a bajaar y si me funciono solo me dice q no abrir el puerto dev/ttyusb0 pero me imagino q es por ke no tengo conectado mi tarjeta jeje pero pos gracias de todas formas y espero q me atyudes mas adelante jeje

    ResponderEliminar
  81. Hola que tal todo? queria preguntar si el arduino que tu usas en txapu-cnc podria usarlo en ReplicatorG, si fuese asi, que necesitaria y cómo deberia hacerlo para hacer las configuraciones?

    muchissimas gracias por adelantado

    ResponderEliminar
  82. Gracias alvaro indias por el truco.

    Saludos.

    ResponderEliminar
  83. hola que tal ya tengo todoooo funcionandoo pero el problema es que mis motores se calientan muy rapido y tambien el uln2803 que estoy usando llegan a los 70 ºC y los apago estoy usando una fuente de computadora para su alimentacion mmm q podria hacer para evitar el sobre calentamiento???

    ResponderEliminar
  84. @carlos , Generalmente en estos casos se usa un cooler , espero que funcione , saludos.

    ResponderEliminar
  85. hola

    estoy probando con un stepper unipolar y un uln2003
    segun el PaperStepperUnipolar

    el driver mueve el motor con D1 y D2
    el arduino lo mueve con la libreria stteper
    pero en el sketch de TxapuzasCNC no lo consigo mover

    solo se puede apreciar un pulso pulso de avance y retroceso intermitente al pulsar avanze en un eje y en un sentido desde el TxapuzasCNC_TX

    segun los esquemas los drivers de TzapuzasCNC utilizan D1, D2 y ENABLE

    pero el esquema de PaperStepperUnipolar
    solo tiene D1 y D2

    he conectado D1 al 12 y D2 al 13 del eje

    el motor es de 5v

    ResponderEliminar
  86. Hola Anónimo
    El PaperStepper unipolar no tiene Enable, por lo que siempre está el motor con una bobina encendida. (En el caso de tenerlo se apagarían los motores si no se mueven en un minuto).
    Si conectas a las patillas 12 y 13 estarás moviéndo el motor en el eje Z.
    A veces, si no conectas los finales de carrera y dejas las patillas de Arduino al aire (patillas, D2-D7), Arduino da señales erroneas, y TxapuCNC a veces cree que se ha activado el final de carrera (aunque no exista).
    Lo puedes solucionar, poniendo esas patillas (D2-D7) a 5v.
    Mira a ver si es ese el problema.
    Saludos

    ResponderEliminar
  87. holaa que tal tengo un problema al abrir el programa TxapuCNC.gambas ya baje el gambas2 desde el centro de ubunto pero como que no lo abre solo le doy doble clik o abrir pero no hace nada no habre el programa que podria ser?? y ademas con el codigo del programa no puedo modificar nada que hacen falta algunos componentes: gb.net

    ResponderEliminar
  88. Hola carlos

    Si no te lo abre, parece que te falla algo de gambas2.

    Tal vez te falte algún componente (??)

    Si al editar TxapuCNC desde el gambas IDE y te da error, parece que es porque no tienes el componente gb.net
    activalo en: Gambas/Menú/Proyecto/Propiedades/Componentes=> gb.net (tal vez no te lo haya descargado, puedes instalarlo desde Sistema/Administración/Synaptic).

    Saludos

    ResponderEliminar
  89. yaaa muchaaass gracias por tu pronta respuesta, lñigo efectivamente descague todos los componentes en el synaptic y se soluciono el problema muchas gracias.

    oye otra pregunta ya arme un prototipo y ya funciona y todo pero lo que pasa es que yo la arme un poco mas grande pero le puse unos motores de los de impresora los m55sp, y los driver txapuzas unipolares con el uln2803 y los alimento con una fuente de computadora, pero estos se calientan muy rapido llegan casi alos 80°c y los apago por temor a dañarlos que motores me recomiendas con un suficiente torque y que driver??? gracias de antemano

    ResponderEliminar
  90. Creo que deberías medir el consumo de corriente de tus motores, y así puedes saber que PaperStepper es el más adecuado.
    El problema de utilizar un PaperStepper con uln2803, es que no tiene pin de enable (y además sólo admite 600mA), y por lo tanto aunque esté parado sigue consumiendo corriente.
    Puedes soldar dos chips uln2803 uno encima de otro, y así se calentarán menos.
    Si utilizas el PaperStepper L298N, éste admite más corriente, y cuando no mueve el motor (un minuto), el programa TxapuCNC para el motor mediante el pin de enable.

    Saludos

    ResponderEliminar
  91. Hola iñigo, mi problema es el siguiente, ya habia conseguido que los tres motores se movieran adecuadamente, pero de un dia a otro dejaron de funcionar correctamente, ya no se movian, solo vibravan o giravan en un solo sentido... ya probe la parte electronica, el circuito l293, con un easy driver y nada... que podria ser el problema... ojala y me puedas ayudar..espero tu respuesta...te dejo mi correo electronico ya que me urge esto...chicharito_2314@hotmail.com

    ResponderEliminar
  92. Hola Anónimo
    A veces, si no conectas los finales de carrera y dejas las patillas de Arduino al aire (patillas, D2-D7), Arduino da señales erroneas, y TxapuCNC a veces cree que se ha activado el final de carrera (aunque no exista).
    Lo puedes solucionar, poniendo esas patillas (D2-D7) a 5v.
    Mira a ver si es ese el problema.

    Nota: los drivers pololu y paperstepper no son compatibles, cada uno necesita su propio PaperCNC_RX:
    Pololu => PaperCNC_RX_Pololu.pde
    PaperStepper => PaperCNC_RX.pde

    ResponderEliminar
  93. Heu Iñigo, duda se supone que si conecte un Relé al Pin 19 (AN5) la maquina la encender el taladrin pero no pasa eso a que crees que se deba???
    saludos...

    ResponderEliminar
  94. Hola Hivonne,
    Por defecto creo que está configurado para conectar el relé al PIN18(AN4), si quieres, puedes modificar en el programa PaperCNC_Rx el pin a utilizar.

    NOTA: Tienes un esquema en la página de hardware
    http://txapuzas.blogspot.com/2009/12/txapu-cnc-hardware.html

    Saludos

    ResponderEliminar
  95. Hola Iñigo, como estas, primero felicidades por tu gran trabajo...mi problema es el siguiente, despues de haber conectado los motores estos fucionaron adecuadamente, despues de cierto tiempo dejaron de funcionar, es decir solo vibraban y no giraban ni para un lado ni para el otro, y solo se calentaban, mientras el programa en txapuzas seguia simulando como si estuviese maquinando, cuando en realidad los motores no funcionaban...y no me marca ningun error a la hora de cargar el programa desde arduino ni en el txapuzas...cual podria ser el problema, los estoy maejando con un easy driver...

    saludos y gracias por atender mi correo...

    ResponderEliminar
  96. Hola Saúl
    ¿Si utilizas el easy driver estarás utilizando el PaperCNC_RX_Pololu.pde, verdad?

    ¿No estarás utilizando avances muy grandes?
    Si intentas mover los motores a velocidades muy elevadas, puedes sobrepasar la velocidad máxima (velocidad a la que el motor pierde el sincronismo, y en vez de moverse vibra, o pierde pasos).

    Saludos

    ResponderEliminar
  97. hey Iñigo!! gracias x resolver mi duda y ahora tngo otra jajaj tiene programando algun pin para hacer paro de emergencia??? y si cual es?? bueno le busq y creo lo halle =/ saludos...

    ResponderEliminar
  98. Hola Hivonne

    Como el txapuCNC_RX está ocupado hasta que acaba el comando en curso. no se puede hacer un comando de paro de emergencia mediante TxapuCBC_TX.
    Una forma de hacer un paro es utilizar el botón de reset de la placa Arduino, o si quieres puedes poner un pulsador en un lugar accesible y que esté conectado entre la patilla de reset del Arduino y masa. Cuando lo pulsas el Arduino se reseteará y la fresadora se parará automáticamente, pero ocasionará la pérdida de la posición en TxapuCNC_TX.

    Saludos

    ResponderEliminar
  99. voy a intentar montarlo, de momento ya tengo algo, como son los motores el sof y ganas de empezar, por cierto enhorabuena por la pagina, es tremenda.

    ResponderEliminar
  100. ya he montado un pc para linux, (ubuntú), le he instalado el gambas 2 y con arduino uno todo el soft funciona perfectamente. El problema lo tengo con el uln 2003, el motor no gira da como un pequeño paso y vibra. tengo tres motores unipolares que sin embargo ruedan perfentamente con la placa arduino y el steep, o sea exitando las bobinas una tras otra. He encargado los l298 (que son caritos), para probar con bipolares. Puede alguien por favor decirme si con el 2003 ha conseguido que funcione y como lo ha hecho???. he ponteado los finales de carrera como comentabais a 5v. y ni flores. gracias de antemano

    ResponderEliminar
  101. Hola Quique
    Si los motores unipolares con la placa con el 2003 te funcionan, tal vez el problema sea que la velocidad de avance en el TxapuCNC sea muy elevada, prueba a reducirla.
    saludos

    ResponderEliminar
  102. Lo he probado con otro motor y sigue con sus trece, le he bajado velocidad y sigue igual. Un pasito para alante y otro a la inversa, he cambiado la salida l2 por l3 en el paper y tampoco. El motor se calienta y no gira con suavidad, luego con el circuito con cuatro señales va perfecto. Alguien ha conseguido (por curiosidad) hacerlo funcionar con motores unipolares o todos lo habeis conseguido con bipolares y el l293- l298. Tengo tres bipolares para intentarlo. Otra cosa esto será la miniatura pues mi trabajo soy programador de cnc, pero industriales para el sector de la madera.

    ResponderEliminar
  103. Hola de nuevo Quique
    El PaperStepperUnipolar(2003) SOLO funciona con motores unipolares (5 o 6 hilos).
    Si con 4 hilos te funciona, debe de haber algún falso contacto en las resistencias que invierten las señales de L1 y L2 para conseguir la señal invertida de L3 y L4.
    Otra posibilidad es que tengas que cambiar los terminales de las bobinas.
    ¿Si utilizas el programa de ejemplo "PaperStepper2w.pde" del archivo de descargas te funciona?

    NOTA: Todos los paperSteppers son totalmente compatibles con TxapuCNC, no hay diferencia de funcionamiento entre ellos.

    Saludos

    ResponderEliminar
  104. Gracias Iñigo, soy bastante torpe en electronica, sigo aprendiendo. Los motores que tengo son de 5 y 6 cables. Los de 5 tienen un comun que al medirlo con el teslter me dá menos resistencia con cualquiera de los otros 47 hom y los otros 4 son dos grupos de 2 cables que al medirlos entre ellos me dan 130 hom. Luego deduzco que el que va con el voltaje (+) de la fuente es este común y los otros 4 son los que se conectan a las salidas de el 2003. Los de 6 cables tienen 2 comunes. y 4 que se conectan a la salida de el 2003, si me equivoco por favor me corriges, por cierto muchas gracias por tu atención.

    ResponderEliminar
  105. Perdón Iñigo, pero no sé donde está el archivo PaperStepper2w.pde. tengo bastante lio (soy inexperto en ubuntu). Le he añadido unos led,s a la placa del 2003 para ver las salidas y parpadean casi al unisono. no distingo los pulsos ni a la velocidad más baja. yo diria que se encienden todos a la vez.

    ResponderEliminar
  106. Ok he encontrado el archivo, conectado a arduino funciona, da vueltas en una direccion y en otra.

    ResponderEliminar
  107. Hola Quique
    Como el PaperStepperUnipolar(ULN2003) funciona correctamente, parece que el problema es del programa TxapuCNC_TX.
    A veces, si no conectas los finales de carrera y dejas las patillas de Arduino al aire (patillas, D2-D7), Arduino da señales erroneas, y TxapuCNC a veces cree que se ha activado el final de carrera (aunque no exista) y se para.
    Lo puedes solucionar, poniendo esas patillas (D2-D7) a 5v.
    Mira a ver si es ese el problema.

    NOTA: Si el motor vibra en vez de moverse, suele ser o bien que la velocidad es demasiado alta para vencer la inercia del motor, o que algunos de los cables de las bobinas del motor paso a paso está invertida.

    Saludos

    ResponderEliminar
  108. Hola Iñigo, el problema no creo que esté en los finales de carrera, me gustaria que alguien de el blog comentara si lo ha conseguido con unipolares. Lo he conseguido hacer funcionar con motores de 24 volt. pero se calientan como una tostadora incluso alimentandolos con menos voltaje. Pero lo que te dije, tengo encargados los l298 y tengo 3 motores bipolares, creo por lo que he leido que, funciona con bipolares sin problema, tambien te comento que los unipolares no giran con suavidad parece que van a golpes y los que probé ayer con 12 volt tambien se calientan. He observado que en las impresoras los unipolares son para alimentacion de papel, y casi siempre giran en una direccion. Puede que el destino de este CNC sea con bipolares o que al 2003 haya que completarle el circuito con algún tipo de transistores a las salidas para darle más potencia de giro y que el integrado pueda trabajar con menos temperatura. No se tengo que hacer más experimentos con la protoboard y estos motores, aunque ya te digo que para no perder tiempo ahora lo intentaré con el 298, pero soy muy persistente y te diré algo conforme lo averigüe. buen finde

    ResponderEliminar
  109. Hola Iñigo, primero pedirte perdón pues tienens toda la razón y demostrado está que soy torpe, el problema estaba en el programa RX pues los motores son de desguace de impresoras y me faltaba configurar los pulsos. los motores tienes que configurarlos segun sean de 15º por impulso 0 de 1,8º. Ahora esto empieza a tomar color, ahora que los motores que tengo bipolares son más potentes voy a seguir tambien con la otra formula. Ya te contaré pretendo hacer 2 cabezales, uno para el grabado del circuito impreso y otro con un minitaladro de 12 volt. para los agujeros (si llego) je,je.

    ResponderEliminar
  110. Hola Iñigo esta muy interesante tu blog, y ps medi a la tarea de empezar hacer una cnc pero me encontre con el primer problema que no puedo abrir el txapu, tengo el sistema ubuntu ya descargue e instale el gambas2 y nomas no pasa nada al tratar abrir el programa me aparece este error: No se pudo mostrar «/home/administrador/Escritor...CNC_TX01/TxapuCNC_TX01.gambas».

    No existe una aplicación instalada para los archivos Gambas executable. te agradeceria que me dijeras q puedo hacer gracias

    ResponderEliminar
  111. Hola
    Parece que no tienes bien instalado gambas2.
    Yo intentaría instalarlo de nuevo.

    Por otra parte es un poco "sospechoso" que busques en /home/administrador/Escritorio... No es conveniente ejecutar programas como administrador.
    Tal vez sea que has descargado el programa como administrador e intentas ejecutarlo como un usuario normal, y no tengas permiso de ejecución.
    Saludos

    ResponderEliminar
  112. que tal Iñigo muchas gracias por resolver mi duda ps no tenia bien instalado el gambas2 me faltaban mas aplicaciones pero ya pude abrir el txapu, ahora empezare con la circuiteria cosa q no creo q me traiga problemas, despues te comentare como va quedando. gracias de nuevo y buen dia

    ResponderEliminar
  113. Lo primero felicitarte, y comentarte que gracias a ti , espero tener mi CNC-PCB pronto en mi garage..... Grande tu trabajo ...muchas gracias

    ResponderEliminar
  114. hola de nuevo Iñigo, mi pregunta es, quiero hacer un poquito más grande el area de trabajo. Si pongo reductoras y modifico los pasos para ajustar la medida, en el rx me afecta para algo a los motores??. y es normal que se caliente tanto el 298 y los motores o le estoy dando mucha tensión??

    ResponderEliminar
  115. Hola Quique,
    Si quieres modificar el área de trabajo lo puedes hacer tranquilamente, no es necesario ni poner reductoras ni modificar los pasos, ni tocar el programa TxapuCNC_RX. Los límites del área de trabajo se definen con los finales de carrera (en el caso de que los pongas, yo no los utilizo).
    El único problema que puedes tener, es que cuanto más grandes sean los ejes, mayor será la flexión de las guías, y por lo tanto mayor la pérdida de precisión.

    Es normal que se calienten tanto los motores como el L298N, pero dentro de unos límites. Todo depende de las características del motor paso a paso (tensión y intensidad de trabajo), que deben estar dentro de las admitidas por el chip L298N. Nunca está de más el ponerle algún tipo de disipador e incluso ventilación.

    Saludos

    ResponderEliminar
  116. ok, he montado disipadores tengo un nema 17 (nimebea), y otro sin datos con muy buena pinta, ¿como puedo saber los pulsos? hay algun truco???. gracias.

    ResponderEliminar
  117. Hola Quique
    Puedes cargar en el Arduino el programa de ejemplo, Arduino/Examples/Stepper/stepper_oneRevolution.
    En este programa modificas la línea:

    const int stepsPerRevolution = 4x200; // 4vueltas 200p/v

    En la línea anterior vas cambiando el valor "200" hasta ajustarlo a tu motor y que éste de 4 vueltas en cada sentido, y la posición de inicio y final sea la misma.

    Para tener más precisión es conveniente que el motor realice varias vueltas (en este caso 4, para multiplicar por 4 el error).

    ResponderEliminar
  118. hola de nuevo Iñigo, el programa que me dices one revolution, es para conectarlo en las patillas 8,9,10,11 y con el 298 conecto la 8,9 para un motor. estoy probando unipolares de cuatro cables con el 298 ¿estoy haciendolo mal?

    ResponderEliminar
  119. Hola Quique,
    lo estas haciendo bien, la librería stepper puede manejar motores con 2 o 4 hilos.

    http://arduino.cc/es/Reference/StepperConstructor

    ResponderEliminar
  120. Hola Iñigo, llevaba tiempo liado con esto de un Cnc para mecanizar mis pcbs, y después de ver tu forma simple de realizar las cosas me he decidido a ello, muy grande tu pagina.
    Saludos

    PD: Me queda una duda, si en vez de solo poder utilizar el cnc para pcbs lo utilizara para otra cosa, con tu programa ¿esta adaptado para trabajar con el eje z totalmente? Es decir, ¿se pueden utilizar desde el las tres dimensiones?

    ResponderEliminar
  121. Hola Anónimo.
    TxapuCNC_TX está preparado para trabajar con el eje Z, pero con una limitación, sólo realiza curvas (comandos G02 y G03) en el plano XY, ya que es bastante difícil realizar curvas en planos inclinados. No obstante eso no debe suponer un gran problema, ya que la mayoría de programas de generación de código G, no utilizan curvas, sino que las descomponen en pequeños segmentos rectos mediante movimientos lineales G01.
    El problema que tienes es que como TxapuCNC_TX no tiene vista en perspectiva, verás que las rutas de mecanizado se superponen unas a otras en función de la Z.
    Saludos

    ResponderEliminar
  122. he encontrado una página para comprar motores, guias , este aporte es para los que como yo tenemos problemas para conseguir impresoras que montes nema17. es de España. Feliz año. http://www.productoscnc.es/index.htm

    ResponderEliminar
  123. hola , para que no se calienten tanto los motores, se pueden desconectar cuando no les llegue señal. o sea cuando lleven dos segundos o tres sin llegarles impulsos desde el software.
    gracias ,tremendo trabajo.

    ResponderEliminar
  124. Hola Iñigo, felicitaciones por este blog tan bueno, ya tengo mi CNC en funcionamiento, funciona excelente, tenia el problema que por momentos no funcionaba en alguna dirección pero ya vi la solución, ahora tengo una duda, tienes algún programa para generar el Gcode de un PCB?
    Mi fin con mi CNC es realizar PCBs.
    Gracias!

    ResponderEliminar
  125. Hola Anónimo,

    Para generar Gcode, un programa bueno es VISOLATE:

    http://sourceforge.net/projects/visolate/

    http://groups.csail.mit.edu/drl/wiki/index.php?title=Visolate:_Voronoi_Toolpaths_for_PCB_Mechanical_Etch

    Genera Gcode optimizado (minimizando las rutas) a partir de archivos Gerber, que es el habitual formato para PCBs. Está hecho en java, de forma que lo puedes utilizar con cualquier sistema operativo.

    Para realizar las placas (esquemas->PCBs->Gerber) puedes utilizar Kicad, Eagle o similares.

    Saludos

    ResponderEliminar
  126. Gracias por tu ayuda Iñigo. Voy a estudiar esos programas a ver q tal me va.

    En el Inkscape no se puede generar el Gcode de un PCB ??

    Gracias!

    ResponderEliminar
  127. Hola de nuevo Anónimo

    Si, claro. Con Inkscape e instalando el plug-in Gcodetools(disponible en el apartado enlaces de interés), puedes generar G-code. De hecho este sistema es el que he utilizado para realizar los ejemplos de G-code incluidos en TxapuCNC_TX

    Saludos

    ResponderEliminar
  128. Hola buenos dias! me he aventurado con la cnc y me he kedado atascado en gambas 2 i el gb.net, me podria ayudar alguien porfavor no se como poner el componente ya que no me sale en la lista de componentes y no estoy familiarizado en el programa gambas muchas gracias a la comunidad y en especial a Iñigo por su trabajo divulgativo! es lo primero que no me funciona jejeje pero estoy seguro que lo arreglare!! Muchas gracias de antemano!!

    ResponderEliminar
  129. Problema resuelto con la parida del gb-net de gambas 2!!! la solucion esta en abrir el terminal de ubuntu y escribir: sudo apt-get install gambas2-gb-net y ya abre txapu sin pasar por el editor ni compilar! Ahora que ya lo he visto te felicito! es una pasada ya lo he provado con solo los motores y tiene muy buena pinta muchas felicidades de nuevo!! me da algun fallo segun como pero bueno lo hago correr en un mac con parallels windows7 y dentro de la ventana de parallels como si fuese windows he instalado ubuntu, por si sirve de referencia para usuarios de mac...! un saludo!

    ResponderEliminar
  130. Buenas, alguien acá a utilizado el CopperCam para generar el GCode para PCB que me pueda ayudar ??

    Gracias ??

    ResponderEliminar
  131. Hola de nuevo, tengo la maquina montada y funciona de pm. el tema ahora es los proyectos que creo generan un archivo dxf y el programa inskape no los reconoce. Hay algún convertidor de extension dxf a pdf (gratuito claro). la simulación de los circuitos lo hago con circuit wizard. que tambien me crea la placa pero la salida de estos archivos es en "dxf".
    gracias de antemano

    ResponderEliminar
  132. Hola Foreros y Cnc aficionados! Un saludo especial a Iñigo, su valentia nos guia a los mas cobardes! quando la vi quise una ahora estoy en un punto en que no se si la quiero jejeje tengo varios problemas ademas de poca paciencia he hecho un video donde presento mi cnc esta hecha con lo que tenia mas a mano ya que hay crisis no me esperaba un formula 1 pero tampoco un caracol me va muy lenta con los motores epson em400 he hecho un video para compartir el trabajillo y para que se pueda opinar del tema, he alargado los ejes roscados y he puesto rodamientos para disminuir el bailoteo de la barilla para los casquillos he usado tuercas de M8 perforadas con una broca del M8 todo excepto las maderas esta todo pegado con "superglue" puede que me haya pasado de txapuzero o no se si uso la herramienta adequada pero no creo ke haga una pcb entera. Un placer poder compartir el trabajo un saludo para todos! y criticar (constructivamente haber si acaba saliendo un rayo de luz Adeu!! http://youtu.be/-NbSaIAeL5E

    ResponderEliminar
  133. hola muy buen blogg veo que arriba escribiste una liga sobre reprap y mi pregunta es que si podrias poner un post sobre volver el cnc a reprap usando todo igual pero modificando el programa de arduino para el otro motor para la extruder y asi me ayudarias mucho a proponer dos proyectos en uno y econmizando de igual manera te pediria si podrias hacer un programa en gambas para controlar esta a y queria saber si se podria usar un usb normal en lugar de uno de celular lo que pasa es que abri uno de celular y al parecer es lo mismo abri como el que viene en el ejemplo de esos de antes y por lo mismo mi pregunta si esto seria posible

    ResponderEliminar
  134. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  135. Hola acabo de construir el cnc, pero el programa no mueve los motores estoy utilizando arduino +BigEasyDriver el codico de txapuzas cnc (polu) para steper motor pero no hace nada, no se que puedo hacer neeito vuestra ayuda. gracias

    ResponderEliminar
  136. Iñigo

    Recibe saludos cordiales desde El Salvador.

    Te felicito y te agradezco por compartir tus conocimientos y experiencia con todos nosotros.

    Mi consulta es la siguiente: Tengo tanto el Paperduino-Perfboard y el Arduino Uno. El CNC funciona perfectamente con el Arduino Uno, pero con el Paperduino-Perfboard no. Con el Paperduino utilizo tanto el cable que recomiendas en PaperFTDI y como el USB To TTL / COM Converter Module (http://www.ebay.com/itm/170732908199?ssPageName=STRK:MESINDXX:IT&_trksid=p3984.m1436.l2649 que por cierto es una buena opción para programar el Paperduino ya que cuenta con GND, Rx, Tx, 5V, 3.3V y RST). El problema lo tengo con el desplazamiento en el eje Z. Cuando le doy la orden de mecanizar, por lo general se desplaza muy bien en las primera coordenadas (X,Y), pero cuando se presenta el movimiento en el eje Z, todo se detiene, lo único que sucede es que la coordenada Z cambia de color entre azul y rojo (nunca termina de ejecutar la orden y el motor Z no gira). Este problema se presenta tanto con el PaperFTDI como con el convertidor USB a TTL. No es problema de finales de carrera ya que con el Arduino Uno trabaja perfectamente, además, con otros sketch el PaperFTDI y el USB a TTL trabajan bien. Te comento que el origen lo puedo fijar manualmente sin dificultades, por lo que he llegado al punto de preguntarte directamente ya que no encuentro la solución. Solo me hace falta probar el cable FTDI, pero por el momento no lo tengo a mi disposición.

    Me gustaría armar el CNC utilizado todo lo que tu recomiendas, ya que es una solución económica y a mis alumnos le vendría muy bien. Te adelanto que desde hace mucho tiempo estamos tratando de hacer circuitos impresos de alta calidad, y tu estupenda propuesta es la solución a nuestra necesidad.

    De ante mano agradezco cualquier tipo de ayuda que tu u otra persona seguidor de este blog me pudiera brindar.

    Atentamente,

    Dark.Samaro
    El Salvador.

    ResponderEliminar
  137. Hola Dark.Samaro
    Gracias por compartir el enlace al cable convertidor USB-COM TTL.

    Si todo funciona correctamente con el UNO, pero no con el Paperduino, y se queda esperando a que el Arduino le notifique al PC que ha llegado al destino, para que le mande la orden gcode siguiente, quiere decir que el problema no es de conexionado.
    Como el resto de comandos (moverse en el planos XY) funciona correctamente con el paperduino, quiere decir que recibe comandos y envía el aviso de "ejecutado" al PC,

    A pesar de lo que me dices, creo que el problema puede ser que el Paperduino interpreta que se ha activado un final de carrera (aunque no exista), y se bloquea. Yo probaría a conectar los pines de FC del eje Z (D6 y D7) a 5v a ver si soluciona el problema.

    Otra posibilidad podría ser que esté mal definido el eje Z en el sketch de TxapuCNC_RX.

    ResponderEliminar
  138. Hola este proyecto esta muy interesante y me esta ayudando mucho en un proyecto escolar pero me surgió una pregunta antes de comenzar voy a usar unos Easydrivers versión 4 por lo que los pines que ocupo son dir y step puedo cargar el pde a larduino que viene aqui o tengo que descargar la versión que dice pololu?

    En cuanto a lo demás ya descargue el software y lo estoy montando con un Arduino UNO y si me reconoce el puerto serie :)

    ResponderEliminar
    Respuestas
    1. Hola Benji,

      El TxapuCNC_RX_Pololu.pde es una modificación del TxapuCNC_RX.pde adaptádolo a los drivers que funcionan con Step y Dir. Es el que debes utilizar con EasyDrivers (Pololu es otra marca de la competencia).

      Saludos

      Eliminar
    2. muchas gracias por aclarar mi duda :)

      Eliminar
  139. Iñigo que tendria que cambiar para ponerle a cada driver un enable para que los desactive cada motor cuando no agan nada, gracias y un saludo

    ResponderEliminar
  140. Alguien a usado el software TxapuCNC_TX trabajando en windows con la virtualbox y le a funcionado? si alguien lo a usado agradecería mucho una respuesta gracias :D

    ResponderEliminar
    Respuestas
    1. Yo lo tengo instalado y trabajando en una imagen de ubuntu instalado en virtualbox en windows xp. si necesitas algo pregunta. te puedo ayudar.

      Eliminar
  141. que tal, estoy interesado en construir una cnc de 3 ejes, y por comodidad voy a hacerla con arduino, ya me lei tu articulo y ya estoy haciendo unas pruebas, ya tengo armado los drivers para loa motores a pasos, son unas driver con control de corriente que funcionan con señales de paso y direccion,el problema es que al cargar el firmware en el arduino no funciona bien, te explico:
    uso arduino uno r3, el firmware es TxapuCNC_RX_Pololu, pero tengo ubuntu virtualizado en win 7, al maquinar el codigo-g los motores se mueben de forma erratica y chillan y cuando se tiene que mover el eje z se queda en espera de completar la instruccion y eso es todo, pero al simular el mismo codigo todo bien, pense que era el arduino que no funcionava asi que lo probe con una libreria para el easydriver y los motores trabajan bonito, asi que pense que el problema era que no funcionaba bien la transferencia de datos ya que ubuntu esta virtualizado, o que no es compatible el firmware TxapuCNC_RX por el convertidor serial de la placa ya que es un mega16ux y los modelos anteriores y clones de arduino usan un ftdi, asi que de momento opte por instalar ubuntu de forma nativa y al usar el firmware TxapuCNC_RX_Pololu en el uno r3 pues con la novedad de que el codigo corre como si nada pero los motores no se mueven como que al interpretar en codigo-g el arduino no sabe como mandar las señales de paso y direccion, pero al cargar el firmware TxapuCNC_RX en el mismo arduino con el mismo conexionado con los driver, los motores trabajan, lo curioso es que los driver trabajan con señal de paso y direccion y el firmware con el que trabajan no esta diseñado para funcionar con ellos, espero no abrumarte pero quiero saber cual es tu opinion, de momento voy aver si buscando en el firmware TxapuCNC_RX_Pololu le puedo variar la frecuencia y ver si asi funciona, y probar TxapuCNC_RX con los driver que muestran para ver la diferencia en el desempeño entre ellos y los de dir y steep con el firmware que me a funcionado.

    ResponderEliminar
    Respuestas
    1. Hola, yo tengo el mismo problema que tu, con los A4988 de Pololu y el firmware de TXAPU para pololu no me funcionan solo se quedan en modo bloqueo pero con el de reprap o el TXAPu para paper steper si me andan pero creo que algo locos porque cada vez hacen ordenes diferentes.
      Como conseguiste que imprimiera y con que programas?
      Gracias

      Eliminar
  142. Hola Iñigo, mil felicitaciones por tu estupendo trabajo y capacidad!!! y por SOBRE TODO la manera en que estas a dispocision de todas las consultas (vengo viendo comentarios y todos atentamente contestados desde hace mucho tiempo) y eso es realmente admirable y muy destacable, y eso me lleva a atreverme a incursionar en este fascinante tema de la electronica (de la que no se nada), y sobre todo en la construccion de este CNC ya que con tan claros planos, explicaciones, ejemplos y un respaldo como el vuestro se me diluyen las dudas y los temores de no llegar a buen puerto, asi que ahora voy a ser uno mas en tus comentarios, espero sigas teniendo la paciencia que traias hasta aqui, cordiales saludos. Adrian

    ResponderEliminar
  143. Hola amigo yo no soy capaz de conectar con el arduino mí el siguiente mensaje: "I cant not open the port /dev/ttyACM0 " ¿me puedes ayudar?
    Samuel

    ResponderEliminar
    Respuestas
    1. Amigo... Con el comando lsusb, en una terminal. se ve si el puerto ACM0 fue reconocido. (tambien lo puedes comprobar con el software de arduino instalado en tu linux. en el menu herramientas puerto serial. Pregunta: estas trabajando a traves de Virtualbox?. (te puedo ayudar.)

      Eliminar
  144. Hola, Felicitaciones por Blog Muy Util Información ..

    Te cuento que después de hacer un par de pruebas y errores y creo que horrores logre hacer funcionar la parte electrónica del CNC ahora estoy en la parte de la construcción del gabinete o mueble donde van los motores y el mini drill la mayoría de los componentes los compre en ebay...con suerte y mucha paciencia... porque el envió demora... hay que rezar para que lleguen sin novedad mas de 30 dias de espera... ¡¡¡ compre:
    01 Arduino Uno R3 y 03 Modulos l298n for arduino.

    Bueno mi consulta es la siguiente: se puede instalar el gambas 2 en Puppy Linux y hacer correr el programa TxapuCNC_TX... yo lo intente pero me da error... he usado una versión de puppy linux con soporte de Ubuntu -Lucid Puppy (Ubuntu-Compatible Build)pero aun así... nada. la idea es tener en un usb o pen drive el linux con el ide de arduino y el TxapuCNC_TX porque ubuntu es muy pesado y requiere usar un disco duro para instalarlo. Gracias por tu respuesta. Saludos de Perú. Atte Peter.

    ResponderEliminar
    Respuestas
    1. Hola Peter.
      Ya instalaste una copia en un ubuntu de disco duro?. ¿te funciono?. Porque puede ser que te falte instalarle el gambas2-gb-net a tu version ubuntu en usb.

      Eliminar
    2. Hola Peter
      Gambas2 es compatible con PuppyLinux, ¿Que error te da? Como ya te han comentado tal vez te falte instalar el gambas2-gb.net en el puppy linux

      SL2

      Eliminar
    3. voy a ver ese detalle talves sea eso... considerando que puppy es live usb y no trae todas las dependencias.
      Atte .. Peter

      Eliminar
  145. Hola.. pues ya esta funcionando la parte electrónica el linux que estoy usando es el cnc linux 10.04 creo..¡? funciona muy bien solo que quería mejorar haciendo portable el software usando puppy linux que es ralmente muy ligero y se puede usar desde un pen drive o usb Key...

    Por cierto estoy usando eagle cad para hacer impresos con un User Language Programs (ULPs) llamado gcode_02.zip y la verdad me sorprendí porque también hace los agujeros para los componentes, después del trazado de las pistas regreso al origen se pauso (creo que es para cambiar la herramineta)y empezó a recorrer las coordenadas del agujero ... wow increíble .. porque la verdad con el inkape... no sabia como hacerlo ...

    en este momento solo estoy esperando que lleguen los bushing de china para armar la parte del mueble...
    Saludos
    Atte Peter

    ResponderEliminar
  146. Hola peter...
    Ya estoy descargando el "puppy linux" y mañana te digo como me va. Listo?. Es muy interesante esta idea de hacer "portable" el trabajo de la CNC.
    Mañana te cuento.

    ResponderEliminar
  147. Hola Iñigo... Mira tengo problemas con la continuidad del trazo. El trabajo de la cnc requiere que no se levante el cabezal de la "broca" y el código que genera el "gcodetools" eventualmente lo hace. como puedo lograr que el grabado sea continuo y no me levante la "broca"?
    Gracias. Cualquier ayuda seria muy útil. Tengo comprometido el trabajo por esto. Carlos.

    ResponderEliminar
  148. Hola Anónimo,
    Para que la fresadora no levante el cabezal, la línea debe ser contínua y con el mismo sentido (lo puedes ver con las flechas en gcodetools.

    Si tienes líneas independientes, Gcodetools levantará el cabezal al final de cada línea y el principio de la siguiente.

    En inkscape puedes unir líneas con:MENU/TRAYECTO/COMBINAR (y después seleccionas el nodo final de la 1ª curva y el nodo inicial de la segunda curva y los unes con el botón [: -> . ] )

    Si los trayectos tienen el sentido correcto,es decir una empieza donde acaba la anterior, simplemente puedes borrar en el archivo GCode las líneas que mandan subir y bajar el cabezal (Z xx)

    SL2

    ResponderEliminar
  149. Hola...
    al parecer tengo problemas con las dependencias al inslalar gambas2 en puppy linux ... asi que descargue la ultima version con soporte de ubuntu... Lucid Puppy (Ubuntu-Compatible Build)
    pero en el centro de descargas... no aparece la opcion de descarga para gambas... ¡¡?¡ asi que la otra opcion es descargarlo de la pagina oficial y hacerlo manualmente la instalacion.

    Hasta ahi parece logico... pero en esa area de las linaes de comando y las opciones de usuario root.. etc etc.. estoy perdido... asi que pido su ayuda como podria hacerlo sin sucumbir en el intento

    Saludos
    Atte Peter

    ResponderEliminar
  150. Hola Peter...
    Haz pensado en instalar en tu usb la version "tuquito" de linux. Viene con excelentes herramientas de actualizacion y instalacion y seguro no tendras problemas con la instalacion de gambas. buscas tuquito en google y listo. (viene para instalar en usb).

    ResponderEliminar
    Respuestas
    1. hola.. lo vi y no me gusto ..¡¡ lamentablemente muy pesado 1.15GB; el puppy linux pesa 130Mb... por eso me encanta... jejje.. para alguien como yo que no domina mucho del tema es suficiente.. y necesario..¡
      Pero no perderia nada con probar... aunque necesitare una usb mas grande ... por lo menos de 4 gb...¡¡
      Gracias por el Dato
      Atte Peter

      Eliminar
  151. Saludos Iñigo, primero felicitarte por tan espectacular proyecto, estoy en proceso de construccion de una cnc con tu ayuda, pero me pregunto si es posible controlarla desde otro software que no sea TxapuCNC_TX, ya que debe hacerce desde windows y levantar una maquina virtual creo que es una solucion muy complicada...

    ResponderEliminar
    Respuestas
    1. Hola ... yo ando con el mismo dilema... por eso opte por usar Puppy Linux, un live Usb que pesa tan solo 130 megas... y no requiere instalarse en hdd sin afectar tu O.S. principal. pero mi dominio en el tema no es mucho asi que estoy investigando... haber que sucede..
      me recomendaron tukito... pero pesa Mucho 1.15 gb.. pero trae mas cosas que puppy... que dilema...
      Bueno Suerte con el proyet..

      Atte Peter

      Eliminar
  152. Hola Alexis,
    Como se comenta en esta página, TxapuCNC_Rx recibe comandos Gcode, que pueden ser enviados por otro programa que no sea TxapuCNC_TX.
    Uno de ellos es el programa realizado en procesing para Contraptor (Enlaces de interés), aunque tal vez haya que realizar alguna modificación para que se entiendan entre ellos. Sobre todo con la Orden de "comando realizado", que entre TxapuCNC_Tx y TXapuCNC_Rx es "OK".

    SL2

    ResponderEliminar
  153. Hola Iñigo... Gracias por tu respuesta me ha servido mucho. Quisiera saber si tu sabes como el "engraving" puede generar "codigo g" para que lo lea el TxapuCNC. Necesito que quede el grabado de una palabra cursiva en una sola linea pero en el comando Grabado no genera ningún archivo.
    A proposito. Muchas GRacias por responder con tan buen animo.

    ResponderEliminar
    Respuestas
    1. Hola Anónimo,
      Tengo que decirte que no he usado nunca el "engraving" de GcodeTools, pero en su día cuando lo probé me generó correctamente el código.

      Si te sirve de ayuda, en su momento traduje el manual a español de GcodeTools, donde hay un apartado para el grabado.

      http://dl.dropbox.com/u/23923366/Gcodetools_Help_ES.pdf

      Saludos

      Eliminar
  154. Hola Inigo, llevo tiempo queriendo hacer la fresadora CNC y estoy reuniendo el material para ponerme a fabricarla, el caso es que he encontrado unos motores baratos y potentes, pero son de 400 pasos por vuelta y me preguntaba si se vería muy afectada la velocidad de la máquina o si se puede corregir modificando el programa de la arduino.

    Saludos

    ResponderEliminar
  155. Hola Inigo, llevo tiempo queriendo hacer la fresadora CNC y estoy reuniendo el material para ponerme a fabricarla, el caso es que he encontrado unos motores baratos y potentes, pero son de 400 pasos por vuelta y me preguntaba si se vería muy afectada la velocidad de la máquina o si se puede corregir modificando el programa de la arduino.

    saludos

    ResponderEliminar
    Respuestas
    1. Hola Anónimo
      No hay ningún problema, solo tienes que indicarle al programa el número de pasos de tu motor (mira en el apartado instalación de esta web)
      SL2

      Eliminar
  156. Tengo un serio problema... :D cuando muevo el eje Y se mueve tambien el eje Z... ya revise la asignacion de los pines, y todo eso esta correcto... que puede ser?

    ResponderEliminar
  157. Hola amigos, estoy por terminar mi cnc y queria ver si alguien me podia ayudar con algo del gcode. Queria saber si alguno a usado el software ArtCam para crear gcodes compatibles con txapuzas_TX porque no consigo que funcionen.. muchas gracias

    ResponderEliminar
    Respuestas
    1. Hola Leo,
      ¿Puedes poner un ejemplo del Gcode de Artcam?.
      TxapuCNC utiliza un conjunto de comandos reducidos del standard Gcode ISO ISO 6983 (http://en.wikipedia.org/wiki/G-code), tal vez desde Artcam puedas exportar tu gcode a este formato.
      Saludos

      Eliminar
    2. Iñigo ya solucione lo de ArtCam, eligiendo la salida de Gcode para el modelo Flexicam de CNC, funciona perfecto con txapuzas.
      Asi que ahora a probar con tallados y pcb :)

      Gracias!!

      Eliminar
  158. hola iñigo una duda muy grande queria saber si tu programacion para arduino podria funcionar con esta maquina es que me urge debido a que es un proyecto escolar y ya hize todo solo necesito saber eso, de ser asi necesita algun cambio te dejo las ligas de la maquina

    http://reprap.org/wiki/Rostock#Links

    http://www.thingiverse.com/thing:17175

    ResponderEliminar
  159. Hola Ricardo,
    TxapuCNC no es compatible con máquinas que no utilicen los motores para mover linealmente cada uno de los ejes X, Y, Z.
    Por lo tanto con Rosto no funcionará (Rostock is a delta robot 3D).
    Lo siento

    ResponderEliminar
  160. Hola buenas
    e construido una cnc txapuzas cnc pero no consigo preparar arduino uno agradeceria alluda es mi primer contacto con arduino y estoi mui verde
    gracias

    ResponderEliminar
  161. Hola buenas tardes tengo un problema,al cargar el TxapuCNC_RX01_Pololu_ en arduino uno,lo que hago es copiar el archivo y pegarlo en arduino ide pero al darle a upload sale un fallo en el compilador,estoy haciendo algo mal

    este es el error
    sketch_auglla. cpp:2:1: error: expected unqualified-id before '/' token
    GRACIAS.

    ResponderEliminar
    Respuestas
    1. Hola anónimo,
      En vez de copiar y pegar, ¿no puedes abrirlo directamente con el ide?

      SL2

      Eliminar
  162. Hola iñigo gracias por responder, es que no se que es sl2 si me lo puedes explicar.es que no me aclaro.lo he intentado todo pero sigen saliendo errores.Gracias

    ResponderEliminar
  163. ja,ja,ja, perdona,acabo de caer con lo de sl2, pensaba q te referias a algo del programa y por eso no te entendia.
    TxapuCNC_RX01_Pololu,lo he probado desde el ide de arduino, tambien copiando y pegando, y me sigue dando error de compilacion, Que otra cosa puedo hacer? GRACIAS

    ResponderEliminar
  164. abre el ide de arduino, archivo, abrir, vas ala carpeta donde descomprimiste TxapuCNC_rx01_pololu_ busca el archivo _init.pde abres este archivo y te debe cargar con varias pestañas... y eso es todo compilas y cargas el programa a arduino.

    Sl2... jejeje

    ResponderEliminar
  165. Hola anonimo ya esta solucionado,gracias por tu respuesta me ha sido de gran ayuda,

    SL2

    ResponderEliminar
  166. Hola buenas como se instala Gcodetools,me pide que los copie en el directorio usr/share/inkscape/extensions/ pero
    no se como buscarlo,es que soy nuevo en linux.Gracias

    ResponderEliminar
  167. Hola buenos dias,como se instala Gcodetools para linux y
    como se busca el directorio usr/share/inkscape/extensions/
    soy nuevo en linux,haber si alguien me puede ayudar.
    GRACIAS

    ResponderEliminar
  168. Hola a todos,

    Alguien ha utilizado correa dentada en vez de la varilla roscada ? el caso es que configuro en el programa TxapuCNC_rx01 que necesito 5 pasos para 1mm y luego en gambas cuando avanzo con las flechas, va super lento y como a saltos, se notan los pasos, eso me pasa en los ejes X e Y que son con correa, el Z o tengo con varilla a 160pasos para 1mm y va a buena velocidad y suave.

    No se si me explico, no se puede trabajar a tan pocos pasos por mm ?

    si subo a 50 pasos por ejemplo, si que funciona bien,

    ResponderEliminar
    Respuestas
    1. Bueno he ido probando y al final subiendo la velocidad de avance en el gcodetools de linkscape funciona bastante mas rapido, pero ahora resulta que cuando va ha hacer una curva se atasca y no se mueve.

      Hay que configurar algo en especial en gcodetools ? le lanzo un texto y todo bien asta que llega alguna letra con curva, entonces se atasca y cuando el txapuCNC_tx pasa a otra recta, la maquina sigue sin problemas.

      He probado con un circulo y espiral de diferentes tamaños y nada, siempre falla cuando llega una curva, con los ejemplos que vienen en el txapucnc tambien falla al llegar a las curvas.

      No se que hacer xD

      Eliminar
    2. Hola kalidem

      La velocidad se avance se puede aumentar sin modificar el programa Gcode mediante la barra de desplazamiento ("Avance") situada debajo del panel de control en TxapuCNC_TX (siempre que no se supere el valor máximo que está definido en el programa TxapuCNC_RX (Init_).

      Con respecto al fallo en las curvas no sé cual puede ser el problema. ¿Cual es el comando Gcode que no ejecuta? ¿Es un G2 o G02?

      Eliminar
  169. Hola Iñigo, mi nombre es David y en primer lugar mi problema es que tengo un arduino mega y no se como va el cableado, de conexionado entre los stepper uln2003 y motores de 6 hilos unipolares. uln2003 que tipo es pololou o normales perdona por mi ignoracia por ser novato y en segundo lugar tengo para hacer fines de carrera de impresoras opticos como podría usarlos o hacerlos tipos paper. Gracias

    ResponderEliminar
    Respuestas
    1. Hola anónimo,
      Los pines que puedes utilizar (los puedes cambiar en el programa), son los mismos que los especificados en el Arduino. (El número del pin está serigrafiado en la placa del Arduino Mega).
      SL2

      Eliminar
  170. Hola Iñigo, gracias por tu respuesta, no sé como configurar los endstop ni en que pines. Después de este proyecto de CNC ire a por la impresora 3D, muchas gracias por todo y un saludo desde Vitoria.

    ResponderEliminar
  171. Hola anónimo,
    los finales de carrera los tienes que conectar un terminal a masa y el otro a cada uno de los pines de entrada salida correspondiente (D2-D7):
    Xmin: D4
    Xmax: D2
    Ymin: D3
    Ymax: D5
    Zmin: D7
    Zmax: D6

    Tienes un esquema en la página del blog TxapuCNC-Hardware

    SL2

    ResponderEliminar
  172. Muy buenas tardes Iñigo, estamos probando el realizar tu proyecto para mover los mismos motores paso a paso que tienes, usamos una shield adafruit con el arduino, te adjunto el link:

    http://www.olimex.cl/product_info.php?cPath=76_78_155_156&products_id=755&product__name=Adafruit_Motor_Stepper_Servo_Shield_for_Arduino_kit_v1.0

    Tenemos problemas con el ingreso de los pines para que puedan ser localizados en el programa del arduino, vimos que el puente H es distinto, pero no lo sabemos, necesitamos su ayuda, si es posible realizarlo con este adafruit y como poder lograrlo. Su proyecto lo encontramos muy bueno y bastante explicativo para realizarlo, gracias de antemano.

    S@lu2.-

    ResponderEliminar
    Respuestas
    1. Hola Vartheck
      Creo que no vas a poder utilizar con TxapuCNC. El problema es que conecta directamente las 4 entradas de los dos L293D directamente a las patillas de Arduino, y TxapuCNC utiliza sólo dos entradas para controlar los motores (las otras dos se invierten por hardware.
      Tienes imagen en: https://raw.github.com/adafruit/Adafruit-Motor-Shield-for-Arduino/master/mshieldv12schem.png

      Lo siento

      Eliminar
  173. Hola, yo tengo un problema, con los A4988 de Pololu y arduino uno R3 el firmware de TXAPU para pololu no me funcionan solo se quedan en modo bloqueo pero con el de reprap o el TXAPu para paper steper si me andan pero creo que algo locos porque cada vez hacen ordenes diferentes. y creo que no imprimen correctamente aunque cuando le mando una señal de que avanze 10 mm los avanza aunque en la siguiente señal de avance de 10mm avanza 20 y en la siguiente 30 y asi sucesivamente, cual es el error?
    Como conseguiste que imprimiera y con que programas?
    Gracias

    ResponderEliminar
    Respuestas
    1. Hola Ignacio,
      Si utilizas drivers de Pololu (A4988) necesitas utilizar el programa TcapuCNC_Rx_Pololu. Si utilizas el standard (TxapuCNC_Rx) los motores se moverán aleatoriamente.
      SL2

      Eliminar
  174. Hola Iñigo,¿donde me puedo conseguir el Gambas2? saludos

    ResponderEliminar
    Respuestas
    1. Sudo apt-get install gambas2

      Pon eso en la terminal de Ubuntu, Linux, Debian o cualquiera de ellos y lo descargas automaticamente, pero para windows no existe si esa es la pregunta.

      Eliminar
    2. es para ubuntu para probar ya tengo casi terminada la CNC, muchas gracias

      Eliminar
    3. Pues yo la tengo totalmente terminada, pero la he fabricado con drivers Pololu A4988 y Arduino Uno y tengo un gran problema porque el interprete de gcode que hay en esta web para pololu pero no me responden los motores, pero sin embargo con el interprete para paperstepper si me responden pero no imprimen correctamente, mas bien se hacen un lio y no se mueven como deben aunque a mano si la manejo bien y si le digo que avance 10mm los avanza pero no imprime despues simplemete se mueve pero como 1mm cuando le digo que haga unas letras que vienen de ejemplo en el programa Txapucnc.
      Sabes que puede ser o tienes el mismo problema?
      Gracias.

      Eliminar
    4. Hola Ignacio,
      por lo que comentas, parece que tienes que ajustar los parámetros de los ejes en TxapuCNC_RX ("_Init")

      Eliminar