基于摄像头的路径信息采集系统的简易设计与实现
摘要:本文基于freescale 16位hcs12单片机的输入捕捉功能设计一种视频信号采集系统。在该系统中,将cmos摄像头的输出信号二值化,利用单片机输入捕捉功能实时对信号采样、处理,提取出黑色导引线的形状特征。实验证明:系统能很好地满足智能车对路径识别性能和抗干扰能力的要求,实时性好,测量精度高,同时硬件和软件的开销都比较小。
关键词:图像二值化;hcs12单片机;视频图像;比较器
引言
第二届“飞思卡尔”杯全国大学生智能车竞赛中,要求各参赛队赛车在规定的赛道上行驶,速度快者胜出。由于跑道只有黑、白两色,对图像的灰度没有要求,所以只需要反映反射光线的强弱。若用a/d进行采样,不仅软件设计比较麻烦,而且测量的精度和响应时间都不够理想,抗干扰能力也较差。本文摒弃传统的视频信号采集方法,结合单片机的输入捕捉功能,提出一种新的路径识别方法,并在实际系统中得到应用,实践表明该方法不仅使系统具有良好的性能,而且容易实现。
视频信号的特征
使用chd-918b面阵cmos摄像头,通过对内部电路的改造,可以在5v电压环境下正常工作,输出pal 制式模拟视频信号,如图1所示。每秒扫描50场图像,一场又有312.5行,每行图像信号时间为64μs,除去行同步头,其中有效的图像信号约为59.3μs。所以,若选用s12的a/d转换器采集,转换耗时压力大,图像分辨率低。
系统设计思想
设计是于白色跑道和黑色导引线对光反射能力不同的设计思路,同时又结合单片机的输入捕捉功能模块来实现的。
根据竞赛的实际情况和要求,只需要在白色背景的跑道中提取出黑色的导引线,而与图像的灰度无关,通过分析摄像头输出信号的特点,利用比较器将视频信号二值化,进而把黑色导引线与白色背景区分开来,如图2所示。同时,由于导引线的宽度是恒定的,行扫描时间和同步头时间也是定值,通过软件简单编程就可以滤除环境干扰,达到不错的滤波效果。
500)this.style.width=500;>
鉴于mc9s12dg128是hcs12系列单片机的一种,片内设有增强型定时器(ect),具有输入捕捉功能,可通过捕捉系统时钟脉冲来检测导引线。这样,计算单片机相应阶段内输入捕捉系统时钟脉冲的个数就能反映当前的路径信息。系统的实现如图3所示。
500)this.style.width=500;>
系统实现
视频信号同步分离:视频信号分离电路主要采用视频同步分离芯片1881,电路原理图如图4所示。先将经过预处理的视频信号通过一个滤波电路接至lm1881的2脚,为了滤除杂波,匹配阻抗,c4选取0.1μf,c2取510pf,r2取620ω。1脚输出行同步信号,3脚输出场同步信号,在实际运用中,二者存在高频干扰,所以必须加上低通滤波器。
500)this.style.width=500;>
选行电路:在一场视频信号中共扫描312.5行,没有必要每一行都进行采样,只需要选择性的采集特定行,计算出跑道的大致形状,同时也为后续处理留出时间。该部分电路主要由一片二进制计数器74ls161实现,原理图如图5所示。对行使能信号控制行同步信号的开关,通过对拨码开关的设置,可对行同步2、4、8、16分频,选择采集不同的行。本文在调试过程中设置成4分频。
500)this.style.width=500;>
二值化电路
视频信号的二值化主要由芯片max941完成,通过调节滑动变阻器的阻值来改变阈值电压。经反复试验本文将阈值定在2.55v。防止黑色导引线的边界处出现毛刺干扰,在二值化输出端加上rc低通滤波电路。电路图如图6所示。
500)this.style.width=500;>
时序关系:在上述几个电路模块中,使用了门电路、计数器、比较器,使原有的时序关系发生了变化,后续编程处理和系统的可靠性受到挑战。在比较器的输出端加入两片非门,增大延时,情况得到改善。最后得到的时序关系如图7所示。其中a为场同步,b为行同步,c是经过4分频后的行同步信号,d为二值化后的视频信号,包含着路径信息。
500)this.style.width=500;>
输入捕捉:mc9s12dg128单片机的外部晶振为16mhz,,由于输入捕捉寄存器为16 位,其计数值最大为65535,需要对系统时钟进行分频处理,设分配系数为a,其中
a=2-n,(n=0,1,2…7) (1)
则分频后的系统时钟可由(2)式得,
f1=f0×a=16mhz×2-3=2mhz (2)
即最小单位为0.5μs,对应的跑道采集精度,远处的分辨率为0.4cm,近处的为0.2cm ,完全符合路径识别的要求。输入捕捉的触发方式设置成任意沿捕捉,这样可以简化硬件电路的设计。以,仅仅需要计算几个沿变化之间输入捕捉系统时钟脉冲的个数,就能精准的反映当前的路径信。对应图2,bc段是黑线,de段是同步头,ab与cd段反映的是左右视场边沿到黑线的距离,在后续处理中,可以利用这些信息方便的计算出跑道的曲率和斜率。由于黑色导引线的宽度是一定的,每行有效图像扫描时间都约为59.3μs,根据这些信息就可以剔除明显的坏点,增强系统得抗干扰能力。
软件实现:为了节约系统时间,在编程中主要采用中断处理,并且设置成上升沿触发。在场中断期间,先调用屏蔽场同步消隐子程序,把成像效果不好的部分滤除掉,随后打开行中断。当经过分频后的行同步头到来时,开始捕捉图像信号的4个任意沿,在相应两个沿之间,所捕捉到的系统时钟脉冲个数就反映了当前的路径信息。另外,为了消除偶然误差的影响,在不降低系统速度测量精度的前提下,通过使用软件上的循环队列算法,保证了路径信息的准确性。循环队列的具体实现过程为:通过设置一个长度为l的队列,每发生一次输入捕捉中断就进行一次入队操作,由队列“先进先出”的性质,即替换最先入队数据,能够保证将最新的刷新数据进行数据处理并进行控制,提高了控制的实时性。该系统部分软件流程图如图8所示。
500)this.style.width=500;>
结语
若采用片内a/d采集,在最高时钟频率2mhz的情况下,进行一次10位精度a/d转换的时间为7μs。这样,采集的图像每行只有8个像素,图像分辨率过低。如果采用超频的手段来补偿,又会降低系统的可靠性。而本文采集的图像数据分辨率为128×64,每行有128个像素,并且分辨率留有进一步提高的余留量,软件的编写也比较简单。但是该方法目前还不能区分图像的灰度,是以后需要改进之处。
参考文献:
1 邵贝贝, 单片机嵌入式应用的在线开发方法[m], 北京:清华大学出版社,2004.
2 王明顺, 虚拟编码器在智能车上的应用[j,
电子产品世界,2006 (12)
3 吴建辉,印制电路板的电磁兼容性设计[m],北京:国防工业出版社,2005
4 [美]steven f.barrett,daniel j.pack著,郑扣根译,嵌入式系统——使用68hc12和hcs12的设计与应用[m]. 北京:电子工业出版社,2006
5 卓晴等., 学做智能车[m]. 北京那个航空航天大学出版社,2007
智能扫地机哪款好?好用的扫地机器人都具备以下特点
工控机在电动汽车充电桩控制系统中的应用
IEEE表示华为及其员工可以继续成为IEEE标准协会的成员
LED显示屏发展历程
MIUI10稳定版第二批共有21款机型成功推送
基于摄像头的路径信息采集系统的简易设计与实现
东安动力汽车高性能增压DAM12T发动机解析
Java中的多态有哪些表现形式
DS28C36安全认证器的安全引导和安全下载
我国家电回收处理方面的法律法规需完善,才能让山寨家电彻底消亡
高速串行协议系列之CEI-28G-VSR的通道损耗定义
魅族Pro7什么时候上市?最新消息:下半年不止魅族Pro7,更有魅蓝Note6一起来!
瑞萨G2UL开发板-U盘读写速度测试
宏集直驱技术解决方案帮您轻松实现锂电池叠片工艺
让人恐惧的是,机器狗已经能做这种事了
网友感叹2019年HTC的春天还会来吗 官方回应无法回答
2020年11家企业固态电池领域的新动向
物联网的发展现状及物联网有哪些基础道德问题
电容耦合电路的特点
如何利用ST MCSDK实现直流无刷电机控制