您现在正在浏览:首页 > 职教文章 > 职教论文 > 基于路径识别算法的智能车控制系统的设计

基于路径识别算法的智能车控制系统的设计

日期: 2010/2/17 浏览: 115 来源: 学海网收集整理 作者: 佚名

《自动化技术与应用》2009 年第 28 卷第 1 期

Techniques of Automation & Applications | 121

经验交流

Technical Communications

基于路径识别算法的智能车控制系统的设计

梁业宗, 李 波 , 赵 磊

(武汉理工大学自动化学院,湖北 武汉 430070)

摘 要:介绍了一种基于光电传感器及连续路径识别算法的智能车控制系统。首先对系统设计的总体方案及主芯片 MC9S12DG128B

进行介绍,然后介绍了具体系统的硬件设计和软件设计,重点对关键的电路和算法的实现进行了详细的阐述。最后给出了实验

的调试结果。

关键词:光电传感器;路径识别;mc9s12dg128b;智能车

中图分类号:TP27 文献标识码:B 文章编号:1003-7241(2009)01-0121-04

Intelligent Vehicle Control Based on Path Recognition

LIANG Ye-zong, LI Bo, ZHAO Lei

( Institute Of Automation, Wuhan University Of Technology, Wuhan 430070,China )

Abstract: This paper introduces the tracking system of an intelligent vehicle based on the path recognition with photoelectric

sensors. The hardware and software of the system are also outlined.

Keywords: photoelectric sensor; path recognition; mc9s12dg128b; intelligent vehicle

收稿日期:2008-07-09

1 引言

本文的背景是“飞思卡尔”杯全国大学生智能汽车

竞赛, 大赛要求实现智能车对道路的自动识别及寻迹。

本次大赛的赛道是一个白底和黑色中心线的道路。在

整个智能车控制系统中,如何准确地识别道路及实时地

对智能车的速度进行控制是整个控制系统的关键。路

径常用的传感器检测器件主要有光电传感器和 CCD 图

象传感器。而光电传感器方式检测道路信息以其具有

的电路原理简单、安装方便、检测速度快等优点而得到

广泛的应用。本文介绍一种基于 ST188 光电传感器的

智能车路径识别控制系统。

2 系统的总体设计方案

2.1 系统的总体构架设计

系统的硬件框架如图 1 所示。系统以飞思卡尔公司

的 16 位单片机 MC9S12DG128B 为控制核心,由单片机

模块、电源模块、显示模块、传感器检测模块、直流电

机驱动模块、舵机控制模块等组成。单片机通过光电传

感器采集道路信息,根据算法分析得出此时的智能车与

道路的偏离状况,然后再据此采用一定的控制算法控制

智能车的舵机转向和直流电机的速度,从而实现智能车

对路径的自动识别与寻迹。

2.2 MC9S12DG128B芯片介绍

本系统设计采用飞思卡尔公司推出的高性能 16 位

单片机 MC9S12DG128B 为控制核心。MC9S12DG128B

单片机的具体特点有:采用增强型的 16 位 HCS12 CPU,

片内总线时钟可达 25MHZ;具有 128K 的 FLASH,8K 的

RAM 以及 2K 的 EEPROM 存储器; 具有两个 SCI、SPI

通信接口,一个 8 通道的 PWM 模块,一个 8 通道的输入

捕获 \ 输出匹配的增强型定时器,两个 8 通道 10 位精度

的 AD 转换器以及两个 8 位或 16 位的脉冲累加器。

图 1 系统硬件框架

《自动化技术与应用》2009 年第 28 卷第 1 期

122 | Techniques of Automation & Applications

经验交流

Technical Communications

3 系统的硬件部分设计

3.1 电源模块设计

智能车的总电源采用一个 7.2 伏的镍铬电池供电。

系统需供电的模块包括: 微控制器、路径识别传感电

路、车速检测传感电路、舵机控制电路以及直流电机驱

动电路。其中微控制器、光电传感器的接收管以及测速

传感器采用 5 伏的电源,光电传感器的发射管采用 2 伏

的电源,舵机和直流电机则直接用 7.2 伏的电源。具体

分别选择 LM2940 和 LM2576 作为 5 伏以及 2 伏的稳压

芯片。各模块和电源的关系如图 2 所示。

3.2 传感器检测模块设计

3.2.1 传统的光电传感器检测应用方案

传统的光电传感器应用方案主要是根据光电传感

器在不同的路况下,接受管接收到的电压将会有所不同

的特点,通过单片机的普通 I/O 口采集接收管的电压后

进行分析便可简单的判断出此时传感器是否位于标记

线(黑线)上方,大概地判断出小车相对于道路的位置

信息,以此作为控制小车转向和速度的依据。但是由于

这种简单的采集方法仅能采集到一些离散的位置信息,

而无法提供相邻的传感器间的路径信息,所以采用这种

离散的路径信息对小车进行控制将会对小车的运行性

能产生不利影响。

3.2.2 本系统采用的光电传感器检测方案设计

通过深入研究光电传感器的特性可知,实际上红外

光电传感器的接受管电压的大小与其距离黑色路标线

的水平距离是有关系的, 传感器离黑线越近, 则接受管

的电压越低, 相反传感器离黑线越远, 则接受管的电压

越高[1]。所以只要能测出传感器电压与偏移距离的关

系, 就可以获得小车相对路标线的位置, 得到连续分布

的路径信息, 这样就可以极大地提高路径的探测精度,

有利于保证小车前进过程中的控制精度和响应速度。

本系统的设计采用了 ST188 型号的光电传感器作

为路况信息的采集工具。具体的实现则采用了单排共 7

个光电传感器。由于传感器的发射和接受光都是成一

定的锥角的,所以要得到较宽的检测范围则必须提高传

图 2 电源模块关系

感器的离地高度。而 ST188 传感器的有效检测距离仅

为 4 — 13 毫米,但是由于传感器的检测距离与其发射管

的工作电流成正比关系,所以通过增强其发射管的工作

电流即可提高传感器的检测距离。但实际上 ST188 传

感器能正常工作的极限电流仅为 50 毫安左右,所以为了

保证足够的检测距离以及不损坏光电传感器,系统采用

了脉冲大电流调制发光的控制方式。实际工作中采用

1KHZ 的信号作为发光调制信号。经过测试发光管发光

时其两端的压降约为 2 伏,经过的电流约为 400毫安。部

分传感器电路如图 3 所示。

3.3 直流电机驱动模块设计

电机驱动采用摩托罗拉公司的 MC33886 作为驱动

芯片, 通过改变从单片机输入到芯片的 PWM 波的占空

比来控制对电机的供电电压的大小, 从而控制电机的

转动速率。并通过向 IN1、IN2 口送出 PWM 波来控制

电机的正反转, 实现赛车的直道加速, 弯道减速功能。

在实际的设计过程中,采用两片 MC33886 芯片并联的

工作方式,以降低其工作时的导通电阻,增强其驱动能

力, 从而有效地降低电机频繁的正反转时驱动芯片的

发热程度。

3.4 舵机控制模块设计

在智能车转向控制中, 利用单片机产生的 PWM 控

制信号占空比的变化来改变舵机转动的角度,从而实现

智能车的实时转向。智能车采用了日本 SANWA 公司

的 SRM-102 型舵机,其正常工作电压为 4.8 — 6 伏,响

应速度为 0.2S/60°。由于舵机的响应速度直接影响着

智能车通过弯道的最高速度,所以提高舵机的响应速度

是提高智能车的平均速度的关键【2]。在实际设计过程

中, 我们采用了三项措施来提高舵机的响应速度: 一、

直接用蓄电池 7.2 伏的电压给舵机供电。二、把其 PWM

波的频率从原来的 50HZ 提高到 100HZ,以减少舵机控

制环节的延时。三、把舵机升高以提高舵机的传动比。

4 系统的算法软件部分设计

图 3 光电传感器电路

《自动化技术与应用》2009 年第 28 卷第 1 期

Techniques of Automation & Applications | 123

经验交流

Technical Communications

4.1 路径识别算法

要获得路径的具体信息,首先要通过 A/D 转换将光

电传感器电压转换为数字量读入单片机中。而由于器

件制造工艺的问题,各个光电传感器的性能特性存在着

很大的差异。因此,为了消除传感器差异造成的影响及

给数据处理带来方便,我们经过测试选取了一组电压特

性相近的传感器作为路径识别器件。同时在测试时,记

录下各个传感器在白底黑线的赛道上扫描时单片机采

样到的输出最大值(对应读到白色赛道的情况)和输出

最小值(对应读到黑线中心的情况)。 在计算智能车的

位置偏差时,采用的是传感器的相对输出值。其计算公

式为:相对输出值 =(当前输出值 - 输出最小值)/(输

出最大值 - 输出最小值)。

本文采用的具体位置算法为:首先给智能车的各个

传感器定坐标值,具体方法是给智能车中心位置的传感

器定坐标值 0,其左侧传感器的坐标定为负值,右侧传感

器的坐标定为正值。接着判断出此时相对输出值最小

的传感器,也就是离黑线中心最近的传感器 BLACK,然

后计算传感器 BLACK 及其两旁的传感器此时距离黑线

中心位置偏差, 如果 BLACK 右侧的传感器输出值大于

其左侧传感器的输出值,则黑线中心的位置坐标的计算

公式为:位置坐标 = (BLACK 的坐标 -BLACK 与黑线

中心的偏差 +BLACK 左侧传感器的坐标 +BLACK 左侧

传感器与黑线中心的偏差)/2,否则其位置计算公式

为:位置坐标 = (BLACK 的坐标 +BLACK 与黑线中心

图 4 位置算法流程图

的偏差 +BLACK 右侧传感器的坐标 -BLACK 右侧传感

器与黑线中心的偏差)/2,然后根据得出的位置偏差改

变舵机的 PWM 占空比以控制其转向。算法流程图如图

4 所示。

4.2 转向及速度控制算法

提高舵机的响应速度是提高智能车的平均速度的

关键。在实际设计过程中,为了简化智能车参数的调试

设计,系统只采用 P 算法来控制舵机转向以进一步提高

智能车整体的转向灵敏度, 而实践也表明, 采用 P 参数

算法已经足以满足智能车的转向要求。

为了进一步地提高智能车的整体速度,系统必须能

对直道、弯道等各种路况进行识别, 实现直道加速, 弯

道减速。而在正确识别路况后,采用适当的速度控制算

法就成为系统整体提速的关键。在实际设计过程中,系

统采用了 PD 算法来控制直流驱动电机的转速, 实际调

试过程表明,采用 PD 参数的控制算法能够较好满足智

能车的速度控制要求[3]。

4.3 软件部分设计

智能车控制系统的软件用 C 语言设计而成, 采用

模块化编程和结构化编程, 即将程序分解成若干个小

模块,各个模块保持相对的独立性,只靠少量的出入口

参数联系这样使程序的调试、修改、维护都比较方便;

各个模块利用严格的转移和调用语句组成一个严密的

整体。软件系统主要由主程序、子程序和中断服务程

序组成。

图 5 主程序流程图

(下转第 117 页)

《自动化技术与应用》2009 年第 28 卷第 1 期

Techniques of Automation & Applications | 117

经验交流

Technical Communications

这样便于作为波特率发生器。程序设计遵循以下流

程: 采样->A/D 转换-> 输出, 下位机程序流程图如

图 3 所示。

MSC1210 带有可变增益放大器(PGA)对输入信

号进行放大,以满足不同强度信号源的要求。通过改变

芯片内部寄存器 ADCON0 的低三位, 可编程增益放大

器(PGA)的增益可被设置为 1、2、4、8、16、32、64

和 128,使用 PGA 可以显著地提高模数转换的有效精

图 3 下位机程序流程图

度。因此在读取到 A/D 转化当前值后, 可通过程序根

据当前测得的值对 PGA 进行自适应调整, 从而进一步

提高测量精度。

6 结束语

MSC1210 适合于色谱仪,血液分析,便携式仪器,压

力送变器等高精度测量仪器仪表应用领域。本文设计

的温度采集系统充分利用了 MSC1210 的新功能、新特

性, 实际应用情况良好。系统的可靠性和稳定性比较

好, 具有较大的应用前景。

参考文献:

[1] 张萌,和湘,姜斌.单片机应用系统开发综合实例[M].北

京:清华大学出版社,2007.

[2] 胡永建,王晓梅.基于 MSC1210的多路高精度温度采集

系统模块[J].电子技术应用,2003.(7):36-39.

[3] 魏小龙,施亿平,戴祥.带24位模数转换的1210单片机

及应用[J].电子产品世界,2003.(3):45-47.

[4] 于大方.利用VB实现串口数据采集[J].山东电大学报,

2002.(3):25-27.

[5] 单纯玉,任凤梅.MSC1210 在动态心电信号采集中的应

用[J].电子产品世界,2003.(5):35-36.

作者简介: 张雄希(1975-), 男, 讲师, 博士研究生, 研究方

向: 微机控制与检测技术、设备状态监测与故障诊断。

(上接第123页)

4.3.1 主程序设计

主程序里主要包括单片机的 A/D 转换、PWM、定

时器等模块的初始化, 传感器部分 PWM 调制信号的使

能,A/D 转换通道的使能,在主循环里对 A/D 采样数据

进行处理,分析得出位置速度信息并对舵机转向和直流

电机速度进行调度控制。主程序的流程图如图 5 所示。

4.3.2 子程序设计

子程序模块包括 I/O 口初始化子程序、定时器子程

序、A/D 转换初始化子程序、PWM 初始化子程序、锁

相环子程序、速度采样子程序、位置偏差计算子程序

等。各个模块相对独立又通过一定的参数出入口联系。

4.3.3 中断程序设计

中断程序包括实时时钟中断处理程序、A/D 转换

中断处理程序、输入捕获中断处理程序等。

5 结束语

在系统设计完成后, 经过多次的调试运行, 智能车

系统在遵守比赛规则正确寻迹的前提下,弯道速度可以

作者简介: 梁业宗(1984-), 男, 硕士研究生, 研究方向: 汽车

电子信息与控制技术。

达到 1.8 米 / 秒,而在直道上,智能车的速度可以达到

2.2 米 / 秒,表明系统设计可靠、智能车运行良好。但

是从总体上来说,本系统的设计还有许多可以改良的地

方。比如在路径识别传感器的选择上,由于采用的光电

传感器工作在脉冲的大电流下,系统消耗的电能较大及

工作时间长后传感器容易老化或损坏,所以今后可考虑

采用摄像头传感器来代替,而在速度控制算法上也可以

考虑引入模糊控制等手段来更好的对智能车进行实时

控制, 以提高智能车的总体性能。

参考文献:

[1] 卓晴,黄开胜,邵贝贝.学做智能车——挑战“飞思卡尔”

杯[M].北京:北京航空航天大学出版社,2007.

[2] 宗光华.机器人的创意设计与实践[M].北京:北京航空

航天大学出版社,2002.

[3] 赖寿宏.微型计算机控制技术[M].北京:机械工业出版

社,2005.


基于路径识别算法的智能车控制系统的设计

返回顶部