【基于TCS230数字亮度计的设计与应用】 亮度计
摘要:TCS230是业界首款带数字兼容接口的RGB彩色光/频率转换器。本文利用其滤光选择功能,并借助单片机设计一种以STC89C51为运算、控制核心,能够同时测量光线中所含的三基色亮度的便携式数字亮度计。实现对颜色数据的采集和处理,并将处理后的数据显示在LCD屏上。简述了利用软件对TCS230 的实际颜色测量值进行校正的处理办法,给出了相应的硬件设计电路、软件流程图和测试程序清单。电路具有成本低、测量速度快、精确高、便携等特点,可广泛应用于各种需要对光色成分进行测量、分析与识别的行业。
关键词:TCS230;颜色传感器;数字亮度计
中图分类号:TP202
Design and Application for
Digital Luminance Meter based on TCS230
DENG Zhi-hui
(Hunan College of Information, Changsha 410200, China)
Abstract: TCS230 is the industry"s first band digital compatible interface of RGB color light/frequency converter. This filter selection, and, through a single-chip design to STC89C51 for the core operations, control, capable of measuring the light in the three primary colors brightness of portable digital luminance meter. Implementation on color data acquisition and processing, and processing of data is displayed in the LCD screen. The use of software on the TCS230 of the actual color calibration measurement values, giving hardware design circuits, software, flow charts and test listing. Circuit with low cost, fast and accurate measurement, portable, and other characteristics, which can be widely used in a variety of needs on the light color components for measurement, analysis and recognition industry.
Keywords: TCS230; The color sensor; digital luminance meter
1引言
随着现代工业生产向高速化、自动化方向的发展,生产过程中的自动化检测和模糊探测等技术方面都采用颜色进行识别。如文献的分类,彩色打印机、显示器的颜色校正,化妆品、印刷品、纺织品的配色,流水线上基于颜色的产品分拣[2],利用彩色特征的机器人自动引导工作等已越来越多地用到颜色识别技术。颜色的测量准确度实际受多种因素影响,与光源的光谱特性、光源方位、物体反射特性、观测位置、以及传感器光谱响应性能等有关,测量过程中的环境因素变化也会造成测量误差。
标准颜色的检测仪器是光谱分析仪,它能够分析光的颜色和亮度,但它体积庞大,价格昂贵,非一般企业和个人所能负担[3]。然而在很多实际应用中,往往并不需要精确分析颜色的光谱组成,而只需对不同的颜色加以区别[1]。
现有的亮度或色度计,都是通过电流的强弱来标定被测物的亮度大小。通常无颜色选择功能,如果需要测量某种颜色的光强(常指三基色红、绿、蓝),则电路复杂,且精度不高。在遇到同时需要对多种颜色光强进行测量的场合,误差会更大,严重影响了识别的效果[3]。
为了克服上述缺点,本文设计了一种以STC89C51和TCS230为核心的色度计,其利用TCS230颜色传感器将彩色光转换成频率信号,然后经单片机进行处理和判别,获取某一颜色中所含三基色的亮度值,分析被测光中的颜色成分和亮度,即可有效地得出相应的被测颜色,同时将检测结果数字化的显示到LCD 屏上。相对于文献[1],该系统具有电路简单、测量速度快、精度高、便携等特点。
2 颜色识别与检测原理
颜色是物体表面吸收了白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应。由三基色感应原理可知,如果知道构成各种颜色的三基色的值,就能够知道所测试物体的颜色。对于TCS230来说,当选定一个颜色滤波器时,它只允许某种特定原色通过,阻止其他原色通过,即可分别测出R\G\B的值,从而能分析出投射到TCS230传感器上的光颜色。
TCS230对光源要求很高,同一种颜色在不同的实测距离、不同的光源环境中所测出的频率可能不一样。同时,实际中我们所见到的光,其三基色并非是理论值。如白色的理论值是由等量的红色、绿色和蓝色混合而成的,但实际上,白色中的三原色并不完全相等,并且对于TCS230的光传感器来说,它对这三种基本色的敏感性是不相同的,导致TCS230的RGB输出并不相等,所以我们必须利用白平衡进行调节与补偿,使TCS230对所检测的“白色”中的三原色相等。
应适应各种不同场合,系统应有自主学习功能,即在区别颜色之前,让系统对对周围环境进行学习,得到一组表示白光的频率基准值,然后计算出3个调整参数即三基色的比例因子。再把检测目标测得的三基色脉冲数再乘以其相应的比例因子,得到所对应的R、G和B频率值,还原出目标物体颜色。以此作为颜色辨别的标准,从而提高系统的可靠性。
3 系统硬件设计
本系统硬件分为单片机控制电路、串口通信电路、TCS230颜色采集、LCD显示和按键控制等五部分。其工作原理如图1所示。
3.1 颜色TCS230芯片介绍
TCS230 是TAOS 公司最新推出的业界首款带数字兼容接口的RGB 彩色光/频率转换器, 它内部集成了64个硅光电二极管阵列和一个电流/频率转换器, 无需ADC 就可实现每彩色信道10 位以上的分辨率6。 其结构如图2所示。
芯片内容是交叉排列的光电二极管,能够最大限度地减少入射光辐射的不均匀性,从而增加颜色
识别的精确度;相同颜色的16个光电二极管是并联连接的,均匀分布在二极管阵列中,可以消除颜色的位置误差。
TCS230 输出为占空比50 %的方波, 且输出频率与光强度成线性关系。工作时,通过程序控制S2、S3来动态选择所需要的滤波器,通过控制S0和S1来选择电源关断模式或输出比例因子(100%、20%或2%),详见表1。输出比例因子使传感器的输出能够适应不同的测量范围,提高了它的适应能力。传感器的典型输出频率范围从2 Hz~500 kHz,芯片采用8 引脚SOIC表面贴封装,适用于色度计的测量应用[4]。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文
3.2 硬件原理图
系统以单片机STC89C52为核心,在程序支持下,对TCS230进行检测控制,将输出的频率送往STC89C52进行处理得出相应的识别信息显示在LCD屏上。
LCD屏上可显示被测颜色R、G、B亮度值,同时显示当前颜色的亮度。
4 系统软件设计
系统软件主要包括: 主程序、白平衡校正子程序和颜色比较子程序。其中白平衡校正子程序用于颜色标定;比较子程序用于颜色检测[5]。
4.1 程序流程图
4.2 TCS230颜色识别测试程序
程序须行进行白平衡调节,得出比例因子,再实现对物体颜色检测和校准,并在LCD上分别显示的R,G,B的亮度值;
下面给出了比例因子设定情况下的主函数、颜色检测和校准函数。当光源发生变化时输出数值也相应会变化,故在实际应用中须加入对比例因子进行自动计算的子程序。
#include
#include
long intgreen,red,blue;
unsigned intrp=3,gp=6,bp=3;设比例因子
unsigned char t_cnt,disp_p;
/*************颜色校准**************/
void feed_buf()
{ if(disp_p==0)
{ red=buf_cor/rp;
disp_buf[0]=red/100;
disp_buf[1]=(red-100*disp_buf[0])/10;
disp_buf[2]=red%10;
}
else if(disp_p==1)
{ green=buf_cor/gp;
disp_buf[0]=green/100;
disp_buf[1]=(green-100*disp_buf[0])/10;
disp_buf[2]=green%10;
}
else if(disp_p==2)
{ blue=buf_cor/bp;
disp_buf[0]=blue/100;
disp_buf[1]=(blue-100*disp_buf[0])/10;
disp_buf[2]=blue%10;
}}
/******×***中断颜色检测函数*********/
void c10ms_out() interrupt 1
{ TR0=0; TR1=0;
t_cnt=t_cnt+1;
disp_tc=disp_tc+1;
if(disp_tc==100)
{disp_tc=0;
if(disp_p==0)
{disp_p=disp_p+1;s2=0;s3=0;}// 红
else if(disp_p==1)
{disp_p=disp_p+1;s2=1;s3=1;}//绿
else if(disp_p==2)
{disp_p=0;s2=0;s3=1;}//蓝
else if(disp_p==3)
{s2=1; s3=0;disp_p=0;}
}
if(disp_tc%10==0)
{buf_cor=TH1*256+TL1; feed_buf();}
TL0=0xB0;TH0=0x3C;
TL1=0x00;TH1=0x00;
TR0=1;TR1=1;
}
/***********主函数************/
void main()
{oe=0; s0=1; s1=1;
t0_init();
while(1)
{display();}
}
5结束语
(下转第79页)
文章从TCS230的结构特点和应用领域出发,结合AT89C51单片机,实现了能够同时测量和辨别光线中所含三基色亮度的便携式数字亮度计。简述了利用软件对TCS230 的实际颜色测量值进行校正的处理办法,大大提高了系统对颜色的辨识精度。给出了相应的硬件设计电路、软件流程图和测试程序清单。电路具有成本低、测量速度快、精确高、便携等特点, 可广泛应用于各种需要对光色成分进行测量、分析与识别的行业。
参考文献
[1] 梁冀.基于三基色反射光的颜色识别系统设计[J].大众科技,2008, 111(11): 43+31
[2] 龚向东,曾振兴,林丹.基于SPCE061A 单片机的颜色检测系统的设计[J].电子测量技术,2008,31(4):146-149
[3] 郑喜凤,黄娉,刘贵华.三基色亮度计的设计和应用[J].微计算机信息,2009, 25(2-2):62-64
[4] 丁茹,李刚.可编程彩色光/ 频转换器TCS230 及其应用.国外电子元器件[J], 2005,1:59-62.
[5]卢川英,于浩成,孙敬辉,孟中.基于TCS230传感器的颜色检测系统.吉林大学学报[J],2008,26(26):621-626 .
[6] TAOS公司.TCS230技术说明书[Z].德拉瓦:TAOS公司,2006.
作者简介
邓知辉,助教,研究方向:单片机系统开发及应用、智能移动机器人开发。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文
