颜色识别
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LCD1602的操作时序:
3.4系统软件设计
//颜色测量程序
void celiang()
{
//*********求R值************************************
timer_open();
tcs230_s2=0;
tcs230_s3=0;//选择红色滤光器
tcs230_en=0;
注意事项
1、颜色识别时要避免外界光线的干扰,否则会影响颜色识别的结果,最好把传感器、光源等放置在一个密闭、无反射的箱子中进行测试。
2、对光源没有特殊的要求,但是光源发出的光要尽量集中,否则会造成传感器之间的相互干扰。
3、当第1次使用TCS230时,或TCS230识别模块重启、更换光源等情况时,都需要进行白平衡调整。
【五】实验总结
在这一次实验过程之中,准备阶段是老师在上课的时候对颜色识别这个课题中最主要的芯片TCS230的讲解,在该芯片的介绍过程中,理解了TCS230芯片对颜色识别过程,首先是白平衡阶段,通过控制TCS230的引脚的状态从而选择滤波器,即告诉单片机当前光源下什么是白色以及白色中三基色的成分含量,在经过白平衡之后的到了各个基色的成分因子,之后便可以对其他颜色进行测量,得出该颜色RGB的值,推算出这个颜色是什么。通过这一次的实验,对TCS230这个芯片有了一个比较深入的了解。
从图1可知:当入射光投射到TCS230上时,通过光电二极管控制引脚S2、S3的不同组合,可以选择不同的滤波器;经过电流到频率转换器后输出不同频率的方波(占空比是50%),不同的颜色和光强对应不同频率的方波;还可以通过输出定标控制引脚S0、S1,选择不同的输出比例因子,对输出频率范围进行调整,以适应不同的需求。
//**************求绿红色因子***********************
timer_open();
tcs230_s2=1;
tcs230_s3=1;//选择绿色滤光器
timer_colse();
tcs230_en=1;
gyz=(TH1*256+TL1);//其实这里的比例因子应该为255/(TH1*256+TL1)
在颜色识别过程中,运用到了两个定时计数器,也是对该方面只是的一次较为全面的复习。包括定时技术器相应寄存器的配置、定时计数模式选择、定时计数器的起始与停止、以及定时器初值的计算等。
附录
LCD1602:
TCS203:
西安邮电大学光电系统嵌入式开发与应用实验成绩鉴定表
学生姓名
陈燕华
班级/学号
光电0902班/05094061
4、利用单片机显示颜色识别的结果。
【二】实验内容
本次实验以51单片机为主控芯片,结合颜色传感器TCS230芯片进行对物体颜色的识别。
实验器材
1、51开发板一套
2、TCS230颜色传感器
3、1602液晶显示屏
方案要求:
1.能够正确识别颜色,并将红、绿、蓝三色的频率值显示在液晶屏上(基本要求)。
2.完成上述实验内容后,根据RGB颜色的比例,显示出具体颜色(提高部分)。
tcs230_s2=0;
tcs230_s3=1;//选择蓝色滤光器
timer_colse();
bb=(unsigned long)(TH1*256+TL1)*255/byz;
if(bb>255)bb=255;//判断RGB值是否合法
//***********求G值**************************************
白平衡就是告诉系统什么是白色。从理论上讲,白色是由等量的红色、绿色和蓝色混合而成的;但实际上,白色中的三原色并不完全相等,并且对于TCS230的光传感器来说,它对这三种基本色的敏感性是不相同的,导致TCS230的RGB输出并不相等,因此在测试前必须进行白平衡调整,使得TCS230对所检测的"白色"中的三原色是相等的。进行白平衡调整是为后续的颜色识别作准备。在本装置中,白平衡调整的具体步骤和方法如下:将空的试管放置在传感器的上方,试管的上方放置一个白色的光源,使入射光能够穿过试管照射到TCS230上;根据前面所介绍的方法,依次选通红色、绿色和蓝色滤波器,分别测得红色、绿色和蓝色的值,然后就可计算出需要的3个调整参数。
}
通过以上连个程序既可以测量出被测物体的颜色中RBG的值。
【四】实验结果
1、按照原理图连接相应的芯片,程序上电运行时,首先将TCS230对准白色物体进行白平衡,白平衡结束时候LCD1602第一行显示R:255 G:255 B255第二行显示Color:White
2、测量待测物体颜色,将tcs230对准被测物体,LCD1602中显示相应的RGB值以及对应的颜色。
timer_open();
tcs230_s2=1;
tcs230_s3=1;//选择绿色滤光器
timer_colse();
tcs230_en=1;
gb=(unsigned long)(TH1*256+TL1)*255/gyz;
if(gb>255)gb=255;//判断RGB值是否合法
}
//白平衡程序
void baipingheng()
评阅教师姓名
靳鹏飞
职称
讲师
成绩
评语
评阅教师签字
年月日
{
//**************求取红色因子***********************
timer_open();
tcs230_s2=0;
tcs230_s3=0;//选择红色滤光器
tcs230_en=0;
timer_colse();
ryz=(TH1*256+TL1);//其实这里的比例因子应该为255/(TH1*256+TL1)
西安邮电大学
光电系统嵌入式开发与应用
实验报告
系部名称
:
光电子技术系
学生姓名
:
黄康生(05138032)
专业名称
:
光电信息科学与工程
班级
:wk.baidu.com
光电1302班
实习时间
:
2015年10月29日
实验报告
实验内容1:颜色分辨
【一】实验目的
实验目的
1、了解颜色传感器的组成及工作原理。
2、了解颜色传感器的基本特性。
3、掌握颜色传感器的应用。
timer_colse();
rb=(unsigned long)(TH1*256+TL1)*255/ryz;
if(rb>255)rb=255;//判断RGB值是否合法
//***********求B值**************************************
timer_open();
//**************求取蓝色因子***********************
timer_open();
tcs230_s2=0;
tcs230_s3=1;//选择蓝色滤光器
timer_colse();
byz=(TH1*256+TL1);//其实这里的比例因子应该为255/(TH1*256+TL1)
进行时间
2012年6月18日
成绩鉴定
学习内容(20分)
与教学任务计划结合程度(10分)
与专业培养结合程度(6分)
其它(4分)
实习评价
(20分)
实践能力(10分)
学习态度(6分)
学习纪律(4分)
报告鉴定
(60分)
报告内容与实践过程紧密结合(15分)
报告内容与教学计划内容紧密结合(15分)
报告质量(主题、结构、观点、逻辑、资料、字数30分)
在编写该颜色识别程序代码的过程中,有一次的运用到了LCD1602作为显示器件,在该次代码的编写过程中,考虑到LCD1602为常用显示器件,于是特意编写好了一个1602.h以及1602.c两个文件,在每次需要使用的时候直接调用这些显示函数既可以使用LCD1602显示,大大的节省了编程时候所需要的时间,提高了效率。
当TCS230识别颜色时,就用这3个参数对所测颜色的R、G和B进行调整。这里有两种方法来计算调整参数:1、依次选通三颜色的滤波器,然后对TCS230的输出脉冲依次进行计数。当计数到255时停止计数,分别计算每个通道所用的时间,这些时间对应于实际测试时TCS230每种滤波器所采用的时间基准,在这段时间内所测得的脉冲数就是所对应的R、G和B的值。2、设置定时器为一固定时间(例如10ms),然后选通三种颜色的滤波器,计算这段时间内TCS230的输出脉冲数,计算出一个比例因子,通过这个比例因子可以把这些脉冲数变为255。在实际测试时,室外同样的时间进行计数,把测得的脉冲数再乘以求得的比例因子,然后就可以得到所对应的R、G和B的值。
S0、S1用于选择输出比例因子或电源关断模式;S2、S3用于选择滤波器的类型;OE反是频率输出使能引脚,可以控制输出的状态,当有多个芯片引脚共用微处理器的输出引脚时,也可以作为片选信号,OUT是频率输出引脚,GND是芯片的接地引脚,VCC为芯片提供工作电压,表1是S0、S1及S2、S3的可用组合。
3.2.2白平衡和颜色识别原理
3.3显示模块设计
数字显示电路采用LCD1602显示模块。通过该模块可以灵活的显示颜色RBG的值以及所测量的是何种颜色,LCD1602与单片机连接图如下所示:
LCD1602的使用参照其资料的时序图以及控制指令对LCD1602进行读写操作。所需要显示的数字与字符参照字模表,从而显示想要的字符。显示字符的位置根据每一个显示格的地址,给相应的显示格地址写入字模既可以在对应位置显示出想要显示的字符或数字。
【三】实施方案
3.1系统总体电路
本电路由2部分组成:光电检测电路、数字显示电路。通过颜色传感器TCS230测量待测物体的RGB的值,在根据RGB的值进行判断物体的颜色,通过LCD1602显示出当前被测物体的RGB值以及被测物体的颜色。
颜色识别系统框图
3.2光电检测电路
3.2.1 TCS230芯片
光电检测模块采用TCS230芯片,TCS230是TAOS公司推出的可编程彩色光到频率的转换器,它把可配置的硅光电二极管与电流频率转换器集成在一个单一的CMOS电路上,同时在单一芯片上集成了红绿蓝(RGB)三种滤光器,TCS230的输出信号是数字量,可以驱动标准的TTL或CMOS逻辑输入,因此可直接与微处理器或其他逻辑电路相连接,由于输出的是数字量,并且能够实现每个彩色信道10位以上的转换精度,因而不再需要A/D转换电路,使电路变得更简单,图1是TCS230的引脚和功能框图。
3.4系统软件设计
//颜色测量程序
void celiang()
{
//*********求R值************************************
timer_open();
tcs230_s2=0;
tcs230_s3=0;//选择红色滤光器
tcs230_en=0;
注意事项
1、颜色识别时要避免外界光线的干扰,否则会影响颜色识别的结果,最好把传感器、光源等放置在一个密闭、无反射的箱子中进行测试。
2、对光源没有特殊的要求,但是光源发出的光要尽量集中,否则会造成传感器之间的相互干扰。
3、当第1次使用TCS230时,或TCS230识别模块重启、更换光源等情况时,都需要进行白平衡调整。
【五】实验总结
在这一次实验过程之中,准备阶段是老师在上课的时候对颜色识别这个课题中最主要的芯片TCS230的讲解,在该芯片的介绍过程中,理解了TCS230芯片对颜色识别过程,首先是白平衡阶段,通过控制TCS230的引脚的状态从而选择滤波器,即告诉单片机当前光源下什么是白色以及白色中三基色的成分含量,在经过白平衡之后的到了各个基色的成分因子,之后便可以对其他颜色进行测量,得出该颜色RGB的值,推算出这个颜色是什么。通过这一次的实验,对TCS230这个芯片有了一个比较深入的了解。
从图1可知:当入射光投射到TCS230上时,通过光电二极管控制引脚S2、S3的不同组合,可以选择不同的滤波器;经过电流到频率转换器后输出不同频率的方波(占空比是50%),不同的颜色和光强对应不同频率的方波;还可以通过输出定标控制引脚S0、S1,选择不同的输出比例因子,对输出频率范围进行调整,以适应不同的需求。
//**************求绿红色因子***********************
timer_open();
tcs230_s2=1;
tcs230_s3=1;//选择绿色滤光器
timer_colse();
tcs230_en=1;
gyz=(TH1*256+TL1);//其实这里的比例因子应该为255/(TH1*256+TL1)
在颜色识别过程中,运用到了两个定时计数器,也是对该方面只是的一次较为全面的复习。包括定时技术器相应寄存器的配置、定时计数模式选择、定时计数器的起始与停止、以及定时器初值的计算等。
附录
LCD1602:
TCS203:
西安邮电大学光电系统嵌入式开发与应用实验成绩鉴定表
学生姓名
陈燕华
班级/学号
光电0902班/05094061
4、利用单片机显示颜色识别的结果。
【二】实验内容
本次实验以51单片机为主控芯片,结合颜色传感器TCS230芯片进行对物体颜色的识别。
实验器材
1、51开发板一套
2、TCS230颜色传感器
3、1602液晶显示屏
方案要求:
1.能够正确识别颜色,并将红、绿、蓝三色的频率值显示在液晶屏上(基本要求)。
2.完成上述实验内容后,根据RGB颜色的比例,显示出具体颜色(提高部分)。
tcs230_s2=0;
tcs230_s3=1;//选择蓝色滤光器
timer_colse();
bb=(unsigned long)(TH1*256+TL1)*255/byz;
if(bb>255)bb=255;//判断RGB值是否合法
//***********求G值**************************************
白平衡就是告诉系统什么是白色。从理论上讲,白色是由等量的红色、绿色和蓝色混合而成的;但实际上,白色中的三原色并不完全相等,并且对于TCS230的光传感器来说,它对这三种基本色的敏感性是不相同的,导致TCS230的RGB输出并不相等,因此在测试前必须进行白平衡调整,使得TCS230对所检测的"白色"中的三原色是相等的。进行白平衡调整是为后续的颜色识别作准备。在本装置中,白平衡调整的具体步骤和方法如下:将空的试管放置在传感器的上方,试管的上方放置一个白色的光源,使入射光能够穿过试管照射到TCS230上;根据前面所介绍的方法,依次选通红色、绿色和蓝色滤波器,分别测得红色、绿色和蓝色的值,然后就可计算出需要的3个调整参数。
}
通过以上连个程序既可以测量出被测物体的颜色中RBG的值。
【四】实验结果
1、按照原理图连接相应的芯片,程序上电运行时,首先将TCS230对准白色物体进行白平衡,白平衡结束时候LCD1602第一行显示R:255 G:255 B255第二行显示Color:White
2、测量待测物体颜色,将tcs230对准被测物体,LCD1602中显示相应的RGB值以及对应的颜色。
timer_open();
tcs230_s2=1;
tcs230_s3=1;//选择绿色滤光器
timer_colse();
tcs230_en=1;
gb=(unsigned long)(TH1*256+TL1)*255/gyz;
if(gb>255)gb=255;//判断RGB值是否合法
}
//白平衡程序
void baipingheng()
评阅教师姓名
靳鹏飞
职称
讲师
成绩
评语
评阅教师签字
年月日
{
//**************求取红色因子***********************
timer_open();
tcs230_s2=0;
tcs230_s3=0;//选择红色滤光器
tcs230_en=0;
timer_colse();
ryz=(TH1*256+TL1);//其实这里的比例因子应该为255/(TH1*256+TL1)
西安邮电大学
光电系统嵌入式开发与应用
实验报告
系部名称
:
光电子技术系
学生姓名
:
黄康生(05138032)
专业名称
:
光电信息科学与工程
班级
:wk.baidu.com
光电1302班
实习时间
:
2015年10月29日
实验报告
实验内容1:颜色分辨
【一】实验目的
实验目的
1、了解颜色传感器的组成及工作原理。
2、了解颜色传感器的基本特性。
3、掌握颜色传感器的应用。
timer_colse();
rb=(unsigned long)(TH1*256+TL1)*255/ryz;
if(rb>255)rb=255;//判断RGB值是否合法
//***********求B值**************************************
timer_open();
//**************求取蓝色因子***********************
timer_open();
tcs230_s2=0;
tcs230_s3=1;//选择蓝色滤光器
timer_colse();
byz=(TH1*256+TL1);//其实这里的比例因子应该为255/(TH1*256+TL1)
进行时间
2012年6月18日
成绩鉴定
学习内容(20分)
与教学任务计划结合程度(10分)
与专业培养结合程度(6分)
其它(4分)
实习评价
(20分)
实践能力(10分)
学习态度(6分)
学习纪律(4分)
报告鉴定
(60分)
报告内容与实践过程紧密结合(15分)
报告内容与教学计划内容紧密结合(15分)
报告质量(主题、结构、观点、逻辑、资料、字数30分)
在编写该颜色识别程序代码的过程中,有一次的运用到了LCD1602作为显示器件,在该次代码的编写过程中,考虑到LCD1602为常用显示器件,于是特意编写好了一个1602.h以及1602.c两个文件,在每次需要使用的时候直接调用这些显示函数既可以使用LCD1602显示,大大的节省了编程时候所需要的时间,提高了效率。
当TCS230识别颜色时,就用这3个参数对所测颜色的R、G和B进行调整。这里有两种方法来计算调整参数:1、依次选通三颜色的滤波器,然后对TCS230的输出脉冲依次进行计数。当计数到255时停止计数,分别计算每个通道所用的时间,这些时间对应于实际测试时TCS230每种滤波器所采用的时间基准,在这段时间内所测得的脉冲数就是所对应的R、G和B的值。2、设置定时器为一固定时间(例如10ms),然后选通三种颜色的滤波器,计算这段时间内TCS230的输出脉冲数,计算出一个比例因子,通过这个比例因子可以把这些脉冲数变为255。在实际测试时,室外同样的时间进行计数,把测得的脉冲数再乘以求得的比例因子,然后就可以得到所对应的R、G和B的值。
S0、S1用于选择输出比例因子或电源关断模式;S2、S3用于选择滤波器的类型;OE反是频率输出使能引脚,可以控制输出的状态,当有多个芯片引脚共用微处理器的输出引脚时,也可以作为片选信号,OUT是频率输出引脚,GND是芯片的接地引脚,VCC为芯片提供工作电压,表1是S0、S1及S2、S3的可用组合。
3.2.2白平衡和颜色识别原理
3.3显示模块设计
数字显示电路采用LCD1602显示模块。通过该模块可以灵活的显示颜色RBG的值以及所测量的是何种颜色,LCD1602与单片机连接图如下所示:
LCD1602的使用参照其资料的时序图以及控制指令对LCD1602进行读写操作。所需要显示的数字与字符参照字模表,从而显示想要的字符。显示字符的位置根据每一个显示格的地址,给相应的显示格地址写入字模既可以在对应位置显示出想要显示的字符或数字。
【三】实施方案
3.1系统总体电路
本电路由2部分组成:光电检测电路、数字显示电路。通过颜色传感器TCS230测量待测物体的RGB的值,在根据RGB的值进行判断物体的颜色,通过LCD1602显示出当前被测物体的RGB值以及被测物体的颜色。
颜色识别系统框图
3.2光电检测电路
3.2.1 TCS230芯片
光电检测模块采用TCS230芯片,TCS230是TAOS公司推出的可编程彩色光到频率的转换器,它把可配置的硅光电二极管与电流频率转换器集成在一个单一的CMOS电路上,同时在单一芯片上集成了红绿蓝(RGB)三种滤光器,TCS230的输出信号是数字量,可以驱动标准的TTL或CMOS逻辑输入,因此可直接与微处理器或其他逻辑电路相连接,由于输出的是数字量,并且能够实现每个彩色信道10位以上的转换精度,因而不再需要A/D转换电路,使电路变得更简单,图1是TCS230的引脚和功能框图。