Calidad Sensores de Color


#1

Hola a todos,
Desde hace algún tiempo estoy interesado en montar algún cacharrillo con sensores de color. Buscando en internet puedes encontrar diferentes modelos, con diferentes tipo de comunicación con Arduino. Los más conocidos son los modelos: TCS230, TCS3414CS y TCS34725.
Para mí es importante saber cual de ellos realizaba una lectura más acorde con valores establecidos en una carta de colores. Así que he estado haciendo pruebas con uno de ellos y aquí cuelgo los resultados por si les vale a alguien.
En principio descarté el modelo TCS230 ya que no tiene una caperuza para apoyar sobre la zona a leer y que la distancia sea siempre constante y no afecte a la lectura. Los datos que muestro son con el modelo TCS3414CS (con el modelo TCS34725 aún me estoy peleando con el tema de la comunicación I2C).
En la siguiente imagen podeís ver los diferentes sensores y la carta de color que he usado para comparar las lecturas del sensor con un patrón RGB conocido.

El sensor TCS3414CS tiene 4 niveles de ganancias (G1, G4, G16, y G64) y 3 niveles de integración (i12, i100 e i400) y la carta patrón 29 colores (solo se ven 24 en la imagen, los otros 5 están en la otra cara de la carta), en total 348 diferentes combinaciones posibles. Y de cada una de dichas combinaciones tomé 9 lecturas para posteriormente poder tener un valor medio. En total 3132 datos.
Aquí un cuadro con las correlaciones de todas las combinaciones de ganancias e integración para cada uno de los colores RGB.

Como se puede ver la mejor combinación es programando el sensor con una ganancia de 64 y una integración de 12, que da un valor medio de correlación para los tres canales de 0,889.
Aquí unas gráficas XY para cada uno de los canales RGB con los datos teóricos de la carta de colores y el valor ofrecido por el sensor.

Espero que le pueda ser útil a alguien esta información. Ahora estoy peleándome con el sensor TCS34725 para poder hacer una valoración similar a la presentada.

Quisiera darle las gracias a Eulogio (@sorbasdigital) que me ayudo un montón haciendo un sketch para acceder al sensor, y que me valió como base para trabajar con el sensor.
Saludos.


#2

@JavierNo te lo curras un montón !!

Mola mil.


#3

Me uno a este comentario, es brutal lo que haces @JavierNo

Yo he currado con el TCS230 y el TCS3200, son muy baratos y la caperuza se le puede poner sin problema al segundo creo recordar, y sino con silicona y pvc se la pones.

Mi experiencia es que no son la panacea, y tienes que tener cuidado porque “no tienen límite” ¿Que quiero decir? Que lo que hacen es leer un valor de intensidad para cada color, pero no tienen máximo (si mínimo). Y sacar un patrón de color a veces es mucho más complicado de lo que parece (la iluminación que haya, la suciedad del material que leas, la distancia, etc…).

Sigue compartiendo tus experiencias, porque da gusto leerte :wink:


#4

Hola de nuevo,
He estado trabajando con el sensor TCS34725, de una forma parecida a lo expuesto anterormente para el TCS3414CS. En esta ocasión he usado una librería de Adafruit (Adafruit_TCS34725-master) para acceder al sensor via I2C. En este caso he utilizado 6 niveles de integración (2,4, 24, 50, 101, 154 y 700) y 4 niveles de ganancias (x1, x4, x16, x60) que son los que vienen definidos en la librería. Igualmente se han realizado medidas sobre la misma carta de colores, tomando 6 repeticiones de cada color. En totoal unos 3888 datos. Aquí tenéis la tabla con las correlaciones:
Captura%20de%20pantalla
Y unas gráficas representando los datos en la combinación con integración 154 y ganancia x4.
Captura%20de%20pantalla%203
Mis conclusiones comparando ambos tipos de sensores son:

  • el TCS3414CS parece un poco mejor, valores más elevado de correlación media, aunque necesita una mayor optimización de los niveles de integración y ganancia utilizados, además de presentar un poco más de variación de una medida a otra sobre el mismo color.
  • En ambos casos el canal que presenta mejor comportamiento es el verde y el que presenta peor comportamiento el azul, especialmente en el sensor TCS34725.
  • Por comodidad, si no tenéis unos requerimeintos de precisión muy finos (dentro de lo que pueden dar estos sensores) yo utilizaría el TCS34725 dado que con la librería de Adafruit mencionada te facilita mucho el utilizar el sensor.
    Espero que os sea útil esta información.
    saludos

#5

Este tema se cerró automáticamente 20 días después del último post. No se permiten nuevas respuestas.