Control remoto para tu impresora 3D con Raspberry Pi (1ª parte)

Una de las peores partes de imprimir en 3D, es el exceso de tiempo que requieren las impresiones, una pieza de un tamaño considerable puede tardar más de 8 o 10 horas, y lo más recomendable es tener la impresora vigilada, por si ocurriese algo inesperado, que estropease la impresión, para así cancelarla y poder apagar la impresora y evitar el gasto de material, electricidad y como no, poder evitar algún accidente por la temperatura acumulada en el extrusor y la cama de la impresora.

Captura de pantalla 2016-03-28 a las 13.00.53

En esta entrada, voy a mostraros como usando una Raspberry Pi y aprovechándonos de un gran proyecto llamado octoprint, vamos a crear un sistema de control total sobre la impresora, con el que podremos :

-Encender o apagar la impresora de forma remota.

-Enviarnos una notificación al móvil,cuando inicia, termina la impresión, en caso de error de la impresora, o cada cierto tiempo.

-Enviar un archivo he imprimirlo desde fuera de casa.

-Controlar el estado de la impresión en cualquier momento gracias a una webcam conectada a la Raspberry Pi

El material que vamos a necesitar para este proyecto es el siguiente:

  • Una impresora 3D .
  • Una Raspberry Pi ( Yo he usado la Pi model B , creo que es la segunda mas sencilla y barata ).
  • Una tarjeta SD de 8Gb de clase 10
  • Una Webcam
  • Dos módulos de relé para Raspberri Pi o arduino.
  • Conexión a internet.
  • Ganas de enredar un poco.

Pues vamos a empezar por partes, ya que el proceso va a ser un poco largo voy a realizar este tutorial en dos partes, la primera donde aprenderemos a instalar y configurar Octoprint para funcionar y activar los reles desde el propio entorno y la segunda, donde configuraremos las notificaciones y algún otro plugin interesante.

1º – Descargar he instalar la imagen de Octoprint en nuestra Raspberry Pi.

Visitaremos el sitio oficial de Octoprint, y descargaremos la imagen del software y la guardaremos ….

Captura de pantalla 2016-03-28 a las 13.10.08

Una vez descargada, descomprimiremos el archivo .img y lo cargaremos en una tarjeta SD para después ejecutarlo en nuestra Raspberry Pi.

Si usamos OSX usaremos ApplePi-Baker …

Introduciremos la tarjeta SD (aparece en el recuadro de la izq) y la seleccionamos…

Captura de pantalla 2016-03-28 a las 13.24.32

Pulsamos en “Restore Backup” y buscamos la imagen que acabamos de descomprimir…

Captura de pantalla 2016-03-28 a las 13.25.17

Y ahora toca esperar a que termine…

Captura de pantalla 2016-03-28 a las 13.25.53

Captura de pantalla 2016-03-28 a las 13.40.13

 

y en caso de usar Windows, tendremos que usar Win32 Disk Imager …

Abriremos la aplicación…

Captura de pantalla 2016-03-28 a las 13.43.32

Seleccionamos la imagen que acabamos de descomprimir…

Captura de pantalla 2016-03-28 a las 13.44.52

Seleccionamos la unidad donde este la tarjeta SD…

Captura de pantalla 2016-03-28 a las 13.45.11

Pinchamos en “Write” …

Captura de pantalla 2016-03-28 a las 13.45.21

Confirmamos que queremos continuar y a esperar que termine….

 

Una vez cargada la imagen en la tarjeta SD, ya podemos introducirla en nuestra Raspberry Pi, conectarla a una TV y con un teclado USB y cable de red ( para la configuración inicial ) y encenderla…

Una vez arrancada saldrá el siguiente menu, del que vamos a configurar un par de cosas…

En primer lugar, seleccionaremos la primera opción “Expand Filesystem” …

Captura de pantalla 2016-03-28 a las 14.38.37

Cuando haya terminado, aparecerá lo siguiente.. y daremos “OK”..

Captura de pantalla 2016-03-28 a las 14.42.16

Lo siguiente que vamos a hacer, es cambiar la contraseña de usuario, seleccionando la segunda opción “Change User Password” …

Captura de pantalla 2016-03-28 a las 14.42.53

Captura de pantalla 2016-03-28 a las 14.45.45

Nos saldrá una advertencia que deberemos aceptar… y seguidamente nos pedirá que escribamos la contraseña nueva dos veces..


Ahora vamos a configurar la region, idioma y teclado… seleccionando la opción cuatro “Internationalisation Options”

Captura de pantalla 2016-03-28 a las 14.47.33

Dentro de este menú, nos aparecerán tres opciones más…Así que seleccionaremos la primera… ” Change Locale”

Captura de pantalla 2016-03-28 a las 14.48.20

De la lista buscaremos las del idioma que nos corresponda… en mi caso Español…

IMG_1251

Aceptaremos  se añadirán a la lista, y seleccionaremos es_ES.UTF-8

IMG_1252



Continuaremos con la zona horario ” Change Timezone”

IMG_1256

Seleccionaremos “Europa ” ( en mi caso )

IMG_1254

Y “Madrid”…

IMG_1255

Ahora ya podemos pulsar “Finish” y reiniciar la Raspberry Pi…



Ya tenemos un primer paso … para comprobar si esta bien configurada y esta funcionando… podemos teclear en el navegador la dirección IP de nuestra Raspberry (Aparecerá en las lineas de texto al arrancar la Raspberry)..

Si todo esta bien, al cargar la pagina por primera vez, aparecerán las opciones de control de acceso a la aplicación de Octoprint…

Captura de pantalla 2016-03-28 a las 14.57.53

En esta ventana, pondremos un usuario y contraseña para el acceso, que NO son las mismas que las de acceso a la Raspberry…

Captura de pantalla 2016-03-28 a las 15.00.17

 

Pincharemos en “Keep Access Control Enabled” para activarlo…

Ahora ya podemos acceder haciendo Login en la parte superior derecha…

Captura de pantalla 2016-03-28 a las 15.01.37

En mi caso, al hacer Login, me ha aparecido un mensaje de actualización…

Captura de pantalla 2016-03-28 a las 15.03.04

 

Así que vamos a actualizar…. Pincharemos en “Update now” y confirmando el siguiente mensaje…

Una vez actualizado.. ya tenemos el sistema listo para acceder a el… pero antes vamos a apagarlo para conectar el adaptador wifi configurarlo…

Captura de pantalla 2016-03-28 a las 15.53.13

 

Una vez apagado , ya podemos conectar la webcam y la impresora… y encenderlo de nuevo, acceder al entorno de octoprint, y conectarnos a nuestra impresora para empezar a trabajar…

Iniciaremos sesión, seleccionaremos el puerto de conexión y la velocidad (250000 por defecto en Marlin)…

Y ya podremos controlar la impresora de forma remota…

En este punto , recomiendo enredar un poco con el entorno para que podáis ver lo sencillo que es.

En el lado izquierdo, se ven las opciones de conexión con la impresora, y el gestor de archivos, para que podamos subirlos desde el PC o bien poder seleccionar los que tengamos en la tarjeta SD de la impresora, y en la parte derecha, hay 5 pestañas que podemos seleccionar.

Temperature:

Como su nombre indica, muestra en una gráfica el estado de la temperatura del Hotend y de la cama.

Captura de pantalla 2016-03-28 a las 17.01.05

Control:

Muestra una ventana con la imagen de la webcam, y los botones para controlar los motores de forma manual .

Captura de pantalla 2016-03-31 a las 19.11.22

GCode Viewer:

Muestra a tiempo real el estado de la impresión capa a capa.

Captura de pantalla 2016-03-31 a las 19.11.32

 

Terminal:

Muestra la posición y temperatura en cada momento.

Captura de pantalla 2016-03-31 a las 19.11.43

Timelapse Configuration:

Aqui podemos programar una grabación en timelapse de la impresión que estamos haciendo, los videos resultantes son muy chulos.

 

Captura de pantalla 2016-03-31 a las 19.11.56

 

Solo acabamos de empezar, hemos instalado el entorno y ya podemos controlar la impresora ( que no es poco ), a partir de ahora vamos a añadirle alguna opciones… y vamos a empezar por añadir dos módulos de relé a la placa Raspberry , para poder encender y apagar la impresora, y también para poder encender y apagar una luz a 12v conectada a la fuente de alimentación de la impresora…

En primer lugar, voy a mostrar los pines GPIO de los que disponemos en la Raspberry PI…

687474703a2f2f656c696e75782e6f72672f696d616765732f322f32612f4750494f732e706e67

 

En nuestro caso, vamos usar 2 salidas GPIO , la 17 y la 23 y para poder controlarlas tendremos que instalar una librería para poder controlarlos…. empecemos….

Nos conectaremos a nuestra Raspberry o bien a través de la TV o bien a través de un terminal (  putty en windows)

Usuario : Pi

Password : La que hayas puesto en la configuración inicial de la Raspberry ( raspberry por defecto)

Teclearemos los siguientes comandos para instalar la librería wiringPi

  • sudo apt-get install git-core
  • sudo apt-get update
  • sudo apt-get upgrade
  • git clone git://git.drogon.net/wiringPi
  • cd wiringPi
  • git pull origin
  • ./build

Ahora ya podemos controlar los GPIO de la Raspberry Pi… Vamos a probar… podemos usar un led con una resistencia de 1K conectada a los GPIO 17 y 23 y probar con los siguientes comandos…

Para configurar los pines GPIO 17 y 23 como salida…

  • gpio -g mode 23 out
  • gpio -g mode 17 out

Para encender los led

  • gpio -g write 23 1
  • gpio -g write 17 1

Para apagar los led

  • gpio -g write 23 0
  • gpio -g write 17 0

Una vez comprobado que podemos controlarlos, procederemos a configurar Octoprint para poder añadir el control al menu “System”.

En primer lugar definiremos como salida los pines en el archivo /etc/init.d/octoprint en la linea 77 , la linea anterior a RETVAL=”$?”

editaremos el archivo con el comando.

  • sudo nano /etc/init.d/octoprint

y añadiremos lo siguiente en la linea 77 y 78

  • gpio export 17 out
  • gpio export 23 out

Ahora editaremos otro archivo para añadir las opciones al menu “System”.

  • cd /
  • cd ./home/pi/.octoprint
  • sudo nano config.yaml

En la linea 45 antes de “webcam” añadiremos lo siguiente…

  - action: printer on
    command: gpio -g write 17 1
    name: Turn on the printer
  - action: printer off
    command: gpio -g write 17 0
    confirm: You are about to turn off the printer.
    name: Turn off the printer
  - action: Ligth on
    command: gpio -g write 23 1
    name: Turn on the ligth  
  - action: Ligth off
    command: gpio -g write 23 0
    name: Turn off the ligth 

Guardaremos el archivo y reiniciaremos la Raspberry con el comando

    sudo reboot

Ahora en el menu “System” ya aparecerán las nuevas opciones…

Captura de pantalla 2016-03-28 a las 18.19.04

Que podemos probar con los led pulsando sobre ellas…

Hemos probado usando unos led, pero realmente lo que queremos es usar dos módulos de relé para controlar algo con mas potencia…

modulo-rele-relay-de-1-canal-5v-10a-arduino-pic-avr-robotica-17851-MLA20145775313_082014-OEn este punto me he encontrado con un par de problemas, el primero ha sido que los dos módulos de relé que yo he comprado no son compatibles con calidad de 3,3v ( que es la señal GPIO de la placa Raspberry PI) y segundo la activación del relé es por nivel bajo, es decir cuando la salida GPIO esta a “0” el relé esta activado, y cuando la salida esta a “1” el relé se desactiva.

Así que para solucionarlo, he realizado un sencillo esquema con dos transistores y cuatro resistencias, para poder modificar la salida GPIO de la placa Raspberry Pi a 5V y para invertir  los niveles lógicos.

PD: Los relés del esquema no son los mismos que los de la foto de arriba, son los que vienen con el programa.

 

adaptador_niveles

De todas maneras, una vez realizado este pequeño esquema para convertir los niveles para que funcione el módulo de relé, se podría poner un relé normal de 5V y ahorrarnos el módulo.

reles raspberry_bb

 

 

Para conectar los módulos de relé, vamos a modificar el cable de alimentación de la Raspberry Pi para poder alimentar los dos módulos usando el mismo alimentador…

Realizaremos un corte en el lado del conector de la Raspberry dejando a la vista los cables rojo y negro …
Ahora, vamos a preparar dos latiguillos de la medida que necesitéis ( yo voy a poner los dos relés junto a la fuente de alimentación, así que voy a cortarlos de unos 40 cm) de cable de 3 hilos, voy a usar cable de audio que tiene, malla para el negativo, rojo para el positivo y blanco para la señal de activación ,y pelaremos un extremo,

img_1263

img_1264
Juntaremos las mallas y las soldaremos al cable negro de alimentación y juntaremos los rojos y los soldaremos al cable rojo de la alimentación .

Al otro extremos de cada cable vamos a soldar un conector hembra de tres pines que conectaremos al módulo de relé.

IMG_1269

Una vez todo soldado colocaremos los módulos donde a nosotros nos venga bien en la propia impresora y conectaremos la entrada de 220v a uno de los relés y la luz de 12v ( he usado una tira de led ) al otro relé.

IMG_1266

 

IMG_1267

 

IMG_1268

 

IMG_1270

 

En la siguiente entrada, veremos como configurar nuestro servidor de impresión para que nos envíe mensajes de estado de como va la impresión, usando telegram. También lo configuraremos para que nos actualice nuestra DNS para usar un servicio como Dyndns y poder acceder desde fuera de nuestra red, y alguna cosa más…

 

DonacionPayPal

Anuncios

18 Respuestas a “Control remoto para tu impresora 3D con Raspberry Pi (1ª parte)

  1. Pingback: Control remoto para tu impresora 3D con Raspberry Pi (2ª parte) |

  2. Enhorabuena, quiero instalar el Octoprint en mi 3D, he estado viendo por encima todo lo que pones y me ha aclarado las ideas muchísimo, seguiré tu tutorial a ver que tal se me dá, Muchas gracias!!!!

  3. holaaa buen tutoo unas cuestiones en :

    – action: Ligth on esta bien pero el off lo pones como print…

    yo tengo reles que el disparo lo controla bien mi rpi 3 model b sin necesidad de poner transitores ni resistencias

  4. Hola, he seguido tu tutorial pero he tenido problemas a la hora de imprimir. En el LCD de la impresora pone IDLE y se queda la raspberry que no puedo acceder a ella. No responde a las llamadas a la IP. Otras veces se queda parada y pone stepper disable. He preparado un archivo log de la raspberry por si puedes verlo.

    https://dl.dropboxusercontent.com/u/42986267/octoprint.log.html

    La impresora es una 3dcstar con repetier host 0.91 y desde la SD si imprime bien, de hecho tuve que hacerlo asi para poder tener la pieza. Uso una webcam Microsoft hd-3000 y me llega la imagen con mucho LAG. no se si tendrá que ver.

    • parece que el problema, es que la raspberry se cuelga, y por lo tanto la comunicación con la impresora también… comprueba el cableado de la raspberry, y si se te cuelga también sin estar conectada a la impresora…

  5. Hola, muchas gracias por el tutorial. Me gustaría hacer lo mismo para controlar mi impresora 3D, pero tengo algunas dudas.
    El cable de la raspberry Pi que yo tengo, no tiene tantos hilos como el que tu muestras, ¿es posible?¿Qué tipo de alimentador es?
    Por otra parte, he visto que tienes como una fuente de alimentación (en la foto debajo de los relés). ¿La has comprado aparte?

  6. Pingback: Tutorial. OctoPrint, control remoto de impresora 3D (Parte 1)

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s