Módulo sensor Color

De Proyecto Butiá
Saltar a: navegación, buscar

Introducción

El sensor de color es incorporado al kit butia en junio de 2016. A nivel comercial son varios los kits que lo incluyen, también existen módulos color para ser integrados a distintas placas de entrada/salida. Es utilizado generalmente para estimar el color de los diversos objetos del entorno Wikipedia Sensor Infrarrojo Reflexivo.

Es el primer módulo del Butiá que cuenta con un elemento de cómputo distribuido, un microcontrolador AVR ATtiny.

Video tutorial

<iframe width="560" height="315" src="https://www.youtube.com/watch?v=MfPNpL7fvtc&feature=youtu.be" frameborder="0" allowfullscreen></iframe>

¿Para qué sirve?

Como su nombre lo indica permite conocer el color o matiz del objeto que está enfrentado a él. En este sentido permite sustituir a una cámara que tienen un costo muy superior, y puede ser acoplado fácilmente en el robot Butiá utilizando las fichas de encastre. En general, los desafíos robóticos presentan objetos de distinto color que deben clasificarse para luego tomar una decisión sobre su manipulación o interacción.

Funcionamiento

El módulo color cuenta con tres LEDs (Emisor en la figura) independientes que emiten radiación, cuando un objeto se aproxima a este, se refleja radiación hacia el fotoresistor (Receptor en la figura), generándose una diferencia de potencial (Voltaje, V en la figura) en bornes del mismo, esta diferencia de potencial (que está relacionada con magnitud de luz reflejada) es leída un pin de Datos del microcontrolador ATtiny y puede ser utilizada por el programa que ejecuta en él. Estos tres LEDs que utiliza el módulo se denominan RGB por los colores que genera (R - Red, G - Green y B - Blue). En la figura sólo se muestran dos de estos LED por razones de claridad.

Color Exp.jpg

Para poder determinar el color de un objeto es necesario conocer la magnitud reflejada para cada uno de los colores del LED RGB sin que interfieran los colores. Entonces, cada color del LED RGB debe encenderse por un lapso de tiempo para poder leer la luz reflejada antes de pasar al siguiente. Aparece entonces la necesidad de un elemento de computo que realice esta tarea.

El microcontroladore ATtiny se encarga encender y apagar los LED RGB de forma secuencuencial, leer las magnitudes de luz reflejadas para cada LED de color e integrar las tres lecturas en un color único. El color obtenido se pone a disposición del Butiá a través de la línea de datos como un valor analógico.

Algoritmo para calcular el color

El algoritmo para calcular el color ejecuta distribuido en el propio módulo sensor. Para esto el módulo incluye un pequeño computador (microcontrolador) que todo el tiempo enciende y apaga cada uno de los LED, calcula el matiz y lo dejadisponible a la placa USBButia.

El algoritmo utilizado se presenta a continuación.

while True:
  encender_solo_led(rojo)
  rojo := leer_luz_reflejada()
  encender_solo_led(verde)
  verde := leer_luz_reflejada()
  encender_solo_led(azul)
  red := leer_luz_reflejada()

  matiz = calcular_matiz(rojo, verde, azul)
  escribir_valor_analogico(matiz)

El código desarrollado para el microcontrolador ATtiny puede descargarse aquí.

Diseño eléctrico


Puede descargar los archivos fuentes del diseños para kicad en el repositorio del proyecto usb4all haciendo click aqui

Si desea construirse la placa a través del método de transferencia por tóner aqui puede descargar el diesño de PCB en formato pdf.

Materiales

  • 1 ATtiny 85
  • 1 LDR (valor:10K-200K OHM)
  • 1 LED RGB
  • 1 R de xxx Ω (identificación)
  • 1 R de xxx Ω (divisor tensión ldr)
  • 1 R de xxx Ω (led rgb)}
  • 1 R de 13k Ω (filtro)
  • 1 capacitor de xxx (filtro)
  • 1 conector Rj45 acodado Hembra x 1
  • 1 zócalo dip 8

Modulo-color.png

Bloque en Turtlebots

Por el momento en el programa Turtlebots se reutiliza el bloque de sensor de luz dentro de la paleta Butiá. Si conectamos un sensor con el módulo sensor color, la placa lo reconocerá perfectamente como un sensor de luz habilitando automáticamente el bloque en la paleta.

Casteo.jpeg

Te mostramos un ejemplo para clasificar colores con el sensor de color:

Casteo.jpeg

Información adicional

  • Un LDR, por sus siglas en inglés: Light Dependent Resistor (Resistor Dependiente de la Luz) también también conocido en español como: foto-resistencia. Más información en: Wikipedia LDR.
  • Un LED RGB. por sus siglas en inglés: Light-Emitting Diode Red Green Blue (Diodo Emisor de Luz Rojo Verde Azul). Más información en: Wikipedia Led.
  • Un ATtiny es un microcontrolador programable de gama baja con menos de 10kB de memoria flash y conjunto reducido de periféricos. Más información en: Wikipedia AVR.