Hallo zusammen,
ich möchte hier mein ersten Raspi Projekt vorstellen: eine Dash-Cam Vorstellen.
Zu meiner Person sei erstmal gesagt das ich eigentlich nicht viel mit Linux am Hut habe, bin nämlich reiner Netzwerker.
Also nun aber zu meinem Projekt.....
Geplant ist der Raspi wie schon gesagt als Dash-Cam fürs Auto.
Folgende Komponenten habe ich erstmal geplant.
1.) Raspberry Pi Model B mit Raspbian wheezy -> im Overclocking Mode mit 950MHZ
2.) für Strom sorgt ein KFZ-Ladegerät was 12V ausgibt.
3.) einen 12V auf 5V UBEC "Konverter": 12V->5V Konverter
aber keinen Billigen wie die aus Japan, zumindestens erhoffe ich mir von diesem Teil eine bessere Verarbeitung und Qualität
4.) dann für ein sauberes Herunterfahren einen Akku mit 2 USB-Schnittstellen: Akku/USV
5.) die RaspiUSV
6.) ein GPS Stick zum Aufzeichen der GPS Daten, Geschwindigkeit und für NTP: GPS-Stick
NTP über GPS einrichten
7.) zum Speichern der Daten einen 32GB USB3.0 Stick (war bei Media Markt im Angebot )
Step 1) Proof of Concept
für einen Proof of Concept habe ich erstmal überprüft wie gut die Kamera funktioniert und was alles möglich ist.
Raspivid:
Raspivid funktioniert wunderbar zum Aufzeichnen von Videos, leider sind hier keine Zeitstempel in den Videos möglich.
Das Erkennen der Bilder und die Wiedergabe der Cam erfolgt bei Raspivid in der GPU deswegen liegt die CPU Belastung während einer Aufzeichung bei gerademal 10% (1920x1080@30fps).
Zeichnet ein Full-HD Video mit 30fps auf, einer Dauer von 10sec und speichert dies im Ordner /media/Stick mit dem Namen Video.h264.
Motion:
bei Motion muss man etwas aufpassen, dass Standard Motion (welche in der Library hinterlegt ist) arbeitet (aktuell) nicht mit der Raspi-Cam zusammen. Es werden keine Bilder aufgezeichnet.
Was aber funtkioniert ist mmal-motion.
Die Einrichtung kann nach folgenden link erfolgen: Einrichtung mmal-motion
dann sollte man die motion.conf noch nach seinen gegebenheiten anpassen.
hier meine vom Default abweichenden Befehle in der Konfig:
logfile /media/Stick/motion/motion.log # Ort der Log-Datei
width 960 # sollte Klar sein
height 720 # sollte ebenfalls klar sein
framerate 3 # wieviel Bilder pro Sekunden sollen mit aufgezeichnet werden
max_movie_time 1200 # Maximale Dauer der Videoaufzeichnung in Sek pro Datei
emulate_motion on # dauerhafte Videoaufzeichnung, egal ob sich was bewegt hat oder nicht
output_pictures off # es werden keine einzelnen Bilder gespeichert
quality 100 # Bild Qualität 100%
ffmpeg_output_movies on # Videoaufzeichnung aktiv
target_dir /media/Stick # Ordner zum Speichern der Dateien
stream_port 0 # das Streaming wird deaktiviert
webcontrol_port 0 # Web-Server deaktivieren
ffmpeg_bps 2000000 # max. Datenrate zum Schreiben der Bilder
Alles anzeigen
Motion benötigt das UV4L Paket, wie ihr dies installiert findet ihr auf dieser Seite:
Installation UV4L
ein paar zusätzliche Anwendungsbeispiele:
Anwendungsbeispiele UV4L
UV4L wird deswegen benötigt, weil die Raspi Cam nicht im Devices Ordner (/dev/) auftaucht.
Mittels UV4L wird eine Kamera im Devices Ordner erzeugt.
UV4L trägt sollte sich bei der Installation direkt in bei init.d eintragen und somit automatisch starten.
über /etc/init.d/uv4l_raspicam.sh könnt ihr die Startparameter noch anpassen wenn Ihr wollt.
Nachdem alles installiert ist und die Motion.conf angepasst wurde kann motion gestartet werden.
Erkenntnisse:
Wie schon geschrieben funktioniert Raspivid ohne Probleme auch in Full-HD und mit 30fps.
Motion hingegen hat das Problem, dass die Anzeige/Wiedergabe der Daten über die CPU erfolgt.
deswegen ist mit Motion keine Full-HD Aufzeichung möglich.
Die Auflösung 1280x720 kann noch mit 1fps aufgezeichnet werden, jedoch kann es aufgrund der hohen CPU Belastung dazu kommen, dass 1Sec nicht aufgezeichnet werden kann.
Somit hat man teilweise einen Sprung von 2Sec im Video.
Eine Auflösung welche ganz passabel funktioniert ist 960x720, hierbei sind noch bis zu 3fps möglich.
Einbindung des USB-Sticks.
um die CPU Belastung so gering wie möglich zu halten sollte der externe Speicher für die Videos in FAT/FAT32 formatiert sein.
Die Format Unterstützung ist somit direkt in der Distribution vorhanden und es wird kein externes Tool zur Einbindung benötigt.
Link Einbindung USB-Stick
Step 2) Einbau aller Komponenten
to be continued .....
Gruß
Mathias
Gerne nehme ich Verbesserungsvorschläge an.
EDIT:
29.12.13 Motion Datenraten Befehl hinzugefügt, Anpassung Einbindung USB-Stick