Eine Raspberry Pi Kamera ist eine tolle Sache und lässt neue Möglichkeiten zu. Man kann die Kamera unter anderem zur Bewegungserkennung oder Überwachung Ihrer Räume einsetzen. In diesem Tutorial zeige ich, wie man eine Raspberry Pi Kamera einrichtet, damit Fotos und Videos macht und einen Video-Stream über das Netzwerk von einem anderen System abrufen kann.
Mittlerweile ist die Raspberry Pi Kamera in der dritten Generation erschienen – Raspberry Pi Camera Module 3. Das Raspberry Pi Camera Module 3 verfügt über einen 12-Megapixel-Bildsensor und eine hochwertige Linse, die gestochen scharfe Bilder und klare Videos in Full-HD-Auflösung (1080p) ermöglicht. Darüber hinaus verfügt die Kamera über einen Autofokus mit Phasenerkennung. Dank des flexiblen Kamerakabels können Sie die Kamera mühelos an Ihrem Raspberry Pi anbringen und für verschiedene Projekte anpassen.
Überblick über die verfügbaren Raspberry Pi Kameras
Kameramodul 3 Fokusbereich: 10 cm Brennweite: 4,74 mm Diagonales Sichtfeld: 75 Grad Horizontales Sichtfeld: 66 Grad Vertikales Sichtfeld: 41 Grad Brennverhältnis (F-Stop): 1.8 Infrarot: nein
Kameramodul 3 (Weitwinkel) Fokusbereich: 5 cm – ~ Brennweite: 2,75 mm Diagonales Sichtfeld: 120 Grad Horizontales Sichtfeld: 102 Grad Vertikales Sichtfeld: 67 Grad Brennverhältnis (F-Stop): 2.2 Infrarot: nein
Kameramodul 3 (Infrarot) Fokusbereich: 10 cm Brennweite: 4,74 mm Diagonales Sichtfeld: 75 Grad Horizontales Sichtfeld: 66 Grad Vertikales Sichtfeld: 41 Grad Brennverhältnis (F-Stop): 1.8 Infrarot: ja
Kameramodul 3 (Weitwinkel – Infrarot) Fokusbereich: 5 cm – ~ Brennweite: 2,75 mm Diagonales Sichtfeld: 120 Grad Horizontales Sichtfeld: 102 Grad Vertikales Sichtfeld: 67 Grad Brennverhältnis (F-Stop): 2.2 Infrarot: ja
Raspberry Pi Kamera einrichten
Der Anschluss für die Kamera befindet sich bei allen Modellen hinter dem Ethernet Anschluss und wird CSI genannt (bei den Zero-Modellen ist die Schnittstelle gegenüber dem MicroSD-Slot angebracht). Trennen Sie den Raspberry Pi vom Strom. Heben Sie die Verschluss-klemme des CSI-Moduls etwas an und stecken Sie das Kabel hinein (achten Sie darauf, dass die blanken Pins in die gegenüberliegende Richtung bezüglich der Klemme zeigen), zum Befestigen drücken Sie die Klemme einfach wieder etwas zurück.
Starten Sie den Raspberry Pi und stellen Sie die Verbindung mit dem Pi via
sudo apt-get -y update && sudo apt-get -y upgrade
sudo rpi-update
Starten Sie anschließend das Konfigurations-Tool raspi-config, um die Kamera zu aktivieren.
Navigieren Sie hierfür zu dem Punkt 5 „Enable Camera“ und aktivieren Sie die Schnittstelle.
Damit ist die Einrichtung abgeschlossen. Starten Sie jetzt den Pi neu.
Fotos mit der RasPi Cam aufnehmen
Für die Aufnahme von Fotos mit dem Raspberry Pi kann man das in Raspbian bereits vorinstallierte Tool raspistill verwenden. Die Software bietet eine Vielzahl von Optionen. Wenn man sich in der grafischen Raspbian-Umgebung befindet, wird sogar ein Vorschau-Fenster eingeblendet.
Zum Testen der Kamera-Funktion können Sie ein Testbild mit den Optionen -o (Festlegen des Dateinamens) und -v (Verbose Ausgabe) machen.
raspistill -v -o test.jpg
Nun wird im aktuellen Verzeichnis ein test.jpg abgelegt. Falls etwas nicht geklappt hat, wird das Programm mittels der -v Option einen Fehler ausgeben (z.B. wenn die Kamera nicht via raspi-config aktiviert wurde o.ä.).
Fotos im Jpeg-Format aufnehmen
raspistill -o test.jpg
Fotos im PNG-Format aufnehmen
Mit dem Parameter -e können verschiedene Formate wie jpg, bmp, gif und png erzeugt werden.
raspistill -o test.png –e png
Aufnahme von Fotos ohne Vorschau-Fenster (-n)
raspistill -o test.jpg -n
Aufnahme auf Tastendruck (Enter) Wenn man test.jpg durch test%02d.jpg ersetzt, wird bei jedem Tastendruck ein neues Foto mit dem Dateinamen test01.jpg, test02.jpg usw. erstellt. Die Serie kann mit STRG+C unterbrochen werden.
raspistill -t 0 -k -o test%02d.jpg
Zeitverzögertes Foto (3 Sekunden), die Angabe erfolgt in Millisekunden
raspistill -o test.jpg -t 3000
Aufnahme von Fotos mit anderer Auflösung (640×480), die Parameter w und h geben die Weite und die Höhe in Pixeln an
raspistill -o test.jpg -w 640 -h 480
Fotos mit reduzierter Qualität aufnehmen (-q) Dadurch kann Speicherplatz eingespart werden, es sind Werte von 0 bis 100 möglich.
raspistill -o image.jpg -q 20
Raspberry Pi Kamera LED abschalten
Wenn Sie durch die rote Aufnahme-LED gestört werden, können Sie diese ausschalten. Dazu ist ein neuer Eintrag in der Datei /boot/config.txt mit anschließendem Neustart notwendig. Tragen Sie hierzu einfach die folgende Zeile in eure config.txt in einem beliebigen Editor ein.
disable_camera_led=1
Raspberry Pi Kamera über das Netzwerk Streamen
Um das Video von der Kamera in einem Web-Browser betrachten zu können, wird ein Python-Skript benötigt. Diesen findet man auf der offiziellen PiCamera-Documentation-Seite – Web streaming.
Erstellen Sie einen Python-Skript „rpi_camera_web_streaming.py„
nano rpi_camera_web_streaming.py
Kopieren Sie den unten angegebenen Code in den neu erstellten Skript:
import io
import picamera
import logging
import socketserver
from threading import Condition
from http import server
PAGE="""\
<html>
<head>
<title>picamera MJPEG streaming demo</title>
</head>
<body>
<h1>PiCamera MJPEG Streaming Demo</h1>
<img src="stream.mjpg" width="640" height="480" />
</body>
</html>
"""
class StreamingOutput(object):
def __init__(self):
self.frame = None
self.buffer = io.BytesIO()
self.condition = Condition()
def write(self, buf):
if buf.startswith(b'\xff\xd8'):
# New frame, copy the existing buffer's content and notify all
# clients it's available
self.buffer.truncate()
with self.condition:
self.frame = self.buffer.getvalue()
self.condition.notify_all()
self.buffer.seek(0)
return self.buffer.write(buf)
class StreamingHandler(server.BaseHTTPRequestHandler):
def do_GET(self):
if self.path == '/':
self.send_response(301)
self.send_header('Location', '/index.html')
self.end_headers()
elif self.path == '/index.html':
content = PAGE.encode('utf-8')
self.send_response(200)
self.send_header('Content-Type', 'text/html')
self.send_header('Content-Length', len(content))
self.end_headers()
self.wfile.write(content)
elif self.path == '/stream.mjpg':
self.send_response(200)
self.send_header('Age', 0)
self.send_header('Cache-Control', 'no-cache, private')
self.send_header('Pragma', 'no-cache')
self.send_header('Content-Type', 'multipart/x-mixed-replace; boundary=FRAME')
self.end_headers()
try:
while True:
with output.condition:
output.condition.wait()
frame = output.frame
self.wfile.write(b'--FRAME\r\n')
self.send_header('Content-Type', 'image/jpeg')
self.send_header('Content-Length', len(frame))
self.end_headers()
self.wfile.write(frame)
self.wfile.write(b'\r\n')
except Exception as e:
logging.warning(
'Removed streaming client %s: %s',
self.client_address, str(e))
else:
self.send_error(404)
self.end_headers()
class StreamingServer(socketserver.ThreadingMixIn, server.HTTPServer):
allow_reuse_address = True
daemon_threads = True
with picamera.PiCamera(resolution='640x480', framerate=24) as camera:
output = StreamingOutput()
camera.start_recording(output, format='mjpeg')
try:
address = ('', 8000)
server = StreamingServer(address, StreamingHandler)
server.serve_forever()
finally:
camera.stop_recording()
Videos aufnehmen
Auch für die Aufnahme von Videos über die Raspberry Pi Kamera gibt es unter Raspbian ein zentrales Tool – raspivid übernimmt hier alle wichtigen Aufgaben.
Ein Video in 1080p aufnehmen (1920 x 1080) Mit dem Parameter -t gibt man die Aufnahmezeit in Millisekunden an, für eine dauerhafte Aufzeichnung wird der Wert auf 0 gesetzt.
In diesem Artikel geht es um den richtigen Start mit dem Raspberry Pi. Es handelt sich hierbei um das richtige und nötige Zubehör für den Pi. Ich wünsche Euch viel Spaß!
Dank seiner kompakten Größe, geringer Stromkosten und vieler Anschlussmöglichkeiten eignen sich die Raspberry Pi Boards perfekt für den Dauerbetrieb. Selbstverständlich ersetzt der Pi trotz einer grafischen Oberfläche keinen vollwertigen PC, da die Leistung für viele alltäglichen Aufgaben mit komplexen Programmen einfach nicht ausreicht. Aber der Pi ist nicht dafür entwickelt worden, sondern für spannende Experimente und für den einfachen Einstieg in die Hintergründe eines Rechners.
Welche Modelle von Raspberry Pi gibt es eigentlich? (Auszug von Chip)
Modell
Raspberry Pi 3
Raspberry Pi 2 (B)
Raspberry Pi 1 (A+)
Raspberry Pi Zero / W
SOC
CM2837
BCM2836
BCM2835
BCM2835
CPU
ARMv8 Cortex-A53
ARMv7 Cortex-A7
ARMv6 1176JZF-S
ARMv6 1176JZF-S
CPU-Takt
4x 1200 MHz
4x 900 MHz
700 MHz
1000 MHz
CPU-Kerne
4
4
1
1
Arbeitsspeicher
1024 MB
1024 MB
256 MB
512 MB
USB
4x
4x
1x
1x (micro-USB)
Audio
HDMI + Klinke (3,5mm)
HDMI + Klinke (3,5mm)
HDMI + Klinke (3,5mm)
Mini-HDMI
LAN
10/100 MBit
10/100 MBit
–
–
WLAN
ja
–
–
nur W-Modell
Bluetooth
ja
–
–
nur W-Modell
Speicher
microSD
microSD
microSD
microSD
Größe
85,6mm × 56mm
85,6mm × 56mm
65mm × 56mm
65mm x 30mm
In diesem Einstieg beziehe ich mich nun auf das aktuellste Modell Raspberry Pi 3 .
Einige der bei uns angebotenen Starter Kits haben bereits alle nötigen Komponenten im Lieferumfang. Falls man jedoch seinen Starter-Set selbst zusammenbauen möchte, hier ein paar Tipps für die richtige Wahl:
MicroSD-Karte
Eine MicroSD-Karte ist sehr wichtig, denn ohne eine MicroSD-Karte mit einem entsprechenden Betriebssystem kann das Raspberry Pi nicht betrieben werden. Empfehlenswert ist eine MicroSD-Karte mindestens in der Class 10 mit mindestens 8GB Kapazität, noch besser wären 16GB. Möglich sind max. 32GB. Mit den Karten von SanDisk (beispielsweise: SanDisk Ultra 16GB) war ich stets zufrieden.
Stromversorgung
Das ist ein besonders wichtiger Punkt. Hier ist es wichtig ein gutes Netzteil mit konstanter Leistung zu kaufen. Leider sind sehr viele Billig-Netzteile meist nicht ausreichend für den Dauerbetrieb und können Ihrem Raspberry Pi unter Umständen auch schaden. Empfehlenswert ist das offizielle Netzteil der Raspberry Pi Foundation. Generell ist der Stromanschluss über einen MicroUSB-Anschluss realisiert. Das heißt, hat man bereits einen MicroUSB-Ladekabel parat, beispielsweise von einem alten Handy etc., braucht man dann nur ein passendes Netzteil. Zu beachten ist aber auch hier die ausreichende Qualität und der Leistungsausgang von mind. 2A (bei Raspberry Pi 3 wären 2,5A besser).
WLAN-Adapter
Das ist das schönste an den neuen Raspberry Pi modellen (Pi 3 und Pi Zero W) – diese sind ab Werk sowohl mit einem WLAN-Modul als auch mit einem Bluetooth-Modul ausgestattet. Man braucht also nun keine zusätzlichen Adapter mehr zu kaufen.
Falls man sich beim Kauf jedoch für ein älteres Modell entscheidet, so gibt es hier viele gute Adapter. Einen guten Namen hat sich der Hersteller Edimax. Mein Raspberry Pi 2 läuft prima damit.
HDMI Kabel
Einen HDMI Kabel benötigt man meist nur für die Ausgabe der grafischen Oberfläche auf einem Monitor, z.B. wenn man unbedingt darauf zugreifen möchte oder wenn man den Raspberry Pi in Projekten verwendet, die eine grafische Ausgabe benötigen. Hier gibt es keine Einschränkungen bei der Produktwahl. Es gibt genug HDMI-Kabel für wenig Geld zu kaufen. Möchte man den Pi an einem PC-Monitor mit VGA-Eingang anschließen, benötigt man einen HDMI-zu-VGA-Adapter. Einen solchen finden Sie hier.
Gehäuse
Kauft man den Pi einzeln und nicht im Set, wird bloß ein Board geliefert. Betrieben kann es auch so, schick aussehen tut der Pi in jedem Fall :). Aber wenn man dem Pi eine Verkleidung geben möchte, so findet man eine Menge an Gehäusen auf dem Markt für wenig Geld. Schaut hier vorbei, vielleicht findet Ihr etwas passendes da. Ich finde das offizielle Gehäuse der Raspberry Pi Foundation sehr funktionell und schick. Empfehlenswert für einen dauerhaften Betrieb des Pi ist der Einsatz von Kühlkörpern (für Raspberry Pi 3). Meist handelt es sich um passive Kühlkörper, die die Wärme schlicht ableiten.
Das war es, schon könnt ihr mit dem Pi starten und viele spannenden Projekte realisieren. Solltet Ihr Fragen haben stehe ich stets zur Verfügung. (Photo by Akane Sayama)