“飞思卡尔”杯大学生智能汽车创意赛车模的制作

时间:2022-10-10 03:47:14

“飞思卡尔”杯大学生智能汽车创意赛车模的制作

摘要: 本文基于“飞思卡尔大学生智能汽车创意赛,设计制作一种基于CCD摄像头的智能车,并在复杂道路条件下的行驶。智能车系统以Freescale16位单片机MC9S12XS128作为系统控制处理器,采用基于摄像头的图像采样模块获取赛道图像信息,通过PID控制策略控制车模的方向和速度,利用超声波传感器测距对车距进行控制,最终实现车模的寻道行驶、在十字路口的左右转、两车跟踪行驶等基本功能。

Abstract: Based on the "Freescale" creative competition of college student''s smart cars, this paper designs and makes a CCD camera-based smart car, which can run in complex road conditions. The car system takes the Freescale16 microcontroller MC9S12XS128 as the system control processor, access to the track image information from the image sampling module of the camera; it controls the car''s direction and speed through the PID control strategies, measures the spacing by using the ultrasonic sensor, finally realizes the function of seeking road performance, turning left or right, two cars of the track road performance.

关键词: 飞思卡尔;智能车;CCD;超声波传感器

Key words: Freescale;smart car;CCD;ultrasonic sensor

中图分类号:G642 文献标识码:A 文章编号:1006-4311(2012)03-0182-02

0 引言

近年来,智能车辆和智能交通已成为汽车和智能控制领域的热点研究课题之一。本文是在第六届飞思卡尔全国大学生智能汽车创意赛背景下创作的,具体介绍了一种基于CCD摄像头的智能车在复杂道路条件下的运行情况。

飞思卡尔CCD(Charge-coupled Device,中文全称:电荷耦合元件,称为CCD图像传感器)循迹智能车,是限定16位微控制器MC9S12XS128作为唯一控制处理器,硬件方面主要由电源管理,电机驱动,舵机转向控制,路径检测,车速管理等模块构成,在软件方面是使用CodeWarrior 3.1实现控制。根据CCD摄像头在黑色跑道,和两端白色边线的反射率的反差所检测到的信号,再将信号传输到处理器中。通过比例控制实时修正舵机的PWM占空比,使智能小车能够按照只按照中间黑色跑道行驶。

1 系统设计

1.1 系统硬件设计方案 系统硬件设计是整个智能车设计最基础同样也是最重要的部分,硬件各模块会影响到车模行驶稳定性和转向灵活性。正确的硬件设计方向与思路为软件系统的发挥提供了强大的保障,硬件设计框图如表1所示。

1.2 系统软件设计方案 软件程序高效稳定运行是车模快速平稳完成各个功能的基础。智能车系统主要包括以下模块:飞思卡尔MCU模块、电源模块、转向舵机模块、CCD视频采集模块、电机驱动控制模块、转速反馈(编码器)模块以及超声波模块。CCD摄像头采集赛道图像信号后,以PAL制式信号输出到信号处理模块进行片外AD转换并同时进行视频同步信号分离,分离出场同步信号,行同步信号,奇偶场信号。经AD转换后的数据和同步信号同时输入到9S12XS128控制核心,进行进一步处理以获得图像信息,通过光电编码器来检测车速,并采用9S12XS128的输入扑捉功能进行脉冲计数,计算车模的当前速度,以处理后的信号为依据控制PWM模块发出PWM波,通过输出不同占空比分别对转向舵机、直流电机进行控制,完成智能车的转向前进和制动。此外,单片机对接收到的超声波信号进行处理,实现两车模的跟踪行驶,当两车模距离超过阀值时,后车报警并降低车速。

2 机械结构与调整

2.1 机械结构组成部分 硬件方面主要由电源管理,电机驱动,舵机转向控制,路径检测,车速管理,超声波模块组成。

下面主要对电机驱动模块与超声波模块做说明:

电机驱动模块:智能车采用后轮驱动,驱动电机采用了标准微型马达公司生产的RS-380SH型电机。该电机额定电压为7.2V,空载电流为0.5A,转速可达16200r/min;当电机转速在14060r/min时,工作效率最大,转矩达到了10.9N·m。

由于单片机输出的脉宽无法驱动大赛提供的直流电机,因此需要通过驱动电路来驱动电机。赛车的电机驱动没有采用大赛组委会提供的MC33886电机驱动芯片,而是采用了自制的H桥电路,可以方便地实现电机正转和制动。

对于直流电机转速的控制采用了基于“H”桥驱动电路的PWM(Pulse Width Modulation脉冲宽度调制)控制技术。“H”桥驱动电路原理图如图1。

在电机驱动上,我们用MOS管作为分立元件搭建了H桥驱动电路。通过逻辑设计,可以让电机处于多种模式下工作,经过在赛道上对智能车进行试验,电机的加减速效果很好,完全可以满足智能车对不同类型的赛道上加减速的要求。

超声波模块:超声波是指频率高于20khz的机械波。为了以超声波作为检测手段,必须产生超生波和接收超声波。超声波测距的原理一般采用渡越时间法,首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离。

只需要提供一个10us以上的脉冲触发信号,该模块内部将发出8个40kHz周期电平并检测回波。一旦有回波信号则输出回响信号,回响信号的脉冲宽度与所测距离成正比。测量周期必须在60ms以上,不然发射信号会对回响信号产生一定的影响。

2.2 机械结构的调整 智能车的控制算法和软件程序都需要通过智能车的机械结构来执行和实现。为使模型车在行驶中发挥出最佳的机械性能,需要结合汽车理论相关知识对赛车的运动特性进行分析,并据此对智能车的底盘结构进行相应的调整。

车体重心位置调整:赛车在行驶过程中,重心位置也会对其行驶性能产生重大影响。根据汽车理论,车身重心前移,会增加车轮的转向不足趋势,有利于提高转向稳定性;但是由于前轮负载的增加和后轴负载的减少,前轮转向灵敏度会降低,后轮附着力也同时减少,造成动力损失与后轮打滑;而重心后移,虽转向稳定性降低,但使转向更灵敏,后轴动能充分利用。

差速器调整:智能车在转弯时内外两侧车轮会移动不同的曲线距离,外侧车轮经过的线性距离大于内侧车轮。差速器的作用就是保证智能车在转弯时内外驱动轮能以不同的转速作纯滚动运动,避免发生车轮拖滑。

差速器主要分两种:齿轮差速器和滚珠差速器,组委会所提供的A型车模即采用的是滚珠差速器。滚珠差速器的差速效果与两边压盘的夹紧力有关,如果压紧力过大,那么滚珠之间的摩擦力就会随着增大,相对滑动困难,影响差速效果。反之,如果夹紧力过小,加速时齿轮与两边压盘之间会发生打滑现象,影响动力传递。

3 软件系统的设计与实现

3.1 图像采集与处理 通过图像处理把摄像头至核心板处的视频信号中提取白线的位置。常用的提取算法分为二值化算法、直接边缘检测算法和跟踪边缘检测算法。经比较最终选择运用跟踪边缘检测算法。

跟踪边缘检测算法:由于白色的目标引导线是连续曲线,所以相邻两行的左边缘点比较靠近。跟踪边缘检测正是利用了这一特性,对直接边缘检测进行了简化。其思路是若已寻找到某行的左边缘,则下一次就在上一个左边缘附近进行搜寻。这种方法的特点是始终跟踪每行左边缘的附近,去寻找下一列的左边缘,所以称为“跟踪”边缘检测算法。

其核心思想就是对每一行从左往右对像素点进行扫描,寻找灰度值突然上升并且其右边几个点的灰度值与其相似的那个左边缘点1,再继续向右扫描,同样寻找灰度值突然下降升并且其右边几个点的灰度值与其相似的那个左边缘点2,取点1和点2的中点为小车的寻迹引导点。具体的算法流程图如图2所示。

3.2 PID控制 PID控制以其结构简单、稳定性好、工作可靠成为工业自动控制的主要控制技术之一。在智能车系统运行时,路径信息不能完全掌握且对于整个系统难以得到精确的数学模型,系统控制器的结构和参数就必须依靠经验和现场调试来确定,这时PID控制技术就显示了其突出的优势。PID控制技术解决了自动控制理论所要解决的最基本的问题,即系统的稳定性、快速性和准确性问题。

在减速上我们有两种方案,方案一通过电机反转,这种减速方式减速快,效果明显,但是对电机损害大,电机发热相当严重。方案二减少PWM占空比,这个减速效果没有方案一的明显,因为小车在高速转动的时候惯性比较大,不过经过试验与实际的测试,方案二的减速方式对于我们小车已经够用,而且这样对防止电机的老化比较好,所以我们采用方案二的这种方式。

3.3 程序调试

3.3.1 调试模块 为了便于调试,智能车采用的是SD卡数据存储方案。SD卡的软件设计主要包括两部分内容:SD卡的上电初始化过程和对SD卡的读写操作。

SD卡上电后,主机必须先向SD卡发送74个时钟周期,以完成SD卡上电过程。SD卡上电后会自动进入SD总线模式,并在SD总线模式下向SD卡发送复位命令(CMD0),若此时片选信号CS处于低电平态,则SD卡进入SPI总线模式,否则SD卡工作在SD总线模式。SD卡进入SPI工作模式会发出应答信号,若主机读到的应答信号为01,即表明SD卡已进入SPI模式,此时主机即可不断地向SD卡发送命令字(CMD1)并读取SD卡的应答信号,直到应答信号为00,以表明SD卡已完成初始化过程,准备好接受下一条命令。

此后,系统便可读取SD卡的各寄存器,并进行读写操作。同时编写SD卡上位机后,每次模型车跑完全程就通过该上位机程序可得到运动过程中的每一场图像及相关数据,记录运动时赛道图像视频。

3.3.2 软件系统调试 在软件设计中,需要用到定时器模块、AD模块、PWM模块等。在编写主程序前,应该先对各模块的初始化分别进行调试。

根据系统电路板的资源,本设计方案中,使用PAD00对摄像头输出信号进行采样,PWM0和PWM1口级联后在PWM1口输出PWM波控制舵机转角。PWM2口和PWM3口、PWM4、和PWM5口级联后分别控制直流电机正反转。调试AD模块,先使用BDM模块将子程序下载到芯片内,然后在PAD00的输入端利用稳压源产生5V的电压,观察CodeWarrior4.6中memory窗口中相应寄存器的值。根据A/D转换结果寄存器的值计算输入电压。若计算出的电压值与实际输入的电压值在误差允许范围内相等,说明该子程序正确。调试定时器模块,可以在通过系统电路板上PJ口外接的发光二极管电路,这样利用软件产生时间一定循环改变PJ口高低电平,通过观察小灯的明灭可以方便的检测定时时间是否正确。为检验PWM控制程序,可以编写一个输出固定占空比的PWM波形子程序,将PWM端口接入示波器,通过示波器观察输出波形是否与设定值相同,若相同则程序正确。

4 结束语

若要使智能车按照道路行驶,无论从硬件制作,与软件的调试,都非常的重要。硬件是“肉体”,而软件是“灵魂”,没有合理稳定的硬件,软件调试无法完全发挥作用;若没有严谨可靠的软件系统,仅靠硬件是无法实现功能。智能车的调试是一个长时间的磨合过程, 通过多次调试可以将小车的各个参数调整至最佳。

参考文献:

[1]卓晴.黄开胜.邵贝贝.学做智能车——挑战“飞思卡尔”杯[M].北京:北京航空航天大学出版社,2007.

[2]邵贝贝.单片机嵌入式应用的在线开发方法[M].北京:清华大学出版社,2004.

[3]余志生.汽车理论[M].北京:机械工业出版社.2006.

[4]周立功.SD卡读写模块设计[M].北京:北京航空航天大学出版社,2004.

[5]刘东生.曾晓雁.液晶显示控制器的应用[J].电子设计应用,2004.

上一篇:高职高专会计实践教学研究 下一篇:浅谈中专毕业护士如何带教本科生护士