Die Vorstellung der Harwarekomponenten der Raspberry Video Camera ist nunmehr abgeschlossen – jetzt geht es um Software. Da kommt als erstes natürlich das Betriebssystem ins Spiel, nämlich Raspbian Jessie Lite. Dazu habe ich in der Vergangenheit bereits Artikel geschrieben, aber nachdem sich immer mal wieder was ändert, erkläre ich hier noch einmal Schritt für Schritt eine Raspbian headless Installation mit WiFi. „Headless“ bedeutet hier, dass wir von einem Serversystem ausgehen, das weder Tastatur noch Monitor besitzt und so muss auch die komplette Installation ohne Tastatur und Monitor erfolgen. Bei Raspbian ist das kein Problem. Dazu kommt dann im nächsten Schritt die Grundeinrichtung des Systems und die Installation einiger Softwarekomponenten, die wir für das Kamerasystem benötigen.
Zuerst aber wieder ein Oachkatzl-Video bzw. diesmal ein Krähen-Video. Mehr davon gibts in meinem YouTube-Kanal.
Zur Wahrung deiner Privatsphäre wird erst eine Verbindung zu YouTube hergestelt, wenn du den Abspielbutton betätigst.
Betriebssystem Raspbian Jessie Lite
Damit der Raspberry Pi ein Betriebssystem erhält, muss das aus dem Internet geladen und dann auf eine Micro-SD-Karte geschrieben werden. Diese Vorbereitungsarbeiten kann man an einem normalen Windows-PC machen.
Download
Am Anfang steht der Download der aktuellen Raspbian Version. Im März 2017 ist das das Release vom 02.03.2017 mit dem Dateinamen 2017-03-02-raspbian-jessie-lite.zip
. Die Lite-Version verwende ich aus dem einfachen Grund, weil wir bei einem Kamerasystem ohne Monitor eh keine grafische Oberfläche brauchen. Es reicht also die kleinere Lite Variante vollkommen. Die Installation funktioniert aber bei der großen Raspbian Version mit Pixel-Oberfläche analog, nur der Dateiname lautet anders.
Mikro-SD-Karte beschreiben
Im Folgenden gehe ich davon aus, dass die Erstellung der Micro-SD-Karte an einem Windowsrechner erfolgt. An einem Linuxrechner funktioniert das natürlich auch. Wer dieses Variante wählen möchte, der kann sich an diesem Artikel orientieren – zumindest, was das Schreiben des Images auf die SD-Karte angeht. Wir brauchen also eine Mikro-SD-Karte und die sollte möglichst schnell sein. 8GB würden für Raspbian locker reichen, wir wollen aber Videos aufzeichnen, deshalb rate ich zu 16, besser noch zu 32GB Speichergröße. Wenn der Windows-PC keinen Slot für SD-Karten besitzt, brauchen wir zusätzlich noch einen Adapter für USB.
Unter Linux kann die SD-Karte mit Bordmitteln beschrieben werden (dd-Kommando), bei Windows geht das nicht, hier brauchen wir ein eigenes Tool mit dem Namen Win32 Disk Imager. Das müssen wir vorher downloaden und am Windows PC installieren.
Das heruntergeladenen Raspbian-Image ist noch gezippt, wir müssen es also entpacken und starten dann den Win32 Disk Imager. Die Meldung mit dem unbekannten Herausgeber bestätigen wir mit Ja. Unter Image File wählen wir dann die eben entpackte Datei aus und unter Device das Laufwerk unter dem die SD-Karte gemountet ist. Mit einem Klick auf Write beginnt dann der Schreibvorgang und der grüne Fortschrittsbalken wandert langsam nach rechts. Nach Abschluss des Schreibvorgangs sollten wir im Dateimanager ein Laufwerk mit der Bezeichnung boot finden. Falls nicht, können wir versuchen, die SD-Karte aus dem PC zu entfernen und sie dann zurückstecken. Windows sollte die Boot-Partition auf der SD-Karte erkennen, da sie Fat32 formatiert ist. Auf dieser Partition müssen wir nun ein paar Vorkonfigurationen vornehmen, da wir am Raspberry Pi ja weder Tastatur noch Monitor haben.
SSH aktivieren
Aus Sicherheitserwägungen heraus ist seit Raspbian Version Jessie 2016-11-25 der SSH-Dienst standardmäßig deaktiviert. Am laufenden System kann er natürlich eingeschaltet werden. Dieser Weg ist uns aber verwehrt, weil wir am Raspberry Pi weder Tastatur noch Bildschirm haben. Für diesen Zweck gibt es einen Workaround. Wir legen in der Bootpartition eine leere Datei mit dem Namen ssh
an. Raspbian wird das beim Booten erkennen und den SSH-Dienst freischalten. Dazu gehen wir im Dateimanager auf boot
, klicken mit der rechten Maustaste in einen leeren Bereich auf boot
und wählen dann Neu – Textdokument. Als Dateiname geben wir dann ssh
ein und löschen .txt
weg. Die Datei muss ssh
heißen und nicht ssh.txt
.
WLAN Konfigurieren
Auch die WLAN Konfiguration müssen wir vorgeben, damit wir den Raspberry Pi nach seinem ersten Bootvorgang per SSH erreichen können. Aber natürlich nur, wenn der RasPi keinen LAN-Anschluss bekommt. Dazu legen wir in der Bootpartition ähnlich wie eben eine weitere Datei an, diesmal mit dem Namen wpa_supplicant.conf
. Wenn die Datei erzeugt ist, öffnen wir sie mit einem Doppelklick. Windows kann zwar mit einer .conf
Datei nichts anfangen, lässt uns aber ein Programm aus einer Liste installierter Programme auswählen. Wir können den Editor oder Wordpad verwenden um den folgenden Inhalt in die Datei zu schreiben:
country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="WLAN SSID"
psk="WLAN Netzwerkschlüssel"
}
SSID und PSK müssen wir natürlich passend zum eigenen WLAN abändern. Dann Speichern nicht vergessen und die Datei schließen. Raspbian wir beim ersten Bootvorgang die Datei an die richtige Stelle, nämlich nach /etc/wpa_supplicant
verschieben. Zur Sicherheit klicken wir im Dateimanager mit der rechen Maustaste auf boot
und wählen dann Auswerfen. Dann können wir die SD-Karte entnehmen.
Damit ist die SD-Karte vorkonfiguriert und kann in den Raspberry Pi gesteckt werden.
Raspberry Pi Grundkonfiguration
Per SSH Kontakt zum Raspberry Pi aufnehmen
Wir haben bisher weder den Hostnamen noch User oder Passwort geändert, der erste Zugriff auf den Raspberry erfolgt also mit den „werksseitigen“ Einstellungen:
- Rechnername: raspberrypi
- Username: pi
- Passwort: raspberry
Linuxuser haben es nun leicht eine SSH-Verbindung aufzubauen, SSH kann einfach in einem Terminalfenster aufgerufen werden:
$ ssh pi@raspberrypi
The authenticity of host 'raspberrypi (2001:a61:32d0:8201:ab43:1e21:5afb:53a3)' can't be established.
ECDSA key fingerprint is SHA256:YVNy7F6Xhanx/xDbzD2BcwQc+LOYF/OqSWwCh88rBHI.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'raspberrypi,2001:a61:32d0:8201:ab43:1e21:5afb:53a3' (ECDSA) to the list of known hosts.
pi@raspberrypi's password:
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
pi@raspberrypi:~ $
Die anfängliche Warnung und die Frage, ob mit der Verbindungsaufnahme fortgesetzt werden soll, kommt daher, dass der SSH-Client den Host (also den Raspberry Pi) noch nicht kennt. Wenn wir mit yes zustimmen, wird der Fingerprint gespeichert und die Warnung entfällt in Zukunft. Nach Eingabe des Standardpassworts sind wir eingeloggt und können beliebige Linux-Kommandos am Raspberry Pi absetzen.
Windowsanwender haben es nicht ganz so einfach, sie müssen erst ein SSH-Programm installieren, typischerweise Putty. Wenn Putty nach seiner Installation am Windowsrechner gestartet wird, tragen wir bei Hostname raspberrypi ein und klicken auf Open. Dann werden in einem Terminalfenster User und Passwort abgefragt und wir sind drin. Ähnlich wie unter Linux können wir im Feld Hostname auch gleich den User mitgeben, der Eintrag lautet dann pi@raspberrypi. Das erspart die Abfrage des Users im Terminalfenster, es wird gleich das Passwort abgefragt. Die Warnmeldung, die wir unter Linux im Terminalfenster angezeigt bekommen, stellt Putty in einem eigenen Fenster dar. Dort brauchen wir zur Bestätigung nur auf Ja klicken.
Grundeinstellungen mit raspi-config
raspi-config ist das Konfigurationstool von Raspbian auf der Commandlineebene. Das müssen wir immer mit vorangestelltem sudo aufrufen um Rootrechte zu erlangen.
sudo raspi-config
Den Menüpunkt Expand Filesystem gibt es zwar noch unter Advanced Options, wir brauchen ihn aber nicht mehr (so wie früher) explizit aufrufen. Raspbian hat beim ersten Boot bereits automatisch die gesamte Größe der SD-Karte der Root-Partition zugeschlagen. Folgende Einstellungen nehmen wir jetzt in raspi-config vor:
- Change User Passwort: Nachdem wir SSH verwenden, dürfen wir es auf keinen Fall beim Standardpasswort belassen und ändern es hier auf einen persönlichen Wert.
- Hostname: Das ist vor allem sinnvoll, wenn wir mehrere Raspberry Pis im Netz haben, die müssen natürlich unterschiedliche Namen bekommen.
- Localisation Options: Die Wi-fi Country Einstellung haben wir bereits mit der Vorkonfiguration der
wpa_supplicant.conf
Datei erledigt. Unter Change Locale markieren wir de_DE.UTF-8 UTF-8 mit der Leertaste, gehen dann auf OK und setzen es in der nachfolgenden Abfrage auch als Defaultwert. Dann stellen wir noch unter Change Timezone die Zeitzone unter richtig ein – also Europe – Berlin. - Für das Raspberry Video Camera Projekt müssen wir auch noch die Kamera aktivieren mit Interfacing Options – Camera.
Danach verlassen wir raspi-config mit Finish und führen den vorgeschlagenen Reboot durch. Nun können wir gleich prüfen, ob der neue Hostname und das geänderte Passwort funktionieren. Der SSH-Aufruf wird allerdings gleich auf einen Fehler laufen, weil der modifizierte Hostnamen nun nicht mehr zum gespeicherten Fingerprint passt. Was zu tun ist, wird im Hinweis angezeigt. Danach können wir uns mit dem neuen Passwort wieder am Raspberry Pi angemelden.
Software aktualisieren und nachinstallieren
Als erstes bringen wir das Betriebssystem auf den aktuellen Stand mit:
sudo apt-get update
sudo apt-get dist-upgrade
Aktualisierungsanfragen bestätigen wir mit Enter. Damit ist auch gleichzeitig die Raspberry Pi Firmware auf den aktuellen Stand gebracht. Den früher gebräuchlichen Befehl rpi-update
sollten wir nicht mehr verwenden.
Nun installieren wir weitere Software, die für das Raspberry Video Camera Projekt benötigt wird. Wenn es dabei um Python Module geht, so installiere ich nur die Module für Python3 in der Annahme, dass heute kein Mensch mehr Python 2.7 braucht.
Picamera
Picamera ist das Python-Modul für die Raspberry Pi Kamera. Das brauchen wir um die Kamera per Python-Programmierung ansprechen zu können.
sudo apt-get install python3-picamera
Wichtig ist es, dass wir mindestens Version 1.13 oder neuer installieren. Ältere Versionen werden mit den Python Programmen, die wir für dieses Projekt erstellen, nicht funktionieren. Nach der Installation schauen wir kurz ein paar Zeilen nach oben und suchen folgende Zeile:
python3-picamera (1.13) wird eingerichtet ...
Hier sehen wir, dass es sich um die Version 1.13 handelt. Abfragen lässt sich die Version auch mit:
$ apt -qq list python3-picamera
python3-picamera/stable,now 1.13 armhf [installiert]
MP4Box
MP4Box ist ein Multimedia-Packager, den wir verwenden werden, um aus den .H264-Videos, die Picamera erzeugt, MP4-Videos zu machen. MP4Box ist Bestandteil von GPAC.
sudo apt-get install gpac
GPIO
Das ist wieder ein Python-Modul, mit dem wir in Python die GPIO-Pins ansprechen können. Das brauchen wir, um den Bewegungssensor auszulesen. Für die Kamera Modelle 850A (ohne Bewegingssensor) braucht diese Software nicht installiert werden.
sudo apt-get install python3-rpi.gpio
Damit haben wir nun ein aktuelles Raspbian Lite installiert, WLAN und den Zugang per SSH eingerichtet und ein paar Programmpakete ergänzt. Der Raspberry Pi ist jetzt bereit und wir können die Kamera per Python programmieren.
Weitere Artikel in dieser Kategorie:
- Raspberry Video Camera – Teil 1: Oachkatzl-Cam
- Raspberry Video Camera – Teil 2: Komponenten & Konzepte
- Raspberry Video Camera – Teil 3: Raspberry Pi Kamera Modul V2.1
- Raspberry Video Camera – Teil 4: Aufnahmeauslöser
- Raspberry Video Camera – Teil 5: Passiver Infrarot Bewegungssensor
- Raspberry Video Camera – Teil 6: Stromversorgung
- Raspberry Video Camera – Teil 7: Spannungsregler 5V
- Raspberry Video Camera – Teil 8: Montage Modell 850
- Raspberry Video Camera – Teil 9: Montage Kamera Modul
- Raspberry Video Camera – Teil 11: SW Python für die Kamera
- Raspberry Video Camera – Teil 12: SW Trigger per Bewegungssensor
- Raspberry Video Camera – Teil 13: SW Autostart und Überwachung
- Raspberry Video Camera – Teil 14: SW Installation Computer Vision (OpenCV 3.2)
- Raspberry Video Camera – Teil 15: SW Einzelbilder exportieren für die Farberkennung
- Raspberry Video Camera – Teil 16: SW Trigger per Farberkennung
- Raspberry Video Camera – Teil 17: Exkurs – Wie Computer Farben sehen
- Raspberry Video Camera – Teil 18: SW Farbkalibrierung
- Raspberry Video Camera – Teil 19: SW Kombinationstrigger
- Raspberry Video Camera – Teil 20: Exkurs – Farbdarstellung per 2D-Histogramm
- Raspberry Video Camera – Teil 21: Konzept einer selbstlernenden Farberkennung
- Raspberry Video Camera – Teil 22: SW selbstlernende Farberkennung in Python
- Raspberry Video Camera – Teil 23: Verbesserung durch ROI und Aufnahmezeitbegrenzung
- Raspberry Video Camera – Teil 24: Anpassung von Programmparametern
- Raspberry Video Camera – Teil 25: Zweite Kamera
- Raspberry Video Camera – Teil 26: Optimierungen gegen Frame Drops
- Raspberry Video Camera – Teil 27: Was kostet der Spaß?
- Raspberry Video Camera – Teil 28: Kamera Modell 200 mit Raspberry Pi Zero
- Raspberry Video Camera – Teil 29: Stromversorgung für Kamera Modell 200
- Raspberry Video Camera – Teil 30: Software für Kamera Modell 200