Stampa 3D via WiFi: Webcam

OctoPrint è in grado di mostrare l’output della webcam direttamente dalla sua interfaccia web. In questo modo è possibile monitorare il processo di stampa a distanza.

In più permette di creare dei timelapse della stampa scattando una foto all’oggetto alla fine di ogni layer. Il risultato è ipnotizzante.

Installare mjpg_streamer

Per comunicare con la webcam OctoPrint usa il programma mjpg_streamer. Non essendo presente nei repo Debian, occorre compilarlo e installarlo:

sudo apt-get install subversion libjpeg62-turbo-dev imagemagick libav-tools cmake checkinstall
cd ~
git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental
make
sudo checkinstall

Rispondere affermativamente a tutte le domande dell’ultimo comando. Ora, dopo aver digitato

mjpg_streamer -i input_uvc.so -o output_http.so

dovremmo vedere l’output della webcam all’indirizzo http://192.168.x.x:8080/?action=stream. Come in precedenza, sostituire 192.168.x.x con l’indirizzo IP del computerino.

Alcune webcam (PS3 Eye) necessitano del comando

mjpg_streamer -i "input_uvc.so -y" -o output_http.so

mentre il modulo camera ufficiale del Raspberry Pi

mjpg_streamer -i "input_raspicam.so -fps 5" -o output_http.so

Si dovrà tener conto di queste modifiche nei passi successivi.

Dunque lanciare il comando

sudo nano /etc/systemd/system/mjpg_streamer.service

inserire quanto riportato di seguito, salvare (Ctrl+O) ed uscire (Ctrl+X).

[Unit]
Description=mjpg-streamer for OctoPrint 

[Install]
WantedBy=multi-user.target

[Service]
Type=simple
ExecStart=/usr/local/bin/mjpg_streamer -i input_uvc.so -o output_http.so
Restart=on-failure
StartLimitInterval=60

Ora possiamo avviare la webcam con il comando

sudo systemctl start mjpg_streamer

È possibile sostituire start con restart o stop, per riavviare o fermarre la webcam. Con enable lo streaming verrà lanciato automaticamente all’avvio.

Configurare OctoPrint

Per l’integrazione in OctoPrint. Compilare “Settings > Webcam” come di seguito (ricordando di sostituire 192.168.x.x):

Stream URL: http://192.168.x.x:8080/?action=stream
Snapshot URL: http://127.0.0.1:8080/?action=snapshot
Path to FFMPEG: /usr/bin/avconv

Potrebbe risultare comodo poter avviare e fermare la webcam direttamente dall’interfaccia web. Per farlo, dare il seguente comando:

nano ~/.octoprint/octoprint_camera.sh

e inserire le seguenti righe, salvare (Ctrl+O) ed uscire (Ctrl+X)

#!/bin/bash
# Start / stop streamer daemon

case "$1" in
    start)
        systemctl start mjpg_streamer
        ;;
    stop)
        systemctl stop mjpg_streamer
        ;;
esac

Quindi dare il comando

sudo sh -c 'echo "heron ALL=NOPASSWD: /home/heron/.octoprint/octoprint_camera.sh" >> /etc/sudoers.d/octoprint-sudo'

Infine recarsi in “Impostazioni > System Command Editor”, fare click destro sul rettangolo verde e cliccare su “Create command” per aggiungere una voce al menu “System”.

Creare dunque le seguenti voci:

  • Accendere la webcam

    Name: Start video stream
    Action: streamon
    command: sudo /home/heron/.octoprint/octoprint_camera.sh start
    Use Confirmation: [ ]
    
  • Spegnere la webcam

    Name: Stop video stream
    Action: streamoff
    command: sudo /home/heron/.octoprint/octoprint_camera.sh stop
    Use Confirmation: [ ]
    

A questo punto occorre riavviare OctoPrint e avviare mjpg_streamer con

sudo systemctl restart octoprint
sudo systemctl start mjpg_streamer

e, probabilmente, anche resettare la cache del browser. In Firefox cliccare sul tasto “Cancella adesso” in “Preferenze > Avanzate > Rete > Contenuti web in cache”.

Nella sezione “Control” dovrebbe comparire lo streaming dalla stampante.

Streaming dalla stampante

Timelapse

Per attivare la generazione dei timelapse selezionare “On Z change”, da “Timelapse > Timelapse Mode”.

Articoli della serie Stampa 3D via WiFi:

Commenti