viernes, 8 de abril de 2011

Crea tu Mini Maquina de CNC con Arduino, Easy Driver y Ubuntu (Basada en Contraptor)


Estructura sugerida en la pagina de Contraptor http://www.contraptor.org/mini-cnc


Esta entrada esta dedicada a mis queridos compañeros de FIME

En muchas otras Universidades le llaman tambien Robot Cartesiano, o demas nombres.

Primero, si desean saber que es una maquina de CNC, o especificamente lo que haremos aqui

es una fresadora de CNC, aqui explico un poco:

http://es.wikipedia.org/wiki/Fresadora






La idea principal de este proyecto, es facilitar al lector la construccion de una sencilla pero poderosa

fresadora de CNC de licencia GPL, por tanto Open Source, debido a que se necesitan bastantes

conocimientos previos de muchas ramas para asi poder llegar a una conclusion final

de como en realidad se puede crear esta maquina, aqui facilito toda la informacion

necesaria para llevarla a cabo, y te ahorro mas o menos 15 horas de investigaciones y pruebas

ya que usaremos Circuitos que son mas faciles de conseguir si no estas en EUA.

Puntos IMPORTANTES:

1. Nos basamos en la idea original de Contraptor: http://www.contraptor.org/mini-cnc

2. Usamos una variante de los Rep Rap Stepper Drivers: http://reprap.org/wiki/Stepper_Motor_Driver_1_2

3. Usamos un Arduino Uno: http://arduino.cc/en/Main/ArduinoBoardUnoSMD

4. Creamos nuestra propia estructura de la maquina (NO usamos la de contraptor)


NOTA: Estas publicaciones en el blog se ocupa mas de la parte Electronica y Sistema Operativo, la parte mecanica no la tomamos demasiado en cuenta pero igual damos muchas sugerencias.

En esta INTRODUCCION nos ocuparemos de tener las piezas electronicas que necesitamos, así como Ubuntu en nuestra maquina.


STEP BY STEP (INTRODUCCION)

1.- Conseguir Ubuntu, si ya eres un Linuxero puedes saltarte este paso:
 1.1.- Instalando Ubuntu junto con tu sistema operativo actual (Ejemplo Windows y Ubuntu)
      Si lo deseas puedes dejar unicamente ubuntu (Instala solo Ubuntu) y dejar windows atras, aunque si eres nuevo en esto, no  lo recomiendo del todo
Por si tienes problemas para esto, yo publicare una entrada proximamente de como hacerlo.


2.- Conseguir todas las piezas para la PARTE ELECTRONICA del proyecto:

  1. Arduino Uno  Arduino Pag Oficial. En Monterrey Mexico puedes conseguirlo en: Arduino Uno 5Hz Electronica
  2. 3 Easy Driver (los usaremos en lugar de los Rep Rap Stepper Motor Driver), puedes armarlos tu mismo: Easy Driver Pag Oficial o comprarlos ya armados, en Monterrey Mexico puedes conseguirlos en: 5Hz Electronica
  3. 3 Motores Bipolares Seguro los conoceras, puedes sacarlos a una impresora vieja (los bipolares que ocupamos traen 4 cables), si no posees y estas en Mty Mexico puedes comrparlos en Motor 5Hz electronica, nosotros en lo particular usamos estos: pololu stepper motors
  4. Cable UTP de 8 hilos (Serviran para comunicar los motores con los drivers)
  5. Tablillas Preperforadas para Circuito Impreso (Para soldar los drivers y componentes diversos)
  6. Soldadura
  7. Base para Circuito Integrado de 40 pines (El Easy Driver encaja bien en estas bases)
  8. Headers o pines sencillos (Para soldarle patitas al Easy Driver y a otros componentes)
Los ultimos elementos que marque son de los que aun no tengo datos especificos de ellos, porque aun sigo trabajando con los mismos, pero ya pronto terminare de ensamblar todo.

Los Headers (pines) son para soldarlos a los Easy Drivers, y poder colocarlos las Bases par CI de 40 pines que iran soldadas a la Tablilla Preperforada de Circuito Impreso, esto para no soldar permanentemente los Driver a una tablilla, si tu deseas hacerlo, adelante.




PARTE 1: ELECTRONICA

CONFIGURANDO TU ARDUINO Y UBUNTU

Arduino Uno (Imagen de la Pagina Oficial de Arduino)


Si nunca habias manejado un arduino antes en conjunto con Ubuntu, aqui recomiendo un excelente tutorial directo de la pagina de Arduino acerca de como instalarlo en este bello SO:




De las primeras cosas que debes saber, es que los archivos de codigo que maneja arduino son .pde (para archivos de codigo en texto plano), y los .h (codigo de librerias en texto plano). Asi que cuando guardes un codigo su guardara como nombre.pde, para compilar varios .pde junto con sus respesctivas librerias .h todos deben estar en el mismo directorio

Para iniciarte con arduino puedes checar los tutoriales en su pagina oficial:




PROBANDO EASY DRIVERS, MOTORES y ARDUINO

En este punto tu ya debes de tener los Easy Drivers que habiamos recomendado, asi que vamos a probar que srivan:

1.- Soldale Pines (Headers) a los orificios de los extremos (para que puedan ser montados sobre una protoboard para hacer pruebas.




2.- Montalo sobre una proto y conecta tal y como se muestra en el Tutorial:
3.- Carga el codigo a tu arduino, esto es, copia el codigo que viene en la pagina y pegalo en un sketch nuevo en el IDE de arduino:



4.- Conecta el arduino tal como se muestra en las imagenes:

  • Pin 3 (arduino) a el Pin Dir (Direction) del easy driver
  • Pin 12 (arduino) al Pin Step (Paso) del easy driver
  • Las 4 terminales de tus dos bobinas de tu motor a paso Bipolar a las correspondientes salidas del easy driver
  • Tu fuente de poder (de 6 a 30V) a la entrada de voltaje del easy driver asi como la GND correspondiente
  • Puenteas la GND del arduino con la del easy driver
NOTA: si no sabes cuales son tus bobinas en tu motor a pasos bipolar (4 cables) sencillamente toma un multimetro, colocalo de tal manera que mida "CONTINUIDAD" y verifica la continuidad entre los cables de los motores, la continuidad vendra en pares, es decir, dos cables seran continuos entre si y los otros dos entre si mismo, no puede haber continuidad entre mas de dos cables a la vez.

Una vez tengas todo perfectamente conectado, carga el sketch y veras como tu motor comienza a girar a un lado y despues de unas vueltas hacia el otro.

Coloco unas imagenes de mis repositorios:




Breve Explicacion:

El programa lo unico que hace es colocar un 1 o 0 logico en la entrada Dir del easy driver, esto le indica al driver hacia donde debe mover el motor, si izquierda o derecha.

Tambien manda una serie de pulsos 0 y 1, y espera un tiempo antes de comenzar la rutina, esto es, el Easy driver hace que el motor avance un paso por cada transicion negativa->positiva, como podras observar, si colocas un pushbutton puedes lograr el mismo efecto (solo trata de presionar y soltar unas 10 veces por segundo)

El Easy Driver toma el voltaje y corriente necesarios de la fuente externa que colocaste, asi dejas al arduino libre de alta corriente y lo usas unicamente para mandar pulsos logicos.





PARTE 2: ELECTRONICA

Me Encanta Soldar

Tablillas Preperforadas usadas como base para los drivers

Bases para CI de 40 Pines usadas para los Easy Drivers



El Equipo Necesario

Mas Equipo

Soldando


Soldando, Tarea Ardua (1 Litro de Cafe y una Coca para awantar)

Que Bonito se ve ya Terminado a que si


Todo el rollo anterior fue unicamente para soldar una base para los drivers, tu puedes ingeniartelas para crear una a tu medida o a tus gustos.

PROBANDO CODIGOS G
Muy bien, llegado a este punto, ya debemos de tener:
* Los Easy Drivers montados en nuestras bases diseñadas con amor ja, o cuando menos en protoboard
* Sabemos usar nuestro arduino y ubuntu
*Sabemos que nuestro arduino puede mover Motores a Paso

Ahora mandaremos Codigos G a nuestro, hay que seguir estos pasos:

1.- Descarga el Interprete de este sitio: http://www.contraptor.org/arduino-gcode-interpreter o directo de sourgeforce desde: http://contraptor.svn.sourceforge.net/viewvc/contraptor/trunk/firmware/

2.- Carga el Sketch del G Code Interpreter a la IDE de tu arduino:
y modifica los valores correspondientes de acuerdo a las caracterisiticas de tu maquina, para esto puedes guiarte con: http://reprap.org/wiki/Arduino_GCode_Interpreter

3.- Carga a tu arduino el sketch.

4.- Descarga el codigo del G code Sender de: http://www.contraptor.org/motion-control
aqui coloco el codigo tambien, es un Python, crea un archivo llamado nc2serial.py con el codigo de abajo en el y guardalo


#
# To send a gcode file to Arduino Gcode interpreter:  python nc2serial.py < mygcode.nc
#
# This script reads the lines from stdin and writes them to port_id using pySerial module
# After each line it waits until it gets one of the predefined responses from the port
#
# port_id examlpes: "COM1" on Windows, "/dev/ttyUSB0" on Linux
#

import serial,sys
port_id = "/dev/ttyUSB0"
baud = 38400

print "FLUSHING..."
ser = serial.Serial(port=port_id, baudrate=baud, timeout=2)
while True:
response = ''
response = ser.readline()
print response.strip('\n')
if response is '':
break
ser.close()

ser = serial.Serial(port=port_id, baudrate=baud, timeout=30)

for line in sys.stdin.readlines():
ser.write(line)
print line.strip('\n')
while True:
response = ser.readline()
print response
if response.strip() in ['ok','start']:
break

ser.close()


5.- Ahora hay que crear codigos G de prueba, puedes usar esto si quieres:




G00 X0 Y0 Z0

G01 X0 Y0 Z-3

G01 X5 Y0 Z-3

G01 X5 Y5 Z-3

G01 X0 Y5 Z-3

G01 X0 Y0 Z-3

G00 X0 Y0 Z0

En teoria deben formar un cuadrado, crea un archivo de texto con ellos, por ejemplo, codigo.nc

6.- Mandando tus codigos por serie:
*Conecta tu arduino (ya tiene cargado el GCode Interpreter)
*Checa en que puerto serie esta (Puedes iniciar el Serial Monitor de la IDE de arduino para saber)
*Modifica el Codigo de Python colocando el puerto serie de tu arduino, en este caso como lo indica la imagen es "/dev/ttyS0".
*En una terminal teclea :
python nc2serial.py < codigo.nc

*Listo, los codigos se deben de haber mandado y ejecutado perfectamente



*NOTA. En caso de errores, o de que la maquina no hace debes checar en la seccion de Errores comunes.


Alguna duda tambien puedes consultar:
http://www.contraptor.org/electronics-motors-subset


PARTE 3: MECANICA

No explico mucho de la parte mecanica, solo coloco algunas fotos, todo lo puedes desarrollar tu sin mas, no digo que sea una tarea facil, pero puedes ingeniartelas

Para que te guies aqui coloco algunos enlaces:









FELICIDADES, A PARTIR DE AQUI, TODO LO QUE QUEDA ES TU IMAGINACION PARA CREAR BUENOS DISEÑOS






KCAM


Para aquellos usuarios windows, pueden usar también KCAM:
* Necesitan una máquina con puerto paralelo
* Drivers para motores (Easy Drivers)
* Motores
* Estructura de la máquina


Es lo mismo que usando el GCODE interpreter, sólo que KCAM posee una interfaz intuitiva en windows, lo unico que se tiene que hacer es conectar del puerto paralelo a los Easy Drivers los pines correspondientes step, dir y enabled.


DOWNLOAD: http://www.mediafire.com/download.php?8nuhe2dee1db2f3

49 comentarios:

  1. Wowwww!!! voy a poner manos a la obra!! gracisa por tanta enseñanza!! y que viva el codigo libre ;)
    Atte Pablo Valencia

    ResponderEliminar
  2. wooo!! excelente, siempre he querido construirme una maquina de estas haber si ahora si con este tuto me dispongo a armarla =)

    ResponderEliminar
  3. gracias! me será muy útil!

    ResponderEliminar
  4. Ha fabricarlo, para la FIME!!!

    ResponderEliminar
  5. Tengo una duda a la hora de escribir en la terminal lo de "python etc etc" me marca que el archivo o el directorio no existe (y si si lo escribí bien porque lo revise) tienes alguna idea de por que me manda este mensaje?

    ResponderEliminar
    Respuestas
    1. Estas en el directorio donde se encuentra el archivo .py???
      debes de estarlo para poder hacerlo, en caso contrario escribe la ruta completa del archivo,
      Por ejemplo si el archivo .py esta en tu escritorio:

      python /home/desktop/miarchivo.py

      Eliminar
  6. Hazael, tengo mis dudas con respecto la fuente de poder que utilizaste, fue la misma con la que probaste los easy drivers, para los 3 motores??? y que necesito tomar en cuenta para que mis motores tengan el amperaje y torque deseado para los 3 motores conectados en la misma fuente. Saludos desde FIME 6to semestre de mecatronica.

    ResponderEliminar
    Respuestas
    1. Saludos Jezz Sanders.

      Si, usamos la misma fuente de poder para los tres motores, sencillo usamos una fuente de poder de computadora, la que usamos fue de las mas comunes, de 400W. Si tienes una ya estuvieras usándola, la fuente tiene salidas a diferentes voltajes, sólo checa con un multímetro. Si es ATX (la mas común actualmente) tienes que puentear unos cables para mantenerla encendida debido a que a las ATX las enciende un pulso directo de la tarjeta madre y siemper están en Stand By.

      http://www.arreglamipc.com/la-fuente-de-poder-voltaje-de-los-pins-del-conector-atx-de-24-pins

      http://www.ozeros.com/2011/06/guia-molex-a-12v-7v-5v/

      Y aquí tienes algo interesante para lograrlo si no sabes mucho de esto:
      http://jumperone.com/2011/06/atx-power-supply-tutorial/

      Saludos compañero

      Eliminar
  7. Gracias por la informacion compañero :D no sabia lo de puentear la fuente de computadora, que tengas buen dia, saludos.

    ResponderEliminar
  8. eyy bro primero que nada muchas gracias por la info y por sobre todo por crear este blog...bueno la verdad yo no tengo experiencia con esto del linux y ubuntu, justo este semestre tengo que entregar mi maquina de cnc pero mi duda es en cuanto a la instalacion de ubuntu: puedo hacer el proceso de correrlo desde la usb o es necesario que se kede instalado junto con mi windows 7...de antemano agradezco tu atencion y tu respuesta....

    ResponderEliminar
    Respuestas
    1. Puedes hacerlo con una USB Live, no hay problema, solo recuerda darle suficiente espacio de alojamiento de datos a la USB Live a la hora de crearla para que en ella puedas instalar los programas correspondientes (arduino IDE...) y guardar tus archivos.

      Te doy una recomendación, si estas batallando porque no tienes experiencia usando Linux, tambien puedes usar KCAM (http://www.kellyware.com/kcam/), para Windows, el programa lo que hace es que te manda los pulsos (Step y Dir) por puerto paralelo, lo que haces nada mas es conectar los pines correctos del puerto paralelo al correspondiente de los Easy Drivers y listo, si tienes un buen diseño mecanico todo deberia jalar excelente.

      Yo compre una versión de KCAM para testearlo, si gustas te la puedo prestar.

      Eliminar
  9. primero q nada gracias por responder...el KCAM ya lo tengo o lo tenia, pero eso del puerto paralelo me causo problemas por eso busque una opcion para utilizar puerto usb, lo que pasa es q ninguno de los inetgrantes del equipo cuenta con una lap o dessktop computer que posea dicho puerto...aunq si la consiguiera como te podria contactar para q por favor me prestes el KCAM?....ya tire mucho rollo pero bueno,eso de la usb live ya lo hice,vaya ya la bootee,crees q usando una maquina virtual funcione igual?...perdon x todas las preguntas pero estamos cerca de la fecha de entrega...muchas gracias

    ResponderEliminar
    Respuestas
    1. No te recomiendo usar una maquina virtual, luego hay rollo con los puertos. Y no es tan necesario usar ubuntu Linux, la ventaja de ubuntu linux es que trabajas mejor con terminal, igual puedes compilar el codigo de python y de perl en windows es igual

      Eliminar
  10. me tarde mucho bro perdon,GRACIAS POR TU AYUDA, logre instalar ubuntu pero me surgio una duda mas, como calibras la velocidad de los motores en arduino? es decir, como le dices al sofftware cuantos pasos dar para avanzar un milimetro o algo asi.....

    ResponderEliminar
  11. Baje el Gcode interpreter pero cuando intento compilarlo y cargarlo en el arduino me marca muchos errores, sin enbargo tengo todos los .pde y los .h en la misma carpeta. Qué pasa? Los errores son:
    reprap_new_firmware.cpp:1:33: error: reprap_new_firmware.h: No such file or directory
    reprap_new_firmware.cpp:225:29: error: ThermistorTable.h: No such file or directory

    ResponderEliminar
    Respuestas
    1. hay muchos mas errores, pero esto es un ejemplo:
      reprap_new_firmware.cpp:1:33: error: reprap_new_firmware.h: No such file or directory
      reprap_new_firmware.cpp:225:29: error: ThermistorTable.h: No such file or directory
      reprap_new_firmware:12: error: 'Move' does not name a type
      reprap_new_firmware:13: error: expected initializer before '*' token
      process_string:43: error: expected initializer before 'PROGMEM'
      process_string:84: error: 'NEG' was not declared in this scope
      process_string:84: error: 'POS' was not declared in this scope
      process_string:84: error: 'NEG' was not declared in this scope
      process_string:84: error: 'POS' was not declared in this scope
      process_string:84: error: 'NEG' was not declared in this scope
      process_string:84: error: 'POS' was not declared in this scope
      process_string:84: error: 'NEG' was not declared in this scope
      process_string:99: error: 'FAST_Z_FEEDRATE' was not declared in this scope
      reprap_new_firmware.cpp: In function 'void process_string(char*, int)':
      process_string:128: error: 'codeTypes' was not declared in this scope
      process_string:128: error: 'pgm_read_byte' was not declared in this scope
      process_string:175: error: 'next_move_ptr' was not declared in this scope
      process_string:175: error: 'current_move_ptr' was not declared in this scope
      process_string:185: error: 'next_move_ptr' was not declared in this scope
      process_string:197: error: 'MOVE_LINEAR' was not declared in this scope
      process_string:206: error: 'ARC_COUNTERCLOCKWISE' was not declared in this scope

      stepper_control:348: error: 'NEG' was not declared in this scope
      stepper_control:370: error: 'NEG' was not declared in this scope
      stepper_control:376: error: 'POS' was not declared in this scope
      stepper_control:380: error: 'POS' was not declared in this scope
      s

      Eliminar
    2. me puedes prestar el Kcam? :/

      Eliminar
    3. No se como ayudarte, el código esta perfecto, tienes algo más por ahi que no puedo solucionar, el codigo no tiene errores, menos de sintaxis como marcas si no en primera no hubiese creado la entrada, REVISA BIEN por favor, y al rato subo el KCAM a MF y te lo paso

      Saludos

      Eliminar
  12. Hola, tengo varias preguntas he sacado de unas impresoras los 3 motores paso a paso , esos me serviran? y la fuente de alimentacion como debe ser? yo tengo una ATX de un ordenador viejo esa sirve?, gracias de antemano.

    ResponderEliminar
    Respuestas
    1. Los motores te sirven, sólo asegúrate si son bipolares o unipolares para que sepas como conectarlos.

      La fuente por supuesto que sirve, sólo truqueala:
      http://hzsquare.blogspot.mx/2012/05/crea-una-fuente-de-poder-para-tus.html

      Eliminar
  13. hola, Gracias por este excelente tutorial, una pregunta. Que motores usaste, y si hablamos de motores de impresora de cuales usarias, porque he visto impresoras con motores de 24 y 30 voltios pero de 12 no he podido encontrar

    gracias nuevamente por la info

    ResponderEliminar
    Respuestas
    1. Saludos.

      Usamos 3 motores de este tipo:
      http://www.5hz-electronica.com/motordepasosconcable.aspx

      Eliminar
  14. Hola , gracias por la informacion , pero tengo una duda dencilla , si quieres mofificar los pines del step y de la direccion de los tres motores en que parte del codigo sketch de arduino lo haces?

    Ademas de tampoco dejas claro los pines del arduino que corresponden al control de los easy drivers de los otros dos motores.

    ResponderEliminar
    Respuestas
    1. Los pines del arduino los puedes modificiar el _init.pde (no necesitas mas que leer el codigo para saber no hay nada de ciencia), en este archivo se encuentran todos los "define"

      Como es logico, y lo escribi en la entrada, los pin del arduino declarados como "step" se conectan con el step del Easy Driver correspondiente al eje y el "dir" igual.

      Saludos

      Eliminar
  15. Hola, muy agreadecido de tu informacion. Te te queria pedir un pokitin de ayuda, resulta que en el paso de mandar los datos con el programa nc2serial.py y con el programa codigo.cn me aparece el siguiente error en la consola: File "nc2serial.py", line 17
    response = ''
    ^
    IndentationError: expected an indented block

    si sabes de que se trata mas o menos agradeceria tu ayuda

    ResponderEliminar
    Respuestas
    1. Pues como Python dice mi querido amigo Anonimo, tienes un error de sintaxis, al parecer no esta bien identado el codigo (no tiene la sangría correcta), recuerda que en python al no exister corchetes como en C o JAVA o un ENDWHILE como BASIC, se te obliga a identar todo para cerrar o abrir bloques de codigo.

      Revisalo bien, te falta un TAB en algun lado que has de haber borrado por error.

      Saludos

      Eliminar
  16. Amigo soy el mismo de arriba, mi nombre es Victor. Copio el código tal en el arduino IDE y lo guardo con el nombre nc2serial.py , pero aun así me persiste el error, si tienes el archivo nc2serial.py me lo podrias mandar a vittotto@gmail.com?

    ResponderEliminar
  17. Hola logre todo, pero al momento de cargar código.nc solo se queda en x0 y0 z0, que esta pasando?

    ResponderEliminar
  18. Te felicito, un proyecto muy interesante, quería hacerte una pregunta, ¿que tipo de guías utilizas para el desplazamiento de los ejes?, muchas gracias.

    ResponderEliminar
    Respuestas
    1. Son guias de cajoneras de escritorio.
      Como estas:
      http://www.amig.es/datos/fotos/703/guia_cajones_26.gran.jpg

      Saludos

      Eliminar
  19. mi monitor en mi proto trak fresadora no quiere encender porque?

    ResponderEliminar
  20. soy del senati de la sexta promocion si alguien conose a augusto dextre peralta en lima peru por favor escribame

    ResponderEliminar
  21. a los trabajadores de industria surge peruanas que trabajaron entre los anos 1975 y 1991 por favor escibeme al correo electronico jroman51@yahoo.com soy jose ramos
    gracias

    ResponderEliminar
  22. loco tengo problemas con el codigo de arduino. yo lo voy a compilar pero me salen con errores y son estos

    nc2serial_py.cpp:2:3: error: invalid preprocessing directive #To
    nc2serial_py.cpp:4:3: error: invalid preprocessing directive #This
    nc2serial_py.cpp:5:3: error: invalid preprocessing directive #After
    nc2serial_py.cpp:7:3: error: invalid preprocessing directive #port_id
    nc2serial_py.cpp:18:16: error: empty character constant
    nc2serial_py.cpp:21:20: error: empty character constant
    nc2serial_py:9: error: 'import' does not name a type

    la verdad no se cual es el problema :S

    alguna ayuda......

    ResponderEliminar
    Respuestas
    1. Emmmm Giancarlo daraviña peña,
      como decirlo,
      Ese no es el codigo para Arduino!!!!! nc2serial.py es un codigo python que se corre en la computadora y que envía por puerto serie las instrucciones al Arduino (Parece ser que tu le cambiaste el nombre y la extension al fichero, le pusiste "nc2serial_py.cpp" pero no es codigo c++).
      Usa un compilador python desde terminal.

      python nc2serial.py

      Eliminar
  23. Hola que tal, oye mira yo soy de Oaxaca y quisiera saber si hay algun diagrama sustituto para la construccion del Easy Driver ya que no tengo la facilidad de poder importarlos de alguna tienda a mi localidad, quisiera saber tambien mas o menos como es la conexion entre un motor a pasos y el arduino ya que me confunde algo el tema del cableado (que los pares de cables, que la resistencia entre cada par, etc), quiero saber algo mas conciso, tengo a mi disposicion como 6 o 7 motores que he recuperado de desechos electronicos y parecen funcionales, bueno, ojala puedas guiarme entre tanto rollo, te dejo mi correo por si tienes oportunidad de contestarme: orichalcos.knight92@gmail.com o en facebook buscame como Llao Mg, espero tu respuesta, gracias.

    ResponderEliminar
    Respuestas
    1. Saludos orichalcos knight.

      1.- El diagrama esquematico de un Easy Driver esta en internet ya que es openhardware. Si no deseas construir un Easy Driver hay UN MONTON de diferentes "Stepper Motor Drivers" en internet, una busqueda Google me arrojó muchas cosas.

      2.- Si no sabes aún como funciona basicamente un stepper motor creo que sera dificil construir una maquina de CNC, aprende un poco más acerca de su funcionamiento básico, toma un microcontrolador (dígase un Arduino o un PIC) y prueba con uno (hay varios tipos diferentes de Stepper Motors).
      Ejemplo: http://www.todorobot.com.ar/informacion/tutorial%20stepper/stepper-tutorial.htm

      3.- La verdad es que siempre me la paso algo ocupado, pero siempre tengo tiempo para ayudar aunque sea un poco, pero el mejor maestro es "la necesidad" e internet siempre tiene la solución ;) googlea un poco y verás.

      Un tip:

      Para manejar un solo stepper motor puedes usar un Puente H (dígase un L293 Porque? para poder dar la suficiente corriente...) y 4 salidas digitales de un Microcontrolador. Después debes de mandar la combinación correcta que haga girar el eje del Motor.

      Claro que manejar 4 Steppers para una Maquina de CNC de 3 ejes serían 12 salidas, para una de 4 ejes serían 16 salidas y así, como vez se va complicando el asunto, es por eso que los "drivers para los stepper motors" sirven para controlar los motores unicamente con pocas salidas digitales y sin preocuparse uno de la combinación correcta para hacerlos girar.

      Links de Interés:
      http://arduino.cc/en/Reference/Stepper?from=Tutorial.Stepper

      Mira aquí un hermoso tuto:
      http://learn.adafruit.com/adafruit-arduino-lesson-16-stepper-motors/overview

      Eliminar
  24. donde compraste tu estructura ??
    o la base y todo lo demas?

    ResponderEliminar
    Respuestas
    1. La estructura la construimos nosotros mismos.
      Puedes costruir la tuya de manera muy simple (nosotros usamos metal, una planta de soldar, correderas de cajoneras...).

      Checa estos links:

      http://www.instructables.com/id/Simple-CNC-Machine/

      http://www.instructables.com/id/How-to-Make-a-Three-Axis-CNC-Machine-Cheaply-and-/

      Saludos

      Eliminar
  25. hola! mira cargo cualquier ejemplo de arduino y funciona, es decir, reconoce a arduino y el puerto. Pero cuando quiero cargar el interpretador de g-code me sale un error! que puede ser?

    ResponderEliminar
    Respuestas
    1. Hola Rodrigo.
      Podrían ser muchas cosas, podrías ser mas específico?

      Saludos

      Eliminar
  26. Hola, buen post! queria preguntar una duda; es que me ha surgido un error en el python me dice invalid sytax y me señala esta linea ( print "FLUSHING...") la he copiado tal cual como aparece en este post pero me tira error cuando le doy en la pestaña de RUN - chek module, habra algo que se pueda hacer?

    ResponderEliminar
  27. es necesario utilizar ubuntoo, para enviar el codigo o puedo hacerlo desde windows?

    ResponderEliminar
    Respuestas
    1. si se puede enviar desde windows, solo necesitas instalar python, y correr el archivo nc2serial.py desde el cmd de windows, solo tienes que poner el puerto com de tu arduino en el nc2serial.py.

      Eliminar
    2. Exactamente como dijo el buen amigo Elros

      Eliminar
  28. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  29. disculpa tengo una duda, puedo sustituir el driver, por un cto. Que tenga las misma funcion?
    y en vez de instalar Ubuntu en el sistema se puede usar en una maquina virtual no?
    bueno espero que tu respuesta saludos!!

    ResponderEliminar
  30. siento que Te amo, si funciona te voy a poner en mis agradecimientos ;)

    ResponderEliminar