Für den Raspberry Pi gibt es ein 
Kamera Modul V2, welche mit dem Flachbandkabel direkt an den CSI-Port (Camera Serial Interface) angeschlossen wird. Die Kamera kann full HD 1080p mit 30fps und hat einen 8 Megapixel Sensor (Sony IMX219).
Hinweis für die Verwendung der Kamera am Raspberry Pi Zero
Das Kameramodul wird mit einem flexiblen Kabel geliefert, das nicht in den CSI-Kameraanschluss des Raspberry Pi Zero W passt. Dieses muss durch z.B. 
AZDelivery Ersatz Flexkabel 15 cm für Raspberry Pi Zero Kamera/Display 15cm ersetzt werden.
Adafruit Raspberry Pi Camera Board Case für mit 1/4 Zoll Stativhalterung, ich habe hier die Plastikabdeckung entfernt. Da das Loch für die Linse nicht optimal ist. Mir ging es hier in erster Linie nur um die Möglichkeit die "Pi Cam" auf ein Stativ zu stellen.
Kamera aktivieren
Bevor man mit der Kamera arbeiten kann, muss man sie in unter raspi-config aktivieren.
Update 2025: "If you are using the legacy camera stack, it will only have support for the Camera Module 1, Camera Module 2 and the High Quality Camera, and will never support any newer camera modules." --> https://www.raspberrypi.com/documentation/computers/camera_software.html
sudo raspi-config => 5 Interfacing Options => Enable Camera
sudo raspi-config => 3 Interfacing Options => I1 Legacy Camera Enable Camera 
Einzelbilder erstellen
Mit dem folgenden Befehl lässt sich ein erstes Bild erstellen: 
 raspistill -o testimage.jpg 
Nach einer Auslöseverzögerung von ca. 5s wird ein Bild mit der Maximalauflösung der Pi Cam von 3280 x 2464 Pixel erstellt.
Fehler - mmal: Cannot read camera info, keeping the defaults for OV5647
Sollte es hierbei zu der folgenden Fehlermeldung kommen:
mmal: Cannot read camera info, keeping the defaults for OV5647</strong>
mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera' (1:ENOMEM)
mmal: mmal_component_create_core: could not create component 'vc.ril.camera' (1)
mmal: Failed to create camera component
mmal: main: Failed to create camera component
mmal: Camera is not detected. Please check carefully the camera module is installed correctly 
Dies kann verschiedene Ursachen haben, das verwendete 
Flachbandkabel hat einen Defekt oder sitzt nicht richtig, die 
Kamera wurde nicht per raspi-config 
aktiviert, die 
Kamera selber ist nicht richtig mit dem 
Sockel verbunden.
In meinem Fall war einfach die verwendete Kamera selber defekt. Tipp: Mittlerweile bestelle ich alle Pi Bauteile im Doppelpack ;-)
Mit den Befehlen -hf 
horizontal und -vf 
vertikal lässt sich das Bild drehen:
raspistill -hf -vf -o testimage.jpg
Videos aufnehmen
Mit dem folgenden Befehl lässt sich ein erstes Video aufnehmen: 
raspivid -o testvideo.h264 -t 8000 
Auch hier lässt sich das Bild mit -hf und -vf wieder drehen.
Mit dem folgenden Befehl lässt sich auch die Bitrate (default: 17MBit/s) anpassen, um in einer geringeren Qualität (z.B. 9MBit/s) die Videos aufzunehmen.
raspivid -o testvideo.h264 -t 8000 -b 9000000
Weitere Befehle finden sich in der 
original Dokumetation zum Kameramodul.
In dem Artikel vom Februar 2015 (
https://sebastianhemel.blogspot.com/2015/02/raspberry-pi-logitech-webcam-anschlieen.html), habe ich noch eine Logitech USB-Webcam verwendet. 
  
Durch die Verwendung des Camera Moduls, muss das Script (webcam.sh) angepasst werden.
Zuvor muss auch 
ImageMagick installiert werden, damit das erstellte Bild angepasst werden kann (z.B. crop, Titel, Datum und Uhrzeit).
sudo apt-get install imagemagick
Jetzt benötigen wir noch die Schriftart 
arial, welche wir schon 
hier verwendet haben.
Mit der Option 
ROI "Region of Onterest" kann man den Zoom für einen bestimmten Bereich realisieren. Siehe auch 
https://elinux.org/Rpi_Camera_Module:
-roi, --roi     : Set region of interest (x,y,w,d as normalised coordinates [0.0-1.0]) 
Ich selber habe mich aber dann für die "crop" Funktion von ImageMagick entschieden:
convert camPre.jpg -crop 1920x1080+550+680 cam.jpg 
Angepasste webcam.sh
#!/bin/sh
# Webcam Bild mit Pi Cam erstellen und auf FTP hochalden
# (c) Sebastian Hemel
OPTIONS='-w 2592 -h 1944 -q 95 -x'
DATE=$(date +"%d.%m.%Y")
HOUR=$(date +"%R")
#-roi, --roi     : Set region of interest (x,y,w,d as normalised coordinates [0.0-1.0])
#raspistill -roi 0.6,0.6,1,1 -o /home/pi/webcam/cam.jpg $OPTIONS
raspistill -o /home/pi/webcam/camPre.jpg $OPTIONS
#Overlay?
#composite -gravity center overlay.png  cam.jpg  result1.jpg
#crop rectangle, start at top corner X: 550 Y: 680, crop rectangle to be of size W: 1920 H: 1080
convert /home/pi/webcam/camPre.jpg -crop 1920x1080+550+680 /home/pi/webcam/cam.jpg
convert /home/pi/webcam/cam.jpg -font /home/pi/font/arial.ttf \
   -pointsize 15 -fill white -annotate +1785+1072  \
   $DATE \
   -pointsize 15 -fill white -annotate +1865+1072  \
   $HOUR \
   -pointsize 15 -draw "gravity southwest \
   fill white text 15,6 'www.webcam-ingolstadt.de | 85051 Ingolstadt' " \
/home/pi/webcam/cam.jpg
sleep 1
ncftpput -f /home/pi/ftp.cfg /cam /home/pi/webcam/cam.jpg
Nicht vergessen, den FTP Client zu installieren. siehe auch https://sebastianhemel.blogspot.com/2015/02/raspberry-pi-logitech-webcam-anschlieen.html:
sudo apt-get install ncftp