Professional Documents
Culture Documents
www.fixingenieria.com
Caractersticas
Detecta un rango completo de colores y salida de datos como componentes RGB (Rojo/Verde/Azul, por sus siglas en ingls) Detecta amplio espectro de luz ambiental con sensibilidad de hasta 44(W/cm2 por lsb Genera colores de 24 bits usando un LED RGB incluido Se conecta a los conectores de los servomotores (Parallax) o a tarjetas inalmbricas. La interface de un solo pin utiliza un protocolo serial simple para definir e iniciar la deteccin y generacin de color. Los detalles de deteccin y generacin son manejados por un micro controlador integrado. La EPROM est integrada para guardar programas de deteccin y generacin de color. El auto arranque permite usar un programa pre determinado en la EEPROM con solo conectar a la fuente.
PAGE 2
Principio de Operacin
El ColorPAL usa un LED RGB para iluminar una muestra, un color a la vez, a lo largo de un amplio espectro de un convertidor luz a voltaje para medir la luz reflejada. La cantidad de luz reflejada de la muestra bajo iluminacin de cada rojo, verde y azul puede usarse para determinar el color de la muestra. El sensor de luz utilizado en el ColorPAL es un TAOS (www.taosinc.com) TSL13T, el cual tiene la siguiente curva de sensibilidad espectral (tomada de la hoja de datos TSL13T y sobrepuesta con la longitud de onda del LED).
PAGE 3
El sensor emite una salida de voltaje proporcional a oda la luz que ve, medido por sobre la curva. Por lo tanto cuando un objeto se ilumina con un LED rojo solamente responder con un voltaje proporcional al componente rojo del color del objeto y similarmente con el azul y el verde. Cuando existe un ambiente de luz mezclado con la iluminacin del LED el efecto puede eliminarse muestreando primero sin ningn LED encendido y posteriormente restar esta lectura, cada vez y por cada uno de los componentes rojo, verde y azul. Esta medicin de referencia deber tomarse antes de cada medida de color para eliminar cualquier efecto de las variaciones cambiantes del ambiente. En el prrafo que sigue se asumir que se toma un ambiente de referencia y se resta de cada medida discutida. Debido a que el LED y el sensor estn uno junto al otro en la tarjeta ColorPAL y debido a que el lente de plstico refleja por si mismo algo de luz, la respuesta de la luz de un objeto completamente negro ser no-cero. Por esta razn la respuesta del negro para cada componente de color tiene que determinarse experimentalmente, de esta forma puede restarse de la respuesta completa. Los tres componentes medidos (con un ambiente de referencia), Kr, Kg y Kb se conocen como "referencia negra". Una referencia negra se obtiene tpicamente solo una vez antes de cada sesin de medicin. El sensor TSL13T no responde igual al LED rojo, verde y azul y estos LEDs no ofrecen salidas de montos iguales de luz a las longitudes de onda roja, azul y verde. Por lo tanto adems de la referencia del ambiente y la referencia negra tambin es necesario tomar una "referencia blanca" donde el ColorPAL est presente en una superficie completamente blanca. Nuevamente despus de restar la luz del ambiente los componentes rojo, azul y verde de esta referencia se llamarn Wr, Wg y Wb. Ahora tenemos una forma de determinar el color actual del objeto como un porcentaje de diferencia entre las referencias blanca y negras. este porcentaje puede expresarse como un valor entre 0 (0%) y 255 (100%) por ejemplo para el rojo: Cr = 255 * (Ur - Kr) / (Wr -Kr) donde Ur es la lectura no corregida (excepto por ambiente) y Cr es la lectura corregida. Debido a que el ColorPAL usa un LED RGB integrado para emitir colores de muestra tambin es capaz de generar un amplio rango de colores en el espectro visible a travs de su micro controlador integrado, el cual genera pulsos modulados (PWM) para producir color RGB de 24 Bits.
PAGE 4
Caracterstica o Capacidad Precio Precisin de deteccin con reflejo de objetos normales Precisin de deteccin con reflejo de objetos fluorescentes Deteccin de color en objetos muy brillosos Deteccin de color en objetos radiantes (LED, CRT) Salida de Sensor de Color Pins requeridos para interconexin (incluyendo +5V y Tierra) Deteccin de resolucin de color (por componente RGB) Compatibilidad con programas Parallax "color-matching" La deteccin de precisin de color requiere correccin de luz de ambiente La deteccin de precisin de color requiere balance de blanco La deteccin de precisin de color requiere balance de negro Detecta colores en promedio sobre superficies de dimetro: Generacin de color Generacin de secuencias y deteccin programable integrada en la tarjeta
ColorPAL ***** **** ** *** No es posible Serial E/S 3 Hasta 8 bits, usando un convertidor ADC de 10 Bits ***** Automtica Si Quiz 12mm ***** *****
TCS3200-DB *** ***** ***** ***** ***** Frecuencia 6 8 bits o ms, limitado solamente por tiempo de muestreo ***** Si Si No 3.5mm No es posible Ninguna
Instalacin
El ColorPAL requiere 3 conexiones: Una fuente regulada de +5V, Tierra y un colector abierto de datos seriales. Puede conectarse directamente en una BOE como por ejemplo:
Usando la extensin LCD tambin puede conectarse a un conector de Servo IMPORTANTE: Cuando se conecte a un conector de Servo en el BOE, !asegrese que la tarjeta tiene el puente en Vdd y no en Vin!
PAGE 5
Programacin
La programacin con el ColorPAL se realiza usando el puerto Serial E/S, transmitiendo y recibiendo entre 2400 y 7200 baud, utilizando un protocolo "non-inverted, open drain". El ColorPAL incluye una resistencia Pullup a Vdd as usted no tendr que colocar una. Debido al protocolo el pin que se usa para comunicacin con el ColorPAL deber configurarse como entrada siempre, excepto cuando se controla bajo. Tambin cuando inicia usted deber esperar a que este pin sea puesto en alto por el ColorPAL antes de intentar enviar algn comando. Esto particularmente importante cuando se conecta a uno de los conectores Servo en la tarjeta BOE ya que el conector de 3 posiciones iniciara el programa PBASIC antes de iniciar el ColorPAL. La configuracin del pin y el modo de Baud para el BS2 en el pin 15 a 7200 baud podra ser por ejemplo: sio baud PIN 15 CON 119 + 32768
El ColorPAL tiene diferentes modos de operacin: Directo: Los comandos se reciben y ejecutan inmediatamente Apilado: Se reciben los comandos y se apilan para una ejecucin futura Ejecucin: Los comandos que se apilaron o se guardaron en la EEPROM son ejecutados
Hay tres formas de reiniciar el ColorPAL: Encendido: Cuando se enciende primero el ColorPAL comienza a ejecutar los comandos guardados en su memoria EEPROM interna en la localidad 00, En un nuevo, no programado Color PAL, este programa simplemente sale en modo directo. Ruptura Corta: Un nivel lgico bajo aplicado por aproximadamente 7 milisegundos re iniciar el Color PAL y comenzar su ejecucin de acuerdo al modo de Encendido. Ruptura larga: Un nivel lgico bajo aplicado por aproximadamente 80 milisegundos re iniciar el Color PAL y entrar en modo directo. Esta es la nica forma de llamar la atencin del Color PAL cuando se est ejecutando un programa. Aqu hay un ejemplo de una rutina de re inicio que siempre har que el ColorPAL entre en modo directo: Reset: LOW sio INPUT sio DO UNTIL sio : LOOP LOW sio PAUSE 80 INPUT sio PAUSE 10 RETURN ' Pone sio en bajo para eliminar cualquier carga residual ' Regresa al Pin de Entrada ' Espera para que el pin se ponga en alto por el ColorPAL ' Pone el pin en bajo ' Mantiene el pin bajo por 80 milisegundos ' Regresa al pin de entrada ' Pausa por otros 10 milisegundos
PAGE 6
Comando Directo
Para comenzar a programar el ColorPAL necesitar estar en modo directo. En este modo el Color PAL aceptar cualquiera de los cuatro diferentes modos que son: = (Signo igual): Comienza la pila de instrucciones ! (Signo de Exclamacin): Comienza a ejecutar el cdigo de la pila # Signo numeral: Guarda el cdigo de la pila + (Signo Mas): Recibe una instruccin de "red"
= !
Cualquier instruccin de programa (relacionado con color) que ejecute el ColorPAL debe ser apilado primero antes de ejecutarse. Aqu hay un ejemplo tpico de apilamiento y ejecucin que hace que el LED RGB se ilumine hasta el rojo: SEROUT sio, baud, ["= R !"] NOTA: Cualquier espacio incluido en la secuencia de instrucciones (per ejemplo despus de "=" y antes de "!" o "#") son opcionales y se pueden incluir para mejorar la lectura del programa. Agregndolos no afecta la velocidad del programa o el monto de memoria que requiere. Sin embargo, no incluya espacios en la secuencia directa del comando ya que hacer esto causara un problema donde el ColorPAL detectar una falla en la deteccin del rango de baud y fallar.
PAGE 7
baud VAR Word pwidth VAR Word i VAR Byte PAUSE 100 baud = $ffff FOR i = 0 TO 255 PULSIN sio, 0, pwidth baud = baud MAX pwidth NEXT baud = baud << 1 - 20 | 32768
PAGE 8
DO SEROUT sio, baud, ["+01= G !+02= B !"] : PAUSE 1000 SEROUT sio, baud, ["+01= B !+02= G !"] : PAUSE 1000 SEROUT sio, baud, ["+00= R !"] : PAUSE 1000 LOOP
Instrucciones de programa
Mientras en ColorPAL est en modo de apilamiento se pueden ingresar instrucciones que hacen algo, como iluminar los LEDs o tomar una muestra de color. Se muestran algunos comandos que puede aceptar INSTRUCCIONES LED
PRECAUCION! La luz del LED RGB es muy concentrada y puede ser muy brillosa. Tal cual como usted no vera directamente el sol no vea directamente la luz del LED rnnnnnn Direcciones red ColorPAL
Una r minscula seguida por 6 dgitos har que el LED despliegue los componentes del color deseado comenzando con el 00 siendo completamente "apagado" y el FF completamente "encendido" y nmeros entra esos valores representan intensidades intermedias. Para desplegar el color naranja se pude enviar el siguiente cdigo: SEROUT sio, baud, ["= rC04000 !"] Esto hace que el LED rojo se ilumine hasta el 75% de intensidad (C0) el verde al 25% (40) y el azul queda apagado (00).
A-Z
Las letras maysculas representan colores predefinidos. Estos son designados por la letra mayscula en negrita junto con sus valores hexadecimales equivalentes:
Por ejemplo para el color Jade tiene que enviar el siguiente cdigo: SEROUT sio, baud, ["= J !"]
TRADUCCION AL ESPAOL PUBLICADA: 04 MARZO 2012 DERECHOS RESERVADOS PARALLAX INC.
PAGE 9
tnn
Por defecto cuando los colores se despliegan en secuencia, se hace un color detrs de otro sin ningn tipo de transicin. Este comportamiento puede modificarse agregando una transicin no-cero entre colores. Los dos dgitos-hex acompaando este comando establece el rango al cual un color cambia al siguiente durante la transicin. La transicin completa depender de que tan diferentes son los colores. Los colores que tienen componentes RGB que difieren por mucho tomarn ms tiempo en su transicin que aquellos que estn mas cercanos. Este ejemplo es de un rojo cambiando a azul: SEROUT sio, baud, ["= R tCO B !"] INSTRUCCIONES DE SENSADO DE LUZ
Regresa
nnn
El ColorPAL incorpora un convertidor analgico digital de 10 bits para leer el voltaje de salida del sensor de luz TSL13T. Cuando el comando de muestreo se ejecuta toma una lectura y luego enva salidas como tres dgitos hexadecimales. Aqu se puede ver como tomar una lectura de un verde, restando la luz ambiental: Red VAR Word Grn VAR Word Blu VAR Word Amb VAR Word ... SEROUT sio, baud, ["= X s !"] SERIN sio, baud, [HEX3 Amb] SEROUT sio, baud, ["= G s !"] SERIN sio, baud, [HEX3 Grn] Grn = Grn Amb IMPORTANTE: Cuando muestrea colores con el LED encendido solo utilice colores puros, completamente saturados como R, G y B. La razn es porque la transicin usa modulacin de ancho de pulso para la diferentes coloraciones y el sensor no es lo suficientemente rpido para promediar lo que ve en el periodo PWM. Con colores puros el LED est encendido contantemente as que no genera un problema.
Regresa
nnnnnnnnn
Esta funcin macro desarrolla una medicin de ambiente, luego hace mediciones individuales con el LED Rojo, Verde y Azul restando la luz de la lectura del ambiente de cada uno. Posteriormente enva 3 nmeros de 3 dgitos hexadecimales representando el ambiente corregido por ejemplo: Red VAR Word Grn VAR Word Blu VAR Word ... SEROUT sio, baud, ["= m !"] SERIN sio, baud, [HEX3 Red, HEX3 Grn, HEX3 Blu]
h l
PAGE 10
El ColorPAL normalmente referencia a la salida de escala completa del sensor de luz a +5V. Para situaciones de muy baja iluminacin esta salida puede referenciarse a 1.1V lo cual multiplica la sensibilidad en una proporcin mayor a 4.5. Esto no es recomendado para ambientes normales de iluminacin o cuando el LED interno se utiliza para iluminacin ya que esto ocasionara una saturacin por la luz ambiental o por el plstico del lente. Para condiciones de bajo ambiente con iluminacin de color externa se puede usar la alta sensibilidad. Como complemento, la baja sensibilidad puede usarse como instruccin de regreso a la activacin inicial. En el siguiente ejemplo se toma una muestra de alta sensibilidad, regresando a baja sensibilidad cuando termina: SEROUT sio, baud, ["= h s l!"] SERIN sio, baud, [HEX3 Value] FLUJO DEL PROGRAMA E INSTRUCCIONES DIVERSAS
pnn Pausa
El comando Pausa toma un argumento de dos dgitos hexadecimales y detiene la ejecucin por un tiempo aproximado igual a nn * 5ms. Un ejemplo que despliega amarillo, cyan y magenta cada uno por un sgudno y luego cambia a negro: SEROUT sio, baud, ["= Y pC8 C pC8 M pC8 t50 X !"]
(nn )
Este par de comandos define un ciclo en un programa. La instruccin de inicio toma un argumento de dos dgitos hexadecimales el cual dice cuantas veces se ejecutar el ciclo. Si este monto es 00 el ciclo se ejecuta indefinidamente. Los ciclos pueden anidarse. Aqu hay un ejemplo de cmo alterna entre rojo y verde 10 veces terminado con una transicin a Azul SEROUT sio, baud, ["= (0A R p64 G p64 ) t50 B !"]
PAGE 11
1. Si el parmetro es par, se toma como mnimo, para lo cual un numero aleatorio entre 0 y (desviado - 1) se suma. La suma no puede ser mayor de FE 2. Si el parmetro es impar, se toma como un mximo para lo cual el aleatorio entre 0 y (desviado -1) se resta. La suma no puede ser menor d 01. Para apagar la funcin aleatorio solo ponga un ?00. En el siguiente ejemplo los colores aleatorios cambiaran juntos infinitamente: SEROUT sio, baud, ["= t40 (00 ?FF r000000 ?00 p11) !"] Hay algunos detalles por ver aqu: 1) El t40 no es aleatorio ya que ocurre antes de "?FF"; 2) El ciclo constante s mantiene en 00 porque se carga solo una vez, cuando el ciclo comienza y se coloco en la pila; y 3) el P11 no s aleatorio ya que ocurre despus de "?00" Debido a que este programa genera muchos colores no saturados (blancos) , es muy aburrido. Aqu hay un ejemplo que producir colores completamente saturados el final de cada transicin ya que cada componente siempre se detiene cerca de cero: SEROUT sio, baud, ["= t10 (00 ?FF (07 r808001) (07 r800180) (07 r018080) )!"]
La instruccin versin permite obtener el nmero de versin del firmware del ColorPAL. Los nmeros de las versiones son salidas de 2 dgitos hexadecimales, comenzando en 01 y se incrementar en uno por cada nueva versin. Los cambios de versin se espera que sean infrecuentes. El programa que sigue lee e imprime el numero de la versin actual: Version VAR Byte SEROUT sio, baud, ["= v !"] SERIN sio, baud, [HEX2 version] DEBUG "La versin actual es: ", DEC version, "."
Regresa
"other"
Cualquier caracter ASCII no mencionado aqu ser almacenado y solo mencionado cuando el programa corre. Esto puede ser til para sincronizar el BASIC Stamp a una salida ColorPAL corriendo libre. Por ejemplo podra hacer que la EEPROM del ColorPAL sense y enve datos continuos de un color como: SEROUT sio, baud, ["= (00 $ m) #00"] Entonces su programa puede simplemente sincronizar en el "$" en la cadena de datos para alcanzar la secuencia siguiente de color: SERIN sio, baud, [WAIT("$"), HEX3 red, HEX3 grn, HEX3 blu] Asegrese de leer la nota importante en la seccin "Guardar programa a la EEPROM" que habla de los rangos de baud.
PAGE 12
Esquemtico