Roboter HaBuRo1 Video Stream
Vom Robuter über WLAN zum PC
mjpg-streamer
 
		Für Video-Streaming wird WLAN benötigt. Wenn du mit dem Roboter draußen auf der Liegewiese einer Badeanstalt 
		rumkurvst dann ist Schluss mit Video! Kein WLAN! Jedoch kann man Einzelbilder oder Videosequenzen auf 
		einen USB-Speicher speichern. Aber was bringt das! Du hast keine Kamerakontrolle auf deinem Tablet und 
		anstelle einer schönen Frau siehst du Löwenzahn. Spaß beiseite, Ernst aus der Ecke. 
		Die Leistungsfähigkeit der Raspberry Pi Kamera ist erstaunlich. Auf dem Firefox Browser 
		siehst du klasse Videos und mit einem hervorragenden Zeitverhalten. Alle drei Servos können 
		vom Windows Tablet präzise gesteuert werden. Dafür stehen GUI-Schieberegler zur Verfügung. 
		Das Internet füllt das Alte- und Neue Testament mit Beschreibungen über Video-Streaming, 
		jedoch in Verbindung mit eine Fülle von weiteren zusätzlichen Steuerungsaufgaben 
		für den HaBuRo ist der "mjpg-streamer" die beste Wahl. Der Installationsaufwand 
		ist jedoch komplex.
	
	
 Video4Linux-Treiber, Version 2 (v4l2). Dieser Treiber reduziert die Datenmenge, die über das Netzwerk 
		übertragen werden muss, erheblich und es kommt zu weniger Aussetzern im Live-Stream
 
		Video4Linux-Treiber, Version 2 (v4l2). Dieser Treiber reduziert die Datenmenge, die über das Netzwerk 
		übertragen werden muss, erheblich und es kommt zu weniger Aussetzern im Live-Stream Livestream von der Kamera des Roboters HaBuRo1. Die Kamera, mit Servomotoren ausgerüstete, 
		kann Videos im Radius von 360° aufnehmen. Das obige Bild zeigt die ersten Tests.
		Livestream von der Kamera des Roboters HaBuRo1. Die Kamera, mit Servomotoren ausgerüstete, 
		kann Videos im Radius von 360° aufnehmen. Das obige Bild zeigt die ersten Tests.  		
	 
 
		Der Video-Streaming-Server „mjpg-streamer“ übernimmt die Aufgabe, Kamerabilder 
		vom Roboter-Auto über das WLAN zu übertragen. Damit das funktioniert müssen 
		einige Bibliotheken installiert und konfiguriert werden: 
		
		sudo apt-get update
		sudo apt-get upgrade
		sudo reboot
		sudo apt-get install subversion
		sudo apt-get install libjpeg8-dev
		sudo apt-get install imagemagick
		
		Nach dieser Vorbereitung kannst du jetzt den „mjpg-streamer“ herunterladen. Das Programm „mjpg-streamer“ soll 
		in den Ordner /opt/ installiert werden! Wechsle über das Terminal-Fenster in den Ordner /opt/ und erstelle 
		einen neuen Ordner „mjpg-streamer“. Du bleibst im Ordner: /opt/mjpg-streamer/ und führst 
		folgenden Befehl aus:
		sudo svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/
		Symbolischen Link ausführen: Die Datei „videodev.h“, die der mjpg-streamer benötigt, 
		wurde vom Linux Betriebssystem „Raspbian“ des Raspberry Pi durch „videodev2.h ersetzt. 
		Damit der mjpg-streamer die entsprechende videodev2.h-Datei als videodev.h-Datei auch finden kann, 
		muss eine Verknüpfung zwischen beiden Dateien erzeugt werden. Dies geschieht in Form eines symbolischen Links. 
		Es folgt der Befehl dafür:
		sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h
 
		Jetzt den mjpg-streamer mit folgenden Befehl installieren:
		sudo make install. Damit das Live-Video-Streaming richtig klappt und der mjpg-streamer den 
		Video-Stream optimal einlesen kann, muss der Video4Linux-Treiber in der Version 2 (v4l2) geladen werden. 
		Siehe Bild oben links. Ab jetzt muss die Kamera angeschlossen und aktiv sein. Führe folgenden Befehl aus:
		sudo modprobe bcm2835-v4l2
		
		Richtige Schreibweise: Achte darauf, dass zwischen der 4 und der 2 der Buchstabe „l“ (wie „leise“) und 
		nicht die Ziffer eins "1" steht. Möchtest du überprüfen, ob das Modul bcm2835-v4l2 geladen wurde, führe den Befehl: sudo lsmod aus. Es erscheint im Terminalfenster eine Liste mit allen geladenen Modulen. In der sollte das Modul bcm2835-v4l2 enthalten sein. Damit du das Modul bcm2835-v4l2 nicht bei jedem Neustart manuell neu laden musst kann man es in einer Art Autostart aufnehmen. Im Verzeichnis /etc/ liegt eine Datei „Modules“. Öffne mit sudo nano /etc/modules und füge folgende Zeile ein: bcm2835-v4l2.
		mjpg-streamer konfigurieren:
		Öffne die Datei /opt/mjpg-streamer/start.sh mit dem Editor nano. Suche die Zeile:
		./mjpg-streamer -i "./input_uvc.so" -o "./output_http.so -w ./www" 
		füge in die Zeile folgende Ergänzung ein: -d /dev/video0 -r 800x640 -f 25. 
		Nach der Anpassung sollte die Zeile wie folgt aussehen:
 
		./mjpg-streamer -i "./input_uvc.so -d /dev/video0 -r 800x640 -f 25 " -o "./output_http.so -w ./www"
		Mit dieser Anpassung hast du dem mjpg-streamer die Raspberry Pi Kamera als 
		Aufnahmegerät zugewiesen (-d /dev/video0) und die Auflösung (-r 800x640) sowie die 
		Framerate (-f 25) des Videos festgelegt. Das Streaming wird mit sudo ./start.sh aktiviert. 
		Auf der Seite des Raspberry Pi ist jetzt alles erledigt. Du kannst jetzt im Webbrowser deines 
		PCs das Livevideo der Raspberry Pi Kamera über folgender URL aufrufen:
		IP-Adresse des Raspberry Pi:8080
		
	
 
		Eine Skript und eine Python-Klasse für den mjpg-streamer: Das Skript "mjpg-streamer" wird in Python gekapselt. 
		Die Klasse "KamStream" wird als eigenständigen Thread im Python-Hautprogramm aufgerufen. Die Kamera funktioniert 
		jedoch nur, wenn eine WLAN-Verbindung besteht.
	
	
 
	 
	