Werbung
Ich glaube die Kamera ist nicht geeignet da sie einen analogen (PAL?) Ausgang hat und der ADC des Mega/PIC die digitalisierung des Signals bestimmt nicht schafft.
Such hier im Forum einfach mal alle Threads zum Thema Bildverarbeitung durch, in einem von denen wird eine Kamera mit Digitalausgang erwähnt die man per UART auslesen kann.
Ein mal kurz Google: http://www.sander-electronic.de/gm00031.html
...wäre wohl auch eine Möglichkeit.
Ausserdem denke ich es ist schon ein ARM, XScale oder ein AVR32 nötig um einigermassen Ergebnisse bei der Auswertung zu erhalten. Ich möchte mich auch bald mit dem Thema besfassen und bin gerade dabei mir die mathematischen Grundlagen die dazu nötig sind anzueignen. Ich wollte erst mal auf dem PC anfangen bevor ich Geld in teure Controller stecke.
Vielleicht wäre es auch für dich das beste erst ein mal damit zu beginnen aber achte darauf eine Kamera zu kaufen die du dann auch mit einem Controller auslesen kannst.
Mal eine kleine Rechnung.
Angenommen, Du nimmst ein Bild von lediglich 100 * 100 Pixeln, was wahrhaftig nicht besonders gut ist. Dann wären das schonmal 10000 Pixel.
Bei der Angestrebten Farberkennung muss für jedes Pixel der R, G und B - Wert vorliegen. Werte von 0 bis 255, also 3 Byte pro Pixel. Macht 30000 Byte pro Minibild. Soll die Farberkennung auch bei Lichtverhältnissen arbeiten, wie sie ausserhalb eines optimalen Labors normal sind, so denke ich, kommt man um eine Umwandlung von RGB nach HSV nicht herum. Im HSV - Format haben wir wie bei RGB auch wieder drei Werte. H : 0..255 S : 0..255 und V : 0..360. Oops. 360. Also kein Byte, sondern schon mindestens 2 Byte wenn wir bei Integerwerten bleiben wollen. Macht also für das HSV-Bild nochmal mindestens 40000 Byte. Und da ist noch keine Zeile Code geschrieben.
Also. Nach meiner Einschätzung möchte ich vermuten, daß man für eine auch nur halbwegs brauchbare Bildverarbeitung, die man auch noch bezahlen kann, um einen E-Bay Laptop und eine einfache (USB)-Webcam nicht herumkommt.
[IN]Crusher: Wie ich schon gesagt habe sollte man darauf achten eine Kamera zu wählen die man auch per Embedded System auslesen kann also sollte sie möglichst Daten in digitaler Form ausgeben. Eine TV Karte wandelt ja ein analgoes Bildsignal in ein digitales um, also eine USB Cam oder wie gesagt Cam mit digitalausgang.
Aber ich denke eine USB Cam wäre auch ok da du schon ein Schnelles System zur verarbetung brauchen wirst und diese eh einen USB Host haben. Aber ein Laptop ist doch schon etwas Overkill, oder? Denke mal ein Industrie Computer wäre die etwas bessere und kleinere Wahl.
edit: ... und leichter
Aber was ich dann nicht verstehe... bei der CMU oder Pob-Eye klappts doch auch ohne Pc...Nach meiner Einschätzung möchte ich vermuten, daß man für eine auch nur halbwegs brauchbare Bildverarbeitung, die man auch noch bezahlen kann, um einen E-Bay Laptop und eine einfache (USB)-Webcam nicht herumkommt.
Ich möchte eben auch so was in der art entwickeln... ich möchte mir eben nicht extra n industrie computer oder n laptop dafür holen... ist es denn z.b. möglich, dass ich mir einfach eine webcam hole und die software zur bilderkennung auf meinem normal pc programmiere und wenn ich sehe, dass das alles so klappt , wie ich es mir vorgestellt habe, ich mir dann eben die cam hole
http://www.sander-electronic.de/gm00031.html
und den quellcode dann auf nen µC packe (ich weiss... das muss schon nen großer/leistungsfähiger sein)...
wäre das ein sinnvoller entwicklungsverlauf?
MfG Jürgen
Hallo!
Ich persönlich verwende die CMUCam2.
Ich hatte keine Lust das Rad komplett neu zu erfinden.
Dir fehlt bestimmt die Ahnung so etwas wie die CMUCam selbst zu programmieren.
Weißt du, wie kompliziert das ist?
Da du anscheind noch nicht viele Vorkenntnisse hast, empfehle ich dir was fertiges zu kaufen.
Du kannst dich ja parallel noch mit etwas eigenem beschäftigen, aber wenn du Erfolge haben willst, nimm was fertiges, ist immernoch schwer genug.
MfG ACU
Ich hab die c3188 gerade auf der Werkbank liegen und
tüftle mit nem Mega16 gerade dran rum, ich kann dir sagen
der Mega hat da ganz schön zu schwitzen schon mit
der Datenübernahme ist der nicht schlecht beschäftigt.
Die Kamera schiebt 16 Bit, bzw. 2 x 8Bit mit mindestens
um die 2MHz rüber, zumindest ist das mein bisheriger
Entwicklungsstand. Ich hab die Cam schon gebremst
wo's nur geht um auch nur ne realistische Chance zu haben
Die Daten in den M16 zu übernehmen und dennoch,
bei 16MHz Takt hab ich nur 8 Zyklen um die Daten
reinzunehmen und wieder raus an ein Ram zu schieben,
das ist nicht viel ...
aber ich bin am Ball, mal sehen was ich noch rauskitzeln kann
Vor den Erfolg haben die Götter den Schweiß gesetzt
Ich hab die erfahrung gemacht, dass man mit den Herausforderungen wächst. und ich möchte mir eben nicht etwas fertiges kaufen, sondern das schon selbst entwickeln.Ich hatte keine Lust das Rad komplett neu zu erfinden.
Dir fehlt bestimmt die Ahnung so etwas wie die CMUCam selbst zu programmieren.
Weißt du, wie kompliziert das ist?
Es ist schon richtig, dass ich nicht so viel erfahrungen im bereich der Robotik hab, aber z.B. C/c++ beherrsche ich schon einigermaßen.
Ich hoffe ihr versteht das...
Ich finde es eben das interessanteste an dem hobby (so denke ich würd es den meisten hier gehen) die technik zu entwickeln.
Eben aus diesem grund hab ich mich dafür entschieden was eigenes zu machen und nicht eine fertige einheit zu kaufen...
Ich hoffe ihr versteht das.
MfG Jürgen
Ich befasse mich seit einiger Zeit mit dem Thema. Das ganze basiert zurzeit auf einer Gameboy-Kamera. Die Kamera liefert ein Graustufenbild von 128 * 128 Pixel, wobei der Grauwert jedes Pixels analog geliefert wird. Zum Auslesen verwende ich einen Mega32 mit 32 Kilobyte externem SRAM. Das Bild wird per RS232 (115000 Baud) an den PC geliefert und dort von einem Java-Programm angezeigt. Die Bildqualität ist eigentlich - wenn man mal die richtigen Einstellungen gefunden hat, und das dauert - sehr gut.
Zurzeit arbeite ich daran, einen Ball zu erkennen. Dazu wird das Bild in ein Kanten-Bild umgewandelt und darauf ein Hough-Algorithmus angewendet, der den Ball eigentlich sehr zuverlässig findet. Anfänglich machte alles der PC, mittlerweile habe ich aber die Kanten-Erkennung an den Controller delegiert und als nächstes wird auch noch der Hough-Algorithmus auf den Controller portiert.
Keine Ahnung was es wird, vielleicht ein Ballsammler-Roboter? Für Fragen & Ideen bin ich immer zu haben.![]()
Lesezeichen