毕业论文《颜色传感器的设计》》.doc
《毕业论文《颜色传感器的设计》》.doc》由会员分享,可在线阅读,更多相关《毕业论文《颜色传感器的设计》》.doc(31页珍藏版)》请在冰点文库上搜索。
编号:
传感器综合设计
实训(论文)说明书
题目:
颜色传感器的设计//字居中
院(系):
信息与通信学院
专业:
电子信息工程
学生姓名:
学号:
指导教师:
2012年6月19日
摘要
随着时代的进步和发展,传感器技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术。
传感器是将感受的物理量、化学量等信息,按一定规律转换成便于测量和传输的信号的装置。
设计了一种以STC89C51单片机和TCS230传感器为核心的颜色检测系统,其利用TCS230颜色传感器将彩色光转换成频率信号,然后经单片机进行处理和判别,获取某一颜色中所含三基色的亮度值,分析被测光中的颜色成分和亮度,即可有效地得出相应的被测颜色,同时将检测结果数字化的显示到LCD屏上。
文中简述了利用软件对TCS230的实际颜色测量值进行校正的处理办法,给出了相应的硬件设计电路、软件流程图和测试程序清单。
该传感器电路具有成本低、测量速度快、精确高、便携等特点,可广泛应用于各种需要对光色成分进行测量、分析与识别的行业。
关键词:
传感器;颜色检测;TCS230;STC89C51单片机
Abstract
Alongwiththetimeprogressandthedevelopment,thesensortechnologyalreadypopularizedtouslives,thework,thescientificresearch,eachdomain,alreadybecameonekindofquitematuretechnology.Thesensorisinformationandsoonphysicalquantitywhich,chemistryquantityfeels,transformsaccordingtocertainruleisadvantageousforthesurveyandthetransmissionsignalinstallment.
ThisarticlehasdesignedonekindtaketheSTC89C51monolithicintegratedcircuitandtheTCS230sensorasthecorecolorexaminationsystem,ittransformsusingtheTCS230colorsensorthecoloredlightthefrequencycode,thencarriesonprocessingandthedistinctionafterthemonolithicintegratedcircuit,gainsinsomecolortocontainthreeprimarycolorluminancevalues,analyzesbythelightmeasuringinthecolorcomponentandbrightness,theneffectivelyobtainscorrespondinglyismeasuredthecolor,simultaneouslytestresultdigitizationdemonstrationLCDonscreen.InthearticlesummarizedhascarriedontheadjustmentusingthesoftwaretotheTCS230actualcolorobservedvaluethemeasure,hasgiventhecorrespondinghardwaredesignelectriccircuit,thesoftwareflowchartandthetestorderdetailedlist.Theelectriccircuithasthecosttobelow,surveyspeedquick,precisehigh,portableandsooncharacteristics,butwidelyappliesineachkindneedstocarryonthesurvey,theanalysisandtherecognitionprofessiontothelightcoloringredient.
keyword:
Sensor;Colorexamination;TCS230;STC89C51monolithicintegratedcircuit
目录
引言 2
1概述 3
1.1颜色识别与检测原理 3
1.2方案论证 3
2.TCS230颜色传感器的介绍 3
2.1TCS230芯片的结构框图与特点 3
2.2TCS230识别颜色原理 5
3.系统硬件设计 6
3.1硬件系统设计框图 6
3.2硬件电路各功能模块及其说明 7
4.系统软件设计 9
4.1程序流程图 10
4.2白平衡测试子程序及解析 11
4.3获取颜色频率测试子程序及解析 11
4.4综合测试 12
4.5TCS230测试中需要注意的问题 12
5总结 14
谢辞 16
参考文献 15
引言
随着现代工业生产向高速化、自动化方向的发展,颜色检测系统被越来越广泛地应用于颜色测量、颜色变化的识别、打印控制、颜色校正和机器人安全监控等领域。
颜色的测量准确度实际受多种因素影响,与光源的光谱特性、光源方位、物体反射特性、观测位置、以及传感器光谱响应性能等有关,测量过程中的环境因素变化也会造成测量误差。
然而在很多实际应用中,往往并不需要精确分析颜色的光谱组成,而只需对不同的颜色加以区别。
现有的亮度或色度计,都是通过电流的强弱来标定被测物的亮度大小。
通常无颜色选择功能,如果需要测量某种颜色的光强(常指三基色红、绿、蓝),则电路复杂,且精度不高。
在遇到同时需要对多种颜色光强进行测量的场合,误差会更大,严重影响了识别的效果。
目前,颜色传感器通常是在独立的光电二极管上覆盖经过修正的红、绿、蓝滤光片,然后对输出信号进行相应处理,才能识别颜色信号。
其输出为模拟信号,需要一个A/D电路进行采样,再对该信号进一步处理,才能进行识别,因此增加了电路的复杂性,并且存在较大的识别误差,影响了识别效果。
美TAOS(TexasAdvancedOptoe.1ectronicSolutions)公司最新推出的颜色传感器TCS230,不仅能实现颜色的识别与检测,与传统的颜色传感器相比,还具有许多优良特性。
TCS230的反应速度快,可用软件设置改变对颜色的选择,输出为数字信号,使用方便,有较强的抗干扰能力。
1概述
1.1颜色识别与检测原理
颜色是物体表面吸收了白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应。
由三基色感应原理可知,如果知道构成各种颜色的三基色的值,就能够知道所测试物体的颜色。
对于TCS230来说,当选定一个颜色滤波器时,它只允许某种特定原色通过,阻止其他原色通过,即可分别测出R\G\B的值,从而能分析出投射到TCS230传感器上的光颜色。
TCS230对光源要求很高,同一种颜色在不同的实测距离、不同的光源环境中所测出的频率可能不一样。
同时实际中我们所见到的光,其三基色并非是理论值。
如白色的理论值是由等量的红色、绿色和蓝色混合而成的,但实际上,白色中的三原色并不完全相等,并且对于TCS230的光传感器来说,它对这三种基本色的敏感性是不相同的,导致TCS230的RGB输出并不相等,所以我们必须利用白平衡进行调节与补偿,使TCS230对所检测的“白色”中的三原色相等。
应适应各种不同场合,系统应有自主学习功能,即在区别颜色之前,让系统对对周围环境进行学习,得到一组表示白光的频率基准值,然后计算出3个调整参数即基色的比例因子。
再把检测目标测得的三基色脉冲数再乘以其相应的比例因子,得到所对应的R、G和B频率值,还原出目标物体颜色。
以此作为颜色辨别的标准,从而提高系统的可靠性。
1.2方案论证
本次设计的要求包括硬件电路设计和软件编程的设计。
由颜色识别与检测原理可知,设计硬件电路可包括单片机控制电路、TCS230颜色采集、LED显示和按键控制四个部分,进而实现颜色的检测识别模式及RGB值。
软件编程设计方面,通过C语言设定不同的I/O口驱动显示,在基本R、G、B三基色的基础上设定不同的频率范围来鉴别不同的颜色,可采用定时器1的工作方式1和计数器1的计数方式1进行定时计数特定时间内的脉冲数目来实现。
通过设计三个按键来分别实现系统复位,切换显示RGB的值和检测颜色的模式。
这样就可完成了颜色检测系统的设计。
2.TCS230颜色传感器的介绍
2.1TCS230芯片的结构框图与特点
TCS230的引脚和功能框图如图2.1所示:
TCS230采用8引脚的SOIC表面贴装式封装,在单一芯片上集成有64个光电二极管。
这些二极管共分为四种类型。
其中16个光电二极管带有红色滤波器;16个光电二极管带有绿色滤波器;16个光电二极管带有蓝色滤波器;其余16个不带有任何滤波器,可以透过全部的光信息。
这些光电二极管在芯片内是交叉排列的,能够最大限度地减少入射光辐射的不均匀性,从而增加颜色识别的精确度;另一方面,相同颜色的16个光电二极管是并联连接的,均匀分布在二极管阵列中,可以消除颜色的位置误差。
工作时,通过两个可编程的引脚来动态选择所需要的滤波器。
该传感器的典型输出频率范围从2Hz~500kHz,用户还可以通过两个可编程引脚来选择100%、20%或2%的输出比例因子,或电源关断模式。
输出比例因子使传感器的输出能够适应不同的测量范围,提高了它的适应能力。
例如,当使用低速的频率计数器时,就可以选择小的定标值,使TCS230的输出频率和计数器相匹配。
图1TCS230的引脚和功能框图//图名置中,序号从1到n
TCS230芯片引脚S0、S1用于选择输出比例因子或电源关断模式;S2、S3用于选择滤波器的类型;OE是频率输出使能引脚,可以控制输出的状态,当有多个芯片引脚共用微处理器的输入引脚时,也可以作为片选信号;OUT是频率输出引脚,GND是芯片的接地引脚,VCC为芯片提供工作电压。
表1是S0、S1及S2、S3的可用组合。
TCS230输出为占空比5O%的方波,且输出频率与光强度成线性关系。
工作时,通过程序控制S2、S3来动态选择所需要的滤波器,通过控制sO和s1来选择电源关断模式或输出比例因子(100%、20%或2%),详见表1。
输出比例因子使传感器的输出能够适应不同的测量范围,提高了它的适应能力。
传感器的典型输出频率范围从2Hz~500kHz,芯片采用8引脚SOIC表面贴封装,适用于色度计的测量应用。
表1S0、S1及S2、S3的组合选项//表名置中,序号从1到n
表2TCS3200D的管脚功能
引脚号
符 号
类 型
功能说明
1
S0
I
输出频率分频系数选择输入端
2
S1
I
3
OE
I
输入频率使能端。
低电平有效
4
GND
电源地
5
VDD
电源电压
6
OUT
O
输出频率(fo)
7
S2
I
光电二极管类型选择输入端
8
S3
I
2.2TCS230识别颜色原理
(1)三原色的感应原理
通常所看到的物体颜色,实际上是物体表面吸收了照射到它上面的白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应。
白色是由各种频率的可见光混合在一起构成的,也就是说白光中包含着各种颜色的色光(如:
红R、黄Y、绿G、青V、蓝B、紫P)。
根据德国物理学家赫姆霍兹(Helinholtz)的三原色理论可知,各种颜色是由不同比例的三原色(红、绿、蓝)混合而成的。
(2)TCS230识别颜色的原理
由三原色感应原理可知,如果知道构成各种颜色的三原色的值,就能够知道所测试物体的颜色。
对于TCS230来说,当选定一个颜色滤波器时,它只允许某
种特定的原色通过,阻止其他原色的通过。
例如:
当选择红色滤波器时,入射光中只有红色可以通过,蓝色和绿色都被阻止,这样就可以得到红色光的光强;同理,选择其他的滤波器,就可以得到蓝色光和绿色光的光强。
通过这三个值,就可以分析投射到TCS230传感器上的光的颜色。
(3)白平衡和颜色识别原理
白平衡就是告诉系统什么是白色。
从理论上讲,白色是由等量的红色、绿色和蓝色混合而成的;但实际上,白色中的三原色并不完全相等,并且对于TCS230的光传感器来说,它对这三种基本色的敏感性是不相同的,导致TCS230的RGB输出并不相等,因此在测试前必须进行白平衡调整,使得TCS230对所检测的“白色”中的三原色是相等的。
进行白平衡调整是为后续的颜色识别作准备。
在本装置中,白平衡调整的具体步骤和方法如下:
将空的试管放置在传感器的上方,试管的上方放置一个白色的光源,使入射光能够穿过试管照射到TCS230上;根据前面所介绍的方法,依次选通红色、绿色和蓝色滤波器,分别测得红色、绿色和蓝色的值,然后就可计算出需要的3个调整参数。
当用TCS230识别颜色时,就用这3个参数对所测颜色的R、G和B进行调整。
这里有两种方法来计算调整参数:
①依次选通三种颜色的滤波器,然后对TCS230的输出脉冲依次进行计数。
当计数到255时停止计数,分别计算每个通道所用的时间。
这些时间对应于实际测试时TCS230每种滤波器所采用的时间基准,在这段时间内所测得的脉冲数就是所对应的R、G和B的值。
②设置定时器为一固定时间(例如10ms),然后选通三种颜色的滤波器,计算这段时间内TCS230的输出脉冲数,计算出一个比例因子,通过这个比例因子可以把这些脉冲数变为255。
在实际测试时,使用同样的时间进行计数,把测得的脉冲数再乘以求得的比例因子,然后就可以得到所对应的R、G和B的值。
3.系统硬件设计
3.1硬件系统设计框图
本系统硬件分为单片机控制电路、TCS230颜色采集、LED显示和按键控制等四部分,其工作原理如图3.1所示。
单片机
AT89C51
数码管显示模块
颜色RGB值
指示红、绿、
蓝发光二极管
指示模块
下载电路
颜色传感器检测模块TCS3200
按键控制模块
晶振、复位电路
图2硬件系统设计框图
3.2硬件电路各功能模块及其说明
系统以单片机STC89C52为核心,在程序支持下,对TCS230进行检测控制,将输出的频率送往STC89C52进行处理得出相应的识别信息显示在LCD屏上可显示被测颜色R、G、B亮度值,同时显示当前颜色的亮度。
(1)数码管显示部分如图3.2所示。
//通过Protel属性设置,电原理图网格去掉
图3数码管显示部分电路图
该部分采用四位数码管显示,一位显示颜色的模值,其他三位显示RGB的频率值,采用PNP型三极管进行驱动,串接电阻进行限流防止电压过大数码管被烧坏设计为P0口显示时,还应注意加上拉电阻。
(2)LED显示部分如图3.3所示。
图3.3LED显示部分电路图
该部分中实现的功能是在STC89C52的I/O口中接上三盏LED灯来分别测试RGB的值。
(3)功能键部分如图3.4所示。
图3.4功能键部分电路图
在该部分中,通过三个按键的设计,分别来实现一:
系统复位;二:
切换显示RGB的值(P1^0口);三:
检测颜色的模式(P1^1口)。
(3)颜色传感器部分如图3.5所示。
图3.5颜色传感器部分电路图
在该部分中,通过PNP三极管串接上限流电阻驱动TSC230显示,为了使测试颜色前的白平衡调节,电路中接上四个LED来照亮TSC230芯片,使得测试更为准确。
4.系统软件设计
系统软件主要包括:
主程序、白平衡校正子程序和颜色比较子程序。
其中白平衡校正子程序用于颜色标定;比较子程序用于颜色检测。
4.1程序流程图
//软件流程图建议采用Viso软件画,注意规范性,诸如判断菱形框,一般采用单箭头。
开始
初始化程序
白平衡调整
颜色识别程序
有颜色识别?
No
Yes
按键判断子程序
将所要显示值
赋给数码管
软件主程序流程图
开始
是否有按键按下
No
Yes
按键1++
按键2是否按下
键1值为0
显示
B
值
颜色重新采集显示
显示
R
值
显示
G
值
键1值为1
键1值为2
Yes
图4.1软件主程序流程图及键盘扫描流程图
4.2白平衡测试子程序及解析
程序须先行进行白平衡调节,得出比例因子,再实现对物体颜色检测和校准,并在LCD上分别显示的R,G,B的亮度值。
通过白平衡设计颜色初值,以便其他颜色的辨别检测。
下面给出白平衡测试的子程序及其解析。
voidWhite_Adjust(void)//颜色识别前先进行白平衡
{
uchark;
TCS_LED =0;//启动,不过此时滤波片没有选择有效值
delay(5);//等待一段时间,用来使光源平衡
Red_W_A_Count=0;
Green_W_A_Count=0;
Blue_W_A_Count=0;
for(k=0;k<10;k++)
{
TCS_S2 = 0;
TCS_S3 = 0; //白平衡选择红色
Red_W_A_Count = Get_Color_Count()+Red_W_A_Count;
TCS_S2 = 1;
TCS_S3 = 1;//白平衡选择绿色
Green_W_A_Count = Get_Color_Count()+Green_W_A_Count;
TCS_S2 = 0;
TCS_S3 = 1;//白平衡选择蓝色
Blue_W_A_Count = Get_Color_Count()+Blue_W_A_Count;
TCS_S2 = 1;
TCS_S3 = 0;//白平衡结束后不选择滤光片
}
}
4.3获取颜色频率测试子程序及解析
测试颜色的RGB值,可通过定时10ms的计数脉冲数目来进行颜色频率的检测。
下面给出白平衡测试的子程序及其解析。
unsignedintGet_Color_Count()
{
unsignedintidataTemp_TCS3200_Count;
bitConvert_Flag;
TH1 = 0x00;//设置好后才开始计数
TL1 = 0x00;
TCS3200_Time_Count = 0x00;//将计数值清零后再开始新一次的计数
Convert_Flag=TCS3200_Convert_Flag;
while(Convert_Flag==TCS3200_Convert_Flag); //使能TCS230转换时间计数
TR1=1;
while(TCS3200_Convert_Flag !
= Convert_Flag); //一次转换结束
TR1=0;
Temp_TCS3200_Count = TH1 *256+TL1;//保存好计数结果
return Temp_TCS3200_Count;
}
4.4综合测试
软件编译通过之后,下载程序进入单片机中,依据方案设计原理进行调节测试。
测试结果由按键切换通过四位数码管实现颜色检测的RGB值和颜色模式显示。
在测试过程中,首先进行的是白平衡调节。
使颜色传感器对着白纸,接通电源,按复位键检查RGB值是否都显示为255,是则可进行下一步的颜色检测,若小于245,则应再进行调节,使之较接近之后再做下一步测试。
白平衡之后,把颜色传感器对着另一个颜色,通过按键二切换进行颜色检测,最后通过按键三可分别查看RGB的值。
由得出的数值,可根据绘图工具来检测测试结果与实际显示结果的差别。
起初测试过程中发现电路没有输出,按键不灵,一位数码管不显示。
经检查发现电源连接地线没有接上,制作PCB板时数码管有两根不连通线短接了,按键的线路焊接不好。
经仔细检查电路后才解决这些问题,电路正常工作。
而数码管显示较为模糊,其中是限流电阻较大的缘故。
通过改变阻值较小的电阻,数码管显示非常清晰。
测试结果发现与实际存在较大的误差,所以我再通过修改程序中的定时时间,发现在定时10ms计数时误差较为小,因此最后确定定时时间为10ms。
解决测试中遇到的问题之后,电路成功地实现了设计的功能。
本次设计较为成功。
4.5TCS230测试中需要注意的问题
(1)颜色识别时要避免外界光线的干扰,否则会影响颜色识别的结果。
最好把传感器、光源等放置在一个密闭、无反射的箱子中进行测试。
(2)对光源没有特殊的要求,但是光源发出的光要尽量集中,否则会造成传感器之间的相互干扰。
(3)当第1次使用TCS230时,或TCS230识别模块重启、更换光源等情况时,都需要进行白平衡调整。
根据需求选择电路的设计单元进行组合,完成系统的原理图设计与PCB设计,对制作好的PCB板,按照装配图或原理图进行器件装配,装配好之后进行电路调试。
通电准备
打开电源之前,先按照系统原理图检查制作好的电路板的通断情况,并取下PCB板上的单片机,然后接通电源,用万用表检查板上的各点的电源电压值,完好之后再关掉电源,插上单片机芯片。
电路检测调试
接通电源后,按下复位开关,此时单片机的所有端口均输出高电平,拔位的共阳极数码管会无显示,发光二极管发光。
放开手后,数码管显示白平衡时候的RGB值,此时RGB值指示灯发光。
颜色探