Impresora 3D

Hola seres tridimensionales, en este apartado vamos a explicar como montar una impresora 3D modelo " PRUSA I3 " para poder fabricar cualquier tipo de piezas que podamos imaginar, solo tenemos que diseñarlas previamente con ayuda de un software de diseño 3D y como si fuera un deseo nuestra impresora nos lo concederá y tendremos nuestra pieza impresa en distintos materiales disponibles.

Antes de comenzar, necesitas saber todo lo necesario para tener todo listo.

 Para facilitar la adquisición de los materiales podéis seguir esta lista:


 Mecánica:

 -Varillas lisas M8 X 7ud.
 •2 ud 42cm.(eje Z)
 •2 ud 47 cm.(eje X)
 •2 ud 49,5 cm.(eje Y)
 •1 ud 1,9 cm.(para rodamiento 608zz)
 -Varilla roscada M8 X 6 ud.
 •4 ud 18 cm. (eje Y)
 •2 ud 49,5 cm.(eje Y)
 -Varilla roscada M5 (39 cm) X 2 ud.(para guia de eje Z)
 -Tornillos M3 X 12ud.(motores NEMA 17)
 -Tornillos de madera M3 X 30ud.(aprox.)
 -Tornillo M8 (7 cm) X 2ud.
 -Tornillo Moleteado
 -Arandelas M8 X 35 ud.
 -Arandela M5 X 35 ud.
 -Tuercas M8 X 35 ud.
 -Tuercas M5 X 35 ud.
 -Rodamientos lineales LM800 X 9 ud.
 -Rodamientos blindados 608ZZ X 6 ud.
 -Rodamientos 623Z X 2 ud.(para las poleas)
 -Correa GT2 (2 metros).
 -Polea GT2 X 2 ud.
 -Acoples M5 (0.5cm) X 2ud.(para motores  del eje Z)
 -Kit de piezas impresas del modelo PRUSA I3.
 -4 tornillos M3 de 4cm. (Para fijar cama caliente).

 Maderas:
 - Base de madera 22x22cm. (Para cama caliente).
 - 6 tablones de 45cm X 10cm X 1,6cm (largo X ancho X grosor).



 Electrónica:
 - Motores nema 17 X 5ud.
 - Final de carrera X 3ud.(mecánicos, ópticos o magnéticos)
 - Arduino MEGA 2560 Rep 3 + cable + usb.
 - Placa Ramps + 4 drivers (polous) + 4 disipadores de calor.
 - Termistores X 1 ud.
 - Cama caliente.
 - Extrusor (0,4mm).



 Herramientas:

 -Brocas 0,1mm-1mm.
 -Kit de limas.
 -Presillas.

 -Cinta KAPTON.
 -Filamento 1.75mm (1kg)
 -Pegamento térmico.
 -Destornilladores, alicates, soldador  de estaño.
 -Base sobre cama caliente(cristal o espejo de 20 x 20 cm)

 Una vez que ya tenemos todas las piezas a mano comenzamos el montaje por la parte más sólida y robusta de nuestra impresora, la base para el eje Y.

En esta imagen vemos los tres ejes (X, Y, Z) para poder mover el extrusor del material en 3 dimensiones.



La impresora esta compuesta por varias partes:

-Las piezas impresas( se necesita una impresora, molde o construir en madera u otros materiales)

Piezas impresas por otra impresora


                       
Piezas de madera o de metal


Impresora a partir de piezas de madera o de metal

 Impresora a partir de piezas de Lego

-La electrónica y su programación( se puede descargar el programa ya hecho).

 El Arduino, que se conecta a la placa  RAMPS donde se conecta los drivers de cada motor(polous) con   sus respectivos disipadores de calor.
  Esta imagen muestra las conexiones electrónicas de la impresora 3D que podéis encontrar en la placa Ramps...


Pero también podemos usar otro tipo de placas para configurar la electrónica como la SAV MKI:



La Melzi es otro tipo con todo integrado en una sola placa:


Y la que nosotros hemos elegido en este caso la Ramps 1.4:


Otras como la Sanguinololu también son válidas... pero nosotros nos centraremos en la placa Arduino ya que es compatible con mucha variedad de periféricos que podemos agregar como son pantallas LCD, lector de targetas SD, motores para ventilar la placa... y muchos más.


-La mecánica:
 Necesitaremos varillas roscadas de M8(para el eje Y) y M5(para el eje Z) y varillas lisas M8(eje X, Y, Z).
 Esta parte es fácil de conseguir en la mayoría de ferreterías y grandes almacenes.
Varillas roscadas y lisas:



 Tornillo moleteado: sirve para introducir el hilo de material al extrusor.

Puede presentar rosca en los extremos rosca o tuerca, ambos nos pueden valer.



-El marco(puede ser de aluminio,  de madera, la opción más económica o por último de metacrilato.)







En el siguiente enlace podéis ver un montaje general de la impresora 3D

 

Comenzamos a montar nuestra impresora 3D!

Para comenzar el montaje podemos empezar por la base del eje Y, formada por 6 varillas roscadas(2 largas y 4 cortas) para la base donde se colocara el motor que desplaza la cama caliente.

Además necesitaremos los 4 encajes de las varillas, la sujeción para el eje Y del motor NEMA 17 y la sujeción de la polea y la polea donde desliza la correa.
Para terminar, fijamos las varillas con tuercas autoblocantes y sus respectivas arandelas.





Cuando tenemos la base del eje Y, podemos montar nuestro marco y unirlo a la base del eje Y para tener la estructura principal casi lista.



Las tuercas con arandelas que están en medio de las varillas roscadas se fijan al marco de madera para dar firmeza a la estructura.
Luego colocamos la base de la cama caliente con los rodamientos sobre las varillas lisas del eje Y.


Para fijar los rodamientos a la estructura base de la cama caliente taladramos la madera y pasamos unas presillas que unen la madera a los tres rodamientos que deslizan sobre las varillas lisas(2 en una y uno en otra).



No debemos olvidar colocar antes la pieza que va en la parte inferior de la madera que sirve para fijar la correa unida al motor.

Fijaros que la apertura justo en medio por donde pasa la base de la cama caliente es más grande que al principio, esto es debido a que nosotros no calculamos bien el tamaño de la pieza que fija la correa y tuvimos que agrandarlo posteriormente. Tomad con precaución las medidas correctas del marco para evitar tener que arreglarlo luego. 

Una vez terminado debería de quedaros algo parecido, si no desliza bien, comprobar que las varillas están en paralelo y añadir grasa para que los rodamientos deslicen mejor.



Una vez que  la base de la cama caliente se desliza sin problemas, unimos con una correa GT2 a la pieza inferior de la tabla, la pasamos por la polea y al motor con su respectiva polea unida al eje.



El eje Y completo, con la cama caliente sobre el soporte de madera, un cristal sobre la cama caliente ajustado con cuatro pinzas de papel con la correa unida al motor y el termistor justo en medio de la cama caliente con sus respectivos cables de conexión y el final de carrera.




Una vez tenemos el eje Y terminado, colocamos los dos motores sobre el marco para tener listo el eje Z.
 Necesitaremos unos acoples de métrica 5 mm para unir la varilla roscada al motor que mueve el eje del extrusor .

 
Necesitaremos los soportes inferiores para los motores y los soportes superiores para fijar las varillas lisas, las roscadas van sueltas, también los acoples para unir las varillas roscadas al eje de los motores.
Si no encontráis acoples, podéis usar un pequeño trozo de tubo de goma y unirlo con presillas con un margen de separación.



Una vez que ya tenemos el eje Z listo debería de quedar con los dos motores unidos a las varillas roscadas que mueven la pieza que sube y baja del eje del extrusor, esta desliza gracias a la varilla lisa que esta pararela a la roscada, siendo la lisa la que guia el movimiento y la roscada la que impulsa por el motor.
Para que la varilla roscada mueva la pieza, en una ranura que trae la pieza metemos a presión un tornillo de la misma medida y lo dejamos fijo.


Para que deslicen bien las piezas colocamos los rodamientos lineales, pero debéis de tener precaución y limar antes las piezas para que encajen bien.
Ya podemos comenzar a montar el extrusor, empezaremos por el eje X.
Necesitamos las dos varillas lisas, las piezas del extrusor:
Algunas piezas son ligeramente distintas en apariencia, pero su función sigue siendo la misma, si vais siguiendo algún tutorial o vídeo tened en cuenta este aspecto importante para no volveros locos!
Nuestro extrusor(imagen izquierda) es ligeramente distinto al archivo de stl(imagen derecha)



La siguiente impresión muestra más claramente las diferencias entre ambas piezas, aunque su función en el extrusor sean la misma.



En la siguiente imagen se puede comprobar la diferencia entre piezas;




Para terminar el extrusor, colocamos la correa y la fijamos a la pieza, luego introducimos el rodamiento y el tornillo moleteado va unido a la polea grande, y la polea pequeña al motor del extrusor, encargado de introducir el filamento al extrusor.



El extrusor se fija a la pieza de plástico con dos tornillos de métrica 3mm, los cables se pasan por un lado(dos de alimentación y dos del termistor del extrusor) y se unen a los del motor para mayor comodidad.




Para unir los cables hemos utilizado una red o malla para cables, de esta forma quedan recogidos y se maneja mejor el movimiento.

Una vez terminada esta parte, pasamos a conectar el cableado a la electrónica y calibrar los polous.

Nuestro control de motores para completar la impresión se realiza gracias a Arduino, que se programa con software libre, por lo que podemos darle muchísimas aplicaciones...




Para conectar la electrónica primero debéis asegurar que todos los cables llegan perfectamente a la placa incluso las partes móviles. Una vez hecho esto, fijamos la placa de Arduino Mega a el marco, dejando espacio suficiente(mínimo 1cm) para que circule el aire y se pueda ventilar toda la placa.

Nuestro esquema de conexión es el siguiente:
 Pero en la red, encontraréis otros más básicos, sin conexiones como el apagado automático, autonivelado y ventilador de refrigeración.
Para conectar la cama caliente, utilizamos la salida de mayor intensidad(entre 10 y 15 A).
Para saber cuanta intensidad necesita la cama caliente, utilizamos la ley de Ohm:
Medimos la resistencia entre bornes de la cama caliente, y conocemos el valor del voltaje, 12 V.


Luego debemos colocar los tres finales de carrera en cada uno de los tres ejes (x, y, z)




 Otra parte importante en los cables de conexión de los motores del eje Z es que deben medir lo mismo aunque uno de los cables llegue de sobra, es necesario.
Esto es debido a que los cables tiene una resistencia interna según la sección del cobre y la longitud del cable.
Si aplicamos la ley de Ohm para el cable, el valor de la resistencia de los cables debe ser la misma para que la intensidad que llegue a los motores sea también la misma y uno de ellos no pierda pasos respecto al otro.
Debemos tener en cuenta para esto la ecuación de la resistividad de un material:

Donde R es la resistencia en ohmios(Ω), ρ  es la resistividad del material, L la longitud del cable en metros(m) y S la sección transversal en metros cuadrados(m²).

Sobre Arduino va conectada a través de los pines la placa RAMPS 1.4 (también podéis usar otras) y en esa placa conectáis los drivers, los motores, los finales de carrera, la cama caliente y el extrusor y por último los termistores. Antes de conectar los drivers asegurad que están conectados los 3 "jumpers" para mayor precisión en cada driver(o polou).







Recordad dejar un margen entre el marco y la placa asegurándolo con tuercas para que el aire pueda ventilar por todos lados.

Antes de conectar la alimentación y asegurar bien todas las conexiones, debemos comprobar los siguientes apartados:

1.-Conectar disipadores de calor a los driver's de los motores y a los transistores, sobre todo el de la cama caliente.

2.-Colocar diodos de protección a los conectores de la RAMPS con la cama caliente y el extrusor.


Una vez tenemos todo asegurado, calibramos los driver's, conectamos nuestra placa a una fuente de alimentación de 12V y al menos 15A, nosotros hemos elegido una de ordenador de 12V y 15A, aunque posteriormente la reemplazamos por otra de 20A mucho más compacta.

En la placa se puede ver la potencia de la fuente.Luego los cables sobrantes, de 3,3V y 5V los podemos cortar o guardar por si posteriormente queremos conectar algún dispositivo.



Estas otras fuentes también podéis encontrar en el mercado:


Cuando tenemos nuestra fuente de alimentación disponible:

 Vamos probando los driver´s uno a uno por separado la intensidad que demanda, esta debe tener un valor de 0,2A para cada motor, recordando que el driver del eje Z debe de tener 0,4A ya que lleva conectados dos motores en paralelo y sumando la intensidad que demanda la resistencia interna de nuestra placa, esta suele estar entre los 0,04A y 0,1A, por ejemplo, en nuestro caso el arduino y la ramps consumen 0,1A, al conectar el motor del eje Y debemos sumar los 0,2A del motor + 0,1 de la placa = 0,3A debe suministrar la fuente de alimentacion,y así repetir este proceso para los driver's que faltan.

Para medir la intensidad que demanda la placa conectamos en serie el amperímetro entre el cable positivo de la fuente y la placa ramps como sigue el siguiente esquema:




Para regular la intensidad que pasan por los drivers, localizamos un pequeño tornillo en la placa, se trata de un potenciómetro que podemos regular a mayor o menor resistencia.


Para saber como conectar el driver a la ramps, debemos fijarnos en la placa donde pone la configuración del bobinado que debemos conectar del motor paso a paso.
Si no conocemos los cables del motor que corresponden a cada bobina del motor podemos comprobar con el polímetro continuidad entre los extremos de los 4 conectores que tiene, también con un Led conectado entre dos de los cuatro cables y girando el eje del motor cuando se encienda tenemos localizados los pares de bobinas.

 Una vez tenemos localizadas las dos bobinas del motor bipolar paso a paso conectamos el motor a la ramps donde se une a las patillas correspondiente del driver:



Si tenemos problemas a la hora de comprobar los drivers pueden pasar varios problemas que tendremos que averiguar siguiendo un esquema de conexión para localizar nuestro fallo de forma segura y precisa:

A continuación se detallan algunos de los principales problemas que nos podemos encontrar y una posible solución:

1.-Conectamos Arduino al cable USB y no se enciende una luz en la placa ni el PC detecta ningún dispositivo.

Revisar la conexión USB, comprobar que le llega alimetación de 5V a la placa, revisar por último el estado de la placa arduino, posibles daños causados durante el envío o manejo, polvo o alguna mala conexión.

2.-La placa arduino funciona, al conectar la ramps al arduino no se enciende.

Revisar que la placa ramps este bien conectada por todos los pines. Comprobar el estado de la placa.

3.-Conecto un driver a la ramps y cuando enciendo la fuente de alimentación y conecto el arduino se desconecta del PC y apaga.

Comprobar que el driver no esta quemado, mucha precaución al conectar los drivers y atento al consumo de intensidad, si tiene un valor alto (superior a 0,6A) mejor desconectar la alimentación inmediatamente y regular el potenciometro, probar de nuevo pero atento a la intensidad, si no disminuye revisa que tengas bien la conexión de las bobinas del motor, puedes estar provocando un cortocircuito y los driver comienzan a calentarse rápidamente.

4.-El motor gira, pero lo hace a trompicones.

El motor puede perder pasos, puede que tenga demasiada intensidad o poca.Ajustar con el potenciometro la intensidad y comprobad que gira correctamente.
Ojo:Si el destornillador tiene imán en la punta no variar el potenciometro con la placa conectada.

5.-Se ajusta el potenciómetro y el motor sigue sin funcionar correctamente.

Durante una orden de movimiento desde el software controlador("RepetierHOst", "Pronterface"...) comprobamos con el polímetro que pasa voltaje por los dos grupos de bobinas, si no es así, puede que el driver este dañado.

6.-De manera aleatoria uno de los motores genera un pequeño silbido al funcionar.

Comprobar que las conexiones del motor a la placa se encuentra en buenas condiciones.

7.-Las piezas impresas se despegan por el mismo sitio de la cama caliente.

Comprobar la conexión de la cama caliente, puede que uno de los lados no este conectado y aunque se encienda el led de "encendido", solo calienta la mitad de la plataforma.

8.-La temperatura de la cama caliente o el extrusor no llegan a su punto óptimo.

Revisar la configuración del software en el siguiente orden:
1º)El software que esta cargado en Arduino.
2º)Los parámetros del software de impresión.

Si el problema no es de configuración puede ser por una mala conexión o que el termistor no se encuentre en la posición favorable para medir (por ejemplo, cerca de un ventilador, o esta despegado o esta recubierto de suciedad)

9.-Las instrucciones del control manual dejan de responder.

Reiniciar el software y realizar un "homing".

10.-Huele a quemado al conectar la cama caliente o el extrusor.

Comprobar que el transistor de ambos componentes tiene bien adherida la placa disipadora de calor, en caso contrario aplicar de nuevo pasta térmica o pegamento térmico, sino puede que se halla quemado el componente. 

11.-Al iniciar la primera impresión en el Repetier-Host los motores no actúan aunque la interfaz muestra la ejecución de la impresión.

Comprobar la versión del firmware y la actualización de nuestro software por si son compatibles o presentan algún fallo.


El acabado final :


Una vez tenemos la impresora lista y calibrada, debemos asegurarnos que el extrusor recorre a ras de la cama caliente sin variar su distancia, nivelar la cama caliente.(más adelante veremos un método de autonivelar la cama caliente para usuarios más avanzados, primero empecemos por lo básico.)

Para mejor ventilación de la placa es preferible colocar ventiladores que refrigeren constantemente:






Ahora colocamos el rollo de plástico en una posición favorable para que no se atasque el hilo de ninguna forma.
 Ingenio a construido una plataforma cuadrada giratoria con el suelo de la base con papel de lija para que la bobina de hilo no deslizara sobre la madera:







 En el eje usamos un tornillo con un rodamiento y arandelas para dar estabilidad y unida al tornillo(eje) y todo fijado con una escuadra al marco.

En medio del marco de la impresora colocamos un cáncamo cerrado por donde pasa el hilo, de esa forma el rollo de plástico gira sin tocar el hilo y no se atasca en ninguna posición del extrusor.


Para resumir las partes de nuestra impresora 3D y el esquema electrónico mira la siguiente imagen:



Calibración y primera impresión 3D

Ya podemos comenzar con la primera impresión y comprobar el funcionamiento de la impresora 3D.

Software necesario:
-Arduino (La placa Arduino contiene un software para cargar el programa. El lenguaje de programación de Arduino se basa en C/C++ )
-Marlin.h (código que establece los parámetros adecuados de impresión)
-RepetierHost (software para controlar la impresora)
-Slicer (software que lamina la pieza en capas)


NOTA: Estos programas utilizados por Ingenio NO son los únicos existentes.

Para cargar el programa en Arduino nos descargamos de la página web de arduino el software(en nuestro momento la versión fue arduino 1.0.X).
Una vez instalado nos descargamos el marlin y abrimos Arduino y en Abrir proyecto buscamos la carpeta del marlin, se nos abriran muchas pestañas y seleccionamos Configuration.h, este archivo permite configurar parámetros de nuestra impresora, como temperaturas, medidas de la cama caliente, movimiento de los motores, velocidad, aceleración... etc.
Una vez abierto Configuration.h seleccionamos el tipo de placa que utilizamos, en nuestro caso la ramps 1.4 le corresponde el número 33, que asignaremos en la línea de código
#define MOTHERBOARD 33, veamos de forma más clara este paso y lo que nos encontraremos:


//// The following define selects which electronics board you have. Please choose the one that matches your setup
// 10 = Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics"
// 11 = Gen7 v1.1, v1.2 = 11
// 12 = Gen7 v1.3
// 13 = Gen7 v1.4
// 3  = MEGA/RAMPS up to 1.2 = 3
// 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Bed, Fan)
// 34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed)
// 4  = Duemilanove w/ ATMega328P pin assignment
// 5  = Gen6
// 51 = Gen6 deluxe
// 6  = Sanguinololu < 1.2
// 62 = Sanguinololu 1.2 and above
// 63 = Melzi
// 64 = STB V1.1
// 7  = Ultimaker
// 71 = Ultimaker (Older electronics. Pre 1.5.4. This is rare)
// 8  = Teensylu
// 80 = Rumba
// 81 = Printrboard (AT90USB1286)
// 82 = Brainwave (AT90USB646)
// 9  = Gen3+
// 70 = Megatronics
// 90 = Alpha OMCA board
// 91 = Final OMCA board
// 301 = Rambo

#ifndef MOTHERBOARD
#define MOTHERBOARD 33
#endif

Después seleccionamos el tipo de termistor que utilizamos, este componente es el encargado de medir la temperatura de la cama caliente y el extrusor, similar al caso anterior, nos aparece una descripción de los tipos de termistores asociados a un número que escribiremos en la linea de código que lo definen:



#define TEMP_SENSOR_0 1

#define TEMP_SENSOR_1 0

#define TEMP_SENSOR_2 0

#define TEMP_SENSOR_BED 1
  
Si tenemos un termistor cuyo modelo no aparece, debemos descargarnos una tabla de valores y copiarla en la carpeta thermistables.h donde están definidos los termistores más comunes.

La siguiente configuración que debemos realizar es ajustar los finales de carrera, en nuestro caso, utilizamos un final de carrera para el punto de origen de cada eje, y la distancia final la calcula el programa según el giro del motor y la distancia que recorren los ejes(X,Y,Z):
 
// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
const bool X_ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops.
const bool Y_ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops.
const bool Z_ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops.


También se puede implementar usando dos finales de carrera por cada eje, uno detecta el origen y el otro el final de cada eje.

Luego definimos el sentido de giro de los motores:

#define INVERT_X_DIR true    // for Mendel set to false, for Orca set to true

#define INVERT_Y_DIR true    // for Mendel set to true, for Orca set to false

#define INVERT_Z_DIR true     // for Mendel set to false, for Orca set to true

#define INVERT_E0_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false

#define INVERT_E1_DIR false    // for direct drive extruder v9 set to true, for geared extruder set to false

#define INVERT_E2_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
 


Una vez tenemos estos parámetros definidos, configuramos el movimiento de los motores para controlar los pasos por vuelta de cada eje para recorrer una distancia (1mm), la aceleración de los movimientos y limitar estos movimientos con una velocidad máxima:

//// MOVEMENT SETTINGS

#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E

#define HOMING_FEEDRATE {50*60, 50*60, 3*60, 0}  // set the homing speeds (mm/min)



// default settings 



#define DEFAULT_AXIS_STEPS_PER_UNIT   {80, 80, 4010,777.6}  // default steps per unit for ultimaker

#define DEFAULT_MAX_FEEDRATE          {500, 500, 3, 200000}    // (mm/sec)   

#define DEFAULT_MAX_ACCELERATION      {500,500,50,500}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot.



#define DEFAULT_ACCELERATION          3000    // X, Y, Z and E max acceleration in mm/s^2 for printing moves

#define DEFAULT_RETRACT_ACCELERATION  3000   // X, Y, Z and E max acceleration in mm/s^2 for r retracts
 

Estos valores pueden variar según la correa que utilicemos, ya que los dientes y el espacio entre los dientes de la correa marcan la distancia recorrida según el número de vueltas, para el eje Z ocurre lo mismo, estos parámetros varían según el tipo de varilla roscada que utilicemos, ya que cada rosca tiene una separación distinta según la métrica.

Por último vamos a la pestaña de Herramientas; Targeta y seleccionamos Arduino Mega 2560 rev3 y seleccionamos Puerto serial para habilitar un puerto USB a Arduino, en nuestro caso COM6.

Ya tenemos lista toda la configuración, ahora nos falta cargar esa información.
Pulsamos Cargar(señalada en rojo en la imagen) y ya tenemos el marlin completo en nuestra placa Arduino.



Para comprobar el correcto funcionamiento seguiremos los siguientes pasos:

1º-Instala el software de arduino.
2º-Conectamos la placa de arduino al PC.
3º-Seleccionar el puerto habilitado (COMXX)
4º-Carga el scrip blink para comprobar la placa Arduino.
5º-Coloca la Ramps sobre Arduino.
6º-Carga el marlin configurado.
7ºColoca los 3 jumpers donde van conectados los drivers (o polous)
8º-Coloca los drivers (cuidado de no cambiar la conexión)
9º-Coloca un polímetro entre la fuente y la placa para medir la intensidad, asegurate que la fuente entrega 12V sin cambios ni fluctuaciones.
10º-Conecta motores, finales de carrera y termistores.
11º-Realiza una prueba para comprobar que funcionan y se detienen al pulsar el final de carrera.Utiliza un programa de control manual como el Pronterface o Repetier-Host.



A continuación se muestra un esquema de la secuencia de una impresión.
(Esta información más detallada  se puede consultar en la página de "Clone Wars")

 Aquí podemos ver desde el diseño de nuestra pieza (utilizando software como Blender, Sketcup, solidworks, Catia, AutoCad...).

Exportamos el archivo a .stl(por ejemplo, si creamos un soporte en 3D y queremos imprimirlo, pieza_soporte.stl).

Cargamos la pieza en el programa RepetierHost. La figura debe aparecer en el cuadro de impresión.

Generamos con el Slicer el G-code de la pieza( El programa crea todas las coordenadas y movimientos que deben realizar los motores para forma la pieza en láminas)

El Marlin.h se encarga de ajustar los parámetros de impresión establecidos previamente.
Si observamos fallos en la impresión podemos ir ajustando manualmente los parámetros desde el programa RepetierHost o desde el programa cargado en la placa Arduino(aunque es más lento y costoso)

La interfaz del RepetierHost, donde podemos ver el espacio de impresión:


En el menu "control manual", podemos comprobar el funcionamiento de los motores, el deslizamiento de los rodamientos, y la correcta tensión de las correas moviendo cada eje.

Una vez comprobado que todo funciona correctamente, realizamos un "homing", que consiste en un proceso en el que el programa comprueba donde se encuentra en punto inicial que es donde se coloca el final de carrera; Los motores mueven cada eje hasta que detecta el final de carrera y se detiene.Para detenerse  en vez de colocar otro final de carrera el programa cuenta los pasos que debe realizar el motor hasta llegar al final de la superficie de impresión:


Cuando cargamos la pieza, aparece en el cuadro de impresión.
Para que la impresora 3D entienda los movimientos que debe realizar en la opción "Slice con Slic3r" nos divide la pieza en capas y el G-code con las instrucciones en lenguaje de programación para el movimiento de los motores y las temperaturas de la cama caliente y el extrusor controladas.


Dentro del menu de Slicer, seleccionamos "Configure" para ajustar de forma manual algunos parámetros si notamos ligeros fallos de impresión.

NOTA: Esta opción debe utilizarse si se conoce bien el posible problema, no modificar valores sin conocer la función que realiza.


Para tener un manejo adecuado del software es necesario conocer con detalle que realiza cada modificación que hagamos desde la configuración del Slic3. 

Otra opción de añadir ajustes antes, durante o al final de la impresión es mediante los comandos por G-code introducidos desde la configuración de Slic3r en la pestaña "Printer Setting" ; "Custom G-code".
Por ejemplo, algunos comandos interesantes para cuando termine la impresión y nuestra cama caliente vuelve al origen por la configuración por defecto de la impresora, podemos desactivar esta opción y hacer que la cama se desplace hacia adelante para entregarnos la pieza (G1 Y190, orden de movimiento del eje Y a la posición 190mm desde el origen), o activar coordenadas relativas (G91) y desplazar el eje Z 10mm para cuando termine la pieza se eleve tomando el punto desde la pieza y no desde el suelo de la cama si fuera en coordenadas absolutas (G1 Z10)...

Para conocer de forma clara y precisa los parámetros y comandos que utiliza la impresora 3D podéis descargaros los manuales de Repetier Host y Slic3r con los comandos actualizados y traducidos al español.

Pinchad en el siguiente enlace para acceder a la entrada donde están publicados(pinchar en la imagen del manual para descargarlo o en el enlace)


https://drive.google.com/folderview?id=0B-TeAagct05vfjM2RnhiNW9Gb3JvUmRfOF85cjJFU0g0LU9kWmJhNndqRU5aeUY5NDA2TFU&usp=sharinghttps://drive.google.com/folderview?id=0B-TeAagct05vfjM2RnhiNW9Gb3JvUmRfOF85cjJFU0g0LU9kWmJhNndqRU5aeUY5NDA2TFU&usp=sharing


En principio nosotros empezamos calibrando de forma manual el programa, hasta que para conseguir una buena calidad buscamos por internet la configuración de reprap para aplicarla al RepetierHost.

Para calibrar la impresora 3D, si tienes dificultades consulta la siguiente entrada donde se detalla paso a paso:


A la izquierda, impresión con parámetros ajustados manualmente, a la derecha con los parámetros adecuados: 


Una vez calibrada la impresión es una buena opción comenzar a fabricar piezas para nuestra propia impresora para mejorarla.


Lista para imprimir!
Mejorando nuestra propia impresora 3D

En el siguiente vídeo estamos imprimiendo un soporte para un ventilador en la parte del extrusor que transmite el calor del cabezal a la pieza de plástico:

 



Terminada la primera pieza ya tenemos nuestro extrusor refrigerado por la parte superior y el soporte se calienta menos.






El ventilador no debe refrigerar el cabezal de metal, que es la parte que se calienta, ya que puede provocar que aumente el consumo de energía.

Luego nos descargamos la pieza de soporte del extrusor que es la que más fácilmente puede coger holgura por la elevada temperatura que transmite el extrusor y por tanto perder precisión.


Cuando tenemos un juego de piezas completo de repuesto ya podemos empezar a crear nuevas piezas para nuestro gusto o utilidad.



Para nuestro generador ceiling, hemos impreso una sección del radio de la pieza donde están los imanes para tener una idea del acabado final:



Si queremos obtener buena calidad en la impresión de puentes(línea de filamento aérea sin soporte en la parte inferior) necesitamos el sistema de ventilación que combina un ventilador permanente ventilando el soporte de plástico del extrusor a la pieza y otro ventilador conectado al Arduino(conector D9 de la ramps 1.4)




Ajustando los parámetros de diámetro del hilo de ABS se puede mejorar la calidad de impresión para piezas pequeñas como esta muestra de un puente dental y un colgante de un jaguar.



Otro factor importante es la capacidad de laminado del software que utilicemos(Slic3r, Cura, KiSSlicer, SkeinForge...) y los resultados varían como podéis ver en la siguiente imagen, aunque desde la publicación, los programas mencionados tienen nuevas versiones que mejoran muchos parámetros de forma progresiva.


Para terminar con un acabado brillante podemos utilizar una técnica de pulido para dar mejor apariencia.




Una mejora que podemos aplicar es aislar el flujo de aire lo máximo posible de la cama caliente para no afectar la calidad de impresión en esas zonas.
Utilizamos una lámina de maqueta:



Ajustamos la forma de la lámina para no obstruir el movimiento de los cables.

Nuestro objetivo será conseguir un aislamiento de posibles corrientes de aire.

Si tenemos problemas de ventilación y flujos de aire debemos aislar completamente nuestra impresora de forma similar a las que se comercializan en el mercado:




Una manera económica de reducir el tiempo que tarda la cama caliente en alcanzar la temperatura de impresión es colocar una manta térmica a partir de unas láminas de fibra para el jardín y tener las plantas a salvo de babosas y caracoles pero también pueden tener otro uso...


Otra forma de calibrar de forma más precisa la cama caliente con el eje del extrusor es colocar unos niveles en la cama, el soporte y en el eje X para comprobar que están nivelados.




Si con estas mejoras no conseguimos mejorar nuestra extrusión debemos revisar los pasos de motor/mm y recalcular de nuevo el valor de los pasos y anotarlos en la linea de código correspondiente(AXIS_PER_UNITS).

Una vez tenemos lista nuestra impresora, podemos añadir nuevas mejoras que nos permitirán obtener mayor precisión y reducir el tiempo de calibración notablemente.




El auto nivelado de la cama caliente. 

En el marlin, existe una configuración donde podemos activar esta opción, donde a parte de hacer el homing del eje Z, también realiza una calibración de las cuatro esquinas de la cama caliente, correspondientes a los comandos en g-coge G28 y G29.



 


 Para utilizar el final de carrera acoplado al extrusor utilizamos un servo motor conectado a la placa Ramps 1.4 en los conectores indicados:



Su diagrama de conexión para final de carrera, con una entrada de datos y dos de alimentación:



Una vez que tenemos la activación del servo motor lista, colocamos el final de carrera en la patilla móvil, dentro del mercado podemos elegir distintos tipos de finales de carrera, mecánicos( resistentes pero se activan por contacto), ópticos(precisos y sin contacto) o también magnéticos( precisos y sin contacto).





La patilla móvil varía según el tipo de sensor que utilicemos:



 El final de carrera debe ir conectado donde estaba el final de carrera del eje Z.

En el código de Configuration.h buscamos la parte donde se encuentra "Bed Auto Leveling":

 

Para activar esta opción basta con borrar las barras // al principio de la línea de código y ya tenemos activado el auto nivelado.
En las siguientes lineas delimitamos un cuadrado donde se realizaran las mediciones.

Cargamos el marlin y ya tenemos listo el auto nivelado en Arduino.

Para ver nuestro avance, realizamos una prueba para comprobar que el servo se activa cuando nivelemos la cama caliente.

Para indicar al servo el ángulo que debe recorrer utilizamos el siguiente comando M280 P0 S(ángulo del servo), por ejemplo (M280 P0 S90 ó M280 P0 S180)

Una vez medido el correcto funcionamiento, podemos dejar el valor el la linea de código correspondiente a los servo motores:



#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, (ángulo para calibrar),(ángulo posición de reposo)}

El siguiente paso es dejar el extrusor en el centro de la cama caliente, desplazando con el control manual, y una vez el extrusor esta en esa posición ejecutamos en el G-code la orden G92 X0 Y0 Z0

Luego subimos el eje Z lo suficiente para que el servo realice la medición con el brazo vertical en posición de medida, y bajamos el eje Z lentamente hasta escuchar el clic del final de carrera. Ejecutamos el comando M114 y nos dará valores de medida que luego anotaremos en el marlin en la siguiente linea de código:


#define X_PROBE_OFFSET_FROM_EXTRUDER -69.8
#define Y_PROBE_OFFSET_FROM_EXTRUDER 30.2
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.45  //Ajusta altura del sensor a la plataforma


Estas coordenadas (-69.8, 30.2, 12,45) son las que medimos anteriormente de forma manual, pero multiplicadas por (-1) ahora las realizará automáticamente en la medición.
Con este paso conseguimos que la patilla del servo que realiza la medición este a una posición relativa de la punta del extrusor que es como se desplazaba anteriormente.

Ejecutamos G28(home de todos los ejes)
Ejecutamos G29(toma medida en varios puntos)

Si todo funciona correctamente abrimos Slic3r y en Printer Setting; Custom G-code ;Start G-code añadimos:
G28; home all axes
G29; Auto Bed Leveling

La siguiente parte de código:
 Se establece el tiempo de encendido del servo:

 Esta parte del código establece el punto donde se realiza el homing Z antes de realizar el Auto Level:


Configurar parámetros para hacer el homing o establecer la velocidad de desplazamiento de cada eje durante el homing:

Se recomienda no tener velocidades excesivamente rápidas que causen vibraciones y errores de medición.


Por último establecer los parámetros de aceleración adecuados.

 Con estos pasos tenemos configurado el Auto Bed Leveling en nuestra impresora 3D.

En el siguiente video podeis ver un ejemplo de muestreo para calibrar en 9 puntos de la cama caliente:



 Doble extrusor.

Las ventajas de disponer de doble extrusor permiten combinar varios colores  o imprimir en distintos materiales para una misma impresión.

Para la Prusa i3, los tipos de extrusores dobles que encontramos en el mercados son de diferentes tipos:

-Bowden: Este tipo de extrusión permite mayor velocidad de extrusión al colocar el motor paso a paso separado de la pieza con el cabezal del extrusor, disminuyendo el peso.


Su inconveniente es que necesita una guia para introducir el material sin doblarse.




 Sin embargo, en internet podemos encontrar algunos diseños que unen en la misma pieza el conjunto completo incluido el motor para reducir la distancia al introducir el filamento:



El tipo de extrusor normalmente utilizado es el E3D:

 

Accionamiento directo:Este tipo de extrusor destaca por su diseño compacto, sin ruedas reductoras, ideal para colocar ambos extrusores muy próximos.

El eje del motor incorpora directamente el tornillo moleteado.

El extrusor completo presenta un buen acabado:



Para su implementación en doble extrusor debemos tener en cuenta sus reducidas dimensiones:
El modelo más utilizado es el MK7, pero en el mercado podemos encontrar nuevas mejoras con el diseño MK8, aunque todavía es pronto y no se conocen demasiados detalles.

Visita nuestra entrada sobre la Sirius, una impresora 3D con doble extrusor independiente, capaz de combinar materiales e imprimir dos piezas a la vez.



Muestras de Impresión y algunos avances...

Aquí podéis ver algunos ejemplos que podéis encontrar en internet de algunas aplicaciones domesticas y cotidianas...

Para arreglar un tirador de una puerta.

Un exprime limones...


¡Incuso unos zapatos!¡Lámparas de diseño!




Una guitarra eléctrica con un diseño nuevo



Las máquinas de Theo Jansen, que se mueven solas por la playa podemos replicarla si conseguimos bastante calidad de impresión
 


Con un escaner 3D podemos calcular con bastante precisión una protesis para aliviar el dolor y mejorar la sujección de una articulación dolida.

Como podéis ver en la imagen existen distintos tipos de colores de ABS, incluso uno que brilla en la oscuridad, aunque proximamente comentaremos algunas observaciones en cuanto al tipo de color ya que podrían afectar ligeramente a la temperatura de extrusión



Actualmente nuestro trabajo se basa en la elaboración de hilo de ABS a partir de piezas mal impresas o de prueba para reconvertirlas de nuevo a filamento, próximamente comentaremos los resultados y algunas noticias nuevas sobre reutilizar incluso botellas de plástico, tapones... para convertirlas a filamento para impresoras 3D.











Para este propósito necesitaremos revertir el proceso, volviendo a calentar el plástico a su temperatura necesaria para adquirir un cambio en su estructura volviéndose más líquido y moldeable y luego una vez este en filamento volverlo a enfriar para que no sufra cambios y deformaciones.















Una forma de reciclar una pistola de silicona y usar el extrusor para crear de nuevo filamento de plástico, necesitaremos fabricarnos un soporte resistente al calor en forma de embudo para ir introduciendo el plástico en pedazitos, bolitas... al extrusor e ir recogiendo el hilo, enfriándolo y volviendo a enrollar.



En fin las aplicaciones parecen infitas con la gran utilidad que presenta una impresora 3D.

Las nuevas tecnologías que se están aplicando de manera similar es la extrusión de diferentes materiales(ver nuevos materiales de impresión) o materiales mixtos para mejorar el ABS o PLA con nuevas propiedades  (ver propiedades ABS y PLA)


Podemos encontrar extrusores de chocolate para crear figuras, metal o madera en polvo para tener diferentes acabados, pirografía, cortadora láser para láminas de metal, fresadoras, soldadoras de precisión...





La creación de cadenas de preparados será una realidad en pocos años gracias a la implantación de esta tecnología.


 La gran precisión se puede utilizar para realizar tatuajes a partir de un boceto en papel, no todos los buenos dibujantes tienen la capacidad de hacer tatuajes, las nuevas tecnologías permitirán grandes avances y perfeccionamiento en este campo.



Esta precisión y buen acabado son ideales para acoplar las nuevas prótesis del futuro hechas a medida para cada persona.












El concepto es el mismo, un robot controlado por un software que crea las coordenadas cartesianas de movimiento(X, Y, Z), lo que se reemplaza es el extrusor y la cama caliente por otro tipo para trabajar diferentes aplicaciones, como soldar pistas de estaño, o una máquina de coser.








Os dejamos con las nuevas mejoras, investigando y mejorando en todo lo posible y disfrutando de imprimir con solo pulsar un botón.


Un saludo a todos, 
Ingenio Triana.





20 comentarios:

  1. super espectacular gracias por compartir la informacion dios lo bendiga

    ResponderEliminar
  2. Buenazo gracias, solo un detalle los enlaces no funcionan

    ResponderEliminar
  3. Hola Edwin,

    los enlaces estan revisados y funcionan perfectamente, quizás para poder ver el contenido del primer enlace necesitas tener instalado el plugin Unity web player.
    Muchas gracias de todas formas y si tienes problemas para poder ver algún enlace notificanoslo y te lo enviaremos a tu correo.

    Un saludo, Ingenio Triana.

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

    ResponderEliminar
  5. una consulta, mi ramps calienta solo el extrusor al conectar la fuente y no para de calentar, se puede bloquear esa salida y colocar el extrusor en el conector del medio? como lo configuro?

    ResponderEliminar
  6. Buenas tardes,
    Si tu ramps calienta solo el extrusor, partiendo de la base que tienes el gcode en tu arduino compatible con la prusa i3, descargado de reprap o clone wars, puede ser un problema de conexión.
    Revisa que manualmente puedes activar el calentamiento tanto del extrusor y la plataforma.
    Si notas que aumenta la temperatura de ambos pero arduino no registra ese incremento es problema del termistor, revisa el estado de este componente, que suele estar cerca de la resistencia donde calienta la boquilla del extrusor.

    Cambiar de salida es posible, y configurar arduino se puede, pero te recomiendo que previamente no toques nada de código y revises si falla la conexión o el termistor.

    Un software de manejo manual de motores, extrusor, etc puede ser Repetier-Host o Pronterface.

    Saludos y esperamos que esta información te sea de utilidad.

    ResponderEliminar
  7. Hola que tal, he tenido problemas al momento de mover dos motores paso a paso al tiempo no lo he conseguido, lo que deben hacer lo motores es moverse hacia una misma dirección al tiempo, luego un motor hacia una dirección y el otro hacia la otra dirección pero ambos al tiempo, si me pudieras ayudar seria grandioso lo que pasa es que estoy tratando de hacer un proyecto pero programando en arduino ó en “C++” solo me permite hacer el movimiento de un solo motor por lo que su funcionamiento es secuencial, no se si de casualidad exista una librería o una forma de hacer que esto sea posible, de nuevo muchas gracias si me puedes ayudar, y por cierto gran explicación la que tienes aquí muy completa.

    Saludos desde Colombia-Bogotá D.C.

    ResponderEliminar
  8. Hola,

    Con la información que aportas puedo decirte que el problema secuencial ocurre cuando la lectura de información tiene un ancho, y la información que le envias con el movimiento de varios motores supera ese ancho de banda, entonces se encadenan las instrucciones en un proceso denominado "pipeline". Para evitar la acumulación de instrucciones y ralentizar el funcionamiento de la máquina, puedes aumentar ese flujo de información.
    Para hacerlo, puedes aumentar los baudios en la comunicación entre arduino y el PC.
    Un valor que funciona bien son en torno a 9800 baudios. Prueba a incorporar en tu código de aruino el comando para establecer los baudios y prueba de nuevo a enviar las mismas instrucciones que anteriormente te daba problemas y coméntanos tus resultados.

    Un saludo,
    Ingenio Triana.

    ResponderEliminar
  9. Hola que tal he leído tu artículo y me parece genial.
    Te comento yo no se mucho acerca de estos temas pero me regalaron una prusa i3 sin pantalla lcd y en todos los tutoriales que he visto para imprimir ocupan la pantalla yo he tratado de imprimir desde la computadora pero en el programa slic3r no me aparece disponible la opción para imprimir mi impresora tiene la placa melzi y cuando la conecto a la computadora prende el foco rojo pero no detecta la impresora el programa que podrá ser ojala puedas ayudarme.
    De antemano gracias
    Aldo

    ResponderEliminar
    Respuestas
    1. Hola Aldo,
      Prueba a instalar los drivers de arduino, la comunicación puede ser similar a la placa Melzi y te sirvan los mismos controladores.
      Luego instala repetier host, y ejecuta el slic3r desde el repetier host que tiene esa opción integrada.
      De esta forma, deberías poder manejar tu impresora 3D desde el PC.

      Un saludo.

      Eliminar
  10. Acabo de descubrir este blog y me he quedado con la boca abierta, tanto por el nivel como por el detalle de las explicaciones.

    Quiero iniciarme en el tema impresión 3D sin grandes gastos. ¿A cuánto podría ascender la lista de materiales que necesitamos?

    Gracias por vuestra info y por el trabajo que hacéis.

    Saludos.

    ResponderEliminar
    Respuestas
    1. Hola,

      En primer lugar, nos alegra saber que la gente valora nuestro contenido y el esfuerzo en divulgar el conocimiento.
      Como era de esperar, el mercado chino ha llegado con fuerza en la producción de impresoras 3D, por tanto los precios han bajado mucho y actualmente, puedes adquirir una impresora 3D modelo Prusa i3 básica por menos de 400€ ya montada, aunque venga calibrada, siempre tienes que refinar algo la máquina.
      Si lo que buscas es aprender a construir y entender el funcionamiento de una impresora 3D, los kits de montaje suelen estar casi por el mismo precio y comprarlo por piezas sueltas puede bajar el coste algo más, aunque debes estar muy seguro de que no se te olvidan detalles a la hora de realizar la compra por piezas sueltas.
      Es una manera de aprender bien a manejarla y entender tu propia máquina, además de saber repararla, se aprende la forma de ampliarla y tenerla en mejora constante, pero requiere de mucho tiempo y dedicación.
      Comprar una impresora 3D de otras marcas y modelos comerciales, pueden superar los 1.000€ y llegar hasta cantidades muy superiores, que van desde 4.000€ a 30.000€ y a partir de este precio existen muchos modelos de uso industrial de los que desconocemos más detalles.

      Esperamos que esta información sea de utilidad y quede tu pregunta respondida.
      Un saludo,
      Ingenio Triana.

      Eliminar
  11. que tal quisiera saber como puedo desarrollar una cama caliente de aluminio de 60 x 60 con pirometros y ventilacion si me podria ayudar gracias

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

    ResponderEliminar
  13. Hola buenas, primero de todo felicitaros por todo lo que estais haciendo, y segundo quisiera saber cual es el presupuesto inicial aproximado que se requiere para construirla. Gracias

    ResponderEliminar
  14. Hola, Gracias por valorar nuestro trabajo. En segundo lugar, el precio puede varias. Actualmente desde china puedes obtener un kit para montar la impresora 3D desde 250€.
    Algunos incluso más barato, pero de dudosa calidad y precisión.

    Las impresoras tipo reprap, como la Prusa i3, son bastante económicas por que muchas piezas estan estandarizadas, como rodamientos, motores o acoples que utiliza.

    La parte más costosa es el marco. Por eso nosotros inicialmente lo construimos en madera. Con la desventaja de que con el uso, la madera pierde firmeza y los tornillos comienzan a aflojarse.

    Con esta información, te recomendamos obtener un kit de alguna web proveedora de las piezas y el precio entre 250€ y 500€. Dependiendo de la calidad de los materiales este rango es adecuado.


    Esperamos que esta información te sea de utilidad,


    Un saludo,
    Ingenio Triana.

    ResponderEliminar
  15. Muchas gracias por la informacion, me ha servido mucho.

    Un saludo

    ResponderEliminar
  16. Hola es posible adaptar esto a la Lion 2? Me va muy bien con ella pero quiero expandir un poco sus capacidades

    ResponderEliminar
  17. Excelente. Tambien me ha servido la Lion 2, es un equipo alucinante

    ResponderEliminar
  18. ¿Han podido probar el autonivelado? Me han dicho que es muy bueno pero la verdad creo que sera cuestion de consultar con ellos mismos antes de hacer una inversion, el link es este por si os interesa http://www.leon-3d.es

    ResponderEliminar