多功能模块化智能车设计

2017-03-14 16:05崔玺侯明杨玉竹
科技视界 2016年27期
关键词:车模赛道线性

崔玺 侯明 杨玉竹

【摘 要】本车模采用飞思卡尔半导体公司的微控制器MK60N512ZVLQ10 作为核心控制单元,自行设计可以实现模块化处理的程序方案,包含的驱动模块有车速传感器模块、舵机驱动模块、电机的驱动模块、电源管理模块、线性CCD模块、超声波传感器模块。对不同类型的识别传感器模块进行自主行驶算法和编程等方面内容,最终达到所有模块程序集中在一个单片机中,并对不同模块分区处理,满足各个模块任意拆装都可自动切换程序并直接运行的目的。

【关键词】智能车;MK60N512ZVLQ10单片机;线性CCD传感器;CCD算法

0 引言

在过去的智能车时代,激光传感器作为光电路径识别的主要传感器,发挥着十分重要的作用。但是它有原理复杂,成本高,质量大,精度差等缺点,这让调试智能车变得十分繁琐。而线性CCD以其简单的原理和易操作的优点受人欢迎,在光电路径识别领域起着越来越重要的作用,逐步取代了激光传感器的主导地位。本车模即采用线性CCD传感器,通过线性CCD获取路径信息,并且将信息传给单片机,单片机根据反馈信息控制车模转向和速度,从而使车模安全,迅速的跑完赛道。

1 系统总体设计

本车模采用32 位微控制器 MK60N512ZVLQ10 作为主控制器用于智能车的设计。赛车共包括四大模块:MK60N512ZVLQ10主控模块、线性CCD模块、电源模块、电机驱动模块。本车模是多功能模块化智能车。第一,线性CCD采集像素信号,返回到单片机,单片机根据CCD返回的信息控制舵机转向并且控制赛车速度,防止赛车冲出赛道,使赛车在赛道上能够自主行驶,并以最快的速度跑完赛道。第二,超声波模块提前检测前方是否有障碍物,并且及时避开障碍物。

2 硬件结构设计

车体相比于往届参加智能车竞赛选手设计的思路不同,大多数选手选择将所有模块集中设计制作在一个PCB主板上,而我们的思路相反,在我们的车模中,有独立的电源主板和驱动主板,并通過排线与单片机主板相连,这样的目的是为了方便于检查故障和调试智能车。

2.1 线性CCD模块

线性CCD只能采集一行可视像素,它包含128个线性排列的光电二极管。每个光电二极管都有各自的积分电路,即像素。每个像素采集的图像灰度值与它所感知的光强和曝光时间成正比。线性CCD通过SI控制信号输入,CLK作为时钟输入,控制像素依次输出和复位,AO则将像素电压输出,完成了像素的采集和输出。

2.2 超声波模块

超声波模块主要目的是检测障碍物。超声波模块经发射器发射出长约6mm,频率为40KHZ的超声波信号。此信号被物体反射回来由接收头接收,接收头实质上是一种压电效应的换能器。它接收到信号后产生mV级的微弱电压信号。根据这一原理,超声波模块可以检测前方是否有障碍并且及时将信号返回,发给单片机执行相应指令。

2.3 电源与电机驱动板模块

将电源与电机驱动模块独立出来,制作成电源主板和电机驱动板,分别与电池和电机相连,电源主板上添加了L6932降压芯片,输出3.3V,精度±1%,驱动板上增加MIC5219电源芯片,为总线驱动芯片74LVC245提供电源,实现驱动芯片和单片机电平匹配。

3 线性CCD算法设计

线性CCD只需要采集一行像素,相对比较简单。在调试线性CCD时,需要处理好两个问题。第一,就是曝光时间的长短。由于像素的输出值和曝光时间成正比,所以调节曝光时间对整个赛车至关重要。在调试智能车时,应该尽量减少曝光时间。减少曝光时间可以提高车模的反应能力,缩短采集信号的时间,尽量减少赛车冲出赛道的几率,同时还可以捕捉高速运动的赛车的清晰图像,有利于对图像的处理。在本车模中我们的曝光时间设定为16ms。第二,就是黑白阈值的选择。在选择阈值时,往往需要现场调试,因为阈值的选择跟环境亮度有密切的关系,所以我们需要根据环境亮度动态调节阈值参数。在调试时,根据调试助手反馈的图形进行完善,在调试软件的同时,还需兼顾去调整CCD焦距以及CCD距离地面的高度,当曝光时间和阈值参数确定,并且调整好镜头达到可视效果时,会生成平滑的图像,如图1所示。

图1

CCD作为赛道路径识别的主要传感器,在路径规划上起着十分重要的作用。CCD在赛道上的状态有:直道处,S弯处和十字交叉处。CCD包含128个像素点,我们的设计方案是当有三个像素点采集到黑色信号时,就认为赛车到达边沿。在直道的时候,CCD左右两侧均能检测到赛道边沿。在小弯时,两侧也会检测到赛道边沿,但相对于直道时不太稳定。在大弯时,可能会出现只有一侧检测到赛道边沿的情况。在十字交叉处,一般是检测不到赛道边沿。我们根据CCD在赛道上可能出现的情况写了基于CCD的路径识别算法。通过CCD采集像素值,利用设定好的阈值,当检测到黑线时返回给单片机。基于以上的分析,编写出一套CCD图像处理的算法分析。

首先检测左侧边界,当所检测到的3个像素点比阈值小,得到左侧边界值m1,算法如下:其中CaiJi_jin_1[i]为采集到的阈值参数,YuZhi_jin_1[i]为程序员自己设定的黑白阈值参数。其中三个数值之差相与即为三个像素点的检测。

if((CaiJi_jin_1[i]-YuZhi_jin_1[i]<0)&&(CaiJi_jin_1[i-1]-YuZhi_jin_1[i-1]<0)&&(CaiJi_jin_1[i-2]-YuZhi_jin_1[i-2]<0))

{

m1=i;

}

当检测到左侧边界后,执行以下程序检测右侧边界,并计算赛道中心所对应的参数值mm。程序如下:

if((CaiJi_jin_1[i]-YuZhi_jin_1[i]<0)&&(CaiJi_jin_1[i+1]-YuZhi_jin_1[i+1]<0)&&(CaiJi_jin_1[i+2]-YuZhi_jin_1[i+2]<0))

{

m2=i;

mm=(m1+m2)/2;

}

当智能车进入十字路段时,令CCD检测到全白,即令m2>=120,这时检测不到边界,智能车便直线行驶。程序如下

以上为我们对CCD算法整体设计思想概述。调整好CCD后,将其与舵机通过程序相连接,当CCD检测到边界,控制舵机旋转角度,从而实现转弯,这样就完成了光电线性CCD的设计制作。

4 结论

线性CCD通过128个像素点获取赛道信息,准确及时的将信息反馈给单片机,改善了面阵CCD计算复杂的特点,并且比传统的激光传感器更为精确,相对激光传感器改进较大,在目前智能车领域十分有着巨大的潜力和影响力。

【参考文献】

[1]宓海宁,胡晓龙,查云佳.第九届全国大学生“飞思卡尔”杯智能汽车竞赛技术报告[R].浙江:浙江万里学院,2014.

[2]夏斌.基于飞思卡尔单片机的光电智能小车设计[J].华北水利水电大学学报(自然科学版),2014,35(4):75-78.

[3]高月华.基于红外光电传感器的智能车自动寻迹系统设计[J].半导体光电,2009,30(1):134-137.

[4]翁卓.基于光电传感器的智能车控制系统设计[J].计算机测量与控制,2010,18(8):1789-1792.

[5]曾星星.基于摄像头的路径识别的智能车控制系统设计[J].湖北汽车工业学院学报,2008,22(2):72-76.

[责任编辑:田吉捷]

猜你喜欢
车模赛道线性
渐近线性Klein-Gordon-Maxwell系统正解的存在性
自制冰墩墩不能滑出“法律赛道”
科创引领,抢跑新赛道
潮玩车模精准吸引“Z世代”
征服蒙特卡洛赛道
二阶线性微分方程的解法
车展,没有车模看什么
无人驾驶,先上赛道如何?
汽车模型成收藏新宠
具有θ型C-Z核的多线性奇异积分的有界性