Digitales Prototyping: Raspberry Pi: Automatisierung, Kamera, Webserver / 2022-05-05 / Matthias Edler-Golla, CC BY-SA 4.0



Themen heute

Raspberry Pi

  • via SSH, SFTP oder Samba mit dem Raspi kommunizieren und Daten austauschen
  • Image Magick für die Stapelverarbeitung von Bildern
  • Bash-Scripte und Crontabs
  • Raspberry Pi Camera Module
  • Camera Module: Einzelaufnahmen und Serienfotos
  • Camera Module: Video-Aufnahme (incl. Zeitlupe und Zeitraffer)
  • Mp4-Videos erstellen
  • Raspi als Webserver

Terminal Programme am Mac und PC

Direkt auf Eurem Mac/PC könnt Ihr viele Sachen machen, die Ihr beim letzten Mal auf dem Raspi probiert habt!

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

Scripte komplett herunterladen

# 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://s3.matthias-edler-golla.de

Achtung: Das Herunterladen dauert…


Via SSH mit dem Raspberry Pi verbinden

Das haben wir ja beim letzten Mal schon gemacht – bitte verbindet Euch wieder mit Euren Raspis…

Vorbereitung für die Verbindung via SFTP

Bitte macht folgendes, wenn Ihr mit Eurem Raspi verbunden seid:

IP-Adresse abfragen

hostname -I

Ihr solltet dann so etwas ähnliches erhalten:

192.168.178.40 2003:f3:8702:2500:828d:8624:1970:b354

Das entscheidene sind die ersten vier Zifferblöcke, diese sind die IP-Adresse (hier 192.168.178.40) des jeweiligen Raspis – wir brauchen diese gleich, um uns via SFTP mit dem Gerät zu verbinden!


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

Damit habt Ihr einen einfachen Weg, um Sachen zwischen Eurem Mac/PC und dem Raspi auszutauschen…


Via Samba mit Raspberry Pi verbinden

Samba ist eine Erweiterung, die es Euch erlaubt, Ordner eines anderen Rechners auf Eurem Desktop/Explorer anzeigen zu lassen.

Ich habe Samba auch auf den Rapsi installiert – somit sollten auch die Raspis bei Euch unter Network im Finder auftauchen:

Ansicht Finder/Mac

Nach erfolgreichem Anmelden taucht der Ordner raspi_austausch bei Euch am Desktop auf und Ihr könnt dorthin Dateien kopieren oder auch von dort holen…

Auf dem Raspi

der Ordner heißt auf dem Raspi etwas anders und befindet sich an folgender Stelle:

/home/pi/Austausch

Ansicht Windows

Wie das genau auf Windows aussieht, kann ich leider nicht sagen – vielleicht kann mir jemand von Euch dazu Screenshots schicken?


Arbeiten auf dem Raspi

Folgende Sachen könnt Ihr entweder direkt via iTerm/PUtty oder via VNC Viewer machen – Ihr müsst aber auf jedem Fall mit Eurem Raspi verbunden sein!

Schaut Euch die entsprechenden Sachen im Script vom letzten Mal an…


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

dort den Ordner Shots als Experimente kopieren und dorthin wechseln

cp -r Shots Experimente && cd Experimente

Ordner "Thumbs" anlegen

mkdir Thumbs

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

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 "Experimente", aber alle auf die Größe 320x240 heruntergerechnet…

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

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

VNC Viewer

  • wenn Ihr schaun wollt, ob imageMagick richtig gearbeitet hat, öffnet doch mal die Dateien auf dem Desktop des Raspis!*

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/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“

Schaut Euch die Ergebnisse auf dem Desktop des Raspis an!

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 

Ich hoffe, Ihr merkt, dass imageMagick Euch viel Arbeit abnehmen kann…


Image Magick: Animated Gif

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

Terminal

in den 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

cd ../ && rm -r ../Thumbs

Ihr könnt Euch das Animated Gif direkt auf dem Rapsi ansehen, in dem Ihr den Chromium Web Browser (im Menü bei Internet) startet und das Gif direkt in das Browser-Fenster zieht…


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

in Ordner "bin" wechseln

cd /home/pi/bin

die Datei "helloWelt.sh" erzeugen

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 – Ihr müsst wegen "sudo" das Passwort eingeben…

sudo chmod 755 helloWelt.sh

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 immer noch nicht sehr praktisch, wenn man das von Hand machen muss – mit crontab kann man dies super automatisieren! Siehe nächsten Slide…


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
# auf den richtigen Pfad achten!
@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, kürzestes Interval ist eine Minute!
*/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/


Bash-Script zum bequemen Herunterrechnen von Bildern

… super praktisch, wenn man viele Bilder hat, die z.B. im Web gezeigt werden und alle die gleichen Dimensionen (Höhe, Breite) haben sollen …

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, dann werden 400px breite Bilder erzeugt
# Aufruf explizit: thumbnails.sh 320 --> die Zahl gibt an, wie breit die Bilder abgespeichert werden sollen

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, das kann etwas dauern. Zum Abbrechen \"ctrl und c\" drücken!

# "-unsharp 0x5" schärft die Bilder leicht
# "-quality 80" wie hoch ist die Qualität des Bildes…
mogrify -resize $Breite  -unsharp 0x5 -quality 80 -path ../Thumbs *.jpg

echo $Anzahl 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/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…

Tip

Wenn Ihr den Editor Nano nicht gerne benutzt, könnt Ihr das Script auch an Eurem Mac/PC z.B. in Brackets oder VSCode erstellen und dann via SFTP oder Samba auf Euren Raspi kopieren –– dann aber das "sudo chmod 755 thumbnails.sh" nicht vergessen!


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 via 3D-Drucker

mein selbst gestalteter Kamera Halter…


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 –maximale Größe (3280 × 2464 pixel)

das Bild ist fast 5MB groß und die Aufnahme braucht etwas Zeit…

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

Aufruf mit mehr Angaben

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

verlustfreie Fotos (PNG)

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

Bild um 180° drehen

… weil z.B. die Kamera andersum eingebaut ist …

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

"-vf -hf" dreht das Bild sowohl horizontal als auch vertikal…

Probiert es mal alles aus! Via VNC und Raspi-Desktop könnt Ihr ja schauen, wie die Bilder geworden sind – alternativ könnt Ihr die Fotos via SFTP oder Samba auf Eure Macs/PCs holen und dort anschauen!


Camera Module: Einzelfotos via ENTER-Taste

macht jedes Mal ein Bild, wenn die ENTER-Taste betätigt wird und nummeriert die Aufnahmen automatisch durch…

Anwendungs-Beispiele

raspistill -o enterFoto_%04d.jpg -w 800 -h 600 -q 70 -k
  • "_%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!

Achtung: Solange die Aufnahmen laufen, erhaltet Ihr im Terminal kein Feedback!

Beenden des Vorgangs mit „ctrl + c“


Camera Module: Bilderserie fotografieren

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

Ordner anlegen

Bitte legt dafür einen eigenen Ordner bei Pictures an und wechselt dort hin!

mkdir /home/pi/Pictures/Zeitraffer && cd /home/pi/Pictures/Zeitraffer

Anwendungs-Beispiel

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

Die Aufnahmen laufen über den definierten Zeitraum (hier 1min) und hören dann automatisch auf…

Online-Tutorial:

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

Pro-Tip

Wenn Ihr die Aufnahme der Bilderserie vor Ablauf (hier 1min) anhalten wollt, müsst Ihr erst schauen, welche Prozessnummer dafür im Terminal ausgegeben wird. Da könnte dann z.B. stehen:

[1] 5575

Um die Aufnahmen vorzeitig abzubrechen, müsst Ihr im Terminal folgendes eingeben:

kill 5575

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

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

MP4-Video

ffmpeg -r 3 -pattern_type glob -i "*.jpg" -c:v libx264 -pix_fmt yuv420p -movflags +faststart ../fingerspiel.mp4

Ihr könnt Euch die Ergebnisse wieder via VNC/Desktop des Raspis ansehen oder die Sachen via SFTP/Samba auf Euren Rechner holen…


Webserver des Raspis verwenden

Auf den Raspis sind Apache-Webserver und PHP installiert. Wenn Ihr Eure Sachen an die richtige Stelle kopiert, können diese direkt in einem Webbrowser aufgerufen werden, der sich im gleichen Wlan-Netz befindet.

In den richtigen Ordner wechseln

cd /var/www/html/

Der Ordner /var/www/html/ ist der Root-Ordner des Apache-Webservers. Alle Dateien, die Ihr im Browser anzeigen möchtet, müssen sich dort befinden.

Startseite erstellen

löscht die dort vorhandene Datei index.html:

sudo rm index.html

Erstellt bei /var/www/html/ eine neue Datei index.html

nano index.html

kopiert dort folgendes hinein:

HTML

<!DOCTYPE html>
<html lang="de">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hallo Welt!</title>
    <style>
        body {
            margin: 3% auto;
            width: 400px;
            font: 100%/1.5 Verdana, sans-serif;
            background-color: #fff;
            color: #444;
        }
    </style>
</head>

<body>
    <h1>Hallo Welt!</h1>
    <p>Mein Name ist [hier Euren richten Namen eintragen…]</p>
</body>

</html>

Das kennst Ihr noch aus dem Wintersemester, oder?

Im Browser ansehen

öffnet am Mac/PC Euren Lieblings-Browser und gebt dort folgendes in der Adresszeile ein:

http://fk12pi-a.local/
http://fk12pi-b.local/
http://fk12pi-c.local/
http://fk12pi-d.local/

… je nachdem, welchen Raspi Ihr Euch ansehen wollt …

Im Browser auf dem Raspi-Desktop (VNC) ansehen

auch das geht, dafür dort den Chromium-Browser starten und folgendes eingeben:

localhost

Es reicht, wenn Ihr dort localhost eingebt…


Bilderserie im Browser anzeigen lassen

Apache zusammen mit etwas PHP macht es einfach möglich, sich beliebig viele Bilder aus einem Ordner automatisch anzeigen zu lassen – das mühsame Einfügen in HTML entfällt:

Habt Ihr noch die Datei bildergalerie.zip, die ich Euch per Mail geschickt habe?

Datei bildergalerie.zip auf den Raspi kopieren

  1. Wechselt auf Eurem Mac/PC via Terminal in den Ordner, in dem Ihr die Datei bildergalerie.zip gespeichert habt. Am Mac reicht es, dass Ihr den Ordner auf das iTerm/Terminal-Fenster zieht und die ENTER-Taste drückt, dann seid Ihr schon an der richtigen Stelle!
  2. Gebt dort folgendes ein – passt die Zeile so an, dass Eurer Raspi (a, b, c, d…) aufgerufen wird:

SCP (Secure Copy)

# Namen des Raspis anpassen!
scp bildergalerie.zip pi@fk12pi-a.local:/var/www/html/

Verbindet Euch anschließend wieder via SSH mit Eurem Raspi

In den Ordner wechseln, den Apache zum Anzeigen von Webinhalten verwendet

cd /var/www/html/

Zip-Datei entpacken

# hier richtigen Namen eintragen!
unzip bildergalerie.zip

in Ordner bildergalerie wechseln und sich die Inhalte anzeigen lassen

cd bildergalerie && ls -l

Im Browser anzeigen lassen

Wählt dazu auf Eurem Mac/PC im Browser folgende Adresse – bitte anpassen:

http://fk12pi-a.local/bildergalerie/
http://fk12pi-b.local/bildergalerie/
http://fk12pi-c.local/bildergalerie/

Wenn Ihr die Sachen direkt auf dem Raspi-Desktop mit Chromium anschauen wollt, müsst Ihr folgendes als Adresse eingeben:

localhost/bildergalerie/

PHP

Das bei index.php includierte PHP-Script sorgt dafür, dass alle Bilder, die sich im Ordner <Thumbs> befinden, automatisch dargestellt werden…


Eigene Bilder im Browser anzeigen lassen

Um zu sehen, wie Eure gerade aufgenommenen Raspi-Fotos geworden sind, könnt Ihr ebenfalls den Apache-Webserver verwenden:

Kopiert den Ordner "bildergalerie“

speichert diesen unter dem Namen "eigeneFotos"

cd /var/www/html/ && cp -r bildergalerie eigeneFotos

Löscht alle Fotos in den Ordnern "Thumbs" und "Gross"

# das geht schön bequem via Terminal…
rm /var/www/html/eigeneFotos/p/Gross/* && rm /var/www/html/eigeneFotos/p/Thumbs/*

thumbnails.sh

  1. Verwendet das von Euch erstellte Bash-Script thumbnails.sh, um eine von Euch gerade erstellte Bilderserie (siehe Slide „Camera Module: Bilderserie fotografieren“ auf eine Breite von 450px herunterzurechnen.
  2. Verschiebt diese so heruntergerechneten Bilder in den Ordner /var/www/html/eigeneFotos/p/Thumbs, dies könnt Ihr via Terminal oder via Drag&Drop auf dem Desktop des Raspis machen
  3. Rechnet die Original-Fotos auf eine Breite von 1024px herunter und verschiebt diese in den Ordner /var/www/html/eigeneFotos/p/Gross (ebenfalls via Terminal oder Drag&Drop)

Ordnerstruktur

Der Ordner /var/www/html/eigeneFotos/ sollte dann so aussehen:

probiert es selbst mal im Terminal aus und gebt dazu folgendes ein:

# "tree" listet alle Dateien und Ordner auf, die sich im aktuellen Ordner befinden
cd /var/www/html/eigeneFotos && tree

Im Browser ansehen

unter folgenden Adressen solltet Ihr jetzt Eure verkleinerten Bilder sehen, wenn Ihr alles richtig gemacht habt:

http://fk12pi-a.local/eigeneFotos/
http://fk12pi-b.local/eigeneFotos/
http://fk12pi-c.local/eigeneFotos/
http://fk12pi-d.local/eigeneFotos/

local auf dem Raspis geht das auch im Chromium-Browser

localhost/eigeneFotos/

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!

Ordner erstellen und gleich dorthin wechseln

mkdir /home/pi/Pictures/Filme && cd  /home/pi/Pictures/Filme

Hier ein paar Beispiele mit verschiedenen Einstellungen:

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

# "-t 10000" 10sek Aufnahme-Dauer
# "&" damit man im Terminal weiterarbeiten kann, während der Film aufgenommen wird

raspivid -o meinCoolesVideo.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 endlosVideo.h264 -t 0 &

Zeitlupen-Aufnahme

# 50s(50000ms) Dauer
# 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 zeitlupe.h264 -vf &

Zeitraffer-Aufnahme

# 50s(50000ms) Dauer
# Auflösung 1024x768px
# 5 Bilder pro Sekunde
# 180° gedreht (-vf)

raspivid -t 50000 -w 1024 -h 768 -fps 5 -o zeitraffer.h264 -vf &

Tip

Wenn Ihr am Mac/PC z.B. ".h264"-Videos anschauen möchtet, geht das mit VLC – auch diese tolle Software ist kostenlos…


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 install gpac

Video konvertieren

MP4Box -add video.h264 video.mp4

Danke

Alle Scripte durchsuchen

Weitere Vorträge: