Category: 3D Druck
Fruits Deckel
Deckel
Installation von Octoprint
User octoprint (oder eigenen Benutzer) erstellen und dann mit octoprint am Server anmelden
adduser octoprint
Wechsel in das Heimverzeichnis des Benutzers octoprint
cd ~
Benutzer octoprint in die sudoers Datei aufnehmen
su nano /etc/sudoers
Zeile einfügen und mit Strg+O speichern —> STRG+X SCHLIESSEN
octoprint ALL=(ALL) ALL
Download und Installation der benötigten Pakete
sudo apt-get install python-pip python-dev git sudo apt-get install python-setuptools
Download des Octoprint-Installationsverzeichnises (es wird im Homedirectory des Benutzers octoprint angelegt (/home/octoprint/OctoPrint)
git clone https://github.com/foosel/OctoPrint.git
Wechsel in das neue (heruntergeladene) Verzeichnis OctoPrint (beachte GROSS-/kleinschreibung)
cd OctoPrint
Start der Installation von Octoprint (es handelt sich um ein python-Script, welches mit Root-Rechten ausgeführt wird (sudo))
sudo python setup.py install
Erstellen eines Verzeichnisses (.octoprint) im Homedirectory des Benutzers octoprint
mkdir ~/.octoprint
Damit der Benutzer octoprint auch die serielle Schnittstelle uneingeschränkt benutzen darf, muss ihm dies gestattet werden.
Hinzufügen des Benutzers pi zur Gruppe tty und dialout (Nutzung der seriellen Schnittstellen (auch virtuelle via USB-Port))
sudo usermod -a -G tty octoprint sudo usermod -a -G dialout octoprint
Erststart
Zum Starten geben wir Folgendes ein:
octoprint serve
Das Antwort sollten einige Textzeilen erscheinen, in der in der letzten Zeile u.A. zu lesen ist:
… Listening on 0.0.0.0:5000
Dies bedeutet, dass der Octoprint-Server erfolgreich gestartet ist und auf dem Port 5000 (Standard-Port) zur Verfügung steht.
Webinterface des Octoprints öffnen (IP.des.Servers:5000
192.168.0.111:5000
STRG+X stoppt den OctoPrintServer wieder
Cura Engine installieren
wechseln ins Home Verzeichniss
cd ~
sudo apt-get -y install gcc-4.7 g++-4.9 git clone -b legacy https://github.com/Ultimaker/CuraEngine.git
ins Curaverzeichniss wechseln …
cd CuraEngine
wget http://bit.ly/curaengine_makefile_patch -O CuraEngine.patch
patch < CuraEngine.patch
make CXX=g++-4.9
Danach findet man die CuraEngine unter
/home/octoprint/CuraEngine/build/CuraEngine
Der OctoPrint Deamon wird gestartet mit
octoprint daemon start
Weitere Befehle
octoprint daemon start|stop|restart
OctoPrint Autostart bei Serverstart
/etc/rc.local editieren
sudo nano /ect/rc.local
Zeile vor exit 0 eintragen
sudo -u octoprint octoprint daemon start
STRG+O speichert —> SRTG+X beendet nano
WebCam:
Streamer download und compilieren.
cd ~ apt-get install subversion libjpeg62-turbo-dev imagemagick libav-tools libv4l-dev cmake git clone https://github.com/jacksonliam/mjpg-streamer.git cd mjpg-streamer/mjpg-streamer-experimental export LD_LIBRARY_PATH=. make
Stream starten mit
./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so"
Für einige Webcams (einschließlich der PS3 Eye) muß der YUV-Modus mit dem folgenden Startbefehl erzwungen werden:
./mjpg_streamer -i "./input_uvc.so -y" -o "./output_http.so"
Der Stream ist nun unter:
http://<your IP>:8080/?action=stream
verfügbar. (Wenn du eine Fehlermeldung über fehlende Dateien oder Verzeichnisse bekommst, kann das Ausgabe-Plugin mit -o „./output_http.so -w ./www“ weiter helfen.)
Kamera in Octoprint einfügen:
Öffne:
nano /home/octoprint/.octoprint/config.yaml
(erstelle die Datei einfach, wenn sie noch nicht existiert) und füge die folgenden Zeilen hinzu:
webcam: stream: http://<your IP>:8080/?action=stream snapshot: http://127.0.0.1:8080/?action=snapshot ffmpeg: /usr/bin/avconv
Starte den OctoPrint-Server neu, lösche den Cache in Ihrem Browser und lade die OctoPrint-Seite neu. Du solltest nun den Stream von der Webcam auf der Registerkarte „Control“ und eine Registerkarte „Timelapse“ mit Optionen sehen.
WebCam in OctoPrint ein/aus schalten
In
/home/octoprint/OctoPrint/scripts
2 Dateien erstellen
touch /home/octoprint/OctoPrint/scripts/webcam
touch /home/octoprint/OctoPrint/scripts/webcamDaemon
webcam füllen mit
#!/bin/bash
# Start / stop streamer daemon
case "$1" in
start)
/home/octoprint/OctoPrint/scripts/webcamDaemon >/dev/null 2>&1 &
echo "$0: started"
;;
stop)
pkill -x webcamDaemon
pkill -x mjpg_streamer
echo "$0: stopped"
;;
*)
echo "Usage: $0 {start|stop}" >&2
;;
esac
webcamDaemon füllen mit
#!/bin/bash
MJPGSTREAMER_HOME=/home/octoprint/mjpg-streamer/mjpg-streamer-experimental
MJPGSTREAMER_INPUT_USB="input_uvc.so"
MJPGSTREAMER_INPUT_RASPICAM="input_raspicam.so"
# init configuration
camera="auto"
camera_usb_options="-r 1280x720 -f 10"
camera_raspi_options="-fps 10"
if [ -e "/boot/octopi.txt" ]; then
source "/boot/octopi.txt"
fi
# runs MJPG Streamer, using the provided input plugin + configuration
function runMjpgStreamer {
input=$1
pushd $MJPGSTREAMER_HOME
echo Running ./mjpg_streamer -o "output_http.so -p 5100 ./www" -i "$input"
LD_LIBRARY_PATH=. ./mjpg_streamer -o "output_http.so -p 5100 ./www" -i "$input"
popd
}
# starts up the RasPiCam
function startRaspi {
logger "Starting Raspberry Pi camera"
runMjpgStreamer "$MJPGSTREAMER_INPUT_RASPICAM $camera_raspi_options"
}
# starts up the USB webcam
function startUsb {
logger "Starting USB webcam"
runMjpgStreamer "$MJPGSTREAMER_INPUT_USB $camera_usb_options"
}
# we need this to prevent the later calls to vcgencmd from blocking
# I have no idea why, but that's how it is...
vcgencmd version
# echo configuration
echo camera: $camera
echo usb options: $camera_usb_options
echo raspi options: $camera_raspi_options
# keep mjpg streamer running if some camera is attached
while true; do
if [ -e "/dev/video0" ] && { [ "$camera" = "auto" ] || [ "$camera" = "usb" ] ; }; then
startUsb
elif [ "`vcgencmd get_camera`" = "supported=1 detected=1" ] && { [ "$camera" = "auto" ] || [ "$camera" = "raspi" ] ; }; then
startRaspi
fi
sleep 120
done
Nun die Datei
/home/octoprint/.octoprint/config.yaml
öffnen.
Am Ende einfügen
system:
actions:
- action: streamon
command: /home/octoprint/OctoPrint/scripts/webcam start
confirm: false
name: Start video stream
- action: streamoff
command: /home/octoprint/OctoPrint/scripts/webcam stop
confirm: false
name: Stop video stream
OctoPrint Updaten:
cd /home/octoprint/OctoPrint git pull python setup.py clean python setup.py install