基于TCS3200颜色识别的自动分拣系统毕业设计论文Word格式文档下载.docx
《基于TCS3200颜色识别的自动分拣系统毕业设计论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于TCS3200颜色识别的自动分拣系统毕业设计论文Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。
伴随着不同的数字化技术的发展以及步进电机本身技术的提高,步进电机将会在更多的领域得到应用。
3.原理
步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,它的的驱动电路根据控制信号工作,控制信号由单片机产生。
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,控制换相顺序,即通电控制脉冲必须严格按照一定顺序分别控制各相的通断。
通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的。
控制步进电机的转向,即给定工作方式正序换相通电,步进电机正转,若按反序通电换相,则电机就反转。
控制步进电机的速度,即给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步,两个脉冲的间隔越短,步进电机就转得越快。
同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
4.实物
(二)、颜色传感器TCS3200
1.结构框图
从图1可知:
当入射光投射到TCS230上时,通过光电二极管控制引脚S2、S3的不同组合,可以选择不同的滤波器;
经过电流到频率转换器后输出不同频率的方波(占空比是50%),不同的颜色和光强对应不同频率的方波;
还可以通过输出定标控制引脚S0、S1,选择不同的输出比例因子,对输出频率范围进行调整,以适应不同的需求。
图1TCS230的引脚和功能框图表1S0、S1及S2、S3的组合选项
下面简要介绍TCS230芯片各个引脚的功能及它的一些组合选项。
S0、S1用于选择输出比例因子或电源关断模式;
S2、S3用于选择滤波器的类型;
OE是频率输出使能引脚,可以控制输出的状态,当有多个芯片引脚共用微处理器的输入引脚时,也可以作为片选信号;
OUT是频率输出引脚,GND是芯片的接地引脚,VCC为芯片提供工作电压。
表1是S0、S1及S2、S3的可用组合。
2.原理
由上面的介绍可知,这种可编程的彩色光到频率转换器适合于色度计测量应用领域,如彩色打印、医疗诊断、计算机彩色监视器校准以及油漆、纺织品、化妆品和印刷材料的过程控制和色彩配合。
下面以TCS230在液体颜色识别中的应用为例,介绍它的具体使用。
首先了解一些光与颜色的知识。
(1)三原色的感应原理
通常所看到的物体颜色,实际上是物体表面吸收了照射到它上面的白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应。
白色是由各种频率的可见光混合在一起构成的,也就是说白光中包含着各种颜色的色光(如红R、黄Y、绿G、青V、蓝B、紫P)。
根据德国物理学家赫姆霍兹(Helinholtz)的三原色理论可知,各种颜色是由不同比例的三原色(红、绿、蓝)混合而成的。
(2)TCS3200识别颜色的原理
由三原色感应原理可知,如果知道构成各种颜色的三原色的值,就能够知道所测试物体的颜色。
对于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.应用中需要注意的问题
(1)颜色识别时要避免外界光线的干扰,否则会影响颜色识别的结果。
最好把传感器、光源等放置在一个密闭、无反射的箱子中进行测试。
(2)对光源没有特殊的要求,但是光源发出的光要尽量集中,否则会造成传感器之间的相互干扰。
(3)当第1次使用TCS230时,或TCS230识别模块重启、更换光源等情况时,都需要进行白平衡调整。
4.引脚功能
TCS3200的引脚排列如图2所示,各管脚的功能描述见表1所列。
表1TCS230管脚功能
引脚号
符号
类型
功能说明
1
S0
I
输出频率分频系数选择输入端
2
S1
3
OE
输入频率使能端。
低电平有效
4
GND
电源地
5
VDD
电影电压
6
OUT
O
输出频率(fo)
7
S2
光电二极管类型选择输入端
8
S3
(三)、单片机STC89C52
1.功能概述
AT89C52提供以下标准功能:
4K字节FLASH闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个向量两级中断结构,一个全双工串行通讯口,内置一个精密比较器,片内振荡器及时钟电路,同时AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的工作模式,空闲方式停止CPU的工作,但允许RAM,定时计数器,串行通信及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作,并禁止其它所有部件工作直到下一个硬件复位。
2.引脚功能及其分布图
VCC:
电源电压;
GND:
地;
P0口:
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写1可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在FLASH编程时,P0口接受指令字节,而在程序效验时,输出指令字节,效验时,要求外接上拉电阻。
P1口:
P1口是一个带有内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写1,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉底时会输出一个电流。
FLASH编程和程序效验期间,P1接收低8位地址。
P2口:
P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑们电路。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@RI)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。
FLASH编程或效验时,P2亦接收高位地址和其它控制信号。
P3口:
P3口是一个带有内部上拉电阻的8位双向I/O口,P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑们电路。
P3口除了作为一般的I/O口线外,更重要的用途是他的第二个功能,如下表所示:
表1P3口AT89C2051特殊功能
端口引脚
功能特性
P3.0
RXD(串行口输入)
P3.1
TXD(并行口输入)
P3.2
INT0(外部中断0)
P3.3
INT1(外部中断1)
P3.4
T0(定时计数外部输入0)
P3.5
T1(定时计数外部输入0)
P3.6
(外部数据存储器写选通)
P3.7
(外部数据存储器读选通)
P3口还接收一些用于FLASH闪速存储器编程和程序效验的控制信号。
RST:
复位输入。
其引脚一旦变成两个机器周期以上的高电平,所有的I/O口都将复位到1状态,当振荡器正在工作时,持续两个机器周期以上高电平便可完成复位,每个机器周期为12个振荡时钟周期。
EA/VPP:
外部访问允许,欲使CPU仅访问外部程序存储器(0000H—FFFFH),EA端必须保持低电平接地,需注意的是:
如果加密位LB1被编程,复位是内部会锁存EA端状态。
如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。
FLASH存储器编程时,该引脚加上+12V的编程允许电源VPP,当然这必须是该器件是使用12V编程电压VPP。
XTAL1:
振荡器反相放大器的及内部时钟发生器的输入端。
XTAL2:
振荡器反相放大器输出端
(四)、液晶显示1602
1.简介
工业字符型液晶,能够同时显示16x02即32个字符。
(16列2行)
注:
为了表示的方便,后文皆以1表示高电平,0表示第电平。
2.管脚功能
第1脚:
VSS为地电源
第2脚:
VDD接5V正电源
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光电源正极
第16脚:
背光电源负极
3.操作控制
操作控制表
操作
读状态
写指令
读数据
写数据
输入
RS=0,RW=1,E=1
RS=0,RW=0,
D0~7=指令码,E=H脉冲
RS=1,RW=1,E=1
RS=1,RW=0,
D0~7=数据,E=H脉冲
4.实物
(五)、语音播报WT588D
1.功能概述
WT588D语音芯片是一款功能强大的可重复擦除烧写的语音单片机芯片。
WT588D让语音芯片不再为控制方式而寻找合适的外围单片机电路,高度集成的单片机技术足于取代复杂的外围控制电路。
配套WT588DVoiceChip上位机操作软件可随意更换WT588D语音单片机芯片的任何一种控制模式,把信息下载到SPI-Flash上即可。
软件操作方式简洁易懂,撮合了语音组合技术,大大减少了语音编辑的时间。
完全支持在线下载,即便是WT588D通电的情况下,一样可以通过下载器给关联的SPI-Flash下载信息,给WT588D语音芯片电路复位一下,就能更新到刚下载进来的控制模式。
2.引脚分布及实物
(六)、霍尔开关传感器
1.原理
霍尔开关集成电路应用霍尔效应原理,采用半导体集成技术制造的磁敏电路,它是由电压调整器、霍尔电压发生器、差分放大器、史密特触发器,温度补偿电路和集电极开路的输出级组成的磁敏传感电路,其输入为磁感应强度,输出是一个数字电压讯号。
2.电磁特性
3.产品特点及应用
产品特点
.体积小
.灵敏度高
.响应速度快
.温度性能好
.精确度高
.可靠性高
典型应用
.无触点开关
.汽车点火器
.刹车电路
.位置、转速检测与控制
.安全报警装置
.纺织控制系统
4.实物
(七)、红外线
1.工作原理
利用红外线的物理性质来进行测量的传感器。
红外线又称红外光,它具有反射、折射、散射、干涉、吸收等性质。
任何物质,只要它本身具有一定的温度(高于绝对零度),都能辐射红外线。
红外线传感器测量时不与被测物体直接接触,因而不存在摩擦,并且有灵敏度高,反应快等优点。
2.主要应用及实物
红外线传感器常用于无接触温度测量,气体成分分析和无损探伤,在医学、军事、空间技术和环境工程等领域得到广泛应用。
例如采用红外线传感器远距离测量人体表面温度的热像图,可以发现温度异常的部位,及时对疾病进行诊断治疗(见热像仪);
利用人造卫星上的红外线传感器对地球云层进行监视,可实现大范围的天气预报;
采用红外线传感器可检测飞机上正在运行的发动机的过热情况等。
(八)、其它
固定支架、红绿蓝白三种小球、电源线、串口转接线、简易装置
三、系统软件示意
1.系统示意图
2.软件流程图
3.算法流程图
4.编程软件
使用KeiluVision2、STC_ISP_V479等,程序如见“附录”。
5.原理图及PCB
6.核心原理
TCS3200扫描控制模块,频率测量模块,按键扫描模块、显示控制模块和电机控制模块,其中核心模块为频率测量模块。
根据原理部分的分析本设计采用了测周期法完成频率测量的目的,即在固定数量的被测信号周期内对标准时钟计数的方式测量频率,公式如下:
f=(N/counter)*F。
其中,N:
被测信号计数脉冲数;
f:
被测信号频率;
counter:
标准时钟计数值;
F。
:
标准时钟频率
四、实验结论
硬件、软件测试分析
1、步进电机没有回到原点:
霍尔传感器出现错误
2、红外线没有检测到小球:
传感器位子没有对准
3、小球语音报错:
采样出错,识别出错
4、分拣位子送错:
步进电机脉冲选择有误
5、软件程序没有输入到单片机里
6、如无上述现象,在工作台上放置本装置,实现
功能,即本设计调试正确
五、致谢
从学校中的理论知识到实训中的实践操作,我们将有更充分的实践去挑战我们的工作,虽然短暂,锻炼了我们动手的能力,同时也锻炼了我们的团队合作精神。
我要感谢我们的学校给予我这样一个锻炼的机会,感恩在我成长路上帮助过我的所有老师!
感谢我的导师侯秀丽,她严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;
她循循善诱的教导和不拘一格的思路给予我无尽的启迪。
感谢我的实训老师,这片论文的每个实验细节和每个数据,都离不开你的细心指导。
而你开朗的个性和宽容的态度,帮助我能够很快的融入我们这个新的实验室
六、附录
#include"
reg52.h"
comdef.h"
TCS3200.h"
step.h"
key.h"
LCD1602.h"
voice.c"
/*系统中断说明:
外部中断0:
步进电机回原点触发霍尔传感器:
输出接P32颜色识别的OUT接P35.
定时器0、1:
定时器0产生1ms的计数周期,定时器1外部计数模式,配合完成计算频率
外部中断1:
独立按键*/
externuint8STEPDELAY;
externuint16RGB[3][3];
uint8Mode=0;
//初始化采样标准值时,用于选择当前对哪种颜色进行采样1:
Red2:
Green3:
Blue
sbitBallExit=P3^3;
voidDelay(uint16m)
{uint8base=120;
while(m--)
for(base=120;
base;
base--);
}
main()
{uint8Ball=0,Count=10;
uint16R=0,G=0,B=0;
EX0=1;
/*外部中断0允许*/
PX0=0;
/*外部中断0优先级低*/
IT0=1;
/*边沿触发方式中断*/
EX1=0;
/*外部中断1允许*/
PX1=0;
/*外部中断1优先级低*/
IT1=1;
TCS3200_Init();
LCD_Init();
EA=1;
Step_Init();
//回原点
Delay(1000);
//while
(1)Step(STEPBACKWARD,FULLSTEP,29000/18);
//电机测试
LCD_Disp_String(0,0,"
Normal"
);
while(Mode<
4){
if(KEY1==Key_Scan()){
while(KEY1==Key_Scan());
Mode++;
switch(Mode){
case1:
LCD_Disp_String(0,0,"
RedBall"
Read_Voice(7);
Read_Voice
(1);
Delay(1000);
break;
//请放入红球
case2:
GreenBall"
Read_Voice
(2);
//请放入绿球
case3:
BlueBall"
Read_Voice(7);
Read_Voice(3);
//请放入篮球
}
}
if(KEY2==Key_Scan()){Read_Voice(6);
//系统正在为你采样
while(KEY2==Key_Scan());
if(Mode){
//每个球采样10次,求平均值
while(Count--){
Prameter_Calibration(Mode-1);
R+=RGB[Mode-1][0];
G+=RGB[Mode-1][1];
B+=RGB[Mode-1][2];
Delay(10);
}
RGB[Mode-1][0]=R/10;
RGB[Mode-1][1]=G/10;
RGB[Mode-1][2]=B/10;
R=0;
G=0;
B=0;
Count=10;
LCD_Disp_Byte_Dec(1,1,RGB[Mode-1][0]);
LCD_Disp_Byte_Dec(4,1,RGB[Mode-1][1]);
LCD_Disp_Byte_Dec(7,1,RGB[Mode-1][2]);
}
LCD_Clear();
InitOk"
Read_Voice(8);
//采样结束
//UART_Send_String("
SystemstartupOk\r\n"
19);