Diferencia entre revisiones de «Módulo sensor Color»

De Proyecto Butiá
Saltar a: navegación, buscar
(Bloque en Turtlebots)
(Bloque en Turtlebots)
Línea 76: Línea 76:
 
== Bloque en Turtlebots ==
 
== Bloque en Turtlebots ==
 
Por el momento en el programa Turtlebots se reutiliza el bloque de sensor de luz dentro de la paleta Butiá (en el futuro el sensor de color tendrá su propio bloque). 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 (pintándolo de verde).
 
Por el momento en el programa Turtlebots se reutiliza el bloque de sensor de luz dentro de la paleta Butiá (en el futuro el sensor de color tendrá su propio bloque). 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 (pintándolo de verde).
<br><br>[[Archivo:casteo.jpeg]]<br><br>
+
<br><br>[[Archivo:SensorColorActivo.png]]<br><br>
  
 
El funcionamiento consiste en que el bloque de color devuelve valores cercanos a 0 cuando sensa rojo, cercanos a 20.000 cuando sensa verde y cercanos a 35.000 cuando sensa azul. En caso de sensar blanco, negro u otro color devuelve valores cercanos a 65.000.
 
El funcionamiento consiste en que el bloque de color devuelve valores cercanos a 0 cuando sensa rojo, cercanos a 20.000 cuando sensa verde y cercanos a 35.000 cuando sensa azul. En caso de sensar blanco, negro u otro color devuelve valores cercanos a 65.000.

Revisión del 18:30 19 jul 2016

Introducción

El sensor de color (o módulo color) es incorporado al kit Butiá en junio de 2016. A nivel comercial son varios los kits que lo incluyen. También existen sensores de color para ser integrados a distintas placas de entrada/salida. Este sensor es utilizado 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 dado que el sensor se basa en un microcontrolador AVR ATtiny.

Video tutorial

Video-tutorial.jpg

¿Para qué sirve?

Como su nombre lo indica, el sensor de color 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 superior y es más compleja tanto en cómputo como en análisis, 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 un led RGB (Emisor en la figura) que emite radiación por cada uno de los colores básicos (r- red - rojo, g - green - verde y b- blue - azul), 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. La figura sólo se muestra simplificada 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 deja disponible a la placa USB4Butia a través de uno de sus pines analógicos.

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 (cátodo común - es decir que la pata común va conectada a masa)
  • 1 R de 68kΩ (identificación - provisorio hasta que tenga su propio id)
  • 1 R de 10kΩ (divisor tensión ldr)
  • 1 R de 330Ω (led rgb)}
  • 1 R de 13k Ω (filtro)
  • 1 capacitor de 10uf (filtro)
  • 1 conector Rj45 acodado Hembra x 1
  • 1 zócalo dip 8

Modulo-color.png

ATtiny 85

Debemos tener en cuenta que el ATtiny85 es un pequeño microprocesador y lleva un programa en él. Dicho programa se llama firmware y debe ser grabado en el ATtiny utilizando un dispositivo auxiliar como una placa Arduino o un programador especial para ATiny85. El programa que se debe grabar en la ATtiny es se puede descargar en la sección anterior llamada Algoritmo para calcular el color.

Un ejemplo de cómo cargar el programa utilizando una Arduino se puede encontrar en aquí.

Bloque en Turtlebots

Por el momento en el programa Turtlebots se reutiliza el bloque de sensor de luz dentro de la paleta Butiá (en el futuro el sensor de color tendrá su propio bloque). 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 (pintándolo de verde).

SensorColorActivo.png

El funcionamiento consiste en que el bloque de color devuelve valores cercanos a 0 cuando sensa rojo, cercanos a 20.000 cuando sensa verde y cercanos a 35.000 cuando sensa azul. En caso de sensar blanco, negro u otro color devuelve valores cercanos a 65.000.



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.