Obtener buenos resultados de nuestra impresora depende de unos cuantos factores, como la robustez mecánica de la misma, la suavidad de los mecanismos de los ejes, el correcto ajuste del firmware y la configuración del fileteador. Además todas estas variables se pueden interferir entre ellas confundiéndonos, por lo que cuando hagamos pruebas lo haremos siempre tocando sólo una cosa a la vez, pera poder ver el resultado claro de esa modificación. Hay muchas impresoras diferentes, aunque los procedimientos que vamos a explicar se pueden adaptar fácilmente de una a otra, a lo largo de estas fichas ilustraremos una prusaI3, por ser uno de los modelos mas populares. 1. Puesta en marcha de la impresora En la puesta en marcha, o primera configuración haremos un primer ajuste de la impresora utilizando los valores de las tablas o los calculados para configurar nuestra impresora, después en el proceso de calibración ajustaremos los valores, calibre en mano, para ajustar las pequeñas desviaciones que tengamos. En la puesta en marcha cubriremos estos puntos: ● Configurar la intensidad y el microstepping de los drivers. ● Calcular los pasos por mm de los ejes. ● Conexiones en las principales placas. ● Configurar los valores en el firmware. Calibración de la impresora: ● Tamaños y aporte con el cubo de calibración espiralizado. ● PID del calentador. 2. Drivers de potencia; intensidad y microstepping
2.1 Microstepping
2.2 Intensidad La intensidad (Amperios) que se le mandan a las bobinas es otro parámetro que hay que tener bien ajustado. Con poca intensidad los motores no tendrán suficiente fuerza para moverse con seguridad y perderán pasos en cuanto cojan velocidad o encuentren más rozamiento del esperado en eje. Por la contra si la intensidad es demasiada los motores y los drivers se calentaran mas de lo debido reduciendo su vida útil. Además al sobre-calentarse es posible que se active el circuito de protección del controlador que desconectara brevemente el controlador, causando que el movimiento se interrumpa. ¿Cual es la intensidad que le tengo que aplicar al motor? La intensidad a la que regularemos los drivers dependerá del tipo de mecanismo al que vaya conectado el motor, algunos requieren más fuerza que otros para moverse. Potencia máxima del motor. Primero empecemos por averiguar cual es la potencia máxima que le podemos aplicar al motor (manteniéndonos dentro de los parámetros del fabricante). Para ello miraremos el motor o el datasheet del mismo. El clásico NEMA 17 que se utiliza en la mayoría de las impresoras 3D suele tener una pegatina en el lado en la que pone 3'6V 2'5A. Esto quiere decir que si enchufamos directamente una de las bobinas del motor a 3'6 Voltios consumirá 2'5Amperios a plena potencia. Con estos dos datos y la fórmula de la potencia podemos calcular la potencia del motor. P = V*I ; P = 3'6*2'5 ; P = 9W Este motor desarrolla una potencia máxima de 9W por bobina. Cogiendo el voltaje de nuestra fuente de alimentación (generalmente 12V) calcularemos la intensidad equivalente a los 9W. Para ello utilizaremos la fórmula de la potencia con el voltaje de nuestra fuente de alimentación. P = V*I ; I = P/V I = 9W/12V ; I = 0,75A 0,75A es la intensidad máxima (por bobina) que le podemos suministrar al motor respetando los parámetros de fabrica, y en la mayoría de las situaciones no es necesario tanto. El ajuste se hará entre la potencia que permita mover el mecanismo con la fuerza suficiente y sin superar 0.75A. Como referencia podemos usar estos valores con los que se suelen ajustar las impresoras 3D. Valores de referencia: ● Mecanismos 'ligeros': Como podría ser el eje X o Y de una Prusa. 0.3A - 0.4A. ● Mecanismos 'pesados' : Como podría ser el eje Z de una Prusa o el extrusor 0.6A - 0.8A 2.3 Métodos de ajuste de la intensidad en el driver La intensidad que el driver le entrega a las bobinas del motor se regula mediante un pequeño potenciómetro, en forma de tornillo, que hay en la placa del circuito. Girándolo aumentaremos o disminuiremos la intensidad. Es importante apuntar que el DRV8825 no solo se coloca al revés en el slot, sino que también se regula al revés que el A4988
1. "Como todos los demás".
2. Medir la intensidad de las bobinas
3. Medir Vref para calcular la intensidad
2.4 ¡Precaución! Los drivers de los motores son elementos muy sensibles y se dañan fácilmente, algunas de las cosas que los pueden estropear sin que hayan llegado a dar siquiera su primer paso: ● Colocarlos desplazados de sus pines, o al revés.
● Bobinas del motor mal conectadas. ● Sobrecalentamiento. ● Si durante el ajuste de la potencia le das sin querer una vuelta completa al potenciómetro (cruzar de mínimo a máximo) el driver se puede quedar bloqueado y hay que desconectarlo de la corriente para que vuelva a reaccionar. ● Por descarga electrostática. Asegúrate de manejarlo con cuidado, no tocar pistas o pines que no sean de tierra y de descargarte de electricidad estática (por ejemplo tocando la carcasa de un PC conectado a tierra o mejor, utilizar herramientas específicas para esto) antes de manipular electrónica sensible como los drivers o la propia placa controladora 3. Pasos por milímetro Los pasos por mm es una variable clave para conseguir que los resultados de la impresión sean fieles a las medidas que les hemos dado. Este valor determina cuantos pulsos (pasos) le tiene que mandar el microcontrolador al driver del motor para que el eje se mueva 1.00mm. Dependiendo de los fabricantes de los materiales, mínimas desviaciones en la construcción de las poleas o varillas pueden generar pequeñas diferencias en los pasos por mm que luego ajustaremos en el apartado de calibración. Sin embargo, los valores de estas tablas son un buen punto de partida. Los valores de los pasos están calculados para el driver de potencia en modo 1/16 de paso (Ver apartado de Microstepping).
La calculadora de Josef Prusa.
4. Diferentes electrónicas utilizadas en Impresoras 3D En el siguiente sección vamos a hacer un repaso a las electronicas más utilizadas en las impresoras 3D: 4.1 RAMPS 1.4
Esquema de conexiones:
Precauciones: - Verifica siempre que los finales de carrera están bien conectados para no fundir el regulador. -La polaridad de los cables de alimentación en las tomas de alimentación no es la misma en las tomas de hotend y cama caliente, comprueba siempre las inscripciones de la placa. -Asegúrate de que todos los pines de la ramps han encajando bien en el arduino.
4.2 Megatronics V2
Precauciones: - Verifica siempre que los finales de carrera están bien conectados para no fundir el regulador. Información extra: Numero de pin de la toma FAN2: 6 (D6) Para impresión autónoma hay que colocar el jumper de selección de alimentación(Junto al conector usb) 4.3 SAV MKI
Precauciones: ● Verifica siempre que los finales de carrera están bien conectados, la SAV lleva protecciones contra corto-circuito, aun así mejor no hacerlas trabajar . 4.4 Sanguinololu
Precauciones: ● Verifica siempre que los finales de carrera están bien conectados para no fundir el regulador. ● No encender la fuente de alimentación si los motores no están conectados, el microcontrolador puede explotar. ● Algunas versiones de esta placa no llevan separación entre la linea de 5V del regulador y la del USB, en algunos portátiles que que no suministran 5V exactos en el USB puede causar flujos de corriente inesperados y quemar el cable USB o dañar el equipo. Si el cable USB se calienta al conectarlo al ordenador mejor no uses la Sanguinololu con ese equipo. 5. Configurando el Firmware Los firmwares para las impresoras 3D normalmente tienen montones de parámetros para poder adaptarlos a un gran abanico de opciones y construcciones, al configurar el firmware debes adaptarlo a como es tu impresora, la mínima configuración para poner a funcionar nuestra maquina seria: ● Tipo de termistor de los calentadores. ● Pasos por mm de los ejes. ● Tamaño de los ejes. ● Lógica de los finales de carrera(NO/NC). Aun así hay un montón de parámetros más, en esta ficha explicaremos los más comunes. Tomaremos como referencia los parámetros del firmware Marlin 1.0.2, para una Prusa i3. ● Velocidad de conexión: #define BAUDRATE 115200 Con este parámetro se configura la velocidad de la conexión serie a la impresora,no afecta mucho a la velocidad de impresión. 250000 da problemas en algunos equipos/electrónicas clónicas. 115200 Es un valor que suele funcionar bien en todos los equipos. ● Tipo de placa base #define MOTHERBOARD BOARD_RAMPS_13_EFB Con este parámetro configuraremos que tipo de electrónica tenemos, reemplazando BOARD_RAMPS_13_EFB por el nombre o código de nuestra placa sacado del boards.h Códigos de las placas mas comunes:
BOARD_RAMPS_OLD 3
● Nombre de la impresora #define CUSTOM_MENDEL_NAME "Notillus" Si descomentamos esta linea podemos ponerle un nombre a la impresora que después aparecerá en el display ● Tipo de termistor
#define TEMP_SENSOR_0 5
Los más típicos son los tipo 1(EPCOS Genérico), los 5(semitec) para los que vienen en los hotend tipo Jhead, y los 7 para los Honeywell que vienen instalados de serie en los budaschnozzle.
// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
● Protecciones de temperatura
#define HEATER_0_MAXTEMP 260
Máxima temperatura que puede alcanzar el sensor antes de desconectar la impresora por seguridad. ● Finales de carrera: +Pullups Si estamos usando finales de carrera auto-alimentados u ópticos entonces hay que desconectar los pullups, comentando la linea del eje concreto. Si por lo contrario estamos usando finales de carrera mecánicos los dejaremos conectados.
#ifdef ENDSTOPPULLUPS
● Invertir la lógica Si los finales están conectados al normalmente cerrado(al pulsar desconecta) se configura a false, y si están conectados el normalmente abierto(al pulsar conecta) se configura a true.
const bool X_MIN_ENDSTOP_INVERTING = false;
● Desactivar los finales de carrera no presentes Algunas máquinas solo tienen presentes los finales de carrera de posiciones mínimas(0,0,0), como podría ser una Prusa i3, si es el caso podemos desactivar los finales de carreras que no están presentes descomentando la linea pertinente.
#define DISABLE_MAX_ENDSTOPS
● Dirección de los ejes Si el motor no gira para donde esperamos podemos darle la vuelta al sentido de giro por software con estas opciones.
#define INVERT_X_DIR false
● Posiciones máximas Con estos valores configuraremos las posiciones mínimas y máximas que los ejes pueden alcanzar. Estos valores sirven como sistema de seguridad para que el eje no siga avanzando y golpeándose en los extremos.
#define X_MAX_POS 120
-Velocidad de 'Homing' {X mm/min , Y mm/min, Z mm/min, E mm/min} #define HOMING_FEEDRATE {60*60, 60*60, 4*60, 0} Con estos parámetros se configura la velocidad a la que los ejes se moverán en busca del final de carrera. Este valor es en milímetros por minuto, por eso se suele expresar como una multiplicación : 60(mm)*60(segundos). El extrusor no hace home, y por eso el valor de Homing esta a 0. ● Pasos pormilímetro {X ppm , Y ppm, Z ppm, E ppm} #define DEFAULT_AXIS_STEPS_PER_UNIT {80, 80, 4020, 800} En este parámetro se define cuantos pasos hay que mandarle al controlador del motor de cada eje para que ese eje se mueva 1mm. En el apartado de puesta en marcha y calibración veremos como calcular estos valores. Los valores de este ejemplo son para una prusa i3 con extrusor con reductora tipo gregs. ● Máximavelocidad{X mm/s , Y mm/s, Z mm/s, E mm/s} #define DEFAULT_MAX_FEEDRATE {300, 300, 2, 25} Estos parámetros limitan la velocidad máxima de los ejes, evitando que los mecanismos intenten ir a velocidades no seguras. Valores de referencia para una Prusa i3 ● Aceleraciones {X mm/min , Y mm/min, Z mm/min, E mm/min}
#define DEFAULT_MAX_ACCELERATION {9000,9000,100,10000} // X, Y, Z, E
Máxima aceleración en mm/minuto de los ejes, valores de referencia para una Prusa i3 ● Activar EEPROM Si activamos la EEPROM podremos reconfigurar después el firmware sin necesidad de volver a volcarlo, pues habilitara una zona en la memoria del microcontrolador para almacenar los cambios que hagamos a los valores desde el display, o con comandos GCODE. #define EEPROM_SETTINGS ● Pantalla LCD Dependiendo del LCD que tengamos, si tenemos uno, habremos de descomentar la linea adecuada para nuestro display, los mas populares son los conocidos como 'Smart Discount' que tiene 4 lineas de caracteres y el 'Full graphic' que tiene una pantalla de 128x64pixeles. #define REPRAP_DISCOUNT_SMART_CONTROLLER
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
6. Calibración 6.1 Tamaño y aporte de material: El tamaño final de un objeto no solo depende de cuanto se mueven los ejes (pasos por mm), el ajuste del aporte de material influye también. Si el aporte de material es demasiado generoso veremos que los objetos crecen en las esquinas, y los agujeros serán más pequeños porque ese 'extra' de materia tendera a expandirse. Para ajustar estos dos parámetros vamos a imprimir un cubo espiralizado en cura, lo que nos permitirá probar mecánica y aporte en una sola prueba. El modo espiralizado de Cura
El cubo de calibración En esta prueba imprimiremos un cubo espiralizado de 50mmx50mmx50mm, y con el calibre comprobaremos los tamaños de las paredes así como el tamaño del cubo. Para esta prueba podemos usar un cubo descargado de internet o crear el nuestro como se explica en el capitulo de diseño de este manual.
Una vez impreso este cubo nos servirá para comprobar el tamaño y el aporte de nuestra maquina. *Calibracion de los pasos por mm
Una vez impreso el cubo le medimos con el calibre, y comprobamos si tiene las medidas que debería (50mm en cada lado y 1mm de grosor en la pared), si no lo fuera podemos ajustar los pasos por mm con una regla de tres: NuevosPasosPorMM =PasosPorMM * tamaño esperado / tamaño real Por ejemplo: En la prueba teníamos configurado el X con 80ppmm, y el cubo al medirlo en la dirección X tenia 49.67mm, la formula para ajustarlo quedaría: PasosPorMM = 80 * 50 / 49.67 Pasos por mm eje X = 80.53 ppmm Podemos hacer el proceso para los tres ejes XYZ, y también con el extrusor, pues la pared del cubo debería de medir 1mm. Para cargar los nuevos valores lo podemos con el comando M92: M92 X80.53 o para cambiar los pasos en todos los ejes: M92 X80.53 Y80.53 Z4020 E782 Y si tenemos la EEPROM activada podemos hacer los cambios permanentes con el comando M500 6.2 Temperatura Cada impresora tiene su propia temperatura de impresión óptima, y por eso es siempre difícil recomendar una temperatura, los valores que funcionan bien para una impresora pueden no hacerlo bien en otra. Esta variabilidad de temperaturas se suele deber,entre otros factores, al uso de termistores como sensor de temperatura, el termistor o termo-resistor, es un componente cuya resistencia varia en función de la temperatura. Es una solución barata para medir la temperatura y relativamente fiable, pero sensible a que diferentes montajes modifiquen ligeramente el valor de resistencia que da el sensor(longitud de los cables y calidad de las soldaduras p.e.). En general nos ajustaremos a los valores del fabricante del plastico que estemos usando, aunque hay que tener en cuenta que depende de la maquina puede variar +-15 grados. Ajuste del PID La regulación de temperatura de los calentadores de los hotend se suele hacer mediante un controlador PID, que es un mecanismo de control por realimentación ampliamente utilizado en sistemas de control industrial. Este calcula la desviación o error entre un valor medido y un valor deseado. [http://es.wikipedia.org/wiki/Controlador_PID] Este algoritmo de control considera tres parámetros para su funcionamiento ; Kp :Parte proporcional Kd :Parte derivativa Ki :Parte integral
Los valores los podemos configurar en el firmware y volver a cargarlo, o si tenemos la EEPROM activada configurarlo con el siguiente comando gcode: M301 P43.34 I1.94 D242.33 Y hacerla permanente salvando los valores en la EEPROM con el comando M500 7. Apéndice: Comandos Gcode G-code es el nombre del lenguaje con el que hablan las maquinas de control numérico (cnc), son una serie de comandos para activar, desactivar o configurar sus funcionalidades a través del terminal serie. Con estos comandos podemos reconfigurar la impresora sin necesidad de volver a cargar el firmware. Para una explicación mas en profundidad mirad: http://es.wikipedia.org/wiki/G-code. Aqui os dejamos una pequeña guía con algunos de los comandos mas útiles para las impresoras 3D: http://wiki.makespacemadrid.org/index.php?title=G-code Movimiento/posición de la maquina: G28 : "Home" Ir a la posición inicial de los tres ejes, también se puede usar con argumentos para hacer el 'home' en solo uno de los ejes. Ejemplos: G28 -Hacer 'home' en los tres ejes G28 X0 -Hacer 'home' en el eje X G0/G1: "Move & rapid move" En las reprap no suele haber diferencia entre G0 y G1, son comandos para desplazar el cabezal. Ejemplos: G1 X0 Y0 Z5 - Mueve la cabeza a la posición 0, 0, 5. G1 X5 Y5 F3000 - Mueve la cabeza a X5 Y5 a velocidad F3000 (3000 mm / min). G1 X5 Y5 E5 F3000 - Mueve la cabeza a X5 Y5 a velocidad F3000 (3000 mm / min) extruyendo 5mm de material. Como la reprap es una maquina de estados si omitimos alguno de los parámetros(X,Y,Z,E) se usara el ultimo valor.M114 : "Get position" Devuelve la posición actual del cabezal. M120 : "Push" Guarda la posición del cabezal. M121 : "Pop" Recupera la posición del cabezal. M220 : "Modificar la velocidad de impresión" Modifica la velocidad de impresión mientras esta imprimiendo Parámetro 'S' para ajustar la velocidad. Ej. M220 S120; Aumenta la velocidad de impresión un 20%; M220 S80 ; Reduce la velocidad de impresión un 20%; M221 : "Modificar el multiplicador de extrusión" Modifica el multiplicador de extrusión mientras esta imprimiendo. Un valor mas alto extruira mas material. Parámetro 'S' para ajustar la velocidad. Ej. M220 S120; Aumenta la cantidad de material un 20%; M220 S80 ; Reduce la cantidad de material un 20%;Manejo de la EEPROM Si tenemos activada la EEPROM en el firmware, se cargaran automáticamente los valores ahí guardados en la memoria M500 : Salvar los parámetros en memoria a la EEPROM. M501 : Cargar los parámetros de la EEPROM en memoria. M502 : Cargar los valores por defecto (codificados en el firmware) en la memoria. Si se quiere hacer un 'factory reset' primero hay que hacer un M502 para cargar los valores programados en el firmware y después un M500 para salvarlos en la EEPROM Controles del hardware: M17 : Encender motores. M18 : Apagar Motores. M80 : Encender ATX. M81 : Apagar ATX. M106 : Encender ventilador de capa. Acepta como parámetro un byte para controlar la potencia del ventilador. Ejemplo: M106 S255 - Enciende el ventilador de capa al 100%. M106 S128 - Enciende el ventilador de capa al 50%. M107 : Apagar ventilador de capa. Configuración del hardware: M92 : "Steps per mm" Ajusta los pasos por milímetro de los motores. Acepta como parámetros 'X','Y','Z' y 'E', este ultimo para ajustar los pasos del extrusor Ejemplo: M92 X80 Y80 Z80 E80 M201 "MAX_ACC" - M202 "MAX_TRAVEL_ACC" - M203 "MAX_DEFAULT_ACC" Estos tres comandos regulan la velocidad máxima de los ejes y el extrusor. Acepta como parámetros 'X','Y','Z' y 'E', este ultimo para ajustar el extrusor. Ejemplo: M203 X200 Y200 Z20 E120 Otros : M999 : "Reset". M302 : "Alow cold extrusion". Permite mover el extrusor con el hotend frío. M300 : "Beeper" Emite un tono por el altavoz integrado. Parámetro S para la frecuencia y P para la duración. Ejemplo: M300 S392 P436 Por supuesto que se puede tocar la marcha imperial con el altavoz: http://wiki.makespacemadrid.org/index.php?title=G-code_music |