Forum: Mikrocontroller und Digitale Elektronik CMOS Sensor an einen uC anschließen


von mob (Gast)


Lesenswert?

Mich würde interessieren welchen Controller man nimmt um eine Cmos 
Kamera anzuschließen. Und wie der Programmier Aufwand dabei ist. Nimmt 
man da nur einen Controller den man programmiert, oder nimmt man da 
ganze computer Systeme ähnlich Raspberry Pi auf dem ein "richtiges" OS 
läuft?

Wenn ich zum Beispiel eine Kamera bauen will, die Fotos auf eine sd 
karte schreibt. Also nur camera Modul und der Controller und ein 
Auslöseknopf. Ist das realisierbar oder braucht man da viel Erfahrung?

2) Inspiriert durch eine Action Cam wie die GoPro. Wisst ihr wie so eine 
GoPro funktioniert, welcher Controlelr da drauf ist und ob da ein ganzes 
Linux OS drauf ist usw. wisst ihr wie das aufgebaut ist?

von DAC (Gast)


Lesenswert?

Ich weiß es leider selber nicht, aber es würde mich auch interessieren.

Ich würde gerne einen CMOS-Chip Rohdaten-mäßig auslesen und über USB an 
den PC schicken (als Astro-Cam).

Die Software auf dem Rechner würde dann die Daten weiterverarbeiten.

von Jan B. (berge)


Lesenswert?

Servus,

machen kannst du beides, sowohl mit OS als auch ohne. Kommt drauf an, 
was du willst ;)

Willst du einen uC verwenden: Die STM32F4s haben ein CMOS Interface 
drauf (nennt sich DCMI dort). Es gibt fertige Beispiele zum ansteuern 
einer Kamera z.B. hier 
http://mikrocontroller.bplaced.net/wordpress/?page_id=744.
Guck dir das STM32F4 Discovery oder das STM32F429 Discovery Board mal 
an. Letzteres hat noch ein Display und 8MB Speicher drauf.

Das Rohdaten-mäßig auslesen ist so eine Sache bei der Frequenz mit der 
die Daten ankommen. Da braucht man mMn schon eine passende Schnittstelle 
mit DMA.

Die Daten in den Controller kriegen ist mit dem o.g. Beispiel nicht viel 
Aufwand. Je nachdem was du treiben willst, kommt dann aber der Aufwand 
für den du ggfs. auch etwas mehr Erfahrung brauchst.

Liebe Grüße,

Jan

von mob (Gast)


Lesenswert?

Danke für die Tips und Links!
Also was ich machen will ist einfach erklärt. Ich will ein Kamera Modul( 
habe von Omnivision cmos Module gefunden 
http://www.ovt.com/products/sensor.php?id=100), mit guter Auflösung so 
um die 8MP, an einen uC schliessen  (damit es auch brauchbar für Fotos 
ist). Dann soll das Gerät einen Auslöseknopf haben, und jedes mal wenn 
man drauf drückt soll es ein Foto in der vollen Auflösung auf eine 
speicherkarte speichern.

Im Grunde genommen ist das das "mindest" Ziel was ich vor habe. Ich 
denke erweitern auf Video etc ist später zu realisieren.

Was kannst du mir zu diesem Konkreten vorhaben raten?

Gruß,
Mob

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dieser Sensor verwendet das MIPI CSI-Interface, ein Gegenstück dafür 
findest Du im Raspberry Pi.

Der dürfte auch sonst die beste Grundlage für Dein Projekt sein.

von mob (Gast)


Lesenswert?

Nachtrag: Das ganze soll natürlich möglichst kompakt und Stromsparend 
sein da batteriebetrieben (Eine Stunde Laufzeit bei 1000mA Akku sollte 
drin sein).
Wobei diese Anforderungen nicht direkt realsierbar sein müssen, zuerst 
geht es nur darum damit es überhaupt geht. Aber ich erwähne es damit man 
es jetzt schon berücksichtig und so die Komponenten aussucht.

von mob (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Dieser Sensor verwendet das MIPI CSI-Interface, ein Gegenstück
> dafür
> findest Du im Raspberry Pi.
>
> Der dürfte auch sonst die beste Grundlage für Dein Projekt sein.

Sowas habe ich schon bereits mit RasPI dem Raspi Camera Modul und Python 
halbwegs realisiert. Aber wie in dem Post eins über mir will ich es 
kompakt und stromsparend machen, ein ganzes Linux ist da denke ich 
Overkill.

Es muss natürlich nicht der Sensor sein bin nur auf die Seite gestossen. 
Gerne würde ich sowieso einen Größeren Sensor Richtung 1/2,3" verwenden 
(habe keine gefunden).

Alles weitere steht ja im Post über diesem.

PS. Kommt man an Sensoren von Sony ran, wenn man nur einen kaufen will 
für entwicklungszwecke?

Gruß,
Mob

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Du wirst Dich an dem orientieren müssen, was Dein Sensor vorgibt. Eine 
MIPI DSI-Schnittstelle findest Du bei normalen µCs nicht, auch ist die 
darüber übertragene Datenrate einige Größenordnungen zu groß, als daß 
man das mit einem normalen µC und einfacher "Umsetzerlogik" anpassen 
könnte. Mit dem Raspberry Pi bist Du eindeutig auf der Zielgeraden. Und 
da es das Ding demnächst auch als SO-DIMM gibt (das wegen diverser 
weggelassener Peripherie auch einen etwas geringeren Strombedarf haben 
müsste), solltest Du notfalls Deine Anforderungen an Gerätegröße und 
Akkulaufzeit an die Realität anpassen, anstatt nicht realistisch 
umsetzbare Vorgaben zu machen.

Akkukapazitäten gibt man übrigens in Wh an, oder als Kombination aus 
Spannung und mAh. Nur einen mA-Wert zu nennen ist a) falsch, da das ein 
Strom und keine Kapazizät ist und b) ohne Nennung der Akkuspannung 
obendrein sinnlos; es gibt Akkus mit 1.2V, welche mit 3.7V oder beliebig 
anderen Spannungen ...

von Harald W. (wilhelms)


Lesenswert?

mob schrieb:

> Wenn ich zum Beispiel eine Kamera bauen will, die Fotos auf eine sd
> karte schreibt. Also nur camera Modul und der Controller und ein
> Auslöseknopf.

Hmm, sowas kann man problemlos für ca. 50EUR kaufen. Was soll Deine
Kamera denn mehr können als ein solches Fertiggerät?
Gruss
Harald

von mob (Gast)


Lesenswert?

Harald Wilhelms schrieb:
> mob schrieb:
>
>> Wenn ich zum Beispiel eine Kamera bauen will, die Fotos auf eine sd
>> karte schreibt. Also nur camera Modul und der Controller und ein
>> Auslöseknopf.
>
> Hmm, sowas kann man problemlos für ca. 50EUR kaufen. Was soll Deine
> Kamera denn mehr können als ein solches Fertiggerät?
> Gruss
> Harald

Basteltrieb und die Freiheit es selbst zu designen wie es aussehen soll 
usw. Es wird fast alles hier mit uC gemacht was es schon durchaus 
billiger zu kaufen gibt.


@Rufus. Das mit dem SO-DIMM RasPI wusste ich nicht, sieht gut aus. Aber 
ob das kleiner wie der jetzige Raspberry PI wird bezweifle ich wenn man 
das in das Board einsteckt. Und so ein ganzes Linux ist dann doch 
overkill. Ich denke nicht das in einer GoPRo ein ganzes Linux mit den 
ganzern Modulen für tastatur, maus hdmi, audio usw werkelt.

Ich wollte sozusagen eine Actioncam mit den erhältlichen Bauteilen auf 
dem Markt selbst bauen.

Da würde ich mich über Tips freuen welchen Sensor/Objektiv kombi man 
braucht und mit welchen Chip usw. usf. Damit es zu realisieren ist.

Gruß,
Mob

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

mob schrieb:
> Ich denke nicht das in einer GoPRo ein ganzes Linux mit den
> ganzern Modulen für tastatur, maus hdmi, audio usw werkelt.

Nö, das wird ein auf die tatsächlichen Bedürfnisse abgespecktes 
Betriebssystem sein.

Was hindert Dich daran, genau dasselbe mit einem minimalistischen Linux 
für den Pi anzustellen? Ansonsten: Die Komponenten im OS fressen kein 
Brot, ob sie nun da sind oder nicht, stört nicht.
Vielmehr können sie sogar sehr praktisch sein, weil sie Dir die 
Fehlersuche stark vereinfachen können.

> Ich wollte sozusagen eine Actioncam mit den erhältlichen Bauteilen auf
> dem Markt selbst bauen.

Die "erhältlichen Bauteile" sind das Problem. Der Pi ist annähernd /das 
einzige/ auf dem Markt verfügbare Bauteil, das eine CSI-Schnittstelle 
hat und für das obendrein auch noch Software und Dokumentation verfügbar 
sind.

Das Unterfangen ist, wenn Du komplett bei Null anfangen willst, komplett 
zum Scheitern verurteilt.

Das fängt damit an, daß nur wenige Sensoren überhaupt verfügbar sind, 
daß die Schnittstellen, die diese verwenden, nicht allgemein verfügbar 
dokumentiert sind (sieh Dir mal die MIPI-Dokumentation an) und daß 
Bausteine, die diese Schnittstellen wiederum umsetzen, ebenfalls nicht 
verfügbar geschweige denn dokumentiert sind.

Du müsstest schon mit einem FPGA hantieren, um ein Gegenstück für das 
MIPI-CSI-Interface hinzubekommen, und dann brauchst Du einen verdammt 
µC, um die Datenmenge, die da rauskommt, abzugreifen, aus dem Rohformat 
in JPEG o.ä. umzuwandeln und dann als Datei auf einer Speicherkarte 
unterzubringen.

Die Hersteller von Digitalknipsen oder auch "Actioncams" verfügen über 
Zugang zu Informationen, an die wir normalsterbliche nicht herankommen, 
und sie verfügen über die Möglichkeit, sich für ihre eigenen Bedürfnisse 
angepasste SOCs herstellen zu lassen. Und sie haben geringfügig mehr 
Manpower als Du zur Verfügung; so eine Knipse ist kein Ein-Mann-Projekt.

Besorg Dir einen Pi, besorg Dir die "PiCam", und versuche, die Abläufe 
zu verstehen, die da drinstecken.

Das ist der beste Einstieg in die Materie, den Du Dir wünschen kannst: 
Das Zeug ist spottbillig, es ist recht brauchbar dokumentiert und es 
bietet viele Schnittstellen, mit denen man Fehler suchen kann.

von flo (Gast)


Lesenswert?

Einfach in den Raum gestellt - so weit ich vom Hörensagen weiß, sind ARM 
und Cortex wesentlich stromsparender als ein RasPi.

Eventuell hilft Dir das weiter?!!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das wird ihm nicht weiterhelfen. Einerseits enthält ein Raspberry Pi 
einen ARM-Kern (insofern ist die Aussage Unfug), und andererseits
benötigt er einen Controller mit einer passenden Schnittstelle.

Und die ist MIPI-CSI, und die hat der übliche 
08/15-ARM/Cortex-Controller, ebensowenig wie die erforderliche 
Rechenleistung, um aus 8-MPixel-RGB-RAW-Dateien in sinnvoller Zeit ein 
abzuspeicherndes JPEG-Bild zu berechnen.

Dazu braucht es einen "fetten" ARM, und den gibts in SOCs wie dem auf 
dem Pi verwendeten, oder dem Allwinner A20.

von mob (Gast)


Lesenswert?

Dann bedanke ich mich schonmal für diese Zurechtweisung auf den 
richtigen Weg.

Ich werde dann mein Arch Arm für den Raspi so minimalistich wie möglich 
machen und das Projoekt weiter ausbauen. Dann sehe ich mal weiter wen 
der Raspi im So-Dimm Format verfügbar ist, ob ich es hinkriege selbst 
ein Layout zu entwerfen und zu ätzen.

Dann fasse ich noch zusammen das wir mit unseren möglichkeiten nicht 
umsetzen können.

Und einige Fragen stellen sich mir aber noch auf. Wie entwickeln 
Startups solche systeme? Wie hat der Entwickler der GoPro das 
hinbekommen? Was wenn ich mich als eine Digitalkamera Firma nenne wie 
entwickelt man das dann und kommt an die nötigen Dokus usw ran. Oder wie 
läuft das ganze ab?

Gruß,
mob

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

mob schrieb:
> Oder wie läuft das ganze ab?

Du musst den Firmen, die die Technik verkaufen, glaubhaft machen, daß Du 
ihre Produkte in ausreichenden Stückzahlen verwenden wirst; Du brauchst 
entsprechende Erfahrung und Manpower in der Entwicklung. Und vor allem: 
Viel Geld. Geld, um die erfahrenen Entwickler zu bezahlen, Geld, um das 
Laborequipment zu bezahlen, das Du beim Prototypenbau brauchst, Geld, um 
die Prototypenfertigung selbst zu bezahlen, Geld für die 
Rechtsabteilung, die Dir beim Unterzeichnen der NDA-Verträge der 
Komponentenhersteller hilft, und Geld für die Mitgliedsbeiträge, die Du 
z.B. der MIPI abdrücken musst, damit Du von denen Dokumentation bekommen 
kannst.

von mob (Gast)


Lesenswert?

Habe gesehen das die RaspiCam auch von Omnivision ist. Kann man sich 
einen anderen, größeren Sensor von Omnivision aussuchen das er auch mit 
Raspberry PI geht oder muss man dann die Bibliotheken neu schreiben?

WEil andere Kamera module kenne ich nicht. Und der von der RaspiCam ist 
ja nur bei viel Licht brauchbar.

von *gb* (Gast)


Lesenswert?

Info am Rande:
Die Raspberry-PI Cam hat zwar eine MIPI Schnittstelle. Das Modul selbst 
hat aber einen DVP, so man das Modul auch an einen STM32 anschließen 
kann.

>Kann man sich
>einen anderen, größeren Sensor von Omnivision aussuchen das er auch mit
>Raspberry PI geht oder muss man dann die Bibliotheken neu schreiben?
Die Omnivision Module sind alle sehr sehr ähnlich. Datenblatt 
vergleichen. Du musst aber auf jeden Fall die Konfigurationsregister 
anders setzen.
Der R-PI Omnivisiontreiber ist aber sehr übersichtlich. Den kann man 
bestimmt einfach selbst modifizieren.
Ich habe ihn dazu benutzt, einen STM32 Treiber zu schreiben.

von mob (Gast)


Lesenswert?

Dann werde ich mich mal umsehen ob eine Sensor mit größerem Modul 
ähnliche Spezifikationen hat und werde es versuchen zum laufen zu 
bekommen.

Noch eine Frage, abgesehen vom Raspberry PI, gibt es vlt noch andere 
geignete Boards die weniger Strom brauchen und/oder kleiner in den Maßen 
sind?

Gruß,
Mob

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.