Forum: Mikrocontroller und Digitale Elektronik USB Kamera mitMikrokontroller auslesen?


von Johannes G. (johannes123)


Lesenswert?

Hallo,

ich verwende zurzeit eine USB-CMOS-Kamera mit 1,3 MP die über ein Via 
Epia N800 Board mit Windows XP ausgelesen wird. Die Daten werden auf 
eine CF-Karte gespeichert.

Ich habe keinen wirklichen Überlick, was es für MC gibt und wofür die am 
Besten verwendet werden, bzw. wann man auf einen DSP oder embedded PC 
zugreifen sollte, deshalb folgede Frage:

Ist es möglich, für soetwas auch einen MC zu verwenden, um Platz und 
Geld zu sparen. Für die Kamera gibt es auch Linux treiber.
Könnte man auf einem MC ein embedded Linux laufen lassen, dass die 
Kamera ausliest und die Daten abspeichert.
Ist der USB-Host auf einem MC realisierbar und wenn ja reicht die 
Rechenleistung eines MC für das auslesen und komprimieren der Videodaten 
aus?

Über ein paar Infos wie, bzw. mit welcher hardware so ein Problem am 
Besten gelöst werden kann wär ich sehr dankbar.

von Sebastian (Gast)


Lesenswert?

Im Prinzip ja, aber um mit einer USB-Kamera fertig zu werden, empfiehlt 
es sich, einen Mikrocontroller zu nehmen, der einerseits den USB-Host 
eingebaut hat und andererseits linuxtauglich ist. Also mindestens 
AT91RM9200 (180 MHz ARM9). Da solche Mikrocontroller vielbeinig sind und 
externen Speicher benötigen, empfiehlt sich meist ein fertiges Modul.

von Lehrmann M. (ubimbo)


Lesenswert?

Johannes G. schrieb:
> Ist der USB-Host auf einem MC realisierbar und wenn ja reicht die
> Rechenleistung eines MC für das auslesen und komprimieren der Videodaten
> aus?

Im Prinzip ja klaro ist das machbar. Ist nur die Frage nach Aufwand und 
Kosten. Ohne einen FPGA wirst du wohl kaum auskommen. Dein 'Problem' ist 
zum einen dein USB-Host (Linux ist ein guter Ansatz - einen 
WebcamUSBtreiber für Mikrocontroller hat glaube ich noch niemand 
portiert), das andere 'Problem' sind deine imensen Datenmengen. 1,3 
Megapixel lässt auf 1280 x 960 Pixel schließen (interpoliert). Die Frage 
ist, ob diese Interpolation direkt in der Webcam oder am PC stattfindet. 
Hier eine kleine Rechendemo:

Rechnen wir mal mit 1280 x 960. Das sind dann 1228800 Pixel (=1,3 
Megapixel).
Jedes Pixel hat gemäß der Farbtiefe einen gewissen Speicherbedarf. Bei 8 
Bit Farbtiefe sind das pro Pixel 3 * 8 = 24 Bits pro Pixel
Dann nehme man noch eine Wiederholfrequenz von mangelhalften 15 Bildern 
pro Sekunde (fps).

Summa Summarum:

1228800 x 24 x 15 = 44.236.800

Also du muss pro Sekunde erst mal 44,2 Millionen Bits bearbeiten 
(alleine das Einlesen einer Sekunde Videostream)  - von Komprimierung 
wollen wir hier noch garnicht reden ...

Das ist schon ein böser Hammer - da benötigst du viel viel RAM.

Dann musst du noch Algorithmen haben die dir das ganze komprimieren 
(während schon wieder weitere 44,2 Mio Bits bearbeitet werden müssen) 
und dann noch auf die CF-Karte klatschen...

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.