基于飞思卡尔单片机自动循迹小车控制的设计 - 图文 下载本文

基于飞思卡尔单片机自动循迹小车控制的设计

制。此外为了隔离驱动芯片并且达到保护单片机的目的,我们采用了74HC245DW芯片进行隔离保护。具体的电路如图3.6所示。

图3.6 BTS7960原理图

3.3路径识别摄像头检测模块

3.3.1 摄像头的选择

用摄像头来识别小车的路径,也可以用红外传感器进行辅佐,因此我们有两种方案可供选择。

方案一:只用摄像头对路径进行检测。摄像头将采集到的画面经过处理以后交给处理器,能够提前对小车前方的赛道进行分析,从而选择最佳的路径,及时调整小车的运行状态。这种方法在小车高速转弯时的优点更加的突出,因为提前预算了行进的路线,转弯时就计算好了控制的方法,弥补了舵机滞后的弱点。但是单独采用摄像头时,采集信息的频率低,而且容易受到光线以及场地的干扰。另外无法对起始位置进行采集。

方案二:用摄像头和红外传感器相结合的方法对路径进行检测。加入红外传感器后,路径的选择受光线和场地的干扰大大降低,弥补了摄像头检测频率不足的缺点,同时红外传感器的电路设计以及软件编写都比较简单。但是红外传感器检测黑线的精度不高,而且检测的距离有限,功耗较大。加重了车身的重量,影响到了小车的启动能力和行进速度。通过理论上的分析以及现场测试,单独使用摄像头完全满足要求,没有必要非得加上红外传感器。

最终我们采用方案一。 摄像头方案的选择:

1.选用CCD 摄像头。采用CCD 摄像头时,采集到的图像的质量比较高。其采集到的动态效果和CMOS 摄像头采集到的动态效果相比效果也很突出。但是比较两者的功耗,CCD摄像头要高的多,电流为100mA。

2.选用CMOS数字摄像头。CMOS 摄像头和CCD相比,其功耗较低,工作

`

9

基于飞思卡尔单片机自动循迹小车控制的设计

电流只有10mA 左右。而且CMOS摄像头采集出来的图像直接转化为数字信号,提高了单片机的处理速度。综上所述,我们决定选用CMOS数字摄像头。 3.3.2 摄像头简介

摄像头有彩色和黑白两类,我们寻找路径时,是提取的图像的灰度信息,彩色图像完全用不到,因此图片的信息输出为黑白的。我们选用的摄像头芯片为OV7620,内部有一个双通道的A/D转换器,A/D转换器是10位的,它的输出是8位的图像数据;能够自动调节白平衡,能够对饱和度、对比度、亮度以及γ校正进行调节[6],可以产生场同步信号[7]。接5V的电源,最大功耗为120mW,最小功耗为10μW。这款摄像头在电脑、手机等很多产品上都可以使用[8]。

3.4 速度检测模块

小车在运行中要保证又快又稳,这不仅要求舵机控制行进的方向,还需要将车速精确的控制在合理的范围之内,这样当小车在转弯时不至于因车速太快而冲出设定的跑道。根据所学的自动控制原理,闭环反馈系统比较稳定,将测得的车速反馈给系统,形成一个闭环系统,从而达到控制车速的目的。测量小车速度一般有以下几种方法:

方案一:霍尔传感器测速。本方法主要是通过安装的霍尔传感器接收脉冲信号来计算实时速度。具体做法是在后轮的轴上安装小型磁铁,小车行驶时,磁铁会产生脉冲。霍尔传感器安装在后轮的附近,行驶时它就会接收磁铁产生的脉冲。

方案二:投射式光电管测速。它的原理是通过采集单位时间内小车后轮上的齿槽数,来计算小车的实时速度,要用到红外光线。但是安装不方便,可靠性不高。

方案三:光电编码器测速。常用的是增量式光电编码器,将编码器的齿轮和小车后轴上的齿轮咬合在一起,小车行驶时带动编码器旋转,编码器就会产生脉冲信号,通过计算单位时间内的脉冲数计算小车行驶速度。

应用光电编码器测量速度不仅安装简单而且输出的信号波形规则,因此本设计方案采用光电编码器测速。在本系统中必须要保证编码器和后轮轴上的齿轮数成正。

3.5 舵机模块

舵机又称伺服电机。它的结构包括电位器、减数器以及电机。减数器的作用是把电机的速度减下来,同时改变电位器的位置,当电位器的电压变为零,电机停止转动,舵机转动的角度是通过电位器来改变的。舵机的信号是系统提供的PWM信号,通过改变占空比来改变舵机的转向。

3.6电源管理模块

电源模块是最基本的模块同时也是电路的最基本部分。本设计选用智能车竞

`

10

基于飞思卡尔单片机自动循迹小车控制的设计

赛专用多路电源模块,该产品为单路电池输入,多路常用电压输出,可以完全满足智能车各个模块的用电需求。电源性能稳定、结构紧促、尺寸小巧,模块化的设计对于安装方面来说十分灵活。

该车的电池参数为7.2V、2000mAh,可以多次充放电,稳定性好。它的电压不能直接供给各个模块使用,要转换为各模块需要的电压。转换好的电压要进行稳压,这样才能使整个系统稳定,不会因为电压突变影响效果。 3.6.1 3.3V电源

3.3V 主要用于单片机的供电。

在实际的应用中,电机和舵机在刚开始启动或者突然停止时,有时会造成电压突变,给硬件带来损伤,也会影响小车的正常行驶。要使电源稳定,就要安装稳压装置。本设计选用线性稳压装置,因为它的电源纹较小,符合要求。具体选用 AMS1117线性稳压芯片。具体电路如图3.7所示。

图3.7 3.3V电源

3.6.2 5V电源

本设计方案中的编码器和摄像头所需的电压相同,都为5V的电源。我们经常使用的稳压芯片有两种,分别是线性和开关稳压芯片。本设计对摄像头的电源要求比较高,输入的电源纹波必须很小才能符合条件。鉴于开关电源纹波比较大,而线性稳压电源纹波较小,故我们选择使用线性稳压芯片。实际使用中本设计选用 LM2940CT-5 线性稳压芯片。具体电路如图3.8所示。

图3.8 5V电源

`

11

基于飞思卡尔单片机自动循迹小车控制的设计

4 软件系统的设计与实现

4.1赛道信息的提取

CMOS摄像头采集的赛道信息输出时是黑白图像,图像信息通过8位高速AD转换器TL5510转化为灰度图像,灰度值范围为0~255,灰度图像通过软件构建的二维数组储存起来。一般情况下赛道的颜色和赛道的背景颜色差别很明显,背景颜色一般为蓝色,经过测试,赛道的颜色为白色时其灰度值在110左右,黑色时灰度值在55左右,而蓝色的背景灰度值在75左右。因此,提取赛道左右边沿有两种比较好的方法:一种称为边沿跳变检测法,另一种称为二值化法。 (1) 边沿跳变检测法的基本原理是取两个灰度值的差,然后判断差值是不是在给定的值域范围内。举例:白色赛道的灰度值减去黑线的灰度值之差为55左右(灰度值跳变较大),蓝色背景的灰度值减去黑线的灰度值之差为20左右(灰度值跳变较小),就可以把值域范围定在50~60,通过判断灰度值跳变的大小程度即可确定左右边沿的位置。

(2) 二值化法

二值化法有两种,一种是固定阈值法和另一种是动态阈值法。

固定阈值法:设定固定的阈值(灰度值),当采集到的灰度信息大于阈值时设定为1,小于设定的阈值时设定为0.这样灰度图像就转化为二值化图像了。

动态阈值法:取二维数组每行的最大和最小值,计算平均值,将平均值设定为这一行的阈值。

理论上动态阈值可随光线的明暗变化自动调整阈值大小,但是在实际操作中只有在直道和弯道上的成像效果好,而在十字路口的成像效果就差强人意了。经过比较,固定阈值二值化更好,它不受赛道光线变化的影响,而且计算简单,占用单片机的资源少,所以最终选择固定阈值二值化法。

4.2 PID算法介绍

在实际的工程中,应用最为广泛的是PID 控制,也可称为PID调节。它是通过控制器进行比例、积分和微分控制。它的算法是闭环控制算法,P为比例控制算法,I为积分控制算法,D为微分控制算法,闭环控制中最基本的算法是比例控制算法,实际运用中可以根据情况分别采用PI、PD和PID算法[13]。

PID控制器发明于上世纪40年代,人们即使不知道被控对象的参数和结构也可根据经验进行调整。本设计选用PID 控制,大大节约了设计的周期,省去了很多复杂的计算,同时也使小车的结构更加的简化,提高了小车的可靠性和稳定性。 原理框图如图 4.1 所示。

`

12