基于TCS230的颜色识别智能搬运小车2_第1页
基于TCS230的颜色识别智能搬运小车2_第2页
基于TCS230的颜色识别智能搬运小车2_第3页
基于TCS230的颜色识别智能搬运小车2_第4页
基于TCS230的颜色识别智能搬运小车2_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于tcs230的颜色识别智能搬运小车周中正,王洪栋(中国矿业大学信息与电气工程学院,江苏 徐州 221116)摘要:采用freescale公司的16位hcs12单片机mc9s12xs128最小系统作为小车的智能控制系统。通过4个前置对称分布的光电对管在布有黑线的白色场地上实现沿线循迹。通过红外测距传感器gp2y0a02yk0f检测到物块,用机械手将物块拾起,利用颜色传感器tcs230检测物块rgb值,运用rgb辅助色度零交叉算法判断出物块颜色,进而通过循迹将物块放入对应颜色区,实现不同颜色物块的智能分拣搬运。系统包括:mc9s12xs128最小系统模块、光电循迹模块、红外测距模块、颜色判别模

2、块、机械手臂模块、舵机驱动模块和电源稳压模块。关键词:mc9s12xs128;tcs230;智能小车;颜色判别;色度零交叉算法 0 引言 随着科学技术的发展和进步,工厂作业正在快速地由手工操作向自动化和智能化方向过渡。智能搬运小车模拟了实际自动化工厂中agv(automated guided vehicle)小车的搬运和机器人的自动分拣功能。本文针对全国机器人大赛中轮式智能搬运项目,利用颜色传感器tcs230并运用rgb辅助色度零交叉算法对不同颜色的物块进行判别,进而将不同颜色物块分送至对应区域,模拟了工厂中根据货物的不同特征执行对应任务或操作的过程。图1智能搬运比赛场地1 比赛场地与规则简述

3、智能搬运项目的比赛场地如图1所示。比赛时,参赛选手在置有黄、白、红、黑、蓝五种颜色物块的袋子中随机依次抽取三个物块,并按抽取顺序,将三个物块摆放至拾起区(图1中黄、红、蓝颜色区与中部交叉点之间的白色区域)。分拣搬运小车从出发区(图1下方绿色矩形区域)出发,沿黑线循迹至拾起区拾取物块,并根据物块颜色将其送至对应颜色区,最后回到出发区。比赛成绩由小车送物块至对应颜色区的精确度(图1各色区靶心10环为10分,按环数依次降低)和回到出发区的时间综合决定。2 系统实现方案mpumc9s12xs128光电对管tk-20测距传感器gp2y0a02yk0f颜色传感器tcs230轮驱动舵机s4309r抓取舵机s

4、r-403prgb辅助色度零交叉算法定时器中断循迹纠正pwm通道合并控制舵机图2系统结构图 系统的基本结构框图如图2所示。硬件部分主要由mpu、传感器模块和动作模块构成。mpu采用freescale公司16位mc9s12xs128芯片;传感器模块包括用于循迹的光电对管tk-20、用于探测物块的红外测距传感gp2y0a02yk0f和用于采集物块颜色rgb信息的颜色传感器tcs230;动作模块主要由小车轮子的驱动舵机s4309r和用于抓取物块的驱动舵机sr-403p构成。软件部分的关键环节包括:用于循迹纠正控制的定时器中断环节、用于判别物块颜色的rgb辅助色度零交叉算法环节和用于产生舵机控制信号的

5、双通道合并pwm产生环节。具体实现过程为:将小车放至比赛出发区并给小车上电,小车按照定时器0的中断频率采集对称分布的四个光电对管的反馈值(黑色为1,白色为0),从而得到小车是否偏离黑线轨道的信息并及时对小车进行纠正,于是小车循黑线至物块拾起区(图1中黄、红、蓝颜色区与中部交叉点之间的白色区域)。在此期间,小车按照定时器1的中断频率采集红外测距传感器gp2y0a02yk0f返回的与物块距离的信息并与经验值比较,在合适位置通过pwm控制抓取舵机将物块拾起并卡紧。利用颜色传感器tcs230采集物块颜色rgb信息,运用rgb辅助色度零交叉算法判断出物块颜色,进而通过循迹将物块放入对应颜色区。然后循迹至

6、下一物块拾起区并重复上述操作。当遇到拾起物块所对应的颜色区被未拾起物块挡住的情况(如先拣到蓝色物块,并且蓝色区域与中部交叉点之间有物块未拾取)时,应将拾起的物块放在出发区与中部交叉点之间(称“中转处”),先去拾取挡路的物块并送至对应颜色区,然后到中转处继续发送上一物块。将所有物块依次送至对应颜色区,然后循迹返回出发区。系统运作流图如图3所示:上电启动系统初始化循迹至拾起区抓取物块判别物块颜色将物块送至对应色区物块已送完?返回出发区否是测距传感器pwm输出颜色传感器图3系统运作流图3 颜色识别原理 颜色是物体表面吸收了白光中的一部分有色成分, 而反射出的另一部分有色光在人眼中的反应。根据三原色理

7、论知, 不同颜色是由不同比例的三原色(红、绿、蓝)按照不同比例混合而成的。如果知道构成各种颜色的三基色的值, 就能够知道所测试物体的颜色。本文所用的传感器tcs230可以通过调节滤波器的颜色, 使特定的原色通过, 阻止其他原色通过, 从而测出一种光中的红绿蓝三色的成分。例如, 当选择红色滤波器时, 得到的就是红色光, 而蓝绿光则不能通过, 此时得到的就是红色光在此种颜色中的含量。本系统的颜色识别是基于颜色传感器tcs230,利用tcs230获取物块颜色的rgb值,利用rgb辅助色度零交叉算法判别物块颜色。3.1 tcs230原理 s0s1比例系数s2s3滤波器ll关闭电源ll 红色lh 2%l

8、h 蓝色hl 20%hl 无hh 100%hh 绿色表1 s0、s1、s2、s3引脚功能分配图 图4 tcs230引脚封装及功能框图 该传感器内部集成了可配置的硅光电二极管阵列和一个电流/频率转换器, tcs230输出为占空比50%的方波, 且输出频率与发光强度成线性关系。用户可通过两个可编程引脚s0、s1 来选择100% 、20%或2% 的输出比例因子。通过控制s2、s3引脚来选择所需的光电二极管类型。该器件的使能脚低电平有效。s0、s1、s2、s3引脚功能分配图如表1所示3.2 rgb辅助色度零交叉算法颜色由亮度和色度来刻画,色度则是不包括亮度在内的颜色的性质,它反映的是颜色的色调和饱和度

9、。在比赛中要辨别物块颜色,就需要提取色度信息,而亮度信息则属于干扰。而利用tcs230获取的rgb信息既与色度有关,又受亮度影响。通常采取白平衡调整的方法以白光为基准将亮度值归一化,得到颜色的色度信息。但在实际中很难得到标准的白光,于是在利用白平衡调整亮度的同时,色度信息也受到了污染,往往达不到判别的精度。rgb辅助色度零交叉算法利用色度学rgb原理,运用rgb- ycbcr变换,将rgb模式转换为ycbcr模式。ycbcr模式是刻画颜色性质的一种模式,其中y代表亮度,cb和cr则代表色度、饱和度。常见的jpeg图片格式采用的就是ycbcr色彩系统。rgb- ycbcr变换公式为: y=0.2

10、990r+0.5870g+0.1140b cb=-0.1687r-0.3313g+0.5000b+128 (1) cr=0.5000r-0.4187g-0.0813b128 图5 各颜色物块cbcr分布与分割示意图依次采集各颜色物块的cb、cr值得到他们关于cb、cr的分布。以cb为x轴、以cr为y轴作平面图,多次测量后得到一系列关于cb、cr的散点,根据散点的分布分割各颜色物块对应的区域,要尽可能给各色块以足够的裕量。如图5所示。如果出现不同颜色有重叠区的情况时,应根据相应rgb值中容易区分的一个或多个值进行辅助判断。3.3 主要程序3.3.1控制tcs230测取rgb值的程序void ge

11、t_rgb(void) /*求r值* pitinit1(); /定时器1初始化 painit(); /脉冲累加器初始化 gpio_set(pb,prt,0,0); /设定s2为低 gpio_set(pb,prt,1,0); /设定s3为低,即选用红色滤光片 gpio_set(pb,prt,2,0); /开tcs3200使能 while(pittf_ptf1=0); /等待定时器溢出 pittf_ptf1=1; /清除中断标志 pitcflmt&=(1<<7); /关定时器 pactl=0b0010000; /关累加器 rb=255*pacnt/400; /rb=255*pa

12、cnt/ryz; if(rb>255) rb=255; /判断rgb值是否合法 /*求b值* pitinit1(); /定时器1初始化 painit(); /脉冲累加器初始化 gpio_set(pb,prt,0,0); /设定s2为低 gpio_set(pb,prt,1,1); /设定s3为高,选择蓝色滤光片 while(pittf_ptf1=0); /等待定时器溢出 pittf_ptf1=1; /清除中断标志 pitcflmt&=(1<<7); /关定时器 pactl=0b0010000; /关累加器 bb=255*pacnt/500; /bb=255*pacnt/

13、byz; if(bb>255) bb=255; /判断rgb值是否合法 /*求g值* pitinit1(); /定时器1初始化 painit(); /脉冲累加器初始化 gpio_set(pb,prt,0,1); /设定s2为高 gpio_set(pb,prt,1,1); /设定s3为高,选择绿色滤光片 while(pittf_ptf1=0); /等待定时器溢出 pittf_ptf1=1; /清除中断标志 pitcflmt&=(1<<7); /关定时器 pactl=0b0010000; /关累加器 gpio_set(pb,prt,2,1); /关tcs3200使能 gb=255*pacnt/900; /gb=255*pacnt/gyz; if(gb>255) gb=255; /判断rgb值是否合法 pitcflmt|=1<<7; 4 结束语本文给出了具有颜色识别功能的智能搬运小车的设计方案。创新性地提出了基于tcs230运用rgb辅助色度零交叉算法判别物块颜色的实现方案。该方案解决了tcs2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论