Raspberry Pi 3 Mod B / B+:    Kamera Modul
 

Camera V2.1
Das Bild zeigt einen Raspberry Pi 3 Modell B+, sowie das Camera-Modul V 2.1, welches mit dem beiliegenden Flachbandkabel am CSI Kamera Anschluss angeschlossen werden muß. Die Kamera ist damit hardwarebezogen betriebsbereit.
 
 
 
Abmessungen: 25x20x9mm  -  Sensor: 5 Megapixel mit Fixfokusobjektiv  -  Fotoauflösung: bis 2592 x 1944 Pixel
Videoauflösung: 1920 x 1080 / 30 Frames  -  1280 x 720 / 60 Frames  -  640 x 480 / 60 oder 90 Frames
 
Camera
einschalten
Das Menü des Raspberry Pi Software-Configuration Tools aufrufen durch ..
sudo raspi-config
 
Im ersten Menü ..5.Interfacing Options.. wählen
 
Im zweiten Menü ..P1 Camera.. wählen,
dann durch [TAB] auf <Select>, durch [TAB] <Finish>
Rechner neu starten durch ..
sudo shutdown -r 0
Bild aufnehmen
Ein Verzeichnis einstellen, in dem Bilder oder Videos abgelegt werden sollen. Ohne eine solche Einstellung werden diese Dateien im Wurzelverzeichnis /./ abgelegt.
cd /home/pi/Bilder/
Ein Bild kann nun durch den Befehl .. aufgenommen werden ..
raspistill -o bildname.jpg
Der Ablauf lässt sich durch .. in einem Befehl abarbeiten ..
sudo raspistill -o /home/pi/bildname.jpg
 
Video aufnehmen
Der einfachste Befehl hierzu lautet ..
raspivid -o /home/pi/Bilder/videoname.h264
 
Es wird ein 5 Sekunden langes Video im h264-Format aufgezeichnet. Um dieses Video in das .mp4-Format umzuwandeln, muß ein Konvertierungsprogramm installiert werden. z.B. das Programm gpac
sudo apt-get install gpac
Der folgende Befehl wandelt nun die h264-Datei in eine mp4-Datei mit 30 fps (Frames per Second um ..
MP4Box -fps 30 -add /home/pi/Bilder/video.h264 /home/pi/Bilder/video.mp4
 
Hier macht es Sinn, das verwendete Verzeichnis des Videos /home/pi/Bilder/ bereits voreinzustellen. Dann verkürzt sich der Befehl zu ..
MP4Box -fps 30 -add video.h264 video.mp4
Links
netzmafia.de/skripten/hardware/RasPi/kamera/index.html
raspberrypi.org/documentation/raspbian/applications/camera.md
jankarres.de/2013/05/raspberry-pi-raspistill-und-raspivid-parameter
 
Über die HTTP-Datei 'kamera.php' das Python-Programm 'camera.py' ausführen
Python-Programme sind typischer Weise dem Benutzer 'root' zugeordnet. Dagegen wird als Benutzer von PHP-Programmen 'www-data' genannt. Damit 'www-data' auf Dateien des Benutzes root zugreifen kann, muss in der Datei sudoers.tmp eine Zeile eingefügt werden. (siehe hierzu auch den Text PHP->Python). Im vorliegenden Fall wird davon ausgegangen, dass sich das Programm camera.py im Verzeichnis /usr/ befindet und keine Parameter übergeben bekommt.
 
1. NANO Editor mit der Datei sudoers.tmp öffnen durch ..
sudo visudo
2. Rechte für www-data an dem python-Interpreter und dem zu startenden Programm in einer Zeile hinzufügen ..
www-data ALL=(ALL) NOPASSWD: /usr/bin/python /usr/camera.py
 
camera.py
Das python-Programm /usr/camera.py legt in der Datei testbild.jpg ein Bild mit der Auflösung von 1000 x 750 Pixeln bei 72 dpi ab. Das Bild wird um 180° gedreht, da die Kamera auf dem Kopf steht. Das Testbild wird in dem Unterverzeichnis /kamera/ des Internetverzeichnisses des Raspberry Pi /var/www/html/ abgelegt. Hier befindet sich auch das PHP-Programm, welches das Python-Progamm aufrufen und das Bild anzeigen soll.
 
import picamera

# Pfad zur BILDdatei testbild.jpg
BILDdatei= "/var/www/html/kamera/testbild.jpg"

cam = picamera.PiCamera()
try:
# Bildformat der Kamera 1:0,75
  cam.resolution = (1000, 750)
  cam.rotation = 180
  cam.capture(BILDdatei)
except IOError as (errno, strerror):
  print "I/O error({0}): {1}".format(errno, strerror)
finally:
  cam.close()
 
kamera.php
Die aus einem Browser heraus aufgerufene HTTP-Datei kamera.php ruft das python-Programm camera.py auf und zeigt folgend das erstellte Bild auf dem Monitor an. Das PHP-Programm gibt im Bildnamen auch an, wann das Bild erstellt wurde.
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
<TITLE>Kamera</TITLE>
</HEAD>
 
<BODY>
<?php
// Aufruf des python-Programms 'camera'
$PGMpfad = 'sudo python /usr/camera.py';
shell_exec($PGMpfad);
// Aktuelle Zeit holen
$Titel="Bild vom ".date(" d.m.Y - H:i:s");
?>
<ADDRESS STYLE="font-style: normal; text-align: center"><FONT SIZE=2 STYLE="font-size: 11pt">
<!-- Bild anzeigen -->
<IMG SRC="testbild.jpg" ALIGN=BOTTOM BORDER=0>
<!-- Name des Bildes ausgeben -->
<BR><?php echo $Titel; ?></FONT></ADDRESS>
</BODY>
</HTML>
 
 
 

www.GoBlack.de