Forum: Mikrocontroller und Digitale Elektronik Camera-Modul an µC anschließen: günstige Lösung gesucht


von Andreas S. (igel1)


Lesenswert?

Hi Leute,

für mein Mäuseprojekt 
(Beitrag "Projekt Maus") suche ich 
eine möglichst günstige µC-Camera-Kombination im einstelligen 
EURO-Bereich.

Für den Fall, daß die Mäusefalle auslöst, sollen damit Bilder
der gefangenen Maus gemacht werden, die an den/die glückliche(n)
Besitzer(in) der Falle gesendet werden ...
(Wobei ich den Sende-Part bereits gelöst habe)

Die Anforderungen wären:

- gut erkennbare Bilder (640x480 sollten reichen)
- s/w reicht, bunt ist natürlich schöner
- Beleuchtung erfolgt durch LED-Flash
- Kamera sollte in einem Bereich von ca. 5-30 cm halbwegs scharf sein
- Ausgabeleitungen/Protokoll sollte noch halbwegs handelbar sein
- Einzelbilder reichen (kein Streaming oder Film nötig)
- Bild kann ruhig mehrere Minute zur Verarbeitung benötigen - kein 
Problem

Wäre toll, wenn Ihr ein paar Ideen / Erfahrungen dazu habt,
die Ihr beisteuern möchtet. Ich bin eimal sehr gespannt.

Viele Grüße

Igel1

: Bearbeitet durch User
von Harald A. (embedded)


Lesenswert?

Such mal auf aliexpress.com nach "camera module", sortiert nach Preis. 
Da gibt es dann die USB Endoscope Module, vom USB-Protokoll her dürfte 
das HID sein, also sollte man das auch auf einem uC mit USB Master mit 
überschaubaren Aufwand programmieren können.
Die Preise sind ja meist Endkundenpreise inkl. Versand. Bei Stückzahl 
sollte da noch was gehen.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Es gibt Kamera-Module für Arduino (sind auch an anderen MC verwendbar), 
die liefern über eine serielle Schnittstelle (RS232 - TTL) Bilddaten im 
JPEG-Format - einfacher gehts kaum noch ...

Beispiel: 
http://www.ebay.de/itm/VC0706-5V-JPEG-Camera-Module-TTL-UART-level-NTSC-For-AVR-STM32-Arduino-Adafruit-/191526916051?hash=item2c97e4cfd3:m:mmnenRErMAJqloI-Xy1-1DA

von Dirk K. (dekoepi)


Lesenswert?

Der OV7670 mit AL422-FIFO ist da sehr beliebt, sollte sich mit STM32-µC 
auslesen lassen. Wenn 320x240 Pixel reichen, passt das sogar in ein 
SPI-RAM, das ginge dann sogar ohne FIFO.

Bitte sehr, einstelliger Euro-Betrag:
http://www.aliexpress.com/item/1PCS-640x480-VGA-OV7670-FIFO-CMOS-Camera-Module-Buffer-AL422B-SCCB-I2C/32346768651.html

Ohne FIFO, 4€:
http://www.aliexpress.com/item/with-FIFO-CMOS-Camera-Module-OV7670-Sensor-Module-Microcontroller-Collection-Module/32367040588.html

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Harald A. schrieb:
> Da gibt es dann die USB Endoscope Module, vom USB-Protokoll her dürfte
> das HID sein

HID? Halte ich bei einer Videokamera für ausgesprochen 
unwahrscheinlich.

: Bearbeitet durch User
von Harald (Gast)


Lesenswert?

Yep, haste Recht - war nur meine ursprüngliche Vermutung, da man solche 
Produkte meist ohne jegliche Treiberinstallation unter Windows zum Leben 
erwecken kann. Ist das UVC Profil auch generisch in Windows enthalten?

von Harald (Gast)


Lesenswert?

Konnte es gerade selber sehen, UVC ist seit Win XP SP2 drin.

Hat sich mit den anderen Vorschlägen vermutlich eh erübrigt.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Davon gehe ich aus.

Video wird aber gar nicht gefordert:

Andreas S. schrieb:
> - Einzelbilder reichen (kein Streaming oder Film nötig)

von Andreas S. (igel1)


Lesenswert?

Harald A. schrieb:
> Such mal auf aliexpress.com nach "camera module",
> sortiert nach Preis. Da gibt es dann die USB Endoscope Module

Toller Tipp. Der Preis und Funktionsumfang passen optimal,
allerdings fand ich null Doku. Und ohne Doku traue ich mich
einfach nicht an so etwas ran ...  Das Reverse Engineering
könnte mich Monate kostbarer Freizeit kosten.

Was das HID-Protokoll angeht, so stimme ich leider
Rufus Τ. Firefly zu: es ist sehr unwahrscheinlich, daß
dieses Protokoll dort zum Einsatz kommt - die USB-Specs
kennen neben der Device Class "HID" nämlich auch eine
Device Class "Video" ...

Sollte jemand Hinweise haben, wie man den Bilddatenstrom
ausgelesen bekommt - nur zu. Grundkenntnisse von USB habe ich
(das Buch von Jan Axelson ebenfalls) und einen USB-Analyzer
habe ich sogar auch.



Frank Esselbach schrieb:
> Es gibt Kamera-Module für Arduino (sind auch an anderen MC verwendbar),
> die liefern über eine serielle Schnittstelle (RS232 - TTL) Bilddaten im
> JPEG-Format - einfacher gehts kaum noch ...

Ja - das wäre natürlich die Non-Plus-Ultra-Easy-Quick-Lösung.
Allerdings lautete eine meiner Anforderungen "... suche ich
eine möglichst günstige µC-Camera-Kombination im einstelligen
EURO-Bereich."

Und die genannte Kamera hängt leider um den Faktor 4 über dieser
Anforderung.

Trotzdem danke für den Tipp und die Mühe Deiner Antwort.



Dirk K. schrieb:
> Der OV7670 mit AL422-FIFO ist da sehr beliebt,
> sollte sich mit STM32-µC auslesen lassen.

Yep - dieses Modul war mir im Vorfeld bei den Recherchen auch schon 
aufgefallen. Klingt sehr interessant - aktuell ist dies mein Favorit,
wenn sich hier in diesem Thread nichts anderes ergibt.

So richtig preiswert ist natürlich nur die Non-FiFo-Version.
Ob ich die mit einem ESP8266 (der sowieso schon in der Mäusefalle
zum Einsatz kommt) schnell genug ausgelesen bekomme, und wo ich
dann die Daten so fix zwischengespeichert bekomme - das alles
muß ich allerdings erst noch recherchieren.


Harald (vermutlich identisch mit Harald A.) schrieb:
> Konnte es gerade selber sehen, UVC ist seit Win XP SP2 drin.
> Hat sich mit den anderen Vorschlägen vermutlich eh erübrigt.

Ah - Du kommst zum selben Ergebnis wie ich oben.
Allerdings bringst Du mich mit Deinem dritten Posting auf eine
Idee: Wenn diese Endoskop-Cameras ohne eigenen Treiber auskommen,
so muß der Datenstrom der UVC-Norm entsprechen. Und auch wenn ich
bislang nichts mit UVC gemacht habe, so sollte ich früher oder
später über diesen Weg an die Bilder drankommen, korrekt?

Allerdings dürfte der Weg dahin für mich als Hobby-Bastler
ziemlich weit sein ...


Rufus Τ. Firefly schrieb:
> Video wird aber gar nicht gefordert:

Stimmt Rufus, aber aus dem Video sollte ich auch ein paar
Einzelbilder extrahieren können, oder?

Der Knaller wäre natürlich wenn ich sogar das Video über
mein ESP8266 ins Internet streamen könnte - aber dafür wird
die Rechenleistung dieses Zwergs wohl kaum reichen.


Danke an Euch alle für Eure Beiträge.
Wer noch weitere Ideen hat: nur zu - ich bin sehr gespannt.


Viele Grüße

Igel1

: Bearbeitet durch User
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Andreas S. schrieb:
> aber aus dem Video sollte ich auch ein paar
> Einzelbilder extrahieren können, oder?

Der Aufwand, den Du da treiben musst, ist aber erheblich - immerhin 
musst Du den Videostrom decodieren, was je nach Format wenig bis ganz 
wenig einfach ist.

Am besten dürftest Du mit einem Kamerasensor bedient sein, der direkt 
jpg-Daten erzeugt. Mit denen musst Du dann gar nichts mehr machen, außer 
sie an die Mausefallenbesitzerin zu senden.

Aber vielleicht bist Du hiermit ja auch schon bedient:

http://www.pollin.de/shop/dt/Mjk3OTE0OTk-

Das ist ein RGB-Sensor mit VGA-Auflösung, der auch Einzelbilder erfassen 
kann. Trivial ist die Ansteuerung nicht; per I2C wird dem Ding 
mitgeteilt, was es machen soll, und über ein 10 Bit breites 
Parallelinterface gibt es die Bilddaten in unkomprimierter Form aus. Ein 
"de-bayering" sowie eine etwaige Kompression der Daten in jpg musst Du 
also selbst umsetzen. Und die Daten kommen mit recht hoher 
Geschwindigkeit, aus einem Referenztakt, der zwischen 3 und 30 MHz 
liegen muss, wird mit einem programmierbaren Teiler (/1, /2, /4 oder /8) 
ein Pixeltakt von laut Datenblatt mindestens 2 MHz erzeugt. Das lässt 
sich mit einfachem Port-I/O eines µCs kaum handhaben.

Hmm. Der Aufwand ist auch hier erheblich.

Aber dafür kost' das Ding nicht viel.

von Harald (Gast)


Lesenswert?

Laut Wikipedia ist UVC nicht auf Video festgenagelt und kann auch 
Enzelbilder. Das würde auch den typischen Applikationen entsprechen, die 
USB Mikroskopen und Endoskop Kameras "beigelegt" sind. Vielleicht gibt 
es sogar OpenSource Treiber, diese Art von Kameras kann man meist 
überall ohne Bindung an das eigentliche Originalprogramm einbinden.

von Harald (Gast)


Lesenswert?

>Harald (vermutlich identisch mit Harald A.)

Yep, in diesem Fall ja, bin auf dem Telefon nicht angemeldet...

von Harald (Gast)


Lesenswert?

Eine Idee noch: Beschaffe doch mal so ein Ding und versuche das unter 
einer Linux Distribution zum Laufen zu bekommen. Dort ist die 
Wahrscheinlichkeit auf zugänglichen Source natürlich sehr hoch.

von Dirk K. (dekoepi)


Lesenswert?

Das Pollin-Ding ist also quasi wie ein OV7670 ohne FIFO, mit all den 
Problemen, die sich daraus ergeben. De-Bayer kann man per I2C gleich 
mitgeben; bis 320x240 Pixel in <16 Bit reagiert man dann auf die Flanken 
VSYNC/HSYNC und liest die anliegenden Daten auf den acht Datenleitungen 
aus und kann sie per SPI in zB einen 128kByte SPI-RAM schreiben.
Die FIFO-Version hat den Vorteil, dass man selber das Signal zum 
Auslesen setzt und dadurch das Timing entspannter ist. Dadurch kann man 
dann zwischen mehreren SPI_RAM-Modulen umschalten, ohne Pixel zu 
verlieren.

"Treiber" gibt es für STM32 bereits vorgefertigt, man benötigt 
eigentlich nur die Klasse, die alle Register aus dem Datenblatt umsetzt, 
sodass man das Modul per I2C aufsetzt und dann einfach auslesen kann.

http://embeddedprogrammer.blogspot.de/2012/07/hacking-ov7670-camera-module-sccb-cheat.html

Die reinen I2C-Module, die JPG übermitteln, machen auch nur 320x240 
Pixel Auflösung und sind in der Datenübertragung sehr langsam; die 
benötigen mehrere Sekunden für ein einziges Bild.

von Andreas S. (igel1)


Lesenswert?

@Rufus:

Interessanter Hinweis auf das Pollin-Teil.

Als ich dem etwas näher nachgegangen bin, stieß ich auf einen Thread,
in dem sich lauter Jungs mit doppelt so viel Zeit und Ahnung wie ich
herumtrieben und es trotzdem nicht hinbekommen haben - oh weh ...

Ich muß gestehen: es würde mich schon reizen, aber ich muß auch
realistisch sein: Einzig ein Forenteilnehmer, der in seiner Diplom-
arbeit das Dingen per FPGA ausgelesen hat, hat's (auch nur halbwegs)
hinbekommen.

@Harald & Dirk:

Es wird vermutlich dann doch auf die OV7670 rauslaufen.


Mit so etwas hätte ich vermutlich dieselben Probleme, wie mit
der Endoscope-Camera, gelle?
http://www.ebay.de/itm/252093288780

Viele Grüße

Igel1

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Letztlich steht und fällt die Chose mit dem µC, mit dem Du die 
Angelegenheit aufbauen möchtest. Wenn so etwas wie ein Raspberry Pi 
(incl. des darauf laufenden Linux) in Frage kommt, dann bieten sich 
natürlich USB-Webcams an (die gibts bei Pollin auch für einstellige 
Euro-Beträge), wenn es aber nur ein 8-Bit-AVR ist, verbietet es sich 
gänzlich, über USB auch nur nachzudenken.

von Bülent C. (mirki)


Lesenswert?

Versuche es doch mal mit einer GameBoy Cam :-)

von e-d (Gast)


Lesenswert?

Ich hatte sowas schonmal angedacht:
OV7670 braucht nur(einmalig)SCCB-init und einen XCLK.
Die Datenausgänge auf mcp23s17 o.ä. mit HWSPI auf esp8266;
esp-Server Beispiele gibts ..

von Rueckfrage (Gast)


Lesenswert?

@e-d:

Klingt superinteressant.
Geht das dann ohne FiFo im OV7670?

Könntest Du Deine Idee noch etwas näher und detaillierter ausführen?

Bitte so erklären, daß auch jemand mit OV7670- und ESP-Halbwissen
versteht, worum es geht.

> esp-Server Beispiele gibts ..
Könntest Du netterweise Links darauf hier einstellen?

von e-d (Gast)


Angehängte Dateien:

Lesenswert?

Rueckfrage schrieb:
> Geht das dann ohne FiFo im OV7670?

(In dieser Schaltung wird der 74LVC254 durch den MCP23S17 ersetzt!)
Der *254 soll als "Zwischenspeicher" die 8-bit Daten nur bei anliegendem 
Href-Signal im Pixeltakt an das LCD senden(bzw. über SD-Webserver 
streamen).
Ich verwende z.Z. ein SPI-TFT:
http://www.ebay.com/itm/311058563993

Die SCCB und OV7670 init sind im *.7z

Hauptproblem ist die Bereitstellung von XCK aus dem ESP07/12 o.ä.;

p.s.:
Ich habe meinen alten Rechner reaktiviert, um wenigstens etwas an Daten 
zu finden...

von Andreas S. (igel1)


Lesenswert?

@e-d:
> Ich habe meinen alten Rechner reaktiviert, um wenigstens etwas
> an Daten zu finden...

Vielen Dank für die Mühen - Dank Bildchen und Erklärung habe ich
nun schon deutlich mehr verstanden.

Trotzdem reicht's noch nicht 100%ig:
- Was meinst Du in Deinem Text mit "SD-Webserver"?
- Was genau macht der "&"-Baustein rechts in der Skizze?

Hattest Du das Ganze damals auch in die Realität umgesetzt?
Will sagen: funktionierte die Schaltung?
Und existiert sie vielleicht sogar noch?

Viele Grüße

Igel1

von e-d (Gast)


Angehängte Dateien:

Lesenswert?

- schon sehr lange her:
http://de.images.search.yahoo.com/yhs/search;_ylt=A7x9UkyS5jFWDwoAhFUp4YlQ;_ylu=X3oDMTBsYWhiN2NvBHNlYwNzYwRjb2xvA2lyMgR2dGlkAw--?_adv_prop=image&fr=yhse-avg-1&va=AVR+Camera&hspart=avg&hsimp=yhse-1

Andreas S. schrieb:
> - Was meinst Du in Deinem Text mit "SD-Webserver"?

Ist ein Teil hiervon:
http://www.esp8266.com/viewtopic.php?f=29&t=6069&sid=d52744b4d942a33f95693f5c32afa501#p31719

Andreas S. schrieb:
> - Was genau macht der "&"-Baustein rechts in der Skizze?

Der XCK wird vom Quarz des *mega abgegriffen, negiert(genormt) und als 
XCLK der Cam zugeführt. Das von der Cam kommende Pixelclock und Href 
wird mit dem "write" Signal "verundet", welches der *mega in der 
Interupschleife durch Vsyn erzeugt.
Etwas umständlich erklärt, -aber klappt!

Anbei noch die Projekte( die ich nach selber Machart) für 
stm32f103/207(407) ausprobiert hatte ..
p.s.:
obwohl stark komprimiert, dennoch sehr groß!

von grundschüler (Gast)


Lesenswert?

die forunmssuche nach ov7670 ergibt u.a. 
Beitrag "DMA-Datentransfer OV7670 -> ARM-MCU" ,QVGA mit AVR.

Für den ov7670 gibt es brauchbare tutorials, z.B.:
http://embeddedprogrammer.blogspot.de/2012/07/hacking-ov7670-camera-module-sccb-cheat.html

von Andreas S. (igel1)


Lesenswert?

@e-d:
Vielen Dank für die Mühen!
Dann werde ich vermutlich demnächst einmal versuchen, in Deine OV7670 
Fußstapfen zu treten (wenn die Stiefel mir nicht zu groß sind).

Das SPI-Display habe ich direkt bestellt - erstaunliches 
Preis-Leistungs-
verhältnis.

@Grundschüler
> Für den ov7670 gibt es brauchbare tutorials
Genau, das macht ihn so interessant für mich.

: Bearbeitet durch User
von e-d (Gast)


Angehängte Dateien:

Lesenswert?

Nicht's zu danken!
Übrigens war nicht ich der "pathfinder", sondern GUANFU_WANG@126.COM.

e-d schrieb:
> Hauptproblem ist die Bereitstellung von XCK aus dem ESP07/12 o.ä.;

-bei der Suche hat sich für mich auch ein neuer Aspekt ergeben(s.pic) ..

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.