Digitales Prototyping: Raspberry Pi: Automatisierung, MOC, Kamera / 2019-05-09 / Matthias Edler-Golla, CC BY-SA 4.0


|



 



Themen heute

Raspberry Pi

  • via SSH und SFTP mit dem Raspi kommunizieren
  • Image Magick für die Stapelverarbeitung von Bildern
  • Bash-Scripte und Crontabs
  • MOC: Music on Console als Wecker
  • Raspberry Pi Camera Module
  • Camera Module: Einzelaufnahmen und Serienfotos
  • Camera Module: Video-Aufnahme (incl. Zeitlupe und Zeitraffer)
  • Mp4-Videos erstellen

Terminal Programme am Mac und PC

iTerm ist eine (bessere) Alternative zum Terminal, das auf allen Macs installiert ist. PC-User müssen sich Putty installieren, um eine Terminal-Umgebung zu erhalten.

iTerm bzw. Putty

Habt Ihr Euch als Mac-User iTerm und als PC-User Putty heruntergeladen und installiert? Beide Programme sind kostenlos!

In den Programmen könnt Ihr genau so arbeiten, wie wir das gerade am Raspberry Pi ausprobiert haben – es gibt praktisch die gleichen Befehle…


Terminal Programme am Mac und PC 2

Wetter-Abfrage

Fragt doch mal ab, wie das Wetter wird…

# Wetter im gewünschten Ort
curl wttr.in/Munich

# kältester Ort auf der Erde
curl wttr.in/Oymyakon

# aktuelle Mond-Phase
curl wttr.in/Moon 

# Mond an einem best. Tag
curl wttr.in/Moon@2019-April-12

Meine Scripte komplett herunterladen

damit funktionieren diese auch offline auf Eurem PC/Mac…

# Ordner "Scripte" anlegen und dorthin wechseln
mkdir Scripte
cd Scripte

# Die Option -r sorgt dafür, dass rekursiv bis zu einer Tiefe von 8 (-l 8) vorgegangen wird, 
# -k konvertiert die Links, so dass sie lokal funktionieren und -E erzwingt die Endung .html 
# für alle Dateien (ist dann nützlich, wenn .php- oder .asp-Seiten geladen werden).
wget -r -k -E -l 8 https://scripte.matthias-edler-golla.de

Achtung: Das Herunterladen dauert!


Via SSH mit dem Raspberry Pi verbinden

Über SSH (Secure Shell) könnt Ihr Euch ebenfalls mit dem Raspberry Pi verbinden – dann steht Euch aber nur das Terminal-Fenster zur Verfügung! Das benötigt viel weniger Bandbreite als die Verbindung über VNC!

Verbinden

# mit richtigem Raspi verbinden
# Name steht auf der Unterseite des Gerätes
# Übersetzung: „als User „pi“ mit dem Gerät verbinden, das folgende IP-Adresse hat…
ssh pi@192.168.178.79

# Password des Raspi eingeben – habt Ihr das noch?
# Achtung, beim Eingeben wird im Terminal nichts angezeigt
# Am Ende ENTER-Taste drücken

bei erfolgreicher Anmeldung sieht das Terminal dann so aus:

Am Anfang der Zeile steht der Name des Raspberry Pi, mit dem man gerade verbunden ist. Hier „fk12pi-a“

Verbindung trennen

exit

Achtung, der Raspberry Pi läuft deswegen trotzdem noch weiter. Nicht einfach den Stecker ziehen!

Raspi ausschalten

sudo shutdown now

dann ca. 1min warten – man erkennt, dass der Raspi runtergefahren ist, nachdem die grüne LED 8x geblinkt hat…


Via Cyberduck mit Raspberry Pi verbinden

Mit dem Raspberry Pi könnt Ihr Euch genauso verbinden, wie mit dem Server, auf dem Ihr im Wintersemester Eure Porfolios hochgeladen habt!

Cyberduck

Habt Ihr noch Cyberduck auf Euren Rechnern installiert? Auch das ist kostenlos…

Cyberduck Settings

Wenn Ihr also Bilder und Musik dabei habt, müsst Ihr diese via Cyberduck auf den Raspi kopieren…


Image Magick

imagemagick.org

Use ImageMagick® to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, GIF, HEIC, TIFF, DPX, EXR, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.

Image Magick ist das Schweizer Messer unter den Bildverarbeitungsprogrammen, läuft auch auf dem Raspberry Pi und kann viele Bilder gleichzeitig bearbeiten (Stapelverarbeitung)

Viele Bilder automatisch auf eine gewünschte Größe verkleinern – um z.B. für eine Website schnell ladende Vorschaubilder zu haben…

In den Ordner mit den Bildern wechseln

cd Pictures/Demo-Fotos/

Ordner "Thumbs" anlegen

mkdir Thumbs

in Ordner "Gross" wecheseln

cd Gross

Anzahl Dateien in dem Ordner, in dem man sich gerade befindet

# hier sind 88 Fotos enthalten!
find . -type f | wc -l

alle Bilder aus dem aktuellen Ordner in einem neuen Ordner Thumbs verkleinern

# die Qualität soll dabei 60% sein
mogrify -resize 320x240 -quality 60 -path ../Thumbs *.jpg

# Achtung, der Prozess kann eine Weile dauern, nicht abbrechen!
# danach hat man im Ordner "Thumbs" die gleichen Bilder
# wie im Ordner "Gross", aber alle auf die Größe 320x240 heruntergerechnet

zur Kontrolle in Ordner "Thumbs" wechseln und dort Dateien zählen

cd ../Thumbs
find . -type f | wc -l

Die Alternative wäre gewesen, alle Fotos von Hand zu verkleinern, oder aber z.B. in Photoshop eine Automatisierung zu erstellen…

gutes Tutorials


Image Magick: Weitere Beispiele

Image Magick kann einem viele (langweilige) Arbeit abnehmen – hier noch ein paar Beispiele:

in den Demo-Ordner wechseln, wo die Beispiel-Bilder liegen

cd /home/pi/Pictures/Demo-Fotos/iMagick

ACHTUNG

Die von Image Magick erzeugten Bilder werden außerhalb des Ordner iMagick abgespeichert, damit sie bei den jeweiligen Aufrufen nicht mit verwendet werden – deswegen z.B. „../collage_horizontal.jpg“

horizontale Kollage aus 2 Bildern

convert +append shot_1.jpg shot_2.jpg ../collage_horizontal.jpg

vertikale Kollage aus 3 Bildern

convert -append shot_1.jpg shot_2.jpg shot_3.jpg ../collage_vertikal.jpg

vertikale Kollage aus allen Bildern

convert -append *.jpg ../collage_vertikal_alle.jpg

horizontale Montage aller Bilder

montage *.jpg -geometry +2+2 ../montage_h.jpg 

vertikale Montage aller Bilder

montage -mode concatenate -tile 1x *.jpg ../montage_v.jpg 

alle Bilder gesammelt als ein PDF

# unterhalb der Bilder wird der Name angegeben
# 640x480 ist die Größe der Bilder
# 10+10 der Abstand
montage -label %f -geometry 640x480+10+10 *.jpg ../test.pdf 

Probiert es doch mal auf dem Raspi aus. Die entsprechenden Beispielbilder findet Ihr bei "/home/pi/Pictures/Demo-Fotos/iMagick"


Image Magick: Animated Gif

Aus beliebig vielen Bildern eines Ordners ein Animated Gif erstellen – probiert es mal aus!

Terminal

# in Ordner "Shots" wechseln
cd /home/pi/Pictures/Shots

# Ordner "Thumbs" erzeugen
mkdir ../Thumbs

# um 93.75% verkleiner -- ergibt meine gewünschte Breite von 960px
mogrify -resize 93.75% -quality 80 -path ../Thumbs *.jpg 

# in Ordner CD wechseln
cd ../Thumbs

# Animated Gif mit 0.5 Sekunden Verzögerung, Gif läuft endlos ab
convert -delay 50 -loop 0 *.jpg ../testimage_960.gif

# Ordner Thumbs löschen, wird nicht mehr gebraucht
rm -r ../Thumbs

Image Magick: Wasserzeichen

Mit Image Magick kann man Bilder mit Wasserzeichen versehen – z.B. als einfacher Copyright-Schutz

Wasserzeichen-Bild

am besten ein Bild im PNG-Format, bei dem der Hintergrund transparent ist;

dies muss an einer genau definierten Stelle auf dem Raspberry Pi abgelegt sein – für die folgenden Anweisungen genau hier:

/home/pi/Pictures/ampersand.png

Terminal

probiert es doch gleich mal aus:

# in den gewünschten Ordner wechseln
cd /home/pi/Pictures/Wasserzeichen

# Bild wird im gleichen Ordner gespeichert
# Wasserzeichen rechts unten
# "shot_1.jpg" ist das exist. Bild, "shot_1_watermark.jpg" das neue
# will man ein Bild überschreiben, muss man zweimal den gleichen Namen hintereinander angeben
composite -gravity SouthEast "/home/pi/Pictures/ampersand.png" "shot_1.jpg" "shot_1_watermark.jpg"

# Wasserzeichen in der Mitte
composite -gravity Center "/home/pi/Pictures/ampersand.png" "shot_1.jpg" "shot_1_watermark.jpg"

# Wasserzeichen links oben
composite -gravity NorthWest "/home/pi/Pictures/ampersand.png" "shot_1.jpg" "shot_1_watermark.jpg"

# durch "-compose Multiply" wird das Wasserzeichen sehr dezent
# "-geometry +10+10" 10 Pixel vom Rand
composite -compose Multiply -gravity NorthEast -geometry +10+10 "/home/pi/Pictures/ampersand.png" "shot_1.jpg" "shot_1_watermark.jpg"

Stapelverarbeitung

Man kann auch ganze Stapel von Bildern automatisch mit Wasserzeichen versehen – dazu ist ein Bash Script notwendig, Siehe nächste Slides!


Bash-Scripte

Bash scripts are used by Systems Administrators, Programmers, Network Engineers, Scientists and just about anyone else who uses a Linux/ Unix system regularly. No matter what you do or what your general level of computer proficiency is, you can generally find a way to use Bash scripting to make your life easier.

Mit Bash-Scripten könnt Ihr ganz viele Sachen am Raspi automatisieren! So könnt Ihr z.B. festlegen, dass der Raspi automatisch zu einem bestimmten Zeitpunkt Bilder verkleinert, eMails verschickt oder anfängt, Musik zu spielen…

Damit die Bash-Scripte funktionieren, müssen sie sich an folgender Stelle befinden:

/home/pi/bin

Erzeugen des Scripts

# im Ordner "bin" die Datei "helloWelt.sh" erzeugen
cd /home/pi/bin
nano helloWelt.sh

dort den hier unten aufgeführten Code einfügen und sichern ("ctrl + x" und dann "y")

Bash-Script „helloWelt.sh“

#!/bin/bash

# Gibt "Hallo liebe Welt!" im Terminal aus
echo Hallo liebe Welt!

exit 0

Zugriffsrechte anpassen

# Zugriffsrechte von "helloWelt.sh"
# so dass es gestartet werden kann
sudo chmod 755 helloWelt.sh

Bash-Script starten

# das Bash-Script starten
# Probiert es mal aus!
helloWelt.sh

Online-Tutorial

https://ryanstutorials.net/bash-scripting-tutorial/


Bash-Script zum Aufzeichnen der Chip-Temperatur

Wenn der Raspi viel arbeitet, wird der Prozessor recht heiß – mit folgender Anweisung kann man sich die Temperatur im Terminal anzeigen lassen:

vcgencmd measure_temp

Will man die Temperatur in einer Text-Datei speichern, geht das auch recht einfach:

vcgencmd measure_temp >> /home/pi/chip-temperatur.txt

Soll die ganze Sache automatisch ablaufen, macht es Sinn, dazu ein Bash-Script zu erzeugen:

Erzeugen des Scripts

# im Ordner "bin" die Datei "chipTemperaturSchreibenDatum.sh" erzeugen
cd /home/pi/bin
nano chipTemperaturSchreibenDatum.sh

Bash-Script

#!/bin/bash

# fügt die Chip-Temperatur jeweils als neue Zeile in die Datei "chip-temperatur.txt" ein
vcgencmd measure_temp >> /home/pi/chip-temperatur.txt

exit 0

Wahrscheinlich will man dann aber auch noch Datum und Uhrzeit der Messung aufschreiben:

Bash-Script

#!/bin/bash

# Schreibt die Temperatur des Chips auf

# Datum und Uhrzeit, damit man weiss, wann was gemessen wurde
Datum="$(date '+%Y-%m-%d, %H:%M:%S')"

# die Temperatur des Prozessors
Temperatur="$(vcgencmd measure_temp)"

# fügt die Chip-Temperatur jeweils als neue Zeile in die Datei "chip-temperatur.txt" ein
echo Datum: $Datum, Temperatur: $Temperatur >> /home/pi/chip-temperatur.txt

exit 0

Zugriffsrechte anpassen

# Zugriffsrechte von "chipTemperaturSchreibenDatum.sh"
# so dass es gestartet werden kann
sudo chmod 755 chipTemperaturSchreibenDatum.sh

Aufruf direkt im Terminal

chipTemperaturSchreibenDatum.sh

Achtung: Das Script gibt den Wert nicht im Terminal aus, sondern fügt den aktuellen Wert bei der Datei "chip-temperatur.txt" an!

Das ist nicht sehr praktisch, wenn man das immer von Hand machen muss – mit crontab kann man dies super automatisieren! Siehe übernächsten Slide…


Bash-Script zum bequemen Herunterrechnen von Bildern

Das hier gezeigte Script rechnet automatisch die Bilder auf die gewünschte Größe herunter und meldet sich, wenn die Aufgabe erledigt ist.

Erzeugen des Scripts

# im Ordner "bin" die Datei "thumbnails.sh" erzeugen
cd /home/pi/bin
nano thumbnails.sh

dort den hier unten aufgeführten Code einfügen und sichern ("ctrl + x" und dann "y")

thumbnails.sh

#!/bin/bash

# erzeugt den Ordner "Thumbs" paralell zum Ordner, in dem man sich befindet,
# erstellt mit ImageMagick Thumbs und legt diese im Ordner "Thumbs" ab
# die Namen der Bilder bleiben erhalten

# Aufruf ohne weitere Angaben: thumbnails.sh
# Aufruf explizit: thumbnails.sh 320

Breite=$1

# falls kein Wert übergeben wird, gibt es den Default-Wert 400px
if [ ! $Breite ]
then
    Breite=400
fi

# Ordner "Thumbs" erzeugen
mkdir ../Thumbs

# Zählt die Dateien im Ordner und fügt diese in die Variable "Anzahl" ein
Anzahl=$(find . -type f | wc -l)

# Ausgabe im Terminal
echo $Anzahl Thumbnails in der Breite $Breite px werden erzeugt, dass kann etwas dauern. Zum Abbrechen \"ctrl und c\" drücken!

mogrify -resize $Breite -quality 80 -path ../Thumbs *.jpg

echo Thumbnails wurden erzeugt und in den Ordner Thumbs gelegt!

exit 0

Das Script "thumbnails.sh" muss noch "ausführbar" gemacht werden

sudo chmod 755 thumbnails.sh

Achtung: Damit das Script funktioniert, muss man zuerst in den richtigen Ordner wechseln, also z.B.

cd /home/pi/Pictures/Demo-Fotos/Gross

Aufruf-Varianten

# Grundeinstellung, erzeugt Thumbnails in der Breite von 400px
thumbnails.sh

# Aufruf mit Angabe, welche Größe gewünscht ist, hier 320px
thumbnails.sh 320

# und das gleiche für 455px
thumbnails.sh 455

Übung

Bitte erstellt das hier gezeigte Script „thumbnails.sh“ auf Eurem Übungs-Raspi und testet, ob Ihr damit Bilder auf eine gewünschte Breite herunterrechnen könnt!

Dazu reicht es, wenn Ihr via SSH mit dem Raspi verbunden seid – das braucht sehr viel weniger Bandbreite als VNC…


Image Magick: Bash-Script Wasserzeichen

Mit folgendem, auf dem Raspi schon installierten Bash-Script könnt Ihr beliebig viele Bilder mit dem Wasserzeichen "ampersand.png" versehen.

Probiert es doch mal aus!

# Aufruf aus dem Terminal
watermark.sh

# dann richtigen Ordner angeben, hier:
/home/pi/Pictures/Wasserzeichen

# Rest erledigt das Script
# die mit Wasserzeichen markierten Bilder befinden sich dann bei:
ls /home/pi/Pictures/Wasserzeichen/mit_Wasserzeichen/

Bash-Script

#!/bin/sh

# https://petermolnar.net/simple-batch-resize-watermark-with-imagemagick/

# Aufforderung an den User, anzugeben, wo sich die zu markierenden Bilder befinden
echo Bitte gewünschten Ordner-Name -ohne Anführungsstriche- angeben, z.B. /home/pi/Pictures/Wasserzeichen:
read -p 'Ordner: ' ordner

# in den Ordner wechseln
cd $ordner

# wo sollen die überarbeiteten Bilder gespeichert werden
zielOrdner="mit_Wasserzeichen"

# wo befindet sich das vorbereitete Wasserzeichen
wasserzeichen="/home/pi/Pictures/ampersand.png"

# Ordner erzeugen
# Achtung, wenn der Ordner schon existiert, werden die Bilder darin überschrieben
mkdir $zielOrdner

# alle Dateien mit Datei-Endungen verwenden, also ".jpg, .JPG, .jpeg, .png, .PNG"
for fname in *.*; do

    # wenn sehr dezentes Wasserzeichen gewünscht ist
    # "-compose Multiply" macht es nur ganz schwach sichtbar
    # composite -compose Multiply -gravity SouthEast -geometry +10+10 "/home/pi/Pictures/ampersand.png" "$fname" "./$zielOrdner/$fname"

    # eher auffällig
    composite -gravity SouthEast -geometry +10+10 $wasserzeichen "$fname" "./$zielOrdner/$fname"

    # Ausgabe bei jedem Bild einzeln
    echo "Wasserzeichen bei $fname eingefuegt!"
done

# Ausgabe, wenn alles fertig ist
echo "Fertig: Alle mit Wasserzeichen markierten Bilder bei $ordner/$zielOrdner" eingefügt

exit 0

Probiert mal

Ladet Euer eigenes Wasserzeichen und eigene Bilder hoch und markiert damit Eure Arbeiten!


crontab -e

Mit „crontab -e“ kann man sehr genau festlegen, was zu einem bestimmten Zeitpunkt automatisch ausgeführt werden soll.

Starten von crontab im Terminal

crontab -e

dort können dann untereinander beliebig viele Anweisungen aufgelistet werden

Beispiel-Code

# beim Starten des Raspis das Bash-Script "helloWelt.sh" ausführen
@reboot /home/pi/bin/helloWelt.sh

# alle 15min das Script ausführen lassen, das die Chip-Temperatur misst
# also z.B. um 13:00, 13:15, 13:30, 13:45 usw.
*/15 * * * * /home/pi/bin/chipTemperaturSchreibenDatum.sh

# alle 2 Minuten…
*/2 * * * * /home/pi/bin/chipTemperaturSchreibenDatum.sh

# am Sonntag um 2.30 Uhr morgens den Raspi neustarten
30 02 * * SUN /home/pi/bin/raspi_neustart.sh

# am Mittwoch um 14:21 Uhr den Raspi neustarten
# Mittwoch in der 3. Tag der Woche -- man hätte auch WED schreiben können
21 14 * * 3 /home/pi/bin/raspi_neustart.sh

# Sonntag, Dienstag und Donnerstag den Raspi um 15:32 neu starten
32 15 * * SUN,TUE,THU /home/pi/bin/raspi_neustart.sh

# jeweils am 15. der Monate Januar, März, Mai und Juli um 23:59 den Raspi neu starten
59 23 15 JAN,MAR,MAY,JUL * /home/pi/bin/raspi_neustart.sh

Online-Nachschlagewerk zu Crontabs

https://crontab.guru/

Raspi-Neustart Script

#!/bin/bash

# startet den Raspi zu einem im crontab festgelegten Zeitpunkt
sudo reboot

exit 0

Automatisch ausschalten – Zeitpunkt auch via crontab festgelegt

#!/bin/bash

# schaltet den Raspi zu einem festgelegten Zeitpunkt aus
sudo shutdown now

exit 0

sudo bedeutet, dass man den Befehl als „Super-User“ ausführt. Der normale Benutzer „pi“ darf das nicht, sondern nur der Sys-Admin…


MOC: Music on Console

Ein Musicplayer, der direkt in der Konsole läuft und MP3-Dateien abspielen kann. Auf der rechten Seite ist die Playlist zu sehen – diese muss mit Songs gefüllt sein, damit man z.B. den Raspi als Wecker benutzten kann – nächster Slide…

MOC starten

mocp

Wichtige Befehle in MOC

  • Lautstärke ändern mit den Tasten "," und "."
  • Musik abspielen mit der Enter-Taste
  • Musik anhalten mit der Leertaste
  • MOC schliessen, Musik läuft weiter: Taste "q" drücken
  • Hilfe aufrufen: "h"
  • Musik zufällig abspielen – Großbuchstabe "S"
  • Musik zur Playliste (rechte Seite) hinzufügen – Großbuchstabe "A"
  • Musik aus Playliste entfernen – Großbuchstabe "C"

mehrere Sachen direkt in der Konsole eingeben

# MOC starten, zufällig abspielen, Lautstärke 80%, Musik abspielen
# ACHTUNG: Für dieses Script darf die Playliste (rechte Seite) nicht leer sein!
mocp -S && mocp -o shuffle && mocp -v 80 && mocp -p

MOC komplett beenden

mocp -x

eigene Musik importieren

Um Eure eigene Musik bei MOC anhören zu können, müsst Ihr die MP3-Dateien vom Eurem USB-Stick in folgenden Ordner kopieren – gerne auch in den dazugehörigen Verzeichnissen bzw. „Alben“…

/home/pi/Music

MOC als Wecker

Achtung: Damit der Wecker angeht, müssen bei mocp bei Playlist (rechte Seite) Songs vorhanden sein. Diese mit der Taste A zur Playlist hinzufügen!

crontab -e

# mocp als Wecker verwenden
# Lautstärke 50 von 100
# Wecker geht jeden Tag um 6:30 an
30 06 * * * /home/pi/bin/mocp_starten_crontab.sh 50

# mocp nach einer halben Stunde (also um 7.00)  wieder aus
00 07 * * * /home/pi/bin/mocp_stop.sh

mocp_starten_crontab.sh

#!/bin/bash

# Aufruf via crontab -e als Wecker
# Achtung: Auf der rechten Seite muss eine Playlist definiert sein!
# Lautstaerke als Argument uebergeben

laut=$1

# falls kein Wert übergeben wird, gibt es den Default-Wert
if [ ! $laut ]
then
    laut=50
fi

# nächste Zeile startet mocp, lässt Songs zufällig abspielen und stellt die Lautstärke ein
mocp -S && mocp -o shuffle && mocp -v $laut && mocp -p

# echo Die Musik wird mit der Lautstaerke $laut gestartet

exit 0

mocp_stop.sh

#!/bin/bash

mocp -x

echo Die Musik wurde angehalten

exit 0

The Essential Camera Module Guide

https://www.raspberrypi.org/magpi-issues/Essentials_Camera_v1.pdf

One of the most popular add-ons for the Raspberry Pi, the official Camera Module turns your favourite single-board computer into a powerful digital camera.

The Camera Module can be used to take high-definition video, as well as stills photographs. It’s easy to use for beginners, but has plenty to offer advanced users if you’re looking to expand your knowledge. There are lots of examples online of people using it for time-lapse, slow-motion, and other video cleverness. You can also use the libraries we bundle with the camera to create effects. You can read all the gory details about IMX219 and the Exmor R back-illuminated sensor architecture on Sony’s website, but suffice to say this is more than just a resolution upgrade: it’s a leap forward in image quality, colour fidelity, and low-light performance. It supports 1080p30, 720p60 and VGA90 video modes, as well as still capture. It attaches via a 15cm ribbon cable to the CSI port on the Raspberry Pi. raspberrypi.org

Das Camera Module kostet ca. € 25.-


Raspberry Pi Camera Module anschließen

Bitte unbedingt den Raspi vor dem Anschliessen ausschalten!

 sudo shutdown now

Anschluss

Der Anschluss befindet sich in der Mitte des Boards. Zum Anschliessen ganz vorsichtig das (schwarzen) Plastikteil nach oben schieben.

Flachband-Kabel

Das Kabel muss richtig herum (so wie auf der Abbildung) in den Anschluss gesteckt werden. Im Anschluss daran das (schwarze) Plastikteil vorsichtig nach unten drücken

Kontrolle

Das Kabel muss gerade in dem Anschluss stecken!


Raspberry Pi Camera Stand

selbst ausgedrucker Kamera Halter…

Thingiverse Open Design

Die Daten, um den Kamera Halter selber auf dem 3D-Drucker zu erstellen, könnt Ihr bei Thingiverse.com kostenlos herunterladen!


Camera Module: Einzelbilder fotografieren

Die Kamera kann Einzelaufnahmen bis zu einer maximalen Auflösung von 3280 × 2464 pixel machen!

Achtung: Die Fotos werden da gemacht, wo Ihr Euch gerade im Datei-System befindet! Wenn Ihr die Fotos also bei „Pictures“ speichern möchtet, müsst Ihr vor dem Starten von „raspistill“ in den Ordner wechseln

cd /home/pi/Pictures

einfachster Aufruf – riesiges Bild (3280 × 2464 pixel)

# Name des Bildes "erstesBild.jpg"
raspistill -o erstesBild.jpg

Aufruf mit mehr Angaben

# Bildname (o): image.jpg
# Verzögerung (t) bis zur Aufname: 1sek (1000ms)
# Breite (w): 800px
# Höhe (h): 600px
# Qualität (q): 90 (max. 100)
raspistill -o image.jpg -t 1000 -w 800 -h 600 -q 90

verlustfreie Fotos

#  einiges langsamer und Datei deutlich größer
raspistill -o image.png -e png -w 800 -h 600 

Bild um 180° drehen

raspistill -vf -hf -o image.jpg -t 1000 -w 800 -h 600 -q 90

Camera Module: Einzelfotos via ENTER-Taste

macht jedes Mal ein Bild, wenn die ENTER-Taste betätigt wird…

Anwendungs-Beispiele

# "_%04d" fügt hier den Namen "enterFoto" automatisch eine Numerierung bis 9999 an
# das "-k" sorgt dafür, dass bei ENTER ein Foto gemacht wird!
raspistill -o enterFoto_%04d.jpg -w 800 -h 600 -q 70 -k

Beenden des Vorgangs mit „ctrl + c“


Camera Module: Zeitraffer-Aufnahmen fotografieren

Das Camera Module kann in frei definierbaren Abständen Einzelfotos machen!

Anwendungs-Beispiel

# Zeitraffer-Fotos, im Ordner "/home/pi/Pictures/" gespeichert
# Name mit Nummerierung: frame_0000.jpg, frame_0001.jpg usw.
# Breite und Höhe: 800x600px
# Qualität (q) 80%
# Dauer der Zeitraffer-Serie (t): 1 min (60 * 1000 ms)
# Abstand zwischen Aufnahmen (tl): 1000ms
# das "&" sorgt dafür, dass man weiterarbeiten kann, auch während die Kamera Aufnahmen macht!
raspistill -o /home/pi/Pictures/frame_%04d.jpg -w 800 -h 600 -q 80 -t 60000 -tl 1000 &

Online-Tutorial:

http://computers.tutsplus.com/tutorials/creating-time-lapse-photography-with-a-raspberry-pi--cms-20794

Raspi Zero mit Kamera am Fahrrad


Aus Einzelbildern Animation erstellen

Aus den gerade gemachten Einzelbildern kann man dann direkt auf dem Raspi Animationen erzeugen – die oben gezeigte Animation ist ein MP4-Video

Achtung: Bei beiden Scripten ist es notwendig, dass Ihr zuerst via cd in den Ordner navigiert, in dem sich die Bilder befinden, die Ihr in eine Animation umwandeln möchtet!

Animated Gif mit ImageMagick

# -delay 50:  0.5 Sekunden Verzögerung
# loop 0: Animation läuft endlos
convert -delay 50 -loop 0 *.jpg ../fingerspiel.gif &

MP4-Video

# -r 3: 3 Bilder pro Sekunde
# -pattern_type glob -i "*.jpg": alle Bilder aus dem aktuellen Ordner mit Dateiendung ".jpg"
# Rest Settings für mp4
# mehr dazu: https://lonewolfonline.net/raspberry-pi-timelapse-videos/
ffmpeg -r 3 -pattern_type glob -i "*.jpg" -c:v libx264 -pix_fmt yuv420p -movflags +faststart ../fingerspiel.mp4

Camera Module: Video aufnehmen

Videos können eine maximale Auflösung von 3240x2464 Pixel haben – und für Zeitlupe eine Framerate von 90fps (Bilder pro Sekunde). Dann ist aber nur eine maximal Auflösung von 640x480 Pixel möglich!

Hier ein paar Beispiele mit verschiedenen Einstellungen:

10sek langes Video mit dem Namen "video.h264"

# "&" damit man im Terminal weiterarbeiten kann, während der Film aufgenommen wird
raspivid -o video.h264 -t 10000 &

Stoppen der laufenden Aufname

# Im Terminal steht z.B. "[1] 815" nachdem man die Aufnahme wie oben gestartet hat
# zum Abbrechen der Filmaufnahme im Terminal eingeben
# die Prozessnummer ist dabei jeweils unterschiedlich!
kill 815

unendliches Video

# ACHTUNG: lässt sich nur durch "kill Prozessnummer" anhalten!
raspivid -o video.h264 -t 0 &

Zeitlupen-Aufnahme

# 50s(50000ms)
# Auflösung 640x480px (angeblich geht hier sogar 1024x768px Auflösung…)
# 90 Bilder pro Sekunde
# 180° gedreht (-vf)
raspivid -t 50000 -w 640 -h 480 -fps 90 -o video.h264 -vf &

Zeitraffer-Aufnahme

# 50s(50000ms)
# Auflösung 1024x768px
# 5 Bilder pro Sekunde
# 180° gedreht (-vf)
raspivid -t 50000 -w 1024 -h 768 -fps 5 -o video.h264 -vf &

Video in Mp4 konvertieren

Mp4-Videos können vermutlich mehr Computer abspielen als H264-Videos, deswegen ist es praktisch, dass man diese einfach konvertieren kann!

zuerst gpac installieren, falls dies noch nicht installiert ist

# Internet-Verbindung ist hier notwendig…
sudo apt-get install gpac

Video konvertieren

MP4Box -add video.h264 video.mp4

Danke

Weitere Vorträge: