lunes, 22 de agosto de 2016

¿Dibujamos?

En mi juventud, antes de dedicarme a esto de la informática y los ordenadores, estudie delineación, (una profesión tan olvidada que hasta el corrector de google me la marca como desconocida). Cuando estábamos ya en los últimos cursos, nos trajeron a ver el antiguo SIMO (Salón Internacional de Mobiliario de Oficina) donde además de los muebles que lleva en el nombre, los ordenadores y el material informático se estaban adueñando de la feria (no Arantxa, no, los dinosaurios ya no existían)

Por aquel entonces, también empezaron a aparecer unos "aparatitos" que nos hicieron ver que estábamos a punto de terminar unos estudios relacionados con una profesión que iba a ser sustituida por máquinas: los ploters.








Hasta aquí el capítulo de "Cuéntame", ahora, cogemos el Delorean y regresamos a la actualidad.





Siempre me han gustado los ploters, máquinas que dibujan solas, ¡¡vaya pasada!! Por eso cuando Miguel Sanchez publicó su diseño del ploter 4xiDraw, no lo dudé, me puse manos a la obra. 

Además, tenía otra razón de peso, quería aprender, si, aprender el funcionamiento de estas maquinas demoniacas que se mueven al son que les tocan unos "ficheritos" en formato G-CODE.

¿Qué son los ficheros G-CODE?



Como dice +Javier Loureiro en su blog, el código G-CODE en básicamente el lenguaje estándar que entienden las "maquinas demoniacas que hacen cosas" y que en ámbitos mas científicos se las conoce por CNC (Computer Numeric Control). Este lenguaje se utiliza en fresadoras, cortadoras laser, impresoras 3D, etc. y básicamente es un fichero de texto con comandos que le dicen a la máquina como debe moverse (o sea, el monitor de Zumba de las máquinas CNC).

  Y ¿qué mas puedes aprender?


Yo tengo una impresora 3D, una Prusa i3 Hephestos de bq, pero cuando tienes un kit, te pierdes cosas tan interesantes porque ya te vienen ajustadas y medidas, como el ajuste de los driver, los pasos, los micropasos y otras mil cosas, que para un maker son importantes aprender ya que vas a querer hacer más cosas, más máquinas, más robots huaaahahaha!!, esto es un no parar.

Este proyecto, por su tamaño y por el coste es ideal para aprender de esas cosas, porque puedes experimentar, cambiar, tocar y sabes que no te vas a quedar sin impresora 3D porque te has cargado la configuración.


Vamos a lo que nos importa 



No os voy a contar mucho del diseño y funcionamiento del ploter, para eso el maestro Miguel Angel ya lo ha hecho estupendamente en su blog y en instructables, solo os mostraré el resultado y os haré una recopilación de documentación y sitios que me han ayudado. También intentaré hablar de aquellos puntos que me han resultado más complicados y como los he resuelto.

Como en todo proyecto, a parte de las ganas, tenemos que tener los materiales para hacerlo: la lista la tenéis en Youmagine y Thingiverse junto a los diseños de las piezas imprimibles.

La electrónica utilizada es un Arduino uno y una CNC Shield para Arduino Uno. En un principio, las placas que yo tenía por casa era una Freaduino Uno (que son las que utilizaba para los printbots) y una Nano.



La placa Freaduino Uno se supone que es compatible con Arduino Uno, pero no hubo manera humana de cargarle el firmware (GBRL) que vamos a utilizar en la máquina.

Aquí comentaré que GRBL que cargaremos no es el estándar, sino una variante adaptada por +Miguel Sánchez y que da soporte al servo motor que maneja el rotulador o pluma.

Así que aprovechando que tenía una CNC Shield para Arduino Nano que compré en Aliexpress para otro proyecto aún no comenzado, (tantas cosas por hacer, tantas cosas que aprender, tan poco tiempo...) decidí probar y... el firmware cargaba, toma! toma y toma.

Pero pronto descubrí que mi alegría era excesiva, cuando empecé a hacer pruebas de movimiento de motores, aquello no iba ni para atrás. Me llevó días darme cuenta que la CNC estaba mal, así que me quedé sin saber si se podía montar el ploter con un Arduino Nano. Si alguien prueba y funciona, que lo diga.






Bueno, el proyecto se retrasaba, ya había pedido el resto de cosas que necesitaba y ahora tenía que pedir una CNC Shield, y también decidí comprar un Arduino Genuino original por lo de apoyar un poco a los autores de esta "plaquita" que tantas alegrías nos da.

Poco a poco, los materiales iban llegando (hay que ver lo que tardan las cosas desde China y además, el tiempo que tardan es proporcional al SAV que tienes) y las primeras pruebas y movimientos iban viendo la luz. 

Los principales problemas los tuve con la parametrización del GRBL. Ya sabéis, cuando tenemos un aparatito nuevo, no nos leemos las instrucciones, nos vamos derechos al "toqueteo", a ponerlo en marcha lo antes posible

- ¿cómo?
- pues no se, algún botón tendrá...

En fin, cosas de la impaciencia. Para controlar, parametrizar y en general conocer GRBL, lo mejor es ir a su Wiki y empaparse de todo lo que allí se cuenta. Es el sitio ideal para enterarse de que GRBL, además de interpretar código G-CODE, admite una serie de comandos "del sistema" y que con uno de ellos podremos variar y configurarlo para que se adapte a nuestra quina, pasos del motor, etc.

Por ejemplo:

$$ --> nos mostrará una listado con la configuración que tenemos en ese momento

$0=10 (step pulse, usec)
$1=25 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=6 (dir port invert mask:00000110)
$4=0 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=3 (status report mask:00000011)
$11=0.020 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$20=0 (soft limits, bool)
$21=0 (hard limits, bool)
$22=0 (homing cycle, bool)
$23=1 (homing dir invert mask:00000001)
$24=50.000 (homing feed, mm/min)
$25=635.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)
$100=314.961 (x, step/mm)
$101=314.961 (y, step/mm)
$102=314.961 (z, step/mm)
$110=635.000 (x max rate, mm/min)
$111=635.000 (y max rate, mm/min)
$112=635.000 (z max rate, mm/min)
$120=50.000 (x accel, mm/sec^2)
$121=50.000 (y accel, mm/sec^2)
$122=50.000 (z accel, mm/sec^2)
$130=225.000 (x max travel, mm)
$131=125.000 (y max travel, mm)
$132=170.000 (z max travel, mm)
 
y con el comando

$100=80 estaremos asignando el valor 80 al parámetro $100

y lo bueno es que esto ya se queda con el valor 80 hasta que no volvamos a cambiarlo, o sea, no hay que configurar la máquina cada vez que la encendemos.

Por lo tanto, no hagais como yo, y pasaros por la wiki.
 

Al final, me estoy en rollando como la lengua de las mariposas. ¡¡vamos terminando!

Solo me queda por decir y, sobre todo, agradecer a +Javier Loureiro  por haber pensado en mi para probar una placa CNC Shield v3.1 que han desarrollado en StaticBoards y que ya tienen disponible.


Por cierto, si utilizáis esta placa, u otra con la versión 3.1, la conexión del servo, en lugar de ir en el pin Z+ como indica +Miguel Sánchez , hay que ponerlo en el pin SE y todo funciona perfecto.
 
A continuación os dejo un video con el ploter funcionando




Aún me queda controlar donde empieza a dibujar el ploter, no termino yo de cogerle el puntillo al "Home".

Como os decía antes, ya solo me queda dejaros un compendio de documentación muy útil tanto, para afrontar tanto este proyecto, como cualquier otro de 


¡¡¡¡MAQUINAS DEMONIACAS!!!!


Hasta la próxima y no olvides compartir el conocimiento y contribuir al "Patrimonio Tecnológico de la Humanidad"

  Documentación relativa al proyecto


Software


  • GBRL-Servo (firmware adaptado para controlar el servo) 
  • Para generar los Ficheros G-CODE a partir de ficheros svg se utiliza Inkskape con un plugin que permite generar los comandos necesarios para levantar y bajar el rotulador. Este plugin es laser-gcode-exporter-inkscape-plugin (leer también las instrucciones).
  • Para probar los movimientos de la máquina, jugar, comprobar y enviar nuestros diseños al ploter se ha utilizado Universal-G-Code-Sender 

Documentación general para makers:



Agradecimientos

  • StaticBoards por su Gran pequeña SB CNC Shield y confiar en un servidor
  • VRA/MN por su música para mejorar nuestros videos 
Algunas fotos




4 comentarios:

  1. Jose Luis impresionante, ya veo que funciona correctamente, me voy a animar a hacerme uno. ¿Los motores son NEMA 17 normales o de los cortos?, porque en las fotos de Misan parece más cortos, en caso de ser normales ¿has modificado alguna pieza?
    Saludos

    ResponderEliminar
    Respuestas
    1. Gracias Fernando, ya te comenté lo de las piezas, pero te contesto por aquí por si le sirve a otras personas.
      Yo utilicé motores NEMA 17 normales y por lo tanto, mas largos que Misan, pero él mismo modificó la pieza, la puedes encontrar en http://www.thingiverse.com/thing:1444216/#files

      Eliminar
  2. ¿Valen las varillas de 8mm de acero inox del Leroy Merlin o las consigue en otro sitio?

    ResponderEliminar
    Respuestas
    1. No se como serán dichas varillas, pero imagino que sí.
      Yo las compré aquí http://store.thingibox.com/es/mecanica/91-varilla_lisa.html que te las mandan cortadas a la medida que tu quieras.

      Eliminar