Forum: Mikrocontroller und Digitale Elektronik Kamera(modul) selber bauen


von Madir (Gast)


Lesenswert?

Momentan interessiere ich mich für Kameramodule, wie z.B. das Modul für 
den Raspi oder das Pollin-Modul 
http://www.pollin.de/shop/dt/Mjk3OTE0OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/LEDs/Power_LED_und_Kameramodul.html

Interessiert bin ich vor allem an Informationen, wie man sich selber so 
ein Modul bauen könnte. Einige Informationen habe ich schon gefunden, 
aber nicht, was mein Wissen genügend anreichert, um so ein Modul 
herstellen zu können.

Wie üblich werden bestimmt Einwände kommen, dass dieses Vorhaben zu 
schwer ist, ein FPGA benötigt wird und zu umständig zu programmieren 
sei, ... - aber darum geht es mir nicht.

Mir geht es darum, das Wissen zu erlangen, um so einen Schluss selber 
ziehen zu können. Ich will mich mit der Materie auseinandersetzen und 
verstehen, welche Bildsensoren es gibt und auf welche Weise diese 
einfach angesprochen werden können, welche Linse oder welches Objektiv 
eine passende Wahl ist, etc. Ich möchte in der Lage sein, theoretisch 
ein Kameramodul aufbauen zu können (Auswahl Linse, Bildsensor, µC zum 
Auslesen der Daten, evtl. µC zum Komprimieren der Daten, evtl. 
Implementation von Funktionen wie Weißabgleich o.Ä., ...). Wenn ich 
hinterher vielleicht wirklich etwas lauffähiges auf die Beine stellen 
kann, dann wäre ich natürlich nicht unglücklich.

Über Infos zu vielleicht schon umgesetzten (eigenen oder fremden) 
Projekten würde ich mich auch freuen.

von Sebastian (Gast)


Lesenswert?

Ich empfehle als Einstieg einen Zeilensensor. Den kann man recht bequem 
mit einem Flash- oder Pipeline-ADC (bzw. drei davon) auslesen, und es 
gibt Beispiele, auch hier im Forum (z.B. Spektrometerprojekt). Und wer 
gut ist, baut eine Scankamera.

von Markus (Gast)


Lesenswert?

Ich habe mal eine 5 Mega-Pixel-Kamera gebaut. Sensor war ein MT9P031 von 
Aptina. Die Datenübertragung ging über einen Spartan3AN an einen 
FTDI2232H und von da an den PC. Der gesamte Block-RAM des Spartan wurde 
als Ringpuffer benutzt um kurze USB-Aussetzer ausgleichen zu können. Das 
Objektiv war ein C-Mount, die Halterung dafür habe ich bei 
www.schaeffer-ag.de machen lassen.

Da das Auslesen des Bildes ca. 0.7s dauerte, war wegen des 
Rolling-Shutter-Effektes die Kamera nur für statische Szenen zu 
gebrauchen.

von Madir (Gast)


Lesenswert?

@Sebastian:
Vielen Dank für deinen Hinweis auf Zeilensensoren. Ich habe aber 
einerseits eher Interesse an der Verarbeitung ganzer Bilder und Videos 
und andererseita momentan (noch?) keine Bestrebungen etwas zu 
implementieren. Noch bin ich in der Phase des Lernens

@Markus:
Was war der Grund für die lange Zeit - war es die Übertragung mittels 
USB oder wirklich das Auslesen des Sensors? Der Sensor soll ja bis 
2592x1944@14Hz schaffen und wenn ich mich nicht irre, dann ist der FPGA 
doch auch schnell genug um Videos aus dem Sensor auszulesen. Woran hat 
es gelegen?

von Markus (Gast)


Lesenswert?

Der Flaschenhals war die Übertragung per USB. Das Problem ist das man 
den Sensor innerhalb eines Bildes nicht anhalten kann. Der FTDI hat 
4KByte Puffer, der FPGA konnte auch nochmal 4096 Pixel speichern.
Wenn die Puffer überlaufen gehen Daten verloren und das Bild ist kaputt.
Mit 7.5MHz Pixeltakt hat es funktioniert bei 15 MHz gingen immer wieder 
Daten verloren. Ich habe den Takt für den Bildsensor von den 60MHz des 
FTDI heruntergeteilt, so musste ich nicht mit verschiedenen Taktquellen 
arbeiten.

Da es für die Anwendung schnell genug war habe ich es dann nicht weiter 
optimiert.

von Madir (Gast)


Lesenswert?

Von dam ausgehend, was ich bisher gelesen habe scheint allemein die 
Datenübertragung von Videoströmen das größte Problem zu sein. Das ist 
aber auch ein weiteres Puzzlestück: ein passender Hardware-Encoder.

Bei dem denke ich mir jedoch momentan noch, dass es wahrscheinlich kein 
Problem ist. So Encoder werden heutzutage in jedem nur erdenklichen 
Gerät benutzt, dass ich davon ausgehe eine Vielzahl von Infos und 
Beispielprojekten zu finden.

von Markus (Gast)


Lesenswert?

Naja, einfacher wirds dadurch nicht. Schau mal unter

http://cache.freescale.com/files/32bit/doc/ref_manual/iMX53RM.pdf?fpsp=1&WT_TYPE=Reference%20Manuals&WT_VENDOR=FREESCALE&WT_FILE_FORMAT=pdf&WT_ASSET=Documentation

Seite 2629 bis 3412, dann bekommst Du mal eine Vorstellung auf was Du 
dich da einlässt.

von Markus (Gast)


Lesenswert?

Ach ja: Der Hardware-Encoder ist ab Seite 4963 beschrieben.

von Madir (Gast)


Lesenswert?

Ich habe mir mal ein wenig die Seiten zwischen 2629 und 3412 angeschaut. 
Dies ist schon WESENTLICH mehr, als ich mir überhaupt vorstelle. Der 
Chip, den du beschreibst, kann einfach einen Haufen an 
Bildtransformationen vornehmen (drehen, skalieren, ...) und eine 
Vielzahl an Ein- und Ausgabegeräten ansteuern.

Auch die VPU ist wesentlich mächtiger als momentan angedacht. Es reicht 
ein einfacher Encoder, der das Material aus dem Bildsensor, nachdem es 
durch einen FPGA gejagt wurde, in z.B. h.264 zu transformieren. Der 
i.MX53 kann das, aber auch noch ein halbes dutzend weitere Formate En- 
und Dekodieren.

Mir ist aber auch bewusst, dass ein einfacher MP2/h.254/...-Encoder 
nicht einfach zu bekommen ist. Ich finde hier und da immer wieder mal 
einen passenden Chip. Aber obwohl mittlerweile 'überall' Videoencoder 
benutzt werden, wie z.B. in zig Millionen Handys, scheinen die Chips 
selber für Endkunden nur schwer zu bekommen. Oder regeln das alle Handys 
per Software?

Aber wie gesagt werde ich schon irgendeinen Chip finden - sei es auch 
nicht mit meiner gewünschten Auflösung, Framerate oder Komprimierung. 
Sollte jemand eine Quelle für entsprechende Chips haben - immer her 
damit.

von Markus (Gast)


Lesenswert?

Im Consumer-Bereich ist der Hardware-Encoder entweder ins SoC (bei 
Handys usw.) oder in den Bildsensor (div. Webcams) integriert.

Ansonsten gibt es noch Hardware-Encoder für JPEG2000 von Analog (ADV212) 
und diverse JPG-Encoder-Cores für FPGA.

DSPs von verschiedenen Herstellern (z.B. TI) mit denen man Videos 
codieren kann gibts natürlich auch noch.

Wenn Du noch etwas anders findest, würde mich das sehr interessieren.

von Markus (Gast)


Lesenswert?

Das Datenblatt was ich verlinkt hatte ist von einem imx535, das ist ein 
typischer (eigentlich schon veralteter) SoC für ein Tablet.

Freescale ist soweit ich weiß der einzige Hersteller wo man die 
komplette Doku eines solchen SoC einfach so herunterladen kann.

von Madir (Gast)


Lesenswert?

Ich suche gerade seid Ewigkeiten nach einem vernünftigen Encoder. Ich 
glaube ich starte gleich einen neuen Thread um nach solchen Chips zu 
fragen.

Patente sind Ansichtssache und ich finde unser Patentwesen ziemlich 
unausgereift. Aber davon gelöst - ist es durch die Patente echt 
gelungen, dass man als Konsument zum Basteln keine Möglichkeit hat um so 
einen Encoder zu bekommen? Ich meine jetzt ohne einen teuren Allround-µC 
mit entsprechenden Fähigkeiten zu kaufen? Natürlich gibt es alternativen 
wie das Zerlegen von Geräten mit entsprechenden Komponenten oder etwa 
einen Raspi, aber kann ich als Endverbraucher / interessierter Konsument 
wirklich keinen passenden Prozessor kaufen?

von Grendel (Gast)


Lesenswert?

Ich glaube das hat eher wirtschaftliche Gründe:
Kaum jemand braucht sowas ohne das drumherum.

Und wenn doch dann sind die für professionelles Videoequipment für TV 
Sender, Security und so.
Billig und einfach dranzukommen kannste daher vergessen.


> Ich meine jetzt ohne einen teuren Allround-µC mit
> entsprechenden Fähigkeiten zu kaufen?

Ehm, ich glaube ohne sind die teurer als mit weil spezialteil ;-)

von Markus (Gast)


Lesenswert?

Es gibt sowas von Conexant:

http://www.conexant.com/Product/Video/JPEGVEncoder/Pages/default.aspx

Drankommen und Doku sind da aber das Problem.

von Madir (Gast)


Lesenswert?

Ich habe gerade nochmals eine Ewigkeit weitergesucht. Es gibt so einiges 
an µC, IP-Cores zum Lizensieren, ... aber mir wollen die wohl alle 
nichts verkaufen ;)

Nun ja, dann muss ich mich wohl darauf einlassen, dass ich hier die 
Grundlagen nur theoretisch erarbeiten kann. Für eine Implementierung bin 
ich nunmehr immer wieder bei den i.MX 6 gelandet. Aus der Serie können 
alle außer dem SoloLite Video-Encoding und der i.MX 6 Solo kostet bei 
Digikey ca. 26$ 
(http://www.digikey.com/product-detail/en/MCIMX6S5DVM10AB/MCIMX6S5DVM10AB-ND/3831437)

Mit dem Chip kann man direkt einen Bildsensor auslesen und das Kodierte 
Video über USB ausgeben... wenn gewünscht auch mit weiteren 
Transformationen und gleichzeitiger Ausgabe über zwei Displays.

Irgendwie schade, dass man keinen dezidierten Video-Encoder bekommen 
kann. Grendel hat wohl recht, dass sich ein Encoder für Endanwender 
nicht rechnet. Wahrscheinlich wollen die Meisten eher so einen µC wie 
den i.MX, mit dem man fast alles erdenkliche im Multimedia-Bereich 
erschlagen kann.

von Grendel (Gast)


Lesenswert?

> aber mir wollen die wohl alle nichts verkaufen ;)

Warum sollten Sie auch?
Ne E-Mail von Dir zu beantworten kostet die schon mehr als Du denen 
einbringst ;-)
(Stundenlohn...)


$26 ...
Der i.MX6 alleine reicht nicht: Da kommt noch 2x DDR3 Speicher dabei und 
Power Management und eine (minimum) 6 Lagen Platine und ein riesen 
Haufen anderer Bauteile.
Du kannst für die Materialkosten in Einzelstückzahlen noch locker eine 0 
dranhängen und davon ists noch nicht zusammengebaut oder getestet.
Und wenns nicht auf anhieb klappt: Alles nochmal ;-)

von fg (Gast)


Lesenswert?

Grendel schrieb:
> $26 ...
> Der i.MX6 alleine reicht nicht: Da kommt noch 2x DDR3 Speicher dabei und
> Power Management und eine (minimum) 6 Lagen Platine und ein riesen
> Haufen anderer Bauteile.
> Du kannst für die Materialkosten in Einzelstückzahlen noch locker eine 0
> dranhängen und davon ists noch nicht zusammengebaut oder getestet.
> Und wenns nicht auf anhieb klappt: Alles nochmal ;-)

Es gibt die Wandboards die haben IMX6 SoloLite, Dual bzw. Quad verbaut. 
Kosten alle so ~100€ mit Basisboard (das man nicht braucht). Offener EDM 
Connector. Laufen ganz gut stabil und sind halbwegs im indust. Umfeld 
brauchbar. Freescale schlägt übrigens ein 12 Lagen Layout vor ... nicht 
ohne Grund.

von Grendel (Gast)


Lesenswert?

Ja klar FERTIGE Module aus Großserienfertigung gibts günstiger, ich 
sprach da vom Selbstbau (klang danach als wollte der Threadstarter dies 
tun, was natürlich kostentechnisch völlig sinnfrei ist).

> Freescale schlägt übrigens ein 12 Lagen Layout vor ...
> nicht ohne Grund.

Die normalen Boards sind alle 8 Lagig.

von Madir (Gast)


Lesenswert?

Na, na, na, wer wird denn meine Idee für sinnfrei halten? ;)

Natürlich ist es sinnfrei... oder aber auch nicht. Kommt auf den 
Blickwinkel an. Ich lerne etwas neues und habe Spaß daran - für mich in 
der Regel eine der schönsten Dinge die es gibt. Und wenn ich hinterher 
sogar etwas nettes Implementieren kann, dann hat sich mein Lernprojekt 
doppelt gelohnt.

Ich möchte am liebsten so viel wie möglich lernen und selber machen. 
Aber das hat auch seine Grenzen - zeitlich und finanziell. Natürlich 
werde ich NIE ein >komplettes< Kameramodul herstellen. Ich werde NIE den 
passenden Bildsensor selber herstellen oder die Leiterplatte selber 
herstellen (ich meine das Basismaterial selbst). Aber auch das andere 
Extrem, direkt ein fertiges Modul wie die geniale 30€ Kamera vom Raspi 
zu benutzen, reizt mich nicht.

Irgendwo dazwischen würde ich gerne landen. Mein erstes Bild im Kopf war 
ein System aus µC, FPGA (evtl. beides kombiniert), Bildsensor, Kamera, 
Encoder und eine Anbindung z.B. via USB. Das würde ich noch immer gerne 
machen, scheint aber so nicht umsetzbar zu sein.

Momentan läuft es darauf hinaus, dass ich wohl nur bei der Theorie 
bleibe / bleiben muss mangels Alternativen.

ABER wie so üblich habe ich mich mit etwas intensiver 
auseinandergesetzt, womit ich mich vorher nicht beschäftigt habe: den 
netten Freescale Prozessoren. Die oben angesprochenen Wandboards hatte 
ich bereits entdeckt, und für 79€ - 129€ sind die in meinen Augen schon 
der Knaller. Ich glaube mit denen werde ich mich auch mal beschäftigen 
und vielleicht ein nettes Multimedia-Projekt umsetzen.


P.S.: @Grendel: Das kleinste Wandboard dass ich kenne hat zum Glück 
nicht den SoloLite, sondern den Solo (für 79€). Der SoloLote kann 
nämlich keine Videos kodieren.

von Grendel (Gast)


Lesenswert?

> Na, na, na, wer wird denn meine Idee für sinnfrei halten? ;)

> > kostentechnisch völlig sinnfrei

Kostentechnisch. Kostentechnisch. ;-)
Rechne Dir mal in online Kalkulatoren von Platinenherstellern aus was ne 
sagen wir mal 100x100mm 8 Lagen Platine kosten würde.
Und dann überleg Dir noch wie die ganzen großen BGAs auf die Platine 
gelötet werden sollen.


> P.S.: @Grendel: Das kleinste Wandboard...

Du meinst @fg, vom Wandboard hab ich ja nix gesagt ;-)

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.