Anmelden AnmeldenSchließen
| Passwort vergessen?


- Strippenstrolch 2.0 -
Farberkennung
 1


31.01.21 18:05 --- Alsan 

........ Farberkennung ........

Hallo zusammen.
Ich habe ein Schulprojekt mit einer Siemens Logo.
Und zwar soll die Farbe von verschiedenen Scheiben erkannt werden. Es gibt rote, gelbe, grüne und blaue Scheiben.
Ich habe mit IR Transistoren Versuche durchgeführt. Die Ergebnisse schwanken doch sehr. Ich brauche stabile Werte im Bereich von 0 bis 10V.



31.01.21 22:51 --- Stephan_M 

Administrator



........ Re: Farberkennung ........

Guten Abend,

letztlich ließe sich die Farbe über drei Werte bestimmen:

=> R (rot)
=> G (grün)
=> B (blau)

(sogenannte "RGB"-Werte)

Es wären also drei Analogeingänge auf Ihrer Siemens Logo nötig.

Mit einem Infrarotempfänger (IR-Transistor) können Sie jedoch nur den Rot-Anteil bestimmen und zudem spielt dabei die Umgebungstemperatur eine erhebliche Rolle.

Daher wäre es vielleicht eine Lösung, über passive Sensoren in Form von drei gleichen (ausgemessenen) LDRs (lichtempfindlicher Widerstand) nachzudenken.

Eine Möglichkeit bestünde darin, vor jeden LDR einen Filter in den Farben rot, grün und blau zu kleben und drei Wheatsone'sche Messbrücken aufzubauen. Die dann entstehenden Mess-Spannungen können dann mit einem Opersationsverstärker auf 0 bis 10 Volt "gespreizt" werden, so dass Sie die dann direkt in die Logo einlesen könnten.

Sie hätten dann bei den 4 Scheiben etwa mit diesen Spannungswerten zu rechnen:

Rote Scheibe:

R ------------------------------------------------------- (Rotanteil)
G ----- (Grünanteil)
B --- (Blauanteil)


Grüne Scheibe:

R --- (Rotanteil)
G -------------------------------------------------------- (Grünanteil)
B --- (Blauanteil)


Blaue Scheibe:

R --- (Rotanteil)
G ---- (Grünanteil)
B ------------------------------------------------------- (Blauanteil)


Gelbe Scheibe:

R ---------------------------------------------------- (Rotanteil)
G --------------------------------------------- (Grünanteil)
B --- (Blauanteil)

Wenn Sie in der Logo nun für jede Farbe einen eigenen Schwellwert programmieren und diese drei Bit dann entsprechend auswerten, können Sie die Scheiben dann sauber detektieren.

Natürlich wäre auch die Erkennung von allen möglichen Mischfarben möglich, jedoch könnte es sein, dass die Logo dazu etwas zu unterdimensioniert wäre, weil man dann mehrere Fensterdiskriminatoren programmieren müsste, bzw. gleich mit den eingelesenen Analogwerten algebraisch umgehen müsste.



Zuletzt bearbeitet am 31.01.21 23:02



01.02.21 08:13 --- Alsan 

........ Re: Farberkennung ........

Vielen Dank für den Vorschlag. Wie muss dieser Farbfilter aussehen? Reicht da eine rote,grüne, gelbe Folie oder muss es spezielle Anforderungen erfüllen. Ein Kauflink wäre nett. Die Werte auf die Logo zu bringen ist kein Problem. Ich habe hier noch einen Atmega8 liegen, der die Signale aufbereiten kann und entscheiden kann welche Farbe es ist und das an die Logo weiter gibt. Selbstverständlich werde ich sie als Quelle nennen.



01.02.21 21:15 --- Stephan_M 

Administrator



........ Re: Farberkennung ........

Ich habe in einem anderen Zusammenhang sehr gute Erfahrungen mit Edding wasserfesten Stiften gemacht.
Sie können mit einem roten, grünen und blauen Edding arbeiten und die "Fensterchen" der LDRs direkt mit dem Edding einfärben.
Denken Sie auch bitte an eine definierte Beleuchtung der zu detektierenden Oberflächen. Z.B. mit einem Ring weißer LEDs rund um die LDRs, in Richtung Oberfläche.

Wenn Sie dann bei der Messwertaufnahme auch noch den Abstand zum Objekt immer gleich halten (z.B. Abstandsröhrchen außen herum), dürften Sie recht reproduzierbare Ergebnisse erzielen. Auch hätten Sie bereits einen richtigen "Sensorkopf" mit Hilfe eines solchen Röhrchens entwickelt.

Allderdings stellt sich die Frage, ob es nicht einfacher wäre, einen fertigen RGB-Sensor an den AVR anzuschließen, denn dann hätten Sie die besseren Ergebnisse ohne größeren Softwareaufwand. Aber vielleicht ist ja "einfach" nicht gefragt, denn es kommt ja auf die Aufgabenstellung im Schulprojekt an, ob Sie den nötigen Sensor gleich selber mit entwickeln können/sollen, oder auf einen käuflichen Sensor zurückgreifen müssen/dürfen.

(Wenn ich ein Lehrer wäre, würde ich bei einem selbst entwickelten Sensor eher zu einer Note "1" tendieren, wenn alles soweit funktioniert.)

;-)

Achso, die Leser dieses Forums sind gewiss neugierig, was aus dem Projekt geworden ist. Ich bitte Sie daher darum, abschließend ein oder zwei Fotos vom fertigen Projekt hier einzustellen. Dann ist das hier nicht so textlastig und man "hat etwas für das Auge".



01.02.21 22:20 --- Alsan 

........ Re: Farberkennung ........

Die Farberkennung ist halt nur ein kleiner Teil des Projekt. Ich hatte mir das nicht so schwierig vorgestellt. Nach meiner Recherche ist es nicht möglich mit einfachen Mitteln reproduzierbare Werte zu erhalten. Daher nehme ich jetzt einen fertigen Sensor tcs230. Den werde ich mit einem Atmega 8 auswerten und der Logo dann mitteilen was für eine Farbe es ist.
Im Projekt werden mit Pneumatikzylindern die Scheiben aus Rohrschächten auf ein kleines Förderband geschoben. Von dem Förderband werden die Scheiben mit einem Vakuumgreifer auf einen Stab aufgefädelt. Es soll mit diesen Scheiben Flaggen nachgeahmt werden. Man drückt also eine Taste Spanien und die Scheiben rot, gelb, rot werden aufgefädelt. Auf dem Förderband wird geprüft ob wirklich die korrekte Farbe da ist. Soweit funktioniert das mit der Logo auch bis auf kleine mechanische Hakeleien.

Photos schicke ich dann wenn es komplett funktioniert. Ist im Moment wild verdrahtet ohne Kabelkanal etc.



03.02.21 16:14 --- Alsan 

........ Re: Farberkennung ........

Heute ist der Sensor tcs230 bei mir eingetroffen und funktioniert sehr gut.


Habe mit Bascom die ersten Versuche unternommen:






Bei einer blauen Scheibe sinkt der Blauwert auf ca. 20. Eine Grüne Scheibe hat einen Grünwert von ca. 26 und eine rote Scheibe hat einen Rotwert von 17.

Zuletzt bearbeitet am 03.02.21 17:20

Datei-Anhänge
 1