基于TCS230传感器的颜色识别系统设计∗
2017-06-05
基于TCS230传感器的颜色识别系统设计∗
李静梁鹏超
(西安工业大学电子信息工程学院西安710032)
为了方便对光色成分进行检测和分析,设计了一种以STC89C52单片机和TCS230传感器为核心的颜色检测系统。给出了该检测系统的硬件设计电路以及检测过程的程序流程。用TCS230传感器直接将颜色分量转化为不同频率的脉冲波,通过单片机的I/O口直接获取某一颜色的RGB亮度值,并将结果显示到三位数码管上,以验证该系统对颜色识别的准确性。实验表明:该系统具有准确的颜色识别性能和良好的稳定性。
TCS230传感器;颜色检测;单片机
Class NumberTP212
1 引言
随着现代工业生产向高速化、自动化方向发展,生产过程中长期以来由人眼起主导作用的颜色识别工作将越来越多地被相应的颜色传感器所替代。目前的颜色传感器通常是在独立的光电二极管上覆盖经过修正的红、绿、蓝滤光片,然后对输出信号进行相应的处理,才能将颜色信号识别出来,但其输出是模拟信号,需要一个A/D电路进行采样,才能进行识别,这样不仅增加了电路的复杂性,而且精度不高。在遇到同时需要对多种颜色光强进行测量的场合,误差会更大,严重影响了识别的效果。TAOS公司最新推出可编程彩色光到频率转换的颜色传感器TCS230,它将硅光电二极管与电流频率转化器集成在一个单一的CMOS电路上,同时在单一芯片上还集成了红绿蓝(RGB)三种滤光器,是业界第一个有数字兼容接口的RGB彩色传感器[1]。它不仅能够实现颜色识别与检测,与以前的颜色传感器相比,还具有许多优良的新特性。TCS230的反应速度快,输出为数字信号,使用方便,有较强的抗干扰能力。本文将单片机与TCS230传感器相结合设计一种颜色检测系统,并给出该系统的硬件设计电路与测试流程。
2 TCS230颜色传感器
对于TCS230颜色传感器来说,当选定一个颜色滤波器时,它只允许某种特定的原色通过,阻止其它原色的通过。当选择红色滤波器时,入射光中只有红色可以通过,蓝色和绿色都被阻止,这样就可以得到红色光的光强;同理,就可以得到蓝色光和绿色光的光强。通过这三个值,就可以分析投射到TCS230传感器的光的颜色。TCS230的内部电路图如图1所示。TCS230采用8引脚的SOIC表面贴装式封装,在单一芯片上集成有64个光电二极管。这些二极管共分为四种类型。其中16个光电二极管带有红色滤波器;16个光电二极管带有绿色滤波器;16个光电二极管带有蓝色滤波器;其余16个不带有任何滤波器,可以透过全部的光信息。这些光电二极管在芯片内是交叉排列的,能够最大限度地减少入射光辐射的不均匀性,从而增加颜色识别的精确度;另一方面,相同颜色的16个光电二极管是并联连接的,均匀分布在二极管阵列中,可以消除颜色的位置误差。工作时,通过两个可编程的引脚来动态选择所需要的滤波器。该传感器的典型输出频率范围从2Hz~500kHz,用户还可以通过两个可编程引脚来选择100%、20%或2%的输出比例因子,或电源关断模式。输出比例因子使传感器的输出能够适应不同的测量范围,提高了它的适应能力。例如,当使用低速的频率计数器时,就可以选择小的定标值,使TCS230的输出频率和计数器相匹配。图1为TCS230的引脚封装和功能框图。
图1 TCS230的引脚封装和功能框图
TCS230GY-31芯片引脚S0、S1用于选择输出比例因子或电源关断模式;S2、S3用于选择滤波器的类型;LED用于测试时的光源控制,OUT是频率输出引脚,GND是芯片的接地引脚,VCC为芯片提供工作电压。表1是S0、S1及S2、S3的可用组合。
TCS230输出为占空比5O%的方波,且输出频率与光强度成线性关系。工作时,通过程序控制S2、S3来动态选择所需要的滤波器,通过控制SO和S1来选择电源关断模式或输出比例因子(100%、20%或2%)。输出比例因子使传感器的输出能够适应不同的测量范围,提高了它的适应能力。
表1 S0、S1及S2、S3组合功能
理论上讲,白色是由等量的红色、绿色和蓝色混合而成的;但实际上,白色中的三原色并不完全相等,并且对于TCS230的光传感器来说,它对这三种基本色的敏感性是不相同的,导致TCS230的RGB输出并不相等,因此在测试前必须进行白平衡调整,使得TCS230对所检测的“白色”中的三原色是相等的。进行白平衡调整是为后续的颜色识别准备。本文中,白平衡调整和颜色识别的步骤和具体方法有两种:1)依次选择三种颜色的滤波器,然后对TCS230的输出脉冲依次进行计数。当计数到255时停止计数,分别计算每个通道所用的时间。这些时间对应于实际测试时TCS230每种滤波器所采用的时间基准,在这段时间内所测得的脉冲数就是所对应的R、G和B的值,一般用于测量静态物体颜色。2)设置定时器为一固定时间(例如10 ms),然后选通三种颜色的滤波器,计算这段时间内TCS230的输出脉冲数,计算出一个比例因子,通过这个比例因子可以把这些脉冲数变为255。在实际测试时,使用同样的时间进行计数,把测得的脉冲数再乘以求得的比例因子,然后就可以得到所对应的R、G和B的值。该方法适用于超低速动态颜色测量。
3 硬件设计
系统硬件设计主要包括三部分:单片机为核心的控制部分,实现对颜色信号输出频率的获取;数据采集系统,主要是TCS230使用时的外界条件设置和光源的选择;控制面板模块,主要包括数码管、LED显示以及按键控制。
3.1以单片机为核心的控制部分
以STC89C51单片机为核心的控制电路主要包括颜色识别电路和数码管显示电路[2~4]。在颜色识别电路中,用STC89C51单片机的P3.1~P3.4控制TCS230的S0,S1,S2,S3四个控制引脚,TCS230输出频率引脚接至单片机P3.5引脚。STC89C51单片机依次选通红、绿、蓝滤波器时,传感器输出相应的频率脉冲信号[5]。并将获取的RGB值显示到数码管上。
3.2数据采集系统
数据采集系统对光源的要求十分严格,其照明光源必须明亮、发出的光尽量集中、体积小且发热量低等要求。为了排除外界环境的干扰,颜色传感器光室内部均匀染黑并密闭以保证其光密性,并最大程度避免了内部的光线反射,使光线最大程度照射在颜色传感器上。TCS230传感器虽说有诸多优点,但也存在一些缺点,主要是其检测距离较短,最大检测距离为1cm[6]。为了解决这个问题,我们对该系统的照明光源提出要求。采用了色差高、体积小、聚焦性高的氙灯光源以及与其配合的平行光反射镜[7]。在此过程中出现的镜面反射,采用多角度照明使得发射光入射到TCS230颜色传感器中[8]。颜色传感器获取光信号,将光信号转换为脉冲数,再输出传给单片机。
3.3光学系统设计
图2为TCS230颜色传感器颜色采集系统的光学结构示意图[9]。在颜色采集系统的光学系统内部,点光源(氙灯)发射出的光线通过抛物面反射镜后形成一束平行光,平行光又穿过透明的聚乙烯塑料后,使光线变得柔和均匀。当光线照在样品时发生漫反射进入传感器,为保证光均匀照在TCS230颜色传感器上,可以安装IR滤镜。
图2 TCS230颜色采集系统的光学结构图
3.4控制面板模块
控制面板模块主要包括数码管、LED显示以及按键控制。数码管显示部分通过单片机的P0和P2口分别控制数码管显示的段选和位选,来实现数码管的动态显示,用来显示最终的RGB值。LED显示,该部分实现的功能是在STC89C52单片机的I/O口中接上红、绿、蓝三盏LED灯来分别测试RGB的值。按键控制通过两个按键的设计,分别来实现:1)系统复位;在进行白平衡调节时,使颜色传感器对着白纸,接通电源,按复位键检查RGB值是否都显示为255,是则可进行下一步的颜色检测,若小于245,则应再进行调节,使之较接近之后再做下一步测试。2)切换显示RGB的值。在数据采集完成后,通过按键分别显示RGB的值。当按下按键,红色LED灯亮,则说明当前显示的是R值,同理可得到G值和B值。传感器电路控制模块的电路连接如图3所示。
图3 TCS230的颜色识别控制电路
4 软件设计
颜色检测系统包括白平衡校正子程序和颜色比较子程序[10]。其中白平衡校正子程序用于颜色标定,颜色比较子程序用于颜色检测。白平衡就是告诉系统什么是白色,理论上是由等量的红色、绿色、蓝色混合而成的[11]。但由于传感器对RGB的敏感性有差异,因此必须进行白平衡调整。通过白平衡得到R、G和B的三个调整参数,当传感器进行颜色识别时,就用这三个参数来调整采样的三原色分量RGB[12]。然后通过颜色比较子程序获得被测物体的RGB值。程序流程图如图4所示。
图4 系统软件流程图
5 结语
将TCS230在密封条件下用白色LED灯调节白平衡后,该系统能较为准确地识别颜色信息,可满足预期实际应用要求。通过识别不同颜色的LED灯颜色,以验证该检测色系统的准确性。实验结果显示测试值与实际值的相对偏差不超过4%,符合实际的应用要求。为了减少测试误差,通过多次采样取平均值的方法对数据进行简单处理。本文的特点是用TCS230与单片机STC89C52搭建颜色识别系统,电路较为简单,简化了整个颜色识别系统,并且确保了检测颜色的准确性和精度。
[1]张松灿,肖本贤.高分辨率颜色传感器TCS230的原理和应用[J].单片机与嵌入式系统应用,2005,3:44-46.
ZHANG Songcan,XIAO Gao.The principle and applica⁃tion of high resolution color sensor TCS230[J].Single chip microcomputer and embedded system application,2005,3:44-46.
[2]郭天祥.郭天祥新概念单片机语言教程[M].北京:电子工业出版社,2009:236-298.
GUO Tianxiang.A new concept of the new concept of the microcontroller Guo Tianxiang[M].Beijing:Publishing House of electronics industry,2009:236-298.
[3]袁东.袁东单片机应用开发实战手册[M].北京:电子工业出版社,2011:154-201.
YUAN Dong.Application and development of the single chip microcomputer manual[M].Beijing:Publishing House of electronics industry,2011:154-201.
[4]徐爱均.彭秀华单片机高级语言编程与应用实践[M].北京:电子工业出版社,2007:54-67.
XU Aijun,PENG Xiuhua.microcontroller advanced lan⁃guage programming and application practice[M].Beijing:Publishing House of electronics industry,2007:54-67.
[5]刘笃仁,韩保君.传感器原理及应用技术[M].西安:西安电子科技大学出版社,2003:67-89.
LIU Duren,HAN Baojun.Principle and application of sen⁃sor[M].Xi'an:Xi'an Electronic and Science University press,67-89.2003.
[6]何希才.传感器及其应用[M].北京:国防工业出版社,2001:108-119.
HE Xicai.Sensor and its application[M].Beijing:Nation⁃al Defence Industry Press,2001:108-119.
[7]潘海鸥,陈琳,黄炳琼,等.基于TCS230传感器的高精度颜色识别系统设计[J].传感器与仪器,2009:159-161.
PAN Haiou,CHEN Lin,HUANG Bingqiong,et al.Design of high precision color recognition system based on TCS230 sensor[J].sensor and instrument,2009:159-161.
[8]陆徐平,徐耀良,李渝曾,等.基于TCS230的新型双路颜色传感器的研制[J].电子技术应用,2007,33(8):89-91.
LU Xuping,XU Yaoliang,LI Yuzeng,et al.Development of a new type of dual color sensor based on[J].TCS230 electronic technology application,2007,33(8):89-91.
[9]陈家胜,罗小彬,葛学峰,等.一种新型颜色传感器设计[J].传感技术学报,2003,16(4):467-470.
CHEN Jiasheng,LUO Xiaobin,GE Xuefeng,et al.A new color sensor design[J].Journal of sensing technology,2003,16(4):467-470.
[10]杨朋千,李湘宁,胡明凯,等.一种新型线扫描颜色传感器的研制[J].光学仪器,2008,30(1):70-73.
YANG Pengqian,LI Xiangning,HU Mingkai,et al.Re⁃search and development of a new line scan color sensor[J].optical instrument,2008,30(1):70-73.
[11]杜春玲.颜色测量仪器及其发展[J].现代仪器2005,11(3):56-57.
DU Chunling.Color measuring instrument and its devel⁃opment[J].modern instrument,2005,11(3):56-57.
[12]Berlien J.Color Classification with the TCS230 Identify⁃ing and Sorting Colors by Hue[J].2001:34-56.
Design of Color Recognition System Based on TCS230 Sensor
LI JingLIANG Pengchao
(School of Electronic Information Engineering,Xi'an Technological University,Xi'an710032)
In order to facilitate detection and analysis of the light color components,a STC89C52 MCU and TCS230 sensor as the core of the color detection system is designed.The hardware design circuit of the detection system and the program flow of the test results are given.The color component is converted into a pulse wave of different frequency by using the TCS230 sensor.The I/O port of the microcontroller directly obtains the RGB brightness value of a color and the result is displayed on the three bit digital tube to verify the accuracy of the system.Experiments show that the system has accurate color recognition performance and good stability.
TCS230 sensor,color test,microcontroller
TP212
10.3969/j.issn.1672-9722.2017.05.041
2016年11月10日,
2016年12月22日
李静,女,博士,教授,研究方向:测控技术与智能控制。梁鹏超,男,硕士研究生,研究方向:通信与测试。