Kamera
An das Raspberry Pi kann eine Kamera nicht nur über USB angeschlossen werden, sondern auch direkt mit dem Kamera Modul.
Das Kamera Modul wird mit dem Flachbandkabel an die 15-pollige serielle MIPI-Kameraschnittstelle des Raspberry Pi angeschlossen.
Das Modul gibt es in zwei Versionen v1.3 (5-megapixel OmniVision OV5647) und V2 (Sony IMX219 8-megapixel).
Nachdem die Kamera in der Konfiguration eingeschaltet worden ist und man den Raspberry Pi neu gestartet hat, steht die Kamera zur Verfügung.
$ sudo raspi-config
Die Kamera kann man grundsätzlich mit den Kommandos raspistill und raspivid nutzen. Mit raspistill
kann man Bilder erfassen und raspivid
kann Videos erstellen.
Ein Bild machen und als image.jpg
mit einer Auflösung von 2592 x 1944 Pixeln speichern.
$ raspistill -o image.jpg
Es wird für 5 Sekunden ein Preview angezeigt bevor die Aufnahme ausgelöst wird. Dieses kann man unterdrücken –nopreview
und mit –timeout
zeitlich steuern, auch die Auflösung kann angepasst werden.
$ raspistill --nopreview --timeout 1 -w 800 -h 600 -o image.jpg
Ein zehn Sekunden Video im H.264 Format aufnemen und als video.h264
speichern.
$ raspivid -o video.h264 -t 10000
VLC installieren.
$ sudo apt-get install vlc
Mit VLC kann man das Video als Stream übertragen.
$ raspivid -o - -t 9999999 -w 800 -h 600 | cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8080}' :demux=h264
Den Stream öffnet man dann unter folgender URL.
http://<ipaddress raspberrypi>:8080
Auch für die Camera gibt es verschiedene Cases um sie zu schützen.
picamera
Python bietet ein Module um mit der Kamera vom Raspberry zu arbeiten.
$ sudo apt-get update
$ sudo apt-get install python-picamera
In Kombination mit dem time Module kann man dann simple Serienbilder aufnehmen.
import time
import picamera
camera = picamera.PiCamera()
camera.capture('image1.jpg')
time.sleep(5)
camera.capture('image2.jpg')
Man kann auch entsprechend ein Video aufnehmen.
import time
import picamera
camera = picamera.PiCamera()
camera.start_recording('video.h264')
time.sleep(5)
camera.stop_recording()