传感器设计分析.docx
- 文档编号:10782223
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:17
- 大小:105.42KB
传感器设计分析.docx
《传感器设计分析.docx》由会员分享,可在线阅读,更多相关《传感器设计分析.docx(17页珍藏版)》请在冰点文库上搜索。
传感器设计分析
检测系统小制作
设计报告书
题目:
颜色传感器
班级:
12电科班
项目组长:
覃士运
项目组成员:
黄演庆莫超胜覃士运张兴崖金玲覃宗雷曾能樘
完成时间:
2015年6月28
一、设计内容(主要描述系统的功能,写出关键的技术指标,如量程、精度、使用环境等)
本次设计以色彩识别系统设计为目的,采用STC89C52RC单片机为核心,利用TCS230颜色传感器和LCD1602建立起来的。
色彩识别一般算法。
(1)色彩空间:
通常所看到的物体的颜色,实际上是物体表面吸收了照射到它上面的白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应。
任何一种颜色都可以用三种基本颜色按照不同的比例混合得到。
这里介绍一种最典型的颜色模型,即RGB模型。
如图所示,在这个颜色模型中,3个轴分别为R、G、B。
原点对应的为黑色(0,0,0),离原点最远的顶点对应白色(255,255,255)。
由黑到白的灰度分布在从原点到最远顶点间的连线上,正方体的其他六个角点分别为红、黄、绿、青、蓝、和品红。
需要注意的一点是,RGB颜色模型所覆盖的颜色域取决于显示设备因光电的颜色特性。
每一种颜色都有唯一的RGB值与它对应
(2)白平衡算法:
颜色实际就是物体对光的反射或投射而表现出来在人眼中的反映,而TCS3200D就是通过分别检测一种颜色反映出来的光的红、绿、蓝分量,通过把光强线性转换为频率信号,量化出R、G、B值,从而计算出颜色。
值得注意的是,不同的光线通过物体反映出来的光强是不同的,而且非标准白光(RGB三者不相等)在物体上反映出来的光强分量也是不同的。
为解决这个问题,就要进行白平衡,即首先测量出基准光源的RGB光强值,再测量出在标准光源下物体所反映出的光强值,两者之比就是物体的反射(或透射)性质,即物体的实际颜色,如公式
(1),
(2),(3)。
R=P物红/P源红
(1)
G=P物绿/P源绿
(2)
B=P物蓝/P源蓝(3)
由于在RGB坐标下的颜色标准坐标为0-255之间,所以把所得结果乘以255,即得到标准的RGB值。
透明物体直接测量光源的光强-频率值,不透明物体需要用白纸测量反射光源。
使用环境:
物体颜色信息十分广泛,颜色的确定需要色调、明度和饱和度三大要素或三原色(红绿蓝)的刺激值。
影响颜色检测准确度的参数主要有:
照射光、物体反射、光源方位、观测方位和传感器性能等,任何一个参数发生变化都会导致观察到的颜色发生变化。
1.光源的影响
照射光包含有太阳光和外界杂散光,太阳照射角度、云层厚度和其它天气条件都会导致照射光发生变化,从而导致被测物体颜色发生变化。
为弥补光源变化带来的测量误差,Judd等人在1964年提出了照射光修正模型,但尽管如此,照射光引起物体颜色检测的误差仍不容忽视。
2.光源方位和观测方位的影响
光源方位,也就是被测物体指向光源的法线方向,它决定了有多少太阳光或外界杂散光作为入射光。
观测方位是指被测物体指向传感器的法线方向,它决定了反射到传感器中的光强。
二、工作计划(包括人员分工、进度安排)
人员分工表
姓名
工作内容
曾能樘
查找与题目相关的资料内容。
覃士运
画板,焊接电路。
黄演庆
搞好设计报告书
莫超胜
搞好设计报告书
崖金玲
和上两位一起协同搞好设计报告书
张兴
打孔,转印电路板
覃宗雷
腐蚀电路板
工作进度表
起止时间
工作内容
2015年6月20
查找有关传感器的设计,选择要做的题目
2015年6月22
查找要做的颜色传感器的资料比如电路图
2015年6月24
画原理图,PCB图
2015年6月26
做板。
腐蚀电路板,打孔,焊接电路
2015年6月28
测试电路板
三、设计原理(包括测量原理、系统结构、主要硬件说明等)
TCS230识别颜色的原理:
由上面的介绍可知,这种可编程的彩色光到频率转换器适合于色度计测量应用领域,如彩色打印、医疗诊断、计算机彩色监视器校准以及油漆、纺织品、化妆品和印刷材料的过程控制和色彩配合。
下面以TCS230在液体颜色识别中的应用为例,介绍它的具体使用。
首先了解一些光与颜色的知识。
(1)三原色的感应原理:
通常所看到的物体颜色,实际上是物体表面吸收了照射到它上面的白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应。
白色是由各种频率的可见光混合在一起构成的,也就是说白光中包含着各种颜色的色光(如红R、黄Y、绿G、青V、蓝B、紫P)。
根据德国物理学家赫姆霍兹(Helinholtz)的三原色理论可知,各种颜色是由不同比例的三原色(红、绿、蓝)混合而成的。
(2)TCS230识别颜色的原理:
由三原色感应原理可知,如果知道构成各种颜色的三原色的值,就能够知道所测试物体的颜色。
对于TCS230来说,当选定一个颜色滤波器时,它只允许某种特定的原色通过,阻止其他原色的通过。
例如:
当选择红色滤波器时,入射光中只有红色可以通过,蓝色和绿色都被阻止,这样就可以得到红色光的光强;同时,选择其他的滤波器,就可以得到蓝色光和绿色光的光强。
通过这三个值,就可以分析投射到TCS230传感器上的光的颜色。
(3)白平衡和颜色识别原理:
白平衡就是告诉系统什么是白色。
从理论上讲,白色是由等量的红色、绿色和蓝色混合而成的;但实际上,白色中的三原色并不完全相等,并且对于TCS230的光传感器来说,它对这三种基本色的敏感性是不相同的,导致TCS230的RGB输出并不相等,因此在测试前必须进行白平衡调整,使得TCS230对所检测的"白色"中的三原色是相等的。
进行白平衡调整是为后续的颜色识别作准备。
在本装置中,白平衡调整的具体步骤和方法如下:
将空的试管放置在传感器的上方,试管的上方放置一个白色的光源,使入射光能够穿过试管照射到TCS230上;根据前面所介绍的方法,依次选通红色、绿色和蓝色滤波器,分别测得红色、绿色和蓝色的值,然后就可计算出需要的3个调整参数。
当TCS230识别颜色时,就用这3个参数对所测颜色的R、G和B进行调整。
这里有两种方法来计算调整参数:
1、依次选通三颜色的滤波器,然后对TCS230的输出脉冲依次进行计数。
当计数到255时停止计数,分别计算每个通道所用的时间,这些时间对应于实际测试时TCS230每种滤波器所采用的时间基准,在这段时间内所测得的脉冲数就是所对应的R、G和B的值。
2、设置定时器为一固定时间(例如10ms),然后选通三种颜色的滤波器,计算这段时间内TCS230的输出脉冲数,计算出一个比例因子,通过这个比例因子可以把这些脉冲数变为255。
在实际测试时,室外同样的时间进行计数,把测得的脉冲数再乘以求得的比例因子,然后就可以得到所对应的R、G和B的值。
系统结构框图
色彩识别系统是基于MCS-51系列单片机控制的基础上,添加了TCS230颜色传感器采集模块,TCS230驱动模块,四个白色LED补光模块,LCD1602液晶显示模块,在这些模块的基础上实现的色彩识别系统,色彩识别系统的设计如下图系统框架所示。
MCS-51单片机简介
MCS-51系列单片机是美国Intel公司在1980年推出的高性能8位单片机,它包含51和52两个子系列。
对于51子系列,主要有8031、8051、8751三种机型,它们的指令系统与芯片引脚完全兼容,仅片内程序存储器有所不同,8031芯片不带ROM,8051芯片待4KB的ROM,8751芯片待4KB的EPROM。
51子系列单片机的主要特点为:
4k/8k字节程序存储器;
128/256字节数据存储器;
32条I/O口线;
111条指令,其中大多数是单字节指令;
21个专用寄存器:
2个可编程定时/计数器:
5个中断源,2个优先级;
一个全双工串行通信口;
外部数据存储器寻址空间为64k字节:
外部程序存储器寻址空间64k字节;
逻辑操作位寻址功能
液晶显示器简介
液晶显示器简称LCD显示器,它是利用液晶经过处理后能改变光线的传输方向的特性显示信息的。
液晶显示器具有体积小、重量轻、功耗极低、显示内容丰富等特点,在单片机应用系统中得到了日益广泛的应用。
液晶显示器按其功能可分为三类:
笔段式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。
前两种可显示数字、字符和符号等,而图形点阵式液晶显示器还可以显示汉字和任意图形,达到图文并茂的效果。
字符型液晶显示器模块是一种专门用于显示字母、数字、符号等的点阵式液晶显示模块。
它是由若干个5*7或5*11等点阵符位组成的,每一个点阵字符位都可以显示一个字符。
点阵字符位之间有一定点距的间隔,这样就起到了字符间距和行距的作用。
要使用点阵型LCD显示器,必须有相应的LCD控制器、驱动器来对LCD显示器进行扫描、驱动,以及一定空间的ROM和RAM来存储写入的命令和显示字符的点阵。
现在往往将LCD控制器、驱动器、RAM、ROM和LCD显示器连接在一起,称为液晶显示模块LCM。
使用时只要向LCM送入相应的命令和数据就可以实现显示所需的信息。
TCS230芯片的结构框图与特点:
TCS230是TAOS公司推出的可编程彩色光到频率的转换器,它把可配置的硅光电二极管与电流频率转换器集成在一个单一的CMOS电路上,同时在单一芯片上集成了红绿蓝(RGB)三种滤光器,是业界第一个有数字兼容接口的RGB彩色传感器,TCS3200D的输出信号是数字量,可以驱动标准的TTL或CMOS逻辑输入,因此可直接与微处理器或其他逻辑电路相连接,由于输出的是数字量,并且能够实现每个彩色信道10位以上的转换精度,因而不再需要A/D转换电路,使电路变得更简单,下图是TCS230的引脚和功能框图。
图TCS3200D的引脚和功能图
上图中,TCS230采用8引脚的SOIC表面贴装式封装,在单一芯片上集成有64个光电二极管,这些二极管分为四种类型,其16个光电二极管带有红色滤波器;16个光电二极管带有绿色滤波器;16个光电二极管带有蓝色滤波器,其余16个不带有任何滤波器,可以透过全部的光信息,这些光电二极管在芯片内是交叉排列的,能够最大限度地减少入射光辐射的不均匀性,从而增加颜色识别的精确度;另一方面,相同颜色的16个光电二极管是并联连接的,均匀分布在二极管阵列中,可以消除颜色的位置误差。
工作时,通过两个可编程的引脚来动态选择所需要的滤波器,该传感器的典型输出频率范围从2Hz-500kHz,用户还可以通过两个可编程引脚来选择100%、20%或2%的输出比例因子,或电源关断模式。
输出比例因子使传感器的输出能够适应不同的测量范围,提高了它的适应能力。
例如,当使用低速的频率计数器时,就可以选择小的定标值,使TCS230的输出频率和计数器相匹配。
从上图可知:
当入射光投射到TCS3200D上时,通过光电二极管控制引脚S2、S3的不同组合,可以选择不同的滤波器;经过电流到频率转换器后输出不同频率的方波(占空比是50%),不同的颜色和光强对应不同频率的方波;还可以通过输出定标控制引脚S0、S1,选择不同的输出比例因子,对输出频率范围进行调整,以适应不同的需求。
下面简要介绍TCS230芯片各个引脚的功能及它的一些组合选项。
S0、S1用于选择输出比例因子或电源关断模式;S2、S3用于选择滤波器的类型;OE反是频率输出使能引脚,可以控制输出的状态,当有多个芯片引脚共用微处理器的输出引脚时,也可以作为片选信号,OUT是频率输出引脚,GND是芯片的接地引脚,VCC为芯片提供工作电压,表3.1是S0、S1及S2、S3的可用组合。
表S0、S1及S2、S3的组合选项
S0
S1
输出频率定标
S2
S3
滤波器类型
L
L
关断电源
L
L
红色
L
H
2%
L
H
蓝色
H
L
20%
H
L
无
H
H
100%
H
H
绿色
四、实现方案(包括电路图、PCB图、程序等)
原理图
PCB图
主要程序
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharstr[3];
uchar*s;
uintdate;//定义数据类型
uintdispcount=0;//中断计数
uintlck=0;//定时器计数
uintdisp=0;//频率值
sbitRS=P2^0;//数据/命令选择端,高电平-数据寄存器,低-指令寄存器
sbitRW=P2^1;//读/写选择端,高-读操作,低-写操作
sbitE=P2^7;//使能端
/**************************************************
延时函数,延时1ms
**************************************************/
voiddelay1ms(unsignedintk)
{unsignedinti,j;
for(i=0;i { for(j=0;j<12;j++); } } /************************************************** 传感器测量模块 **************************************************/ voidinitTimer(void)//定时器初值1ms {TMOD=0x0; TH0=0xe0; TL0=0x18; } /**************************************************定时器函数 **************************************************/ voidtimer0(void)interrupt1//定时1秒,每一秒中断一次,所记得数就是频率 { TH0=0xe0;TL0=0x18;lck++; if(lck==1000) {disp=dispcount;lck=0;dispcount=0; } } /**************************************************中断函数 ***************************************************/ voidint0(void)interrupt0//外部中断0,TCS3200D的OUT端口接到INT0端口 {dispcount++;//每一次中断,计数加一 } /**************************************************RGB三种颜色通道选择模块 **************************************************/ voidred()//红色通道 {P1=0x01;delay1ms(1100); date=disp/100;date=(255.0/153)*date;//153是在纯白情况下测得的红色通道频率值 } voidgreen()//绿色通道 {P1=0xc1;delay1ms(1100); date=disp/100;date=(255.0/145)*date;//145是在纯白情况下测得的绿色通道频率值 } voidblue()//蓝色通道 {P1=0x81;delay1ms(1100); date=disp/100;date=(255.0/183)*date;//183是在纯白情况下测得的蓝色通道频率值 } /************************************************** 整型数转化成字符串,以便LCD输出显示 **************************************************/ uchar*int2str(uintd) {if(d>=255) {d=255; str[0]='0'+d/100; str[1]='0'+d%100/10; str[2]='0'+d%10;} else {str[0]='0'+d/100; str[1]='0'+d%100/10; str[2]='0'+d%10;} returnstr; } /**************************************************LCD显示模块 **************************************************/ voidLCD_w_com(unsignedcom)//写命令函数,com为要写的指令 {RW=0;RS=0;E=1; P0=com;delay1ms(10); E=0;RW=1; } voidLCD_w_dat(uchardat)//写数据函数,写要显示的数据 {RW=0;RS=1;E=1; P0=dat;delay1ms(10); E=0;RW=1; } voidinit_LCD(void)//初始化lcd {LCD_w_com(0x38);//lcd为两行显示8位数据线有效 LCD_w_com(0x0e);//显示字符关闭光标 LCD_w_com(0x06);//输入方式设置光标向右移动一位ac-1 } voidclear_LCD(void)//清屏 { LCD_w_com(0x01);//清屏指令 LCD_w_com(0x02);//光标归位即光标置于左上位置 } voiddisplay_LCD_string(uchar*p)//字符串输出函数 {while(*p) {LCD_w_dat(*p);p++;delay1ms(10);} } voidgotoxy(unsignedx,unsignedy)//定位,x为行,y为列 {if(x==1)LCD_w_com(0x80+y); elseLCD_w_com(0xC0+y); } /************************************************** 主函数 **************************************************/ voidmain(void) {IT0=1;//INT0下降沿中断 EX0=1;//允许INT0中断 initTimer();//装入初值 TR0=1;//开定时器T0 ET0=1;//允许T0中断 EA=1;//中断总控制 init_LCD();//LCD初始化 clear_LCD();//清屏 while (1) {gotoxy(1,00);display_LCD_string("R: ");red();//调用红色通道并显示色彩值 gotoxy(1,02);s=int2str(date);display_LCD_string(s); gotoxy(1,05);display_LCD_string(""); gotoxy(1,07);display_LCD_string("G: ");green();//调用绿色通道并显示色彩值 gotoxy(1,011);s=int2str(date);display_LCD_string(s); gotoxy(1,014);display_LCD_string(""); gotoxy(2,00);display_LCD_string("B: ");blue();//调用蓝色通道并显示色彩值 gotoxy(2,02);s=int2str(date);display_LCD_string(s); gotoxy(2,05);display_LCD_string(""); } } 五、测试方案及测试结果(含实验数据及结果分析) 5.1色彩识别的实验过程 事物是随时间变化而运动变化的,由于本系统对软硬件关联性要求很高,其整个实验过程中间变化过程很复杂,一般仿真无法实现。 本设计的实验过程很简单,具体操作如下: 首先将开发板接通电源,将色彩纸板放平,其次把设计中的颜色采集模块放在待测的纸板上,放正放平,最后用隔光较好的纸张或者盒子将颜色采集模块遮盖起来,然后用笔记录LCD显示的值,依次测量不同颜色的纸板并记录数据即可。 在实验过程中进行了多次的测量试验,记录的一些数据如下图5.1 图5.1实验数据 5.2实验结果分析 通过上面的实验仿真结果可以看出,如果被测物体的颜色中,红色成分比较多,那么在显示的输出结果中的R的值就大;同样的,如果绿色成分多,输出结果中的G的值就大,如果蓝色成分多,输出结果中的B的值就大。 表格最后一列给出了这些颜色值对应的色彩图像,而表格的第一列给出了标准的色彩图像,可以看出,实际测得值与标准值之间还存在着一定的误差,这些误差产生的原因有很多,其中之一就是外界干扰光的存在,其次因为传感器芯片对光的敏感性不同,此外可能的原因包括补光模块中的LED二极管发出的光不稳定,还可能因为物体对光的反射能力不同等等,所有的这些原因导致了在测量的过程中存在的误差在所难免,只有不断的改善,以达到减小误差的目的,所以本系统还有待更进一步的研究以改善整个系统。 六、工作小结(写收获与不足,各人在项目实施过程中工作内容及贡献值) 项目组成员工作内容及贡献值评估表 姓名 实际工作内容 贡献值 曾能樘 查找与题目相关的资料内容。 覃士运 画板,焊接电路。 黄演庆 搞好设计报告书 莫超胜 搞好设计报告书 崖金玲 和上两位一起协同搞好设计报告书 张兴 打孔,转印电路板 覃宗雷 腐蚀电路板 合计 关于贡献值的说明: (1)贡献值主要用来计算各同学在该设计中的个人成绩。 个人成绩=本小组设计成绩*个人贡献值*均衡系数 (2)项目组全体成员根据各成员对本项目的贡献度进行评估,个人贡献值最高不超150,全体成员总值不超600(组员7人的,总值不超650)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 传感器 设计 分析
![提示](https://static.bingdoc.com/images/bang_tan.gif)