Impresora 3D

Grupo 19
David Martinez

1- Introducción

Este proyecto consiste en la implementación de una impresora 3D con materiales reciclados. 

2- Materiales

2.1 Materiales

Nombre Cantidad Precio Unidad € Precio Total €
Arduino Uno 1 8 8
Lector CD/DVD Usado 3 4 12
Controlador Motor Paso a paso A3967 3 2 6
Lapiz 3D 1 14 14
Fuente Alimentación PC 1 14 14
Cables 40 0,05 2
Transistor NPN 2N2221A 1 0,06 0,06

2.2 Herramientas

  • Taladro.
  • Soldador
  • Sierra
  • Multimetro

3- Desarrollo

3.1 Desmontar lector CD / DVD

Primero desmontamos los 3 lectores de CD / DVD para acceder a los motores paso a paso.

3.2 Localizar los pares de cada bobina

Los motores que se utilizan en los lectores son bipolares, están compuestos de dos bobinas, cada una de ellas salen dos cables, el positivo y negativo, lo primero que debemos hacer es reconocer cada pareja de cables, para ello utilizamos un multimetro en modo diodo.

3.3 Soldar cables del lector

En mi caso, utilizare los colores blanco y negro para un par y rojo y amarillo para el otro.

3.4 Probar los motores y lo driver.

Una vez tengamos listos los motores y los driver, probamos cada uno por separado.
Este sencillo código sirve para mover el motor que conectemos de un lado a otro. En este caso los motores recibirán 5V de la fuente (las fuentes de alimentación tiene salidas de 3.3 , 5 y 12 voltios)

void setup() {             
  pinMode(8, OUTPUT);   
  pinMode(9, OUTPUT);
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
}

void loop() {
  for (int c=0;c<1600;c++){
      digitalWrite(9, HIGH);
      delayMicroseconds(250);       
      digitalWrite(9, LOW);
      delayMicroseconds(250); 
   
  }
    if (digitalRead(8) == LOW)
    {
      digitalWrite(8, HIGH);
    }
    else
    {
      digitalWrite(8, LOW);
    }
   
}


3.5 Modificar el lápiz 3D

Desmontamos el lápiz 3D, y buscamos el botón que activa el extrusor para que tire del cable al calentador. Con el multimetro, localizamos los dos puntos del boton que permiten encender el extrusor.
Una vez localizados los dos puntos, los soldamos con mucho cuidado, ya que, si al soldar juntamos partes del botón o del circuito en si, dejará de funcionar el lápiz.

3.6 Montar la estructura de la impresora.

En esta parte simplemente diseñamos la estructura en la que van a ir apoyados los tres ejes, en este caso se utilizará partes de las piezas que hemos desmontado.

3.7 Automatizar el lápiz 3D con arduino.

Después de montar la estructura y de colocar el lápiz 3D, debemos descubrir como encender el extrusor mediante arduino.
En mi caso, el extrusor se encendía al recibir voltaje y al cabo de medio segundo cortarlo. En siguiente código es el que utilicé para encender el lápìz.
void setup() {                
  pinMode(8, OUTPUT); 
  Serial.begin(9600);   
}
void loop() {
  Serial.println(“Voy”);
  encenderApagar();
  
  delay(5000);
  digitalWrite(8, LOW); 
}
void encenderApagar(){
   
  digitalWrite(8, HIGH);
  delay(500);
  digitalWrite(8, LOW);  
}

3.8 Conectando a la fuente de alimentación / laboratorio.

  • Cuando conectemos los 3 motores, deberemos utilzar una salida de 12V para alimentarlos, si conectamos en paralelo los 3 motores con la salida de 5V, no se moverán.
  • El lapiz requiere de 12V para funcionar, podemos utilizar la propia fuente, o emplear el transformador que viene con el lápiz.

3.9 Instalar software GRBL en arduino

Para facilitar el control de los motores utilizaremos el software libre GRBL, en mi caso utilizo la versión (0.9i). 

3.10 Universal Gcode Sender

Con GRBL instalado, podemos cominicarnos con nuestro arduino utilizando G-CODE, hay programas que nos facilitan la vida a la hora de mandar las ordenes a nuestra impresora, en nuestro caso utilizaremos Universal Gcode Sender

3.11 Calibrando los motores la impresora

Dado a que GRBL esta diseñado para funcionar con todo tipo de motores paso a paso, es necesarios indicarle cuantos pulsos debe enviar a cada motor para que este se mueva una distancia determinada (se mide en pulsos por milímetro). Utilizando una simple regla medimos cuanta distancia recorre cuando le indicamos que se mueva un milímetro, si se pasará o no llegase, modificamos los parámetros $100 (X), $101 (Y), $102 (Z). Mi configuración es la siguiente:
  • Eje X esta $100=63
  • Eje Y esta $101=63
  • Eje Z esta $102=63

3.12 Activando y desactivando el extrusor desde GRBL

En GCode, se utiliza el comando M03 y M05 para encender y apagar el extrusor respectivamente. En mi caso, es necesario mandar una serie de mandatos para encender/apagar el extrusor:
S1000
M03
G4 P0.5
M05

4 Esquema Circuito

5 Vídeo impresora funcionando.

6 Problemas encontrados

  • Al soldar los puntos del lápiz 3D, se hizo contacto con un punto que no debería, lo que provocaba que el lápiz no funcionase, fue necesario quitar las soldaduras y volver a soldar.
  • Al conectar los 3 motores a la salida de 5V de la fuente,estos no funcionaban, al probar con la fuente de laboratorio se encendieron al pasarle 12V.
  • Al mandar la señal de encendido desde GRBL al lapiz, este no encendia el extrusor, fue cuando se decidió crear un proyecto a parte para intentar averiguar como encenderlo.
    Después de numerosas pruebas, se descubrió que este lápiz requería recibir corriente y a continuación dejar de recibirla para encenderse y apagarse (a diferencia de otros lápices 3D que se encienden al recibir corriente y se apagan cuando dejan de recibirlo).
    Luego hubo que deducir que mandatos GCode podrían encender y apagar el lápiz.
  • El extrusor empujada más filamento del que el cabezal era capaz de sacar, lo que provocaba que el plástico terminase desconectando el cabezal. Para solucionarlo se tuve que reforzar la unión de la cabeza con el cuerpo utilizando una abrazadera.

7 Propuestas de mejora.

  • Conectar el lapiz a la fuente de alimentación para no tener que requerir de dos enchufes.
  • Utilizar los pines 0 y 1 para comunicar nuestro arduino con otro arduino, de este modo podría añadirse una pantalla táctil, además de todo tipo de conexiones (Bluetooth, wifi, sd card).

También te podría gustar...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *