-
        

Ergebnis 1 bis 8 von 8

Thema: Suche Hilfe zu Farberkennungsprojekt

  1. #1

    Suche Hilfe zu Farberkennungsprojekt

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Guten Hallo an alle,

    im Rahmen meiner Ausbildung muss ich ein Projekt abgeben und brauche dafür ein wenig Hilfe.
    Und zwar habe ich vor eine "einfache" Farberkennung zu realisieren.
    Habe dabei folgende Vorstellung:
    Mit einem selbstgebauten Sensor (z.B. http://www.robotroom.com/ColorSensor.html ) soll das Objekt abgetastet werden.
    Das Signal soll anschließend über eine Schnittstelle an den PC übergeben werden und mit C++ ausgewertet werden.
    Meine Frage ist jetzt
    1) ob der im Link vorgestellte Sensor geeignet ist oder ob es andere Möglichkeiten gibt.
    2) wie eine Schnittstelle zu realisieren ist.
    3) ob es bereits Programme für C++ gibt, mit denen man sowas realisieren könnte

    Schonmal danke, kann jede Hilfe gebrauchen.

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.12.2005
    Ort
    @FFM
    Alter
    41
    Beiträge
    402
    Der Sensor ist natürlich mit der ensprechenden Hardware schon geeignet.
    Natürlich fehlt dir nun die Hardware genau diese ist der Knackpunkt.
    Um deine Aufgabe zu erfüllen könntest du den Sensor sowie die Leds an einen Mikroprozessor hängen.Dieser hat auch in den meisten Fällen eine Serielle Schnittstelle onboard ZB Atmel Atmega. Die LED werden nacheinander angeschaltet und jeweils die reflektierte Lichstärke vom Sensor an den Prozessor weitergegeben (Spannung) der Prozzie wandelt mit einem Analog-Digital-wandler die gemessene Lichtstärken der einzeln Farben in Digitale Daten um die du dann in der Software des Prozzie weiterverarbeiten und zur Schnittstelle weitergeben mußt.

    ganz easy oder?

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.10.2007
    Beiträge
    113
    Natürlich ist das Ein- und Ausschalten von farbigen LEDs ziemlich einfach, aber wenn es nicht nur ein Demo-Projekt, sondern etwas Ernsthaftes werden soll, dann würde ich zu einem Glühlämpchen und 3 Sensoren (z.B. Fotowiderstände) raten.

    Der Grund ist die spektrale Schmalbandigkeit der LEDs. Es ist druchaus möglich, dass du z.B. einen Gegenstand vor den Sensor hältst, der für dich rot aussieht, trotzdem liefert der Sensor nur Mist ...

    Wenn es nur ein Demo-Projektt ist, empfehle ich dringend für die Vorführung, vorher getestete Farbträger zu verwenden.

    Frank

  4. #4
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Das Prinzip ist schon recht gut. Man sollte aber eventuell ein paar mehr (wenigstens 4 = blau,gruen,gelb,rot) LEDs nehmen, so das sich keine deutliche Lücke im Spektrum mehr ergibt. Die LEDs sollte man so ausrichten, das das Licht schräg einfällt und senkrecht gemessen wird. So wie das da dargestellt ist, kommt auch viel glänzend reflectieres Licht auf den Sensor. Als Sensor wäre eventuell auch ein Phototransistor oder eine Photodiode besser geeignet, da besser linear.
    Ich habe gerade einen ähnlichen Sensor mit 10 LEDs aufgebaut, allerdings mit dem Ziel sehr feine Farbunterschiede zu erkennen. Funktioniert eigentlich schon ganz gut, man kann z.B. durchaus Vorder- und Rückseite von manchem weissen Papier unterscheiden. Es fehlt aber noch etwas Abgleich und Software.

  5. #5
    Zitat Zitat von molleonair
    Um deine Aufgabe zu erfüllen könntest du den Sensor sowie die Leds an einen Mikroprozessor hängen. Dieser hat auch in den meisten Fällen eine Serielle Schnittstelle onboard ZB Atmel Atmega.
    Die Sache klingt schon sinnvoll. Habe gerade mal geschaut und es gibt von dem Mikroprozessor einige Modele. Könntest du mir nen Tipp geben, welchen man verwenden könnte?

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.12.2005
    Ort
    @FFM
    Alter
    41
    Beiträge
    402
    Also die meisten hier verwenden die Atmel Modelle mit dem Atmega 8 hast du einen kostengünstigen und leistungsfähigen Prozessor
    kostenlose c-compiler oder eine basic entwicklungsumgebung gibts auch dafür
    schau mal in den RN-Wissen Bereich

  7. #7
    Hi Leute, erstmal danke nochmal für die antworten bisher.
    Den Sensorkopf habe ich jetzt fertiggestellt und erste Messwerte sind vorhanden.
    Jetzt steht das nächste Problem an...
    Und zwar stellt sich mir die Frage wie jetzt die eigentliche Farberkennung funktioniert.
    Ich meine mit den Messwerten habe ich jetzt die Spannungen je LED / Untergrund, aber im moment ist das doch nichts anderes als ein Graustufenabgleich.
    Was muss ich mit den Daten machen, um die Farbe zuordnen zu können?

    Nächste Sache:
    Für die Schnittstelle zum PC haben wir uns jetzt für das digitale Messgerät M-4650CR von Voltcraft.
    Dieses lässt sich nämlich direkt über eine Parallelschnittstelle an einen PC anschließen.
    So haben wir die Schnittstelle und das Messgerät mit einem Streich abgehakt.

    Meint Ihr das ist eine gute Idee?

  8. #8
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Es sollte mit jeder LED einzeln und ganz ohne LED gemessen werden. Von den gemessenen Intensitäten mit den LEDs wird jeweils der Wert ohne LED abgezogen. Damit hat man 3 Werte die für die 3 Farben der LEDs stehen. Am besten teilt man die Werte dann noch durch die Werte die man für eine weisse Probe erhalt. Für andersfarbige Proben erhält man dann 3 Werte zwischen 0 und 1. Für eine Zuordning zu Farbnamen kann man dann z.B. die Farbdarstellungen für die aditive Farbmischung nehmen, wo am Rand die reinen Wellenlängen um in der Mitte weiss ist. In grober Näherung hat man halt die 3 Farben der LEDs anhand der Werte von 0 bis 1 gemischt. Für die Darstellung der Farben gibt es aber sehr viele verschiedene Möglichkeiten

    Wenn man als sensor einen LDR hat, wird da etwas komlizierter, denn der LDR ist siehmlich nichtlinear und man muss die LDR werte erst anhand der Kennlinien wenigstens halbwegs linearisieren. Außerdem sollte man dann darauf achten den Untergrund möglicht klein zu halten.

    Das Multimeter ist für einen ersten Test schon ganz gut, aber man muß ja immer noch die LEDs umschalten. Das könnte man vom PC aus über den Paralelport steuern. Die alternative ist halt der Controller, der dann das umschalten und digitalisieren übernimmt, die Daten kann man dann per Serieller Schnittstelle übertragen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •