Forum: Mikrocontroller und Digitale Elektronik Suche Hilfe bei Webkamera-Projekt mit ARM


von mdersch (Gast)


Lesenswert?

Hallo Leute,

dieser Eintrag ins Forum ist ein verzweifelter Versuch in meinem Projekt 
ein wenig weiter zu kommen. Mittlerweile durchforste ich seit über einem 
halben Jahr das Internet nach Infos. Aber nun zu meinem Projekt.

Ich möchte eine Art Kamerawürfel bauen. Kantenlänge ca. 10cm. größter 
sollte er nicht sein - kleiner darf er immer werden :-)

Was soll das Teil nun folgendes können?

1. In definierten Intervallen (ca. 5min.) soll sich der Würfel 
einschalten und mit der integrierten Kamerea ein Foto knippsen. Dieses 
Foto soll er dann mittels UMTS-Stick auf einen FTP-Server ablegen. Die 
Kamera soll min. 1,3 Megapixel besitzen und wenn möglich eine 
Autofokusfunktion beinhalten. Über ein Webinterface kann ich das 
Intervall ändern und bei der nächsten Fotoübertragung des Würfels holt 
er sich dann auch den neuen Intervallwert vom Server.

2. Beim Fotoknippsen soll er außerdem mittels eines Temperatursensors 
die aktuelle Temperatur messen und diese in den Dateinamen des JPG-Files 
integrieren, welche ja dann auf den FTP-Server upgeloadet wird.

3. Der Würfel soll mittels Akku betrieben werden. Deshalb muss ich 
darauf achten, dass der Stromverbrauche so gering wie möglich ist, damit 
mit den Akkus eine lange Betriebsdauer bis zum nächsten Akkutausch drin 
ist.

Im Groben und Ganzen soll dies der Würfel können. Die Sache mit dem 
Autofokus muss nicht unbedingt sein, wäre aber schön wenn es ginge.

So! Was habe ich nun schon alles probiert. Als erstes stieß ich auf das 
Picoboard von Kontron. Also bestellt und probiert. Ein Debian drauf und 
siehe da es funktioniert - auch mit einem UMTS-Stick. Nur hat das Board 
einen relativ hohen Stromverbrauch und kann eigentlich zuviel für den 
Zweck.

Ich ging nun auf die Suche nach etwas kleineren und fand das Fox-Board 
G20 netus. Nun gut! Habe ich mir halt ein Fox G20 Board bestellt und 
meine USB-Camerea logitec C300 angeschlossen. Das Fox-Board hat eine 
sehr gute Doku und Wiki im Netz. Ich schafte es also die Cam mittels 
Debian anzusteuern und meine ersten Bilder per LAN auf den FTP-Server zu 
stellen. Diesmal konnte ich aber nur eine max. Auflösung von 800x600 aus 
der Cam holen. Gleichzeitig fiel mir auf, das "ottonormal"-Webcams 
irgendwie nicht richtig für meinen Zweck geeignet sind. Sie brauchen 
sehr lange bis sich das Bild normalisiert hat. Hierzu musste ich mehrere 
Captures hintereinander machen und hoffen, dass das letzte Bild gut war. 
Auch gestaltete sich die integration der Kamera in den Würfel als 
schwierig. Ich möchte so viel Platz wie möglich für Akkus haben.

Ich schaute mich im Internet nach Kameramodulen um und stieß immer 
wieder auf Kameramodule von Omnivision. Sie besitzen eine sehr gute 
Auflösung und die Dinger bekommt man auch auch mit Autofokus. Aber hier 
ist das Stichwort "bekommen". Ich habe bis jetzt noch keine Bezugsquelle 
für solche Module gefunden. Und selbst wenn ich so ein Kameramodul 
irgendwo auftreiben könnte, weiß ich ja immer noch nicht, wie die Dinger 
angesprochen werden. Das heißt, wie ich ein Bild und noch dazu ein 
JPG-Bild rausbekomme.

Als Akkus habe ich mich irgendwie auf LiFePo4 eingeschossen. Sie 
besitzen eine sehr hohe Energiedichte und sind m.E. etwas besser zu 
handeln wie reine LiPos. Von Texasinstruments habe ich mir dann Muster 
eines geeigneten Ladezustands-ICs schicken lassen, damit ich die 
Kapazitätsentnahme messen kann und bei jedem Bildupload auch gleich den 
Kapazitätszustandes des Akkus mitübertragen kann. Ich möchte mir ja die 
Bilder über ein Webinterface ansehen können und auch gleich wissen, wie 
der Zustand des Akkus ist.

Als Controller-Boards hänge ich irgendwie an den ARM-Prozessoren. Diese 
Boards besitzen m.E. einen sehr geringen Stromverbrauch. Am meisten 
denke ich wird die UMTS-Verbindung Energie verbrauchen.

Das letzte Board, welches ich mir angesehen habe ist ein 
FriendlyARM-Board von
http://www.watterott.com/de/FriendlyARM-Mini2440-256Mb

Dieses Board hat auch eine Schnittstelle für ein Kameramodul
http://www.watterott.com/de/CAM130-Kamera-Modul

Ich zwar nur dieses Modul für dieses Board gefunden aber es liefert 
zumindest schon mal ne Auflösung von 1280x1024.

Knackpunkt an diesem Board. Es ist zur Zeit nicht lieferbar und ich habe 
die Leute von Watterott vor Wochen angeschrieben und fast 4 Wochen auf 
eine Antwort gewartet. Ich bekam nur die Info, dass sie das Board 
bereits bestellt hätten und auf die Lieferung warten. Das ist jetzt 6 
Wochen her. eine andere Bezugsquelle habe ich in Deutschland bzw. EU 
nicht gefunden.

Ich habe das Gefühl ich drehe mich hier irgendwie im Kreis. Ich weiß 
nicht ob ich noch in die richtige Richtung denke. Vielleicht sollte ich 
vom ARM-Prozessor wegkommen.

Ich hoffe so sehr, dass Ihr mir hier weiterhelfen könnt.

Besete Grüße
Manfred

von Strubi (Gast)


Lesenswert?

Hi,

wenn du dich traust, die Architektur zu wechseln: Schau dir mal den 
Blackfin BF527 an. Habe damit eine 'intelligente' Linux-Kameralösung am 
Laufen, die per USB-Modem resp. Handy (PPP) Bilder verschicken kann. Ist 
auch deutlich stromsparender als die ARMs. Mit den Bluetechnix 
Core-Modulen hat man da relativ schnell nen Prototypen gebaut 
(Referenzdesign in kicad).
Als Kamera nehme ich allerdings keine Omnivision mehr, die 
Aptina-Sensoren sind einiges besser. Der MT9D111 (2 MPixel) oder MT9T111 
(3 MP) spuckt z.B. gleich schon JPEG aus. Wenn Du nicht gerade 1000 
Stück bauen willst: Die D111-Sensoren kriegst du im Handymodul (Sony 
P990) auf Ebay für ein paar Dollar. Hat auch Autofocus.
Integrationsbeispiel auf nem Roboterchen: 
http://tech.section5.ch/news/?p=62
Allerdings ist die Ansteuerung/Konfiguration der Sensoren nicht so ohne, 
aber ich geb auch gerne ein paar Codebeispiele her.

Gruss,

- Strubi

von Strubi (Gast)


Lesenswert?

Apropos, da fällt mir grade was ein: Hat nicht das Beagleboard digitale 
Videoeingänge? Das müsstest Du doch auf jeden Fall bekommen können. Und 
somit nicht weg vom ARM müssen.

Gruss,

- Strubi

von mdersch (Gast)


Lesenswert?

Hi Strubi,

vielen vielen Dank für die Antworten. Das ist echt super. Ich habe mir 
das BeagleBoard mal angesehen. Sieht sehr gut aus und ist auch noch 
schön klein. Und so wie ich auf den ersten Blick gesehen habe, gibts 
auch ordentlich Dokus und Referenzmaterial.

Ich hab mir auch gleich die MT9D111-Kamera angesehen. Echt super! Da tut 
man sich gleich viel einfacher, wenn man weiß wie was heißt.

Wenn ich das richtig verstanden habe, dann ist die P990 von Sony die 
gleiche wie die MT9D111 - aber als Handymodul gibts die für ein paar 
Euro. Hab gleich mal bei Ebay gesucht aber keine gefunden. Ist jetzt 
auch nicht so schlimm. Für den Prototypen reicht die MT9D111 völlig.

Gibt es für die MT9D111 eine Doku, damit ich weiß, wie ich das Teil 
auslesen kann? Bzw. hast Du hier vielleicht den einen oder anderen Tip?

Beste Grüße
Manfred

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Mal eine Frage nebenher:

Wie empfindlich sine die hier erwähnten Kameras?
Mir geht es um Nachtaufnahmen (IR) und Tierbeobachtung.
Die Idee mit dem (Plexiglas-)Würfel gefällt mir.

von Martin S. (strubi)


Lesenswert?

Zu Manfred:

Hmm. Das ebay-Angebot ist wohl schnellebig.. Könnte dir aber allenfalls 
kleine Stückzahlen (um 10 Stück) von den Kameramodulen vermachen.
Und ja, in der P990 Kamera steckt der D111.

Hab auch noch Adapterplatinen für den Aptina-Standard-Header, allerdings 
gibts davon bald nochmal ne neue Revision. Aber schau sonst mal, ob Du 
einfach so ein Evalboard kriegst, das kann man normalerweise direkt an 
die "üblichen Verdächtigen" der 3.3V kompatiblen Videoportfamilie 
anschliessen.
Was die Doku angeht: Da Aptina die Sachen nur unter NDA rausgibt, 
müsstest Du dich bzgl. Doku direkt an die Jungs wenden. Allerdings ist 
es nicht verboten, Sourcecode rauszugeben, der die richtigen 
Register-Sets einspielt.

Christian: Die Empfindlichkeit der genannten Sensoren wäre eigentlich 
sehr gut, wenn sie nicht (zumindest im Fall der Handymodule) nen 
IR-Filter aufgedampft hätten. Bei den Evalkits ist der allerdingst in 
der Optik, also einfache Linse ohne IR Filter tut's.
Der MT9V032 monochrom-Sensor ist im IR nicht schlecht, noch etwa 15% 
quantum efficiency bei 950 nm (Maximum 50% bei 650). Sagt natürlich nix 
über die effektive Sensitivität aus, aber man sieht so einige Meter mit 
nem billigen IR-LED-Ring, für mehr Distanz geht ein defokussierter 
Dioden-IR-Laser.

Hab letztens auch mal bei ner ordinären Billigwebcam von Dealextreme die 
Linse getauscht und erstaunliche Empfindlichkeiten festgestellt. Dürften 
möglw. Omnivision-Sensoren sein, die haben ja auch nicht geschlafen.

Grüsse,

- Strubi

von mdersch (Gast)


Lesenswert?

Danke Strubi!

ich werde jetzt mal schauen, dass ich so ein Board bekomme.

Wieviel verlangst Du für Deine Cams? Vielleicht kommen wir da ins 
Geschäft.

Beste Grüße
Manfred

von Martin S. (strubi)


Lesenswert?

Hi Manfred,

schick mir mal ne PM, ich würde sagen, pro Modul inkl. passenden 
SMD-Connector (der ist schwer zu bekommen) 6€ + 3€ für den Versand.
Footprints kann ich dir im kicad-Format liefern. Wenn du die 
Adapterplatine dazuwillst, muss ich mal schauen, das könnte etwas teurer 
werden.

Aber es gibt noch ein Problem: Die Charge die ich als letztes bekommen 
habe, hat einen anderen Autofocus drin (VCM anstatt Piezo). Ich hatte 
noch nicht die Zeit, mich da reinzugraben und die Konfiguration 
anzupassen. Ich hab' auch keine Ahnung, wie schwierig das wird, da diese 
Sachen nicht dokumentiert sind.
Bottomline: Momentan ist bei der Charge das Bild nur im Nahfeld scharf.
Sonst funktioniert aber ansich alles. Melde dich einfach mal, wenn Du 
Zeit und Resourcen zum Basteln hast, kriegt man das ev. gemeinsam hin.

Apropos, noch was: Du solltest wohl das BeagleBoard xM nehmen. Das 
andere hat sehrwahrscheinlich keinen Kamera-Port.

Gruss,

- Strubi

von bingo (Gast)


Lesenswert?

P990 gibt es eigentlich laufen bei ebay ...

von mdersch (Gast)


Lesenswert?

Hi Strubi,

ich hab jetzt mal die Beagleboardseiten überflogen und mich gleich mal 
in der Newsgroup angemeldet.

Bei mir liegt halt das Problem, dass ich wohl mit Linux einigermaßen gut 
umgehen kann, jedoch irgendwelche Treiber zu programmieren fehlt mir das 
wissen. Kleinere Amtega-Geschichten (LCD-Module ansteuern usw.) ist kein 
Problem jedoch direkt irgendwelche Register in Cameramodulen ansteuern 
geht absolut nicht.

Ich muss mir also immer gewisse Sachen und Sourcecodes aus verschiedenen 
Foren und Homepages zusammensuchen.

Ich suche auch noch Infos wie ich das mit dem Intervall regle. Entweder 
ich lass  die Kiste einfach am Laufen und programmiere ne Art Timer oder 
ich fahre nach der Aktion das Board runter und schalte es mittels einer 
kleinen und externen Timerschaltung (AVR :-)) das Board immer wieder an. 
Vorteil der zweiten Variante ist, dass ich somit extrem viel Energie 
spare, da die AVR-Schaltung weitaus weniger verbraucht. Weiterer Vorteil 
wäre, dass das Linuxsystem immer wieder neu bootet und sich nicht nach 4 
Tagen irgendwan aufhängt. Das Thema "System hängt" überlege ich auch 
noch welches Betriebssystem am stabilsten läuft und gleichzeit so kurz 
wie möglich zum booten braucht.

Aber ich denke ich sollte vielleicht einen Schritt nach dem anderen 
machen und mir mal so ein BeagleBoard xM zulegen. Bei Watterott wäre es 
ja diesmal verfügbar.

Beste Grüße und vielen Dank für Deine Hilfe
Manfred

von Martin S. (strubi)


Lesenswert?

Hi Manfred,

also, das dürfte die kniffligste Sache überhaupt sein, das mit dem 
Powersave optimiert zu bekommen. Linux kriegst du zumindest auf meiner 
BF-Kamera in wenigen Sekunden gebootet, das sollte auf dem Beagle auch 
kein geringeres Problem sein. Die andere Variante wäre, Deep Sleep 
auszuloten und das System extern (< 1s) aufzuwecken. Weiss nicht wie gut 
das auf dem OMAP geht.
Die Linux-Kamera habe ich eigentlich nie zum Hängen gebracht, ist extrem 
robust, also du kannst das System problemlos wochenlang laufen lassen.

Gruss,

- Strubi

von Manfred D. (mdersch)


Lesenswert?

Hi Strubi,

ich denke das mit dem Powersave werde ich einfach austesten. Ich glaube 
ich konzentriere mich erst mal darauf, dass ich ein Board habe, eine 
Camera habe (die ich auch auslesen kann), ich den UMTS-Stick zum Laufen 
bring und das ganze Zeug dann auf meinen Server bringe. Wenn ich soweit 
bin, dann hol ich mir erst mal ein Sixpack :-) Oder auch zwei!

Danach sehe ich mir den Energiverbrauch und die Langzeitstabilität an. 
Vielleicht gibt es ja auch ein Signal, welches das Board abgibt, wenn es 
hängengeblieben ist. Dieses Signal könnte ich ja an einen Interrupt 
eines AVRs hängen und dieser löst dann beim Board einen Reset aus?!? So 
könnte ich ein evtl. Hängenbleiben lösen und das Board einfach 
durchlaufen lassen. Ich kann mir auch vorstellen, dass der 
Energieverbrauch im Ruhezustand des Boards - also wenn es nichts zu tun 
hat - um einiges geringer ist als im Idle-Zustand. Aber das werde ich 
dann in der Praxis testen.

Für mich ist die eigentliche Funktionalität wichtig und da sehe ich bei 
der Kamera noch sehr viel Kopfrauchzeichen. :-)

Grüße
Manfred

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.