PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einfacher Farbsensor



TimurS54
26.10.2011, 11:05
Hallo,

ich bin relativ neu auf diesem Gebiet, aber ich brauche ganz dringend eure Hilfe... Ich habe dieses Thema gegoogelt und bin des öfteren auf die Seite gestoßen daher dachte ich mir, ich versuchs mal selber.

SO es geht um folgendes, ich brauche einen kostengünstigen Farbsensor, der nur 4 verschiedene Farben können muss. Die bauteile sind Kugeln, welche dann sortiert werden müssen. Ich muss das als Projekt machen und mein Budget ist für die Elektronik mit etwa 100€ stark begrenzt, also Markeeigenbau muss es aufjedenfall sein.

Der Farbsensor in conrad, was braucht man dafür alles, damit der seine Aufgabe erfüllt und mit was sollte ich das dann Programmieren.

http://www.conrad.de/ce/de/product/180381/SMD-RGB-FARBSENSOR-KPS-5130PD7C/0231210&ref=list;jsessionid=D77FB62124C392EDE1592C0BBAC828 88.ASTPCCP3

Hat irgendjemand Erfahrung auf dem Gebiet.

Bin für jede Hilfe dankbar.

021aet04
26.10.2011, 11:54
Ich vermute das du noch eine geeignete Lichtquelle brauchst. Ich vermute das du entweder mit einer Kamera und Farbfiltern (entweder Filterscheiben oder die Farbdaten auslesen) arbeiten musst oder mit einem Lichtsensor (wie von dir gepostet) und einer 3 Farbenlichtquelle. Die einfachere Variante (und günstigere) wäre natürlich 3 Leds in den passenden Farben (oder eine RGB Led) und dann das Objekt mit den 3 Farben beleuchten und die Daten dann auslesen. Ob das allerdings funktioniert bzw wie gut das funktioniert weiß ich nicht, da ich mich damit noch nicht beschäftigt habe.

PS: Normalerweise ist der große C relativ teuer. Bei diesem Sensor ist er aber relativ günstig (habe bei Distrelec geschaut und dort fangen die Sensoren bei etwa 7Euro an)

MfG Hannes

TimurS54
26.10.2011, 12:02
Ich bräuchte irgendwie ne inspiration, also entweder nen Schaltplan, aber auch die Hilfe beim Auswahl des Ram/Chip, eben etwas zum speichern und ausführen des Programms....

Es ist mindestens 8 Jahre her, dass ich sowas gemacht habe......Das war auf dem BK

Das mit den 3 Leds habe ich schon gehört nur wie muss ich mir das dann vorstellen?

021aet04
26.10.2011, 12:25
Der Farbsensor kann nur Licht auswerten. Wenn man den Sensor einfach auf das unbeleuchtete Objekt richtet wird sich nichts ändern. Deswegen muss man eine 3 Farbenlichtquelle (am Besten die Farben mit der maximalen Empfindlichkeit) nehmen. Bei deinem Sensor wäre das etwa das ca. 470, 540 bzw 650nm für B, G bzw R. Einen Schaltplan wird dir hier keiner fertigen, helfen aber schon. Hier im Forum ist Eigeninitiative gefragt. Bei Problemen,... wird schon geholfen. Ich würde mir so einen Sensor bestellen, die passenden Leds dazu (eventuell Hochleistungsleds damit du ein besseres Licht hast) und eine kleine Testschaltung (entweder mit Operationsverstärker oder µC) aufbauen und dann verbessern.

Es gibt auch verschiedene Kameras für den Hobbybereich. Ein Beispiel wäre z.B. die CMU-Cam

PS: Was willst du mit einem Ram?

MfG Hannes

TimurS54
26.10.2011, 12:39
ich bin seit 3 Abenden nur am recherchieren und mein kopf ist ziemlich platt.

Ich muss mich halt in ein Gebiet einarbeiten, von dem ich nicht sehr viel ahnung habe... ich muss doch dann das Programm irgendwo aufspielen...

Also wenn ich das jetzt richtig verstehe, muss ich die 3 Led's nehmen und von der gleiche richtung wie der Sensor auf die Kugel einstrahlen und durch die Reflektion bzw. absorbierung des Lichts, krieg ich dann dehm entsprechende werte, die ich dann festhaltzen muss und meinem Programm die Spektrum angebe...

oder?

021aet04
26.10.2011, 12:51
Das ist so richtig. Durch Reflexion sollten sich die Objekte unterscheiden lassen. Ich würde ein Programm für einen µC schreiben, der die einzelnen Kugeln unterscheiden kann. Je nachdem was du ansteuern willst kannst du dann entweder weitere Hardware (z.B. Motoren zum "schlichten" bzw einsortieren) ansteuern. Vorher muss man noch kalibrieren, damit man die einzelnen Kugeln wirklich untgerscheiden kann. Eventuell kann man noch einen PC zur Anzeige bzw Programmieren der Spektren einsetzen.

PS: Was willst du damit machen? Ist das ein Vorzeigeprojekt oder für Ausbildung,... gedacht? Hast du eine Zeitvorgabe wann es fertig sein muss?

MfG Hannes

TimurS54
26.10.2011, 12:57
weihnachten ist der Zeitpunkt...
fürs studium, eigentlich bin ich nur Wirtschaftsingenieur, aber unser Prof hat den A..... auf...sorry

µC???

meinst du damit die Sprache C? oder wie?

021aet04
26.10.2011, 13:41
µC ist die Abkürzung für Mikrocontroller. Das sind kleine ICs auf denen man ein Programm ausführen kann. Dazu muss man eine Programmiersprache kennen (C, Basic,...). Ein µC ist aber nicht mit einem PC zu vergleichen, da dieser mehr Leistung hat (Ram, Speicher,...).

MfG Hannes

Bernina
08.11.2011, 08:30
Warum muss das Rad immer wieder neu erfunden werden? Funktionsfähige Farbsensoren gibt es von diversen Herstellern. Wenn man bei Ebay schaut, dann bekommt man auch schon gebrauchte Industriefarbsensoren unter 100 EUR.
Zu den Grundlagen gibt es einige interessante Seiten im Internet (z.B. http://www.wegothek.de).
Sollte doch Eigenbau angesagt sein, dann würde ich eine Lösung empfehlen, die eine breitbandige Beleuchtung (z.B. Weißlicht-LED) und einen spektral-selektiven Fotoempfänger (z.B. MCSi von MAZeT oder TCS230 von TAOS oder S6428 von Hamamatsu) verwendet. Eine farbige Beleuchtung mit 3 verschiedenfarbigen LEDs ist meist nicht farbselektiv genug! Zur Auswertung benötigt man einen Mikrocontroller mit mindestens 3 analogen Eingängen für die A/D-Konvertrierung der Signale. Da es sich bei den spektral-selektiven Fotoempfängern um Fotodioden handelt, welche bekanntlich Fotoströme liefern, müssen vor der A/D-Konvertierung Strom-/Spannungswandler verbaut werden!

mfg
Bernina

Besserwessi
08.11.2011, 09:16
Der Weg mit einer LIchquelle und 3 Sensoren hat allerdings auch ein Problem: man braucht eine gute, stabile Breitbandige Lichtquelle. Glühbirnen altern und lassen sich nicht gut modulieren um Fremdlicht zu unterdrücken. Weiße LEDS sind auch nicht so gut, weil sie oft ein recht verzerrtes Spektrum mit wenig Grün haben. Durch das verzerrte Spektrum hilft einem ein genau an die Norm angepasster Filter im Empfänger übrigens auch nicht mehr. Da müsste man schon passende Paare aus Lichtquelle und Empfänger mit Filter haben.

Die Beleuchtung mit Farbigen LEDs hat eigentlich kein Problem mit der Selektivität, sondern eher umgekehrt ein reichlich enges Spektrum der einzelnen LEDs. Wenn man es gut haben will, braucht man entsprechend nicht nur 3 LEDs sondern eher 6. Nur der Gelbe Bereich leidet ein wenig unter der geringen Effizienz der gelben LEDs.

Bernina
08.11.2011, 09:43
Hallo Besserwessi,

Ja da stimme ich zu. Je mehr verschiedenfarbige LEDs man verwendet, desto besser. Aber dann steigt natürlich auch der Aufwand. Die 6 LEDs zur Objektbeleuchtung in eine optische Achse zu bringen, ist nicht ganz einfach. Idealerweise müsste man die 6 LEDs auch mit Strömen (anstatt mit Spannungen) versorgen, damit die Lichtleistung konstant bleibt. So wie ich die Aufgabe von TimurS54 verstehe sollte aber alles ganz einfach gehalten werden. Ich denke trotz deiner Bedenken zum ungünstigen Spektrum einer Weißlicht-LED, dass meine vorgeschlagene Lösung praktikabler ist. Es geht hier ja nicht um Farbmetrik! Es werden also keine genauen Farbmaßzahlen gesucht, sondern eine eindeutige Farberkennung. Diese ist auch mit dem Spektrum von Weißlich-LEDs möglich, da trotz geringer Spektralanteile im Bereich um 500nm immer noch etwas Auswertbares da ist. Die mangelnden Spektralanteile im tiefen Blau und tiefen Rot der Weißlich-LED stören nur wenig, da diese durch die Bewertung des Lichtes mit den Normspektralwertkurven im Empfänger ohnehin ausgeblendet werden (zumindest bei Verwendung des MTCSi von MAZeT). Wie gesagt, für (hochgenaue) farbmetrische Messungen benötigt man sicher breitbandigeres Licht (z.B. Xenon- oder Halogen-Licht). Für Farberkennungsaufgaben sollte aber eine Weißlich-LED vollkommen ausreichen. Der indirekte Beweis ist ja auch mit den zahlreichen Herstellern von Farbsensoren erbracht, die auf Weißlicht-LEDs setzen, und deren Produkte sehr gut funktionieren. Einige Details zu der Thematik findest Du unter http://www.wegothek.de/publikationen.html oder auch auf Wikipedia (Stichworte: Farbsensor und Farberkennung).

mfg
Bernina

TimurS54
12.11.2011, 12:17
Danke euch nochmals um die Diskussion, ich habe nur 4 verschiedene Farben zu sortieren, deswegen nicht so komplex, ich denke die einfache Lösung sollte es auch tun, bin gerade am zusammenstellen, tu mir nur schwer beim Controller, da ich einige ausgange brauche und paar ausgänge

malthy
12.11.2011, 13:50
Wäre es nicht auch eine Möglichkeit eine Kamera an einem PC (Webcam) zu verwenden? Die drei Farbkanäle der Kamera auszuwerten dürfte sich recht einfach gestalten. Gruß, Malte.

Richard
12.11.2011, 14:10
Wäre es nicht auch eine Möglichkeit eine Kamera an einem PC (Webcam) zu verwenden? Die drei Farbkanäle der Kamera auszuwerten dürfte sich recht einfach gestalten. Gruß, Malte.

Das dürfte wenn es möglich ist, die einfachste Methode darstellen. :-) Wobei man dabei allerdings auch schnell Probleme auf Hartware Ebene wie Steuerausgänge u.s.w. bekommt...

Gruß Richard

malthy
12.11.2011, 14:29
Wobei man dabei allerdings auch schnell Probleme auf Hartware Ebene wie Steuerausgänge...

Ja, klar, insb. wenn es um ein präzises Timing geht. Aber wenn nicht - und mir klingt es hier eher so - dann sollte auch das kein großes Problem sein. Über eine µC Schaltung wird hier ja sowieso nachgedacht, und einen AVR per RS232 ein einen PC zu hängen ist ja nun kein Hexenwerk. Möglicherweise findet man auch günstige fertige Interfaces, die ein paar I/O-Funktionalitäten zu Verfügung stellen.

Gruß,
Malte

Richard
12.11.2011, 14:53
Ja, klar, insb. wenn es um ein präzises Timing geht. Aber wenn nicht - und mir klingt es hier eher so - dann sollte auch das kein großes Problem sein. Über eine µC Schaltung wird hier ja sowieso nachgedacht, und einen AVR per RS232 ein einen PC zu hängen ist ja nun kein Hexenwerk. Möglicherweise findet man auch günstige fertige Interfaces, die ein paar I/O-Funktionalitäten zu Verfügung stellen.

Gruß,
Malte

Ich dachte dabei eher an eine normale Bildverarbeitung Software und die bietet keine (Hartware) Möglichkeit irgend etwas zu steuern. Wer natürlich selber am PC Proggen kann hat alle Möglichkeiten offen. :-)

Gruß Richard

Besserwessi
12.11.2011, 17:29
Ein bisschen mehr als nur die Kamera wird man schon brauchen: Zum einen braucht man eine definierte Beleuchtung und dann vermutlich noch ein paar Farbmuster als Referenz auf dem gleichen Bild. Wenn viel Fremdlicht da ist, muss man ggf. auch 2 Bilder machen, um den Effekt des Fremdlichtes zu unterdrücken. Dabei kann man ein Problem haben, wenn die Kamera einen Automatischen weiss und/oder Helligkeitsabgleich macht.

Die Steuerung des Lichtes kann ggf. auch einfach nach der Zeit gehen, so das das Programm dann auf den Wechsel im Bild reagiert und selber feststellt ob das Bild jetzt mit oder ohne Zusatzlicht gemacht wurde. Rein mit nur einem Bildbearbeitungsprogramm kommt man ohnehin nicht aus.

Manf
12.11.2011, 20:07
weihnachten ist der Zeitpunkt...
fürs studium, eigentlich bin ich nur Wirtschaftsingenieur, aber unser Prof ...

µC???
meinst du damit die Sprache C? oder wie?


Vielleicht kann man es nach dem Gesagten noch einmal von hier aus angehen.
6 Wochen sind viel Zeit.

Noch eine Woche Konzept.
dann Beschaffung, Vorbeitung
Versuchsaufbau
Messungen
Zusammenstellung
Beschreibung

Ich denke es könnte eine breitbandige Quelle mit einigen LEDs sein die so abgestimmt sind, dass der selektive Sensor die tatsächlich vorkommenden Farben optimal unterscheiden kann.
Oder es ist ein breitbandiger Empfänger (Fototransistor) und mit den farbigen Lichtquellen wird getestet, welche Beleuchtung am meisten auf den Sensor wirkt.
Beides zusammen erhöht die Erkennbarkeit aber auch die Komplexität der Lösung.

Braucht man eine Fremdlichtunterdrückung durch Modulation oder kann man die Aufgabe so definieren, dass die Messung in einer kleinen Dunkelkammer durchgeführt wird?

Wenn man sich auf das Nötigste beschränkt kann es noch Spass machen und man kann noch ein paar kleine Optimierungen ausprobieren, sonst ist man vielleicht nur noch am Rennen.

Bernina
14.11.2011, 11:01
@TimurS54
Welches Prinzip auch immer Du verwendest, bei der Farberkennung muss unbedingt der Objektabstand beachtet werden. Bei Kugeln als Objekte sehe ich das Problem, dass keine flache Farboberfläche und somit auch kein gleichmäßiger Abstand zum Sensor besteht. Wenn Die Kugeln beim vorbeirollen erkannt werden sollen, durchlaufen die Sensorwerte verschiedene Farben, weil der Abstand variiert. Selbst wenn mann nur die Farbanteile (also unabhängig von der Intensität) auswertet, erhält man praktisch immer Farbverschiebungen bei schräg zulaufenden Oberflächen. Daher müsste der Sensor auf eine bestimmte Messstelle an der Kugel getriggert werden. Das ist bei einer Kugel nicht ganz einfach. Wenn die Kugeln klein sind, könnte ein größerer Messabstand helfen, sodass der Messfleck des Sensors gleich (oder etwas größer) dem Kugeldurchmesser ist (Zweck: Mittelwertbildung über die gesamter Kugel). Bei zu großem Messfleck wird allerdings zuviel Hintergrund mitgemessen und die Selektivität leidet. Die beste Lösung wäre eine Art Anschlag für die Kugel, sodass eine feste Messstelle für den Sensor zur Verfügung steht. Das bedeutet aber, dass die Kugel in einer bestimmten Position zum Stillstand kommen muss. Bewegte Kugeln farblich zu erfassen bleibt schwierig.