- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 20

Thema: I2C-Farb-Sensoren (RGB) für Raspi u/o Arduino

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    ich hatte es jetzt so verstanden, dass der Adafruit-Farbsensor (genau wie die Lego-Sensoren) seine eigenen Beleuchtungs-Lämpchen hat, genau damit die Messung standardisiert und unabhängig vom Umgebungslicht ist?
    Oder misst der etwa nur rein passiv? (Das wäre natürlich sehr schlecht!)

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    56
    Beiträge
    2.814
    https://www.adafruit.com/datasheets/TCS34725.pdf
    Seite 2.
    Ein Array von 3x4 Photodioden hinter einem IR Filter.

    Aber selbst wenn Du eine eigene Lichtquelle hinzufügst, wird sich durch Fremdlicht immer das Spektrum und damit die Lichttemperatur additiv verändern.

    Bei meinem Projekt wurde der Sensorkopf immer lichtdicht auf die Testfläche gepresst und einmal durch Lichtquellen im Sensorkopf eine Auflichtmessung durchgeführt und noch eine Durchlicht Messung mit Hilfe von Lichtquellen unter der Auflagefläche für das Messplättchen.
    Die Platten waren abgestuft in 5 Stärken und je eine Hälfte hatte eine glatte Oberfläche und die andere eine strukturierte.
    Damit hatte man 20 Messreihen für jede Färbung des Kunststoffes.

    Du wirst vermutlich nur Auflichtmessungen durchführen wollen, aber je nach Transparenz des Ziels und dem Durchlichtanteil, kann es da auch zu unterschiedlichen Ergebnissen kommen.
    Die Frage ist halt welche Varianz der Messwerte definiert man noch als akzeptabel um die selbe Farbe zu repräsentieren.
    Wenn es nur darum geht farbige Bausteine zu sortieren (mein erstes Projekt mit Farbsensoren), und man nur eine Handvoll stark unterschiedlicher Farben zu unterscheiden hat, ist das eine andere Anforderung wie wenn man einen 24 Bit Farbraum hat und über 3,6 Millionen Farben unterscheidet.

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von Crazy Harry
    Registriert seit
    15.01.2006
    Ort
    Raum Augsburg - Ulm
    Beiträge
    1.310
    TCS3414 hat I2C und sogar mit 16Bit Auflösung je Kanal.

    .... für die Beleuchtung mußt du aber selber sorgen
    Ich programmiere mit AVRCo

  4. #4
    HaWe
    Gast
    ja, danke - so viel verschiedene Farben bräuchte ich gar nicht mal.
    Die Lego Sensoren messen je nach Betriebsart zwar auch getrennte RGB-Kannäle, wenn ich mich recht erinnere im raw-Modus aber nut 8-bit pro Kanal. Das würde mir selber auch dicke reichen. Allerdings messen die (je nach Bauart) mit eigenen farbigen LEDs, evtl pulsierend, um die Fremdlichtfehler gering zu halten. Das müsste man also beim Adafruit Sensor alles selber machen, was es sehr kompliziert macht bei wechselndem Umgebungslicht (Störlicht). Vielleicht könnte mit aktiv pulsierendem farbigem Licht die "echte Farbe" besser gemessen werden. So etwas müsste bei einem Farbsensor wie bei Lego schon eingebaut sein.
    Geändert von HaWe (21.03.2016 um 21:23 Uhr)

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    56
    Beiträge
    2.814
    "echte Farbe" das impliziert das es eine falsche Farbe gibt.

    Wenn man eine Farbe sieht, ist diese unter den gegebenen Bedingungen des Lichtspektrums und der Lichtintensität die Farbe die ein Objekt hat.
    Außer du willst eine Spektralanalyse auf Basis von Adsorbtionslinien durchführen um bei einem bewegtem Objekt Rot- oder Blauverschiubung auszuschließen.

    Ein einfacher Sensor sagt halt einfach das ist so, Punkt. Ein besserer Sensor erlaubt Dir mehr zu erkennen. In der Regel das die Antwort nicht so einfach ist wie Sie durch Simplifizierung des einfachen Sensors gemacht wurde.

    Eine modulierte Lichtaussendung gibt Dir als Information nur zu welcher Zeit die Lichtquelle welches Signal aussendet. Dadurch weist Du immer noch nicht welcher Anteil des Lichtes das dein Sensor empfängt, Fremdlicht ist.
    Du kannst höchstens in den Pausen auch messen und diesen Wert von dem anderen abziehen.

    Eine andere Möglichkeit, die ich mal benutzt habe, ist eine Photodiode und mehrere farbige LEDs.
    Ich habe in den pausen zwichen den einzelnen LEDs die Helligkeit gemessen und den Wert als Null genommen. Dann für jede Wellenlänge den Wert genommen. und so ein Profil für jede Farbe erstellt. Mit den "gelernten" Werten konnte ich dann Fremdlicht unabhängig die Farbe ermitteln.

    Klicke auf die Grafik für eine größere Ansicht

Name:	Teile-Sortierung-Farbsensor.jpg
Hits:	10
Größe:	86,9 KB
ID:	31448

    Wie man erahnen kann, kam ich erst später drauf das der Aufbau auch störsicher gegen Fremdlicht ist (solange das Fremdlicht nicht zu hell ist).
    In der Zeichnung steht noch Phototransistor. Es wurde später aber eine Photodiode.
    Geändert von i_make_it (22.03.2016 um 14:13 Uhr)

  6. #6
    HaWe
    Gast
    du hast ntl völlig Recht, "echte" Farbe war Blödsinn.
    "reproduzierbare Farbmessung, unabhängig vom Umgebungslicht" wäre korrekter gewesen.
    Wie das technisch wirklich machbar ist, weiß ich gar nicht, so was in der Art "automatischer, integrierter Weißabgleich" wäre sicher nicht verkehrt: das müsste aber der Sensor on-board leisten.

    Der allererste und einfachste Schritt wäre sicher eine superhelle weiße onboard-Beleuchtungs-LED mit einer kleinen Linse davor.

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    56
    Beiträge
    2.814
    Superhell wird dir nichts nutzen.
    Da sieht man dann auch keine Farben mehr, nur noch das Spektrum der Lichtquelle.
    Da müsste man dann auf Mittel der Astrometrie zurückgreifen um noch eine Farbe detektieren zu können.

    Als Erstes muß man sich mal mit der Lichttemperatur befassen und deren Einfluß auf die Farbe eines Objektes.
    http://crealightiv.com/wp-content/up...temperatur.png
    Dann kann man für ein und das Selbe Objekt eine Sammlung von Datensätzen bei verschiedenen Lichttemperaturen und unterschiedlichen Oberflächen Eigenschaften anlegen.
    Wenn man dann entsprechend viele Objekte (Farben) hat, dann kann man Messergebnisse mit den Daten abgleichen und belastbare Aussagen machen.

    Ich habe fast 1 Jahr an dem Thema gearbeitet (Farbsensor).
    Nicht umsonst arbeiten professionelle Farbdetektoren mit einer Fremdlichtabschirmung.

    Letztes Jahr hatte ich wieder damit zu tun, da die Geldscheinprüfung, unter anderem, sowohl beim Papier als auch bei der Druckfarbe auch prüft ob diese im jeweiligen Spektrum die korrekte Farbe hat.

    Hat man Objekte mit bekannten Farben, die man nur unterscheiden will, kann man mit einem einfachen Sensor mit einer Weißlichtquelle arbeiten, da man dann nur das Datum einer bestimmten Lichttemperatur braucht um unterscheiden zu können.
    Das trifft allerdings halt nur auf Farben zu die sich bei Bestrahlung mit Licht im sichtbaren Spektrum unterscheiden.
    Ich habe hier ein paar Schwarzlichtfarben, die bei Tageslicht alle weiß aussehen. Erst bei Bestrahlung mit UV Licht wird es bunt.
    Geändert von i_make_it (22.03.2016 um 14:38 Uhr)

Ähnliche Themen

  1. Antworten: 63
    Letzter Beitrag: 18.02.2016, 07:43
  2. Raspi mit Arduino per USB verbinden
    Von HaWe im Forum Raspberry Pi
    Antworten: 4
    Letzter Beitrag: 11.11.2015, 16:26
  3. Antworten: 8
    Letzter Beitrag: 21.10.2014, 09:18
  4. Verkaufe Großes Elektronik-Set, Arduino, Komponenten, DFRobot, Sensoren
    Von dehein im Forum Kaufen, Verkaufen, Tauschen, Suchen
    Antworten: 2
    Letzter Beitrag: 21.10.2014, 01:49
  5. 3,3 V Sensoren an einem Arduino Duemilanove
    Von Calmato im Forum Elektronik
    Antworten: 10
    Letzter Beitrag: 26.07.2010, 15:28

Berechtigungen

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

Labornetzteil AliExpress