Forum: Mikrocontroller und Digitale Elektronik JPG auf MMC/SD - Karte speichern


von Simon K. (simon-k)


Lesenswert?

Hi
Hat von euch schon mal einer die Cam von Ulrich Radig angeschlossen und 
die Bilder im JPG Format auf MMC/SD – Karte gespeichert?

Ich wollte so was mal in angriff nehmen nur leider fehlen mir dazu die 
nötigen Ansätze.
Für die Speicherrung auf MMC/SD – Karte  habe ich überlegt die Lib. von 
Stefan Seegel  zu nehmen 
(Beitrag "MMC/SD Karte: mmc_lib Version 2.0").
Als Cam wollte ich die DC3840 nehmen. Jetzt ist nur die frage wie 
bekomme ich Daten auf die MMC/SD – Karte als JPG gespeichert.
Für den gesamten Aufbau wollte ich einen Atmega32 nehmen.

Ich hoffe ihr könnt mir da ein wenig weiterhelfen.

Gruß Simon

von Εrnst B. (ernst)


Lesenswert?

Als ersten Schritt solltest du dir vielleicht mal grob anschauen, wie 
JPEG funktioniert, und ggfs mal den Quelltext der 
Referenz-Implementierung ("jpeg6b") überfliegen.

Vermutlich wird dir dabei die Lust auf "Jpeg komprimieren mit Atmega32" 
vergehen... Speicher lieber unkomprimierte BMPs oder GIFs mit fixer 
Palette. Das Umwandeln in JPG macht nachher ein PC ganz nebenbei ohne 
ins Schwitzen zu kommen.

von Benedikt K. (benedikt)


Lesenswert?

@Ernst
Alles unnötig, die Kamera liefert schon die Bilder als jpg.

@Simon

Mach dir einen Buffer von z.B. 512 oder 1024Byte und fülle diesen mit 
Daten von der Kamera. Diesen schreibst du dann in eine Datei.
Die von dir angesprochene MMC Lib steuert allerdings nur die MMC/SD an. 
Das Dateisystem musst du selbst machen, oder die Daten Low Level auf die 
Karte speichern.
Oder du nimmst z.B. dieses hier
http://elm-chan.org/fsw/ff/00index_e.html
dann kannst du die Daten einfach mit f_write(buffer, usw.) schreiben.

von Simon K. (simon-k)


Lesenswert?

Ah Ok
Aber wie verarbeite ich Daten die von Cam kommen.
Die kommen zwar im JPG Format aber kann ich die dann einfach so in eine 
Datei schreiben?
Gruß Simon

von Benedikt K. (benedikt)


Lesenswert?

Ja, kannst du.
Die Daten haben direkt schon den passenden jpeg Header usw. Wenn du die 
Datei als .jpg speicherst, kann die Datei am PC wie jede andere jpg 
Datei angezeigt werden.

Das größte Problem dürfte sein, die Daten der Kamera in 512 oder 
1024Byte große Happen zu zerlegen.
Ein Bild ist je nach Auflösung und Komprimierung etwa 5-15kByte groß.
Die Software von Ulrich Radig lässt die Kamera die Daten mehrmals 
senden, und empfängt nur jeweils den passenden Bereich. Das ist 
furchtbar ineffizient, aber bei nur so wenig RAM geht es nicht anders.
Mit einem großen µC (dsPIC, M16C, ARM usw.), mit ausreichend RAM 
(>16kByte), kann man die Daten auch in einem Rutsch empfangen, und 
danach die Daten auf die Karte schreiben. Je nach Helligkeit kommt man 
damit auf etwa 0,3 bis >2Bilder pro Sekunde (bei maximaler Qualität, 
also entweder 320x240, min. Kompression, oder 640x480, mittlere 
Kompression).
Mit einem mega32 würde ich aber eher etwas in Richtung 1-5s/Bild 
erwarten.

von Max (Gast)


Lesenswert?

servus!
hat sich bei dem projekt schon etwas getan?

von Gerd (Gast)


Lesenswert?

Du kannst dir ja den "alten" Webserver von Holger Buss ansehen. Der 
hatte das Speichern der Bilder auf SD-Karte mit der MCA25 gemacht. Kann 
man so ähnlich mit der DC3840 machen.
http://www.mikrocontroller.com/de/webserver_software.php

Gruß Gerd

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.