Forum: Mikrocontroller und Digitale Elektronik Kamera für Atmel gesucht


von philipp (Gast)


Lesenswert?

Erstmal guten Abend,

Zu diesem Thema gibt es ja nun schon einiges in diesem Forum, aber ich 
habe noch eine Frage.

Ich will eine Kamera, die ich mit einem Atmel µC Auslesen kann.
Die meisten hier scheinen dafür eine normale CMOS-Kamera zu nehmen und 
das Bild dann durch den AD-Wandler zu jagen.
Über die Framerate die man damit erreichen kann gehen die Meinungen aber 
weit auseinander, also:

1. Frage:
Wie viele Bilder Pro Sekunde (Minute) krieg ich mit einem ATmega hin 
(billige S/W Kamera, Auflösung ca. 300x300,)?

2.Frage:
Gibt es auch Kameras die das Signal schon digital ausgeben? am besten 
rs232^^.
Währe man damit schneller unterwegs?

Welche Lösung erfordert weniger Rechenleistung/Zeit?

Ist die Datenmenge bei dieser Auflösung für einen µC überhaupt noch 
handhabbar?

Der SRAM wird hier wohl nicht reichen oder?

PS: der Atmel soll das Bild zunächgst nur einlesen, ein Komplettes Frame 
Zwischenspeichern und dann über UART an einen PC weiterschicken ( ja ich 
weiss, ziemlich sinnlos wenn man eine serielle kamera hätte, das 
weiterschicken währe aber nur ne kontrolle, ob er das bild auh richtig 
gekriegt hat^^)

von Benedikt K. (benedikt)


Lesenswert?

philipp schrieb:
> 1. Frage:
> Wie viele Bilder Pro Sekunde (Minute) krieg ich mit einem ATmega hin
> (billige S/W Kamera, Auflösung ca. 300x300,)?

Um ein Bild mit einem AVR zu digitalisieren, muss es ein Standbild sein, 
denn man benötigt mehrere Durchläufe.
Pro Durchlauf schafft man 2 Pixel pro Zeile wenn man es geschickt macht. 
Für 300 Pixel benötigt man also 150 (halbe) Frames = 3s. Der ADC läuft 
dazu mit mindestens 31250Hz Samplerate. Damit käme man auf eine 
Auflösung von 300x288.

> 2.Frage:
> Gibt es auch Kameras die das Signal schon digital ausgeben? am besten
> rs232^^.
> Währe man damit schneller unterwegs?

Ja, diverse Handycams wie die MCA25 oder die DC3840.

> Welche Lösung erfordert weniger Rechenleistung/Zeit?

Die Handycam.

> Ist die Datenmenge bei dieser Auflösung für einen µC überhaupt noch
> handhabbar?

Handhabbar im Sinne von durchschleifen ja. Intern speichern nein, ohne 
großen externen RAM.

von philipp (Gast)


Lesenswert?

danke, dann werd ich demnächst eine Handycam in der Bucht schiessen^^

von Philipp F. (nerdture)


Lesenswert?

Es gibt verschiedene Fertigkombinationen von Kamera und Mikrocontroller.
Darunter zB die CMUcam (http://www.cmucam.org/wiki/WikiStart)
die Blackfin (http://www.surveyor.com/blackfin/)
oder POB-Eye: 
(http://www.nodna.com/xtc/product_info.php?info=p1118_POB-Eye-Intelligent-Color-Robot-Camera.html)

Die benutzen alle digitale Kameramodule von Omnivision. Die spucken 
direkt Pixelweise ihre Daten aus und das mit bis zu 60 Bildern pro 
Sekunde.

Ob du das mit deinem ATmega hinbekommst zu verarbeiten ist ne andere 
Frage. Aber die Kameras bieten viele Einstellmöglichkeiten wie zB die 
fps-Zahl oder ich glaube sogar ein down-scaling zum verkleinern der 
auflösung.

Wenn du aber mit dem Bild wirklich was anfangen willst empfehle ich dir 
einen stärkeren µC wie einen ARM7 oder ARM9 oder eben einen Blackfin. 
Das einfachste ist sich so ein fertiges Modul zu besorgen, da sind dann 
auch Beispielprojekte dabei und man kann sich sicher sein dass alles 
out-of-the-box funktioniert.

von Gameboy (Gast)


Lesenswert?

Wenn 128x128 Pixel reichen kommt evt. auch noch die sehr kleine und 
preiswerte Gameboykamera in Frage. Infos z.B. unter 
http://sophiateam.undrgnd.free.fr/microcontroller/camera/
Bei dem eigentlichen Kameramodul handelt es sich um einen einzigen CMOS 
Chip mit integrierter Logik und einer Optik. Man muss sich selbst um die 
Belichtungszeiten etc kümmern, was aber alles über Register in diesem 
Chip läuft.

Die Bilddaten werden Pixelweise analog ausgelesen und mit beliebiger 
Genauigkeit digitalisiert. Macht bei 8bit Auflösung 16kiB pro Bild.
Läuft der ADC eines AVRs z.B. mit 200kHz Samplingrate ergeben sich schon 
ein paar Bilder pro Sekunde.

von Hannes Lux (Gast)


Lesenswert?

> Läuft der ADC eines AVRs z.B. mit 200kHz Samplingrate

200 kHz Samplerate mit ADC des AVRs? Ist das nicht Utopie?

...

von Gameboy (Gast)


Lesenswert?

Klar, das ist wohl etwas viel. 1 MHz ist die Grenze laut Datenblatt. Bei 
15 Zyklen pro kompletter Wandlung macht das gut 66 kS/s.
Toztdem macht das noch etwa 4 Bilder pro Sekunde.

von Hannes Lux (Gast)


Lesenswert?

> Klar, das ist wohl etwas viel. 1 MHz ist die Grenze laut Datenblatt.

Dann hast Du wohl andere AVRs als ich...

Empfohlener ADC-Takt ist lt. Datenblatt 50 bis 200 kHz. Der (binäre) 
Vorteiler bietet bei internem Controllertakt (1MHz oder binäre 
Vielfache) innerhalb dieses Bereiches die ADC-Takte 250 kHz, 125 kHz und 
62,5 kHz an, wobei 250 kHz (was schon etwas oberhalb der Empfehlung ist) 
eine Samplerate von 19,2 kHz (13 ADC-Takte pro Wandlung) ergibt.

Die nächste Frage wäre dann, wo der AVR die Daten lassen soll. Externer 
RAM verkompliziert die Platine derart, dass man auch gleich einen 
anderen Controller mit mehr internem RAM benutzen kann, der dann auch 
noch mehr Rechenleistung hat und somit in der Lage ist, die Kameradaten 
zu analysieren und auf Ereignisse zu reagieren. Denn ich gehe mal davon 
aus, dass dies Ziel der Aktion ist. Zum einfachen Sammeln der Bilder auf 
dem PC oder einem Videorecorder braucht es keine Selbstbau-Lösung, dafür 
gibt es spottbillige und zuverlässig funktionierende Systeme (USB-Cam, 
Überwachungs-Cam).

...

von Benedikt K. (benedikt)


Lesenswert?

Hannes Lux schrieb:
>> Klar, das ist wohl etwas viel. 1 MHz ist die Grenze laut Datenblatt.
>
> Dann hast Du wohl andere AVRs als ich...
>
> Empfohlener ADC-Takt ist lt. Datenblatt 50 bis 200 kHz.

Beides ist richtig (und steht auch beides irgendwo im Datenblatt): Im 
Bereich 50-200kHz ist die volle Auflösung nutzbar, bis 1MHz ist der ADC 
noch nutzbar, aber mit verringerter Auflösung (irgendwo zwischen 6-8bit 
bei 1MHz). Darüber nehmen die Verzerrungen schnell zu, das Ergebnis wird 
unbrauchbar.

von Marvin M. (Gast)


Lesenswert?

Bildauswertung mit AVR: http://www.jrobot.net/Projects/AVRcam.html
Ich hab noch nicht herausgefunden, wie die Software funktioniert - 
aber sie tut es. Mit einem Mega-8 können bis zu 8 Objekte erkannt 
werden, die Koordinaten werden über die serielle Schnittstelle gesendet.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

AVRs mit externem RAM-Interface bieten sich hier an, zum Beispiel der 
Mega128 oder die neueren Derivate 1280, 1280 oder größer. Wenn man bei 
AVRs bleiben möchte. Alternativ wäre der XMega128A1 mit besserem, 
schnellerem ADC und besserer Performance nutzbar.

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.