1、学 号09 毕 业 论 文(设计)课 题 基于颜色识别的自动分拣系统设计学生姓名 石 亚 娟 系 别 电气工程系 专业班级 通信工程 一 班 指导教师 崔 雪 英 二 一 三 年 六 月目 录摘 要IAbstractII第一章 绪论- 1 -1.1 颜色分拣系统设计的意义- 1 -1.2系统示意图- 1 -第二章 系统的硬件设计- 2 -2.1 单片机最小系统- 2 -2.1.1 结构及原理图- 2 -2.1.2功能- 2 -2.2转轮驱动的电路设计及其功能- 3 -2.2.1步进电机原理及结构- 3 -2.2.2步进电机的功能- 4 -2.2.3霍尔开关- 4 -2.3颜色识别的硬件设计-
2、4 -2.3.1颜色传感器TCS3200的原理、结构及功能- 4 -2.3.1红外传感器的原理及功能- 6 -2.4显示器的设计- 6 -2.4.1液晶显示器LCD1602- 6 -2.5语音播报系统设计- 7 -2.6系统的电路原理图及实物图- 9 -第三章 PCB图的设计- 11 -3.1结果及分析- 12 -第四章 控制算法及软件设计- 13 -4.1主程序设计- 13 -4.2 模块子程序设计- 17 -4.2.1步进电机驱动函数- 17 -4.2.2颜色分拣系统的程序- 18 -4.2.3按键程序- 22 -参考文献- 22 -致 谢- 24 -摘 要颜色自动分拣系统是一个以单片机最
3、小系统为核心并由:转轮驱动系统、颜色识别系统、显示系统、语音播报等系统组成,其主要作用是按需求将杂乱的产品有序的分离开来。系统主要是根据颜色组成的RGB值来区分小球的颜色,不同颜色的小球其RGB值不同,这是根据自然界的三基色原理来实现的。当系统识别出小球颜色后会将小球送至相应的位置,没有识别的小球都会归类为废品。分拣系统在工业生产应用中的作用使得它越来越得到各个行业的青睐,随着科学的进步,信息时代的到来,各种仪器仪表越来越趋于人性化、数字化、智能化。为了提高生产效率, 将产品生产智能化、机械化,将人们从体力劳动中解放出来。而这其中颜色自动分拣系统也广泛的在各行各业的生产过程起着重要的作用。像制
4、药行业中将不同颜色的药丸分离开来等,只要是涉及有关将混乱的产品分类都可以用到颜色自动分拣系统。关键词: 颜色传感器 红外线传感器 霍尔开关 语音芯片WTV020 步进电机Abstract color automatic sorting system is one of the single chip microcomputer minimum system as the core and by: wheel drive system, color identification system, display system, speech system, its main role is in
5、accordance with the requirements will be messy separation of products ordered. System is mainly according to the color of RGB value to distinguish the color of the ball, different color balls its RGB values, this is according to the principle of the three primary colors of nature. When the system wi
6、ll identify the ball after the color balls sent to the corresponding position, no recognition balls will be classified as waste.The role of sorting system applied in industrial production makes it more and more get the favour of various industries, with the progress of science, the arrival of inform
7、ation age, various kinds of instrument is more and more tend to humanization, digital and intelligent. In order to improve the production efficiency, will be intelligent, mechanized production, people will be liberated from manual labor. Which color automatic sorting system is also widely in all wal
8、ks of life plays an important role in the production process. Like the pharmaceutical industry in different colors of pill separation, etc., as long as it is on the chaos of the product classification can be used color automatic sorting system. Keyword:Color sorting color sensor Hall-effect switch v
9、oice chipstepping motor第一章 绪论1.1 颜色分拣系统设计的意义 系统主要是根据颜色组成的RGB值来区分小球的颜色,不同颜色的小球其RGB值不同,这是根据自然界的三基色原理来实现的。当系统识别出小球颜色后会将小球送至相应的位置,没有识别的小球都会归类为废品。具体操作如下:通过红外线传感器检测是否有小球存在,通过颜色传感器检测出小球的颜色的RGB值,并将信号发送给单片机,单片机给步进电机脉冲,并控制语音播报系统播报,步进电机旋转相应角度,把小球送至相应的位置,霍尔开关使步进电机回归原点。而这其中颜色自动分拣系统也广泛的在各行各业的生产过程起着重要的作用。像制药行业中将不同
10、颜色的药丸分离开来等,只要是涉及有关将混乱的产品分类都可以用到颜色自动分这为以后工业生产全自动化更推进了一步。1.2系统示意图步进电机驱动源 单片机STC89C52供电及电源语音播报系统控制信号复位霍尔开关及红外线传感器串口通信反馈信号液晶显示采 样两个按键TCS3200识别采样功能选择图1-1系统工作原理示意图颜色识别系统是通过事先进行采样,将红、黄、绿、蓝四种颜色的RGB值得范围记下,在实际的操作中随即将一个颜色的小球放入,红外传感器擦埃及小球的颜色传入系统,系统根据判断向步进电机发出指令,步进电机旋转相应的角度,将小球送入相应颜色的区域,完成颜色的分拣。第二章 系统的硬件设计颜色自动分拣
11、系统是一个以单片机最小系统为核心并由:转轮驱动系统、颜色识别系统、显示系统、语音播报等系统组成,其主要作用是按需求将杂乱的产品有序的分离开来。系统主要是根据颜色组成的RGB值来区分小球的颜色,不同颜色的小球的RGB值是不一样的,这是根据自然界的三基色原理来实现的。当系统识别出小球颜色后会将小球送至相应的位置,没有识别的小球都会归类为废品。2.1 单片机最小系统2.1.1 结构及原理图本系统使用的单片机是STC98C52,它的基本结构包括三个十六位的定时计数器和一个六向量两级中断结构以及一个全双工串行通讯口,内置一个精密比较器和片内振荡器以及时钟电路。图2-1单片机原理图引脚定义 :引脚编号引脚
12、定义引脚编号引脚定义40号引脚VCC电源电压9号引脚RST复位输入20号引脚VSS接地18号引脚XTAL2振荡器反相放大器的输入端P0端口(3932号引脚)8位双向I/O口30号引脚ALE地址锁存控制信号ALE是访问外部程序存储器时,锁存低8位地址的输出脉冲P1端口(18号引脚)带内部上拉电阻的8位双向I/O口29号引脚外部程序存储器选通信号是外部程序存储器选通信号P2端口TTL输入31号引脚访问外部程序存储器控制信号P3端口(1017引脚)带内部上拉电阻的8位双向I/O端口19号引脚振荡器反相放大器和内部时钟发生电路的输入端表2-1单片机引脚作用2.1.2功能STC89C52单片机作为本系统
13、的核心,它它具有功能齐全、能够抗干扰、耗能低、可靠性高,超低价,无法解密等优点。相比较其他芯片来说比较适合学生试验所用,故采用此单片机作为核心控制芯片。它具有4个输入输出端口,分别为PORT0、PROT1、PROT2、PROT3,其中P0口是一组8位漏极开路型双向IO口,校验时,要求接上拉电阻。其他三个内部有30K的电阻,所以不用再外接电阻,其工作电压为3.3V5.5V(5V单片机)/2.0V3.8V(3V单片机)。此单片机具有6个中断,其中包括三个定时器中断,二个外部中断,一个串口中断,为全双工通信口。用户应用程序的空间有8K字节,芯片上集成RAM为512字节,通用的32个I/O口。2.2转
14、轮驱动的电路设计及其功能 2.2.1步进电机原理及结构 步进电动机:他是因为其转动的角度是固定的角度,一步一步的旋转而得名的。当它收到一个脉冲,步进电机就旋转一个角度,每一步旋转的角度都是固定的。 步进电机分为:永磁式步进电机、反应式步进电机和混合式步进电机。永磁式步进电机一般为两相,步进的角度以及体积都比较小,步进的角度一般为7.5度 或着15度;反应式步进电机一般为三相,步进的角度一般为1.5度;混合式步进电机是指结合了永磁式步进电机和反应式步进电机的优点,其可分为两相和五相 ,两相步进角度一般为1.8度而五相步进角度一般为 0.72度。考虑到成本等方面的原因,本系统中选用了步进电机。 驱
15、动器:步进电机的工作电源是12V,但是单片机的工作电源只有5V,因此要使步进电机转动则需要一个驱动。本系统选的是驱动器THB7128,当系统对小球进行颜色分拣的时候,单片机给驱动器一个命令,驱动器驱动步进电机开始运动。实物图如下:图2-2步进电机驱动原理图2.2.2步进电机的功能在本系统中步进电机的功能是在系统识别出小球的颜色后,单片机给步进电机一个脉冲,步进电机则根据这个脉冲开始转动相应的角度,从而将小球准确的送入到与他颜色相符和的位置,从而完成颜色的分拣。2.2.3霍尔开关1、 结构及原理霍尔开关电路是利用霍尔原理制成的。霍尔效应描述的是:一块带有电流的金属或半导体薄片垂直地放在磁场中时,
16、薄片的两端就会产生电位差。图2-3霍尔开关实物图2、功能当步进电机把已经识别出颜色的小球传送到指定的位置后步进电机仍然会继续运动,当到达起始位置霍尔开关电路把电磁场的变化转化成一个触发电平,单片机接收到这个触发电平后使步进电机停止运转,步进电机回位。2.3颜色识别的硬件设计2.3.1颜色传感器TCS3200的原理、结构及功能 1、结构及功能颜色传感器TCS3200是通过对放入的小球的颜色RGB值范围的取值,判断出小球的颜色,再将信号发送给单片机,单片机将脉冲信号发送给步进电机,步进电机将小球送到指定的区域。其结构和各引脚的功能如下图所示:图2-4颜色传感器结构图S0S1输出频率定标S2S3滤波
17、器类型LL关断电源LL红色LH20%LH蓝色HL20%HL无HH100%HH绿色引 脚 号符 号类 型功 能 说 明1S0I输出频率分频系数选择输入端2S1I3OEI输入频率使能端。低电平有效4GND电源地5VDD电影电压6OUTO输出频率(fo)7S2I光电二极管类型选择输入端8S3I表2-2颜色传感器引脚功能2、原理 颜色传感器TCS3200:主要是根据颜色组成的RGB值来区分小球的颜色,不同颜色的小球其RGB值不同,这是根据自然界的三基色原理来实现的。TCS3200的滤波器只允许某一种特定的原色通过,当知道某种颜色的RGB值时,TCS3200就选定相对应的滤波器。 S0、S1是用来选择输
18、出比例因子或电源关断式; S2、S3是用来选择滤波器的类型。对于颜色传感器TCS3200来说,当选定一种颜色滤波器时,它是只允许某一种特定的原色通过的。其他原色都被阻止通过该虑波器。而RGB值是由三原色的值构成的,当知道这三个原色的值时,就可以分析投射到颜色传感器TCS230传感器上的光的颜色。3、注意事项 (1)在采样过程和颜色识别过程的环境应尽量保持一致,尽量减少光线对实验的干扰。 (2)在实验中应尽量减少光线对实验的影响,尽量保持光线的稳定。 (3)在第一次实验时、光线有改变时,都需要重新进行采样。图2-5红外传感器实物图图2-6红外传感器原理图2.3.1红外传感器的原理及功能1、原理红
19、外传感系统是用红外线做为介质的一个测量系统,红外传感器的工作原理是利用红外线的物理性质来进行测量的,其主要是由发射源和接收器两部分组成。2、功能 在本系统中红外传感器主要是用于检测是否有小球的存在。其优点是体积小,性能卓越。2.4显示器的设计2.4.1液晶显示器LCD16021、 原理液晶显示器的原理主要是利用液晶的物理特性,液晶分子本身是无法发光的,主要是通过背光源的照射来实现显示的,液晶显示器是由液晶分子折射背光源的光线来使液晶显示器呈现出不同的颜色,它是通过电压的有无对显示区域进行控制,有电就有显示,没有电就不能显示,这样就可以显示出图形。目前已广泛应用与我们的生活中,如:液晶电视,电脑
20、显示器等等。本系统中采用的是字符型液晶显示器LCD1602,字符型液晶显示器是一种专门用于显示字母、数字、符号等点阵式的液晶模块。颜色传感器采集出小球的颜色的RGB值并传送给单片机判别后,单片机控制液晶显示器以字母的形式将小球的颜色显示出来。其实物图和各引脚的功能如下图所示:图2-6显示器实物图图2-7显示器原理图编号符号引脚说明编号符号引脚说明1VSS电源接地9D2数据2VDD正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极表2-3显示器引脚功能2.
21、5语音播报系统设计图2-8语音芯片原理图1、原理 语音芯片是将语音信号转化为数字信号,存储在语音芯片的存储卡中,再通过语音模块的电路将存储卡中的数字信号还原成语音信号。颜色传感器识别出小球的颜色后,将小球的颜色信息传给单片机,单片机发出信号触发语音播报模块进行语音播报小球的颜色。2、功能 在本系统中,语音芯片是将颜色传感器识别出的颜色通过单片机发出的信号触发其语音播报模块将所识别的颜色播报出来,例如:颜色传感器识别到的是红色,那么语音播报系统播报的是“这是一颗红色的小球”。其实和电路原理图如下所示:编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显
22、示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极表2-4语音芯片引脚功能2.6系统的电路原理图及实物图图2-9电路原理图 下图是颜色识别自动分拣系统的整体实物图,其工作流程是:将小球放入红外线传感器上,由颜色传感器识别其颜色,颜色识别后将信号传入单片机,单片机再将信号分别传给语音播报系统和步进电机,语音播报系统播报出该小球的颜色,步进电机转动相应的角度,将小球推至相应的位置,完成小球颜色的分拣过程。图2-10系统实物图 第三章 PCB图的设计本系统PCB图的设计是应用Protel
23、99SE设计的,其设计过程如下:(1)在protel 99se中将电路原理图画出,将每个元器件的封装填上。(2)根据要求选取电路板的尺寸。设置导线与焊盘之间的最小距离的步骤:执行“Design”菜单下的“Rules.”命令,在设计窗口内单击“rules classes”列表下的“安全间距”规则,即可设定不同节点导电图之间的最小距离。执行菜单命令设计/规则,左键单击该按钮,根据路由的设计要求、规则类规则(类)的设置参数。布线层对布线工作层进行设置:左键单击“特性”,在“布线工作层面设置”对话框的“PuleAttributes”选项中设置TodLayer为“NotUsed”设置B
24、ottomLayer为“Any”。选择“WidthConstraint”对地线线宽、电源线宽进行设置。(3)装入元件封装库的步骤:执行菜单命令Design/Add/RemoveLibrary,在“添加/删除元件库”对话框中选取所有元件所对应的元件封装库。(4)元器件布局的要求:元器件布局要根据电路板的节省原则和布线、连线的要求对元器件进行布局。要求尽量不要走底层布线。语音芯片的PCB图如下所示:系统PCB图如下所示:图3-1语音芯片PCB图图3-2系统PCB图3.1结果及分析1、语音系统将小球的颜色播报错误:可能是颜色传感器采样或识别出错;应该重新采集小球的颜色信息,尽量使光线的改变减少,直到
25、系统能正常播报为止;2、步进电机将小球的位子送错:检测一下步进电机有没有接收到驱动脉冲或者检测一下步进电机原始位置不对,可以将步进电机原始位置重新调一下;3、 红外线传感器没有检测到小球的存在:红外传感器发射源没有对准小球;如果调整发射源的位置红外传感器也不能检测到小球的存在那么检测一下电路板的P35号引脚有没有漏焊;4、步进电机不能回到原点:可能是霍尔传感器没有接收到电磁信号;把系统复位重新检测;5、如果上述情况没有出现,按照之前的步骤可以顺利的检测出小球的颜色,则表明本装置调试成功。第四章 控制算法及软件设计软件流程图开始复位颜色采样判断是否有小球语音播报TCS3200识别步进电机蓝球不能
26、识别颜色的小球绿球红球步进电机复位图4-1软件流程图 本系统的流程图的过程是:首先将系统复位,系统对小球的颜色进行采样,采样完成后,开始试验,随机选取一种颜色的小球放入系统,红外传感器对有无小球进行判断,颜色传感器对小球的颜色进行判别,单片机将信号传送给步进电机,步进电机转动相应的角度,将小球送入相应的位置后,试验完成。附录:4.1主程序设计编程使用Keil uVision3 采样函数:#includereg52.h#includecomdef.h#includeTCS3200.h#includestep.h#includekey.h #includeLCD1602.h#includevoic
27、e.c/*系统中断说明:外部中断0 :步进电机回到原点的触发 霍尔传感器的输出接P32 颜色识别的输出接P35.定时器0、1:定时器0产生1ms的计数周期,定时器1外部计数模式,配合完成计算频率外部中断1:独立按键*/extern uint8 STEPDELAY;extern uint16 RGB43;uint8 Mode=0;sbit BallExit=P33;void Delay(uint16 m)uint8 base =120;while(m-)for(base=120;base;base-);main() uint8 Ball=0,Count=10;uint16 R=0,G=0,B=0
28、EX0=1; /*外部中断0允许*/ PX0=0; /*外部中断0优先级低*/ IT0=1; /*边沿触发方式中断*/ EX1=0; /*外部中断1允许*/PX1=0; /*外部中断1优先级低*/IT1=1; /*边沿触发方式中断*/TCS3200_Init();LCD_Init();LCD_Disp_String(0,0,star);EA=1;Read_Voice(37);/系统正在启动请稍后Step_Init(); /回原点Read_Voice(26); /系统已经启动LCD_Disp_String(0,0,Normal);while(Mode8;/11.0592Mhz 1ms TL0=65536-SYSCLK*1/12000;void TCS_Delay(uint16 m)uint8 base =120;while(m-)for(base=120;base;base-);/Function Name:Counter_Init(void)/Parameter:void/Return:void/Notes:定时器说明:定时器0用于产生1ms的计时周期;定时器1采用计数模式;定时器2用来发生串行口波特率void Counter_Init(void)TMOD=0x51; /*定时器0:16位定时模式 定时器1:16位计数模式*/PT0=1; /*定时器