4.1 基于路面检测方案比较及可行性分析
环境图像采集部分可以采用阵列红外探头和 CCD 或 CMOS 图像传感器来实 现,前者的特点是价格低廉、电路简单、应用方便,缺点是性能有限,对复杂环境的适应能力较弱,效果较差。而CCD或CMOS图像传感器(摄像头)就能弥补阵列红外探头的各种缺点,但是摄像头的使用和对摄像头拍摄图像的处理却是一大难点,而且摄像头的应用电路的设计与阵列红外探头相比要略显复杂。
为了能快速采集图像数据并且兼顾开发的难易程度,在此次设计中将采用输出标准TV视频信号的黑白监控摄像头。这种摄像头价格低廉,而且可以配合行场同步信号分离电路和单片机自身的 A/D 转换电路,可以将图像方便地采集进来,从而回避数字型摄像头复杂的总线协议和数据处理过程。

4.2 摄像头工作原理和选择
一般而言,摄像头分辨率越高,单行视频信号持续的时间也越短,在AD转换时间不变的情况下,AD 对单行视频信号所能采样的点数也越少。通常,摄像头横向(行方向)的像素数远多于AD 对单行视频信号采样的点数。真正决定赛车图像采样模块实际横向分辨能力的不是摄像头横向的像素数,而是AD 采样单行视频信号的点数。例如,AD 对单行视频信号能采样10个点,尽管摄像头横向的像素数可达几百,但Freescale16 位单片机通 过AD 只能采样到这几百个像素中的10 个,这无异于图像采样系统在横向上 只有10 个像素的分辨能力。
如前面所述,摄像头的分辨率越高,尽管可提高纵向分辨能力,却会减少Freescale16 位单片机AD 采样单行信号的点数,削弱了横向分辨能力。 另一方面,现在市场上的摄像头通常都在300 线的分辨率以上,由此推得单行视频信号的持续时间约为20ms/300=66us 左右,AD 采样单行视频信号的点数约为[66/7]+1=10 个 (不超频情况下)。也就是,摄像头传感系统在纵向上最多可达300 像素的分辨能力,这对我们的智能车定位系统是绰绰有余,可在横向上最多也只能有10 像素的分辨能力,这对我们的智能车定位系统来说是不够的。所以,在选择摄像头时,我们应当尽量选择分辨率低的摄像头,这样做会降低纵向分辨能力 (降低后的对我们来说也仍然远远够 用),却可以提高横向分辨能力。
4.3 硬件设计

4.3.1 LM1881 视频同步信号分离电路
LM1881 视频同步信号分离芯片可从摄像头信号中提取信号的时序信息,如行同步脉冲,场同步脉冲,奇、偶场信息等。LM1881 的连线图如图4.3

引脚2 为视频信号输入端,摄像头信号即由此输入LM1881。引脚1 为行同步信号输出端,它输出的信号波形只是输入的摄像头信号在黑屏电位之下的波形的简单复制(对比图中b 和a)。引脚3 为场同步信号输出端,当摄像头信号的场同步脉冲到来时,该端将变为低电平,一般维持230us,然后重新变回高电平(如图中的c)。引脚7 为奇-偶场同步信号输出端,当摄像头信号处于奇场时,该端为高电平,当处于偶场时,为低电平。奇-偶场的交替处与场同步信号的下降沿同步,也就是和场同步脉冲后的上升沿同步(如图4.4 中的d)。事实上,我们不仅可以用场同步信号作为换场的标志,也可以用奇-偶场间的交替作为换场的标志。


4.3.2 LM393二值电路

4.3.3 硬刷电路板

4.4 软件设计
视频图象信号采集作为整个功能算法的基础,具有举足轻重的地位。我们在分析了视频信号的基础上进行了程序的编写。经视频信号分离芯片LM1881分离后的信号做为图象采集的依据,结合场信号和行信号,来决定图象采集的开始,参看了去年智能车竞赛冠军的技术报告,报告中提到用AD转换的方式来采集图象,在不超频的情况下,经过运算每行信号只能采集 8 个点,在超频的情况下,才能采集 40 个点,每行 40 个点对小车的控制来说已经可以了。我们也采用了AD转换的方式来进行图象采集,由于是首次使用“飞思卡尔”单片机,还不会使用锁相环超频,并且报告中也提到超频后对S12芯片及AD模块的危害。我们决定自己找出一个新的图象采集方法。
由于AD模块的转换速率受到总线频率的限制,同时考虑到比赛赛道的特殊性,赛道是白色的底色,黑色的引导线,这样产生的外部干扰就很少,而我们采用的摄像头是黑白制式的,输出的模拟信号和灰度一一对应,那么在赛道的成像模拟信号中就会有一个很大的阀值,当然在黑白过度中会有灰色的电压信号,因此我们决定用LM393电压比较器在视频信号输入单片机前进行二值转换,这样输入单片机的信号就是一个二值信号了,我们不再需要进行其他的处理了,这样也在单片机外处理数据节省了单片机资源的同时节省了单片机处理数据时间,为快速灵敏的控制小车做了一步工作。
在一行的扫描信号开始后,通过 PB2 来接受经过外部处理的视频信号,首先设 置两个变量 white_dot 和 black_dot,分别记录白色的点数和黑色的点数。当PB2为低电平时,则white_dot加一,当PB2为高电平时,black_dot加一,根据统计的数据可以分成几个不同的情况,作出相应的处理,将十字交叉线滤除,从而进行下一步的判断。每三行进行一次中值处理,可以将数据里的噪点除掉,中值处理过后的数据保存在数组 hang[]中,作为舵机和电机控制的依据。这样处理过的数据,每行采集的点数有150个,比超频后用AD转换采集的点数还多了将近一倍,可以更细致的控制舵机的转向,同时也节省了AD转换模块。
4.5 摄像头安装

图 4.6 摄像头安装


