光电组_河海大学常州校区_海星队技术报告(光电组)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七届“飞思卡尔”杯全国大学生
智能汽车竞赛
技术报告
学校:河海大学常州校区
队伍名称:海星队
参赛队员:刘俊
沈赋
宋佳佳
指导教师:张金波
关于技术报告和研究论文使用授权的
说明
参赛队员签名:
带队教师签名:
日期:
摘要
基于大功率红外传感器的智能车寻迹竞速系统从确定总体设计思路展开,在硬件上,本系统以Freescale公司生产的16位单片机MC9S12XS128为控制处理器,采用红外激光传感器对赛道信息进行实时采集,既保证了很好的前瞻性,也确保了起跑线检测的精准性,通过光电编码器获取小车当前速度,利用PWM控制信号实现对电机和舵机的运行管理。
在软件上,利用了弯道预判和路径规划的策略对智能车的运行状态进行控制,以保证系统的快速运行;利用激光的精确识别技术以保证智能车系统的稳定运行;利用随动检测技术保证智能车系统的安全运行。
同时,应用PID算法对速度控制进行优化;用模糊控制对角度控制进行优化。
最后还介绍了机械结构的调整和开发调试的相关过程,并对系统设计中遇到的问题,进行了分析和讨论。
关键词:红外传感器、光电编码器、PID算法、模糊控制
目录
摘要 (III)
第一章引言 (1)
1.1大赛背景 (1)
1.2本文结构 (2)
第二章总体设计与分析 (3)
2.1特点分析 (3)
2.2识别方案的确定 (3)
2.3系统设计结构图 (4)
3.1整体设计概述 (5)
3.2路径识别模块 (5)
3.2.1传感器电路 (6)
3.2.2传感器分布设计 (6)
3.2.3传感器的安装 (8)
3.3电源管理模块 (8)
3.4电机驱动模块 (10)
3.5光电编码器模块 (11)
3.6键盘输入模块 (12)
3.7主控制模块 (12)
第四章系统软件的设计及实现 (12)
4.1设计规划 (13)
4.1.1功能模块化 (13)
4.1.2流程层次化 (13)
4.2路径识别 (14)
4.2.1弯道策略分析 (14)
4.2.2舵机转角控制方案 (15)
4.2.3电机驱动控制方案 (15)
4.2.4激光扫描方案 (16)
4.2.5路况检测方案 (16)
4.2.6上下坡识别 (17)
4.3算法实现 (18)
4.3.1 PID控制 (18)
4.3.2模糊控制 (19)
4.3.3算法小结 (20)
第五章赛车机械结构调整 (21)
5.1底盘离地间隙 (21)
5.2后轮距 (21)
5.3后轮差速 (21)
5.4齿轮传动 (22)
5.5舵机安装 (22)
第六章开发与调试 (24)
6.1开发仪器 (24)
6.2数据发送与接收 (25)
6.3智能车系统调试 (26)
第七章问题分析与总结 (28)
7.1设计中存在的问题 (28)
7.2总结与展望 (29)
参考文献 (30)
附录1:模型车的主要技术参数 (31)
附录2:小车程序 (32)
第一章引言
1.1大赛背景
全国大学生飞思卡尔智能汽车比赛是经全国高等教育司研究,委托高等学校自动化专业教学指导分委会主办的,旨在培养创新精神、协作精神,提高工程实践能力的科技活动。
参赛选手须使用竞赛秘书处统一指定的竞赛车模套件,采用飞思卡尔半导体公司的8位、16位、32位微控制器作为核心控制单元,自主构思控制方案进行系统设计,包括传感器信号采集处理、电机驱动、转向舵机控制以及控制算法软件开发等,完成智能车工程制作及调试,于指定日期与地点参加各分(省)赛区的场地比赛,在获得决赛资格后,参加全国决赛区的场地比赛。
参赛队伍的名次(成绩)由赛车现场成功完成赛道比赛时间来决定,参加全国总决赛的队伍同时必须提交车膜技术报告。
大赛根据车模检测路径方案不同分为电磁、光电与摄像头三个赛题组。
车模通过感应由赛道中心电线产生的交变磁场进行路经检测的属于电磁组;车模通过采集赛道图像(一维、二维)或者连续扫描赛道反射点的方式进行进行路经检测的属于摄像头组;车模通过采集赛道上少数孤立点反射亮度进行路经检测的属于光电组。
车模控制电路须采用飞思卡尔半导体公司的8位、16位、32位MCU作为唯一的微控制器。
同一学校同一组别不同队伍之间需要采用飞思卡尔不同系列的微控制器。
飞思卡尔不同系列的微控制器包括,32位Kinetis系列;32位ColdFire系列;32位MPC56xx系列;8位微控制器系列(可使用2片);16位DSC系列;16位微控制器9S12XS系列;16位微控制器9S12G系列。
核心控制模块可以采用组委会推荐的K10、9S12XS128、MPC5604B,也可以选用以上所述飞思卡尔公司微控制器自制控制电路板。
每台模型车的电路板中只允许使用一种型号微控制器。
8位微控制器最多可以使用2片,16、32位微控制器限制使用1片;不得同时使用8位、16位和32位微控制器。
比赛要求在组委会限定的控制器、及相关要求的基础上,制作一个能够自主识别路线的智能车,它将在专门设计的跑道上自动识别道路行驶。
中心目标是不违反大赛规则的情况下以最短时间完成单圈赛道。
参赛队伍最终名次由赛车现场成功完成赛道比赛时间为主,技术方案及制作工程质量评分为辅来决定。
须采用统一提供的车模,车模改装完毕后,尺寸
不能超过:350mm 宽和400mm长,高度无限制。
赛道宽度不小于45cm。
赛道与赛道的中心线之间的距离不小于60cm,跑道表面为白色,两边有连续黑线作为引导线,黑线宽25mm,并且跑道有坡道。
1.2方案介绍
按道路信息采集方式不同,比赛主要分为两组进行:(1)用CMOS或CCD 摄像头完成对道路的拍摄,把图像信息传入处理系统。
(2)利用光电传感器在不同材质下反射率不同,将路面信息传入处理系统。
本队参加光电组别的竞技,选择的设计方案是:硬件上以大功率红外光电传感器为核心,增加赛车的前瞻性和稳定性。
软件上采用PID算法控制舵机打角和电机转速,从而实现对赛车更好的控制,提高成绩。
1.2本文结构
本文首先从总体上介绍了智能车系统的设计思想和方案论证,然后分别从机械、硬件、软件等方面对系统进行论述,另外也提到了本队在制作和调试过程中遇到的问题及其解决方法。
文章共由七章组成:
第一章引言。
简单介绍比赛背景及赛车的基本方案。
第二章总体设计与分析。
包括系统总体设计的方案选定和可行性分析。
第三章硬件电路的设计与安装。
将主控制电路划分为多个模块,从多个角度介绍了外围电路的相关设计及装配过程。
第四章系统软件的设计及实现。
将软件设计模块化和层次化,重点论述了各种路径的识别方式和控制算法的具体实现。
第五章赛车机械结构调整。
在机械改造方面做出了一定尝试。
第六章开发与调试。
介绍调试的工具和方式,对比各种算法的实际效果。
第七章问题分析与总结。
围绕调试过程中遇到的问题做具体的分析和总结。
第二章总体设计与分析
2.1特点分析
基于光电传感器的车辆控制,一般由多对红外发射管和接收管组成,在一定的排布下,由发射管发射一定强度和频谱的红外光线,接收管反馈此刻反射光强度,并由外围电路将相应的光信号转化为电信号,通过单片机对数据做出处理,判断当前路面的情况,最终做出车体的相关控制。
与摄像头寻线相比,其优点是电路原理简单,采集的数据量少控制周期短,在处理和判断上更为便捷。
但也有很明显的缺陷:红外线发送与接收的距离有限,前瞻性受到很大程度限制,路面的信息量也相对太少,检测精度有限,不易于路径的优化。
基于以上特点,我们展开了基于光电传感器和PID算法的智能车设计。
2.2识别方案的确定
在光电管数据的接收和处理上,主要有数字型和模拟型两种。
1.数字型路径识别:只有0与1两种状态,在硬件电路的设计上可以采用如下方案:将接收管读取的反馈信号送到比较器,通过改变相应的参考电压,实现高低电平的输出,并将之送到单片机I/O口做数据处理。
该方案可以很好地区分出当前路面的黑白部分,离散的数据信息处理起来也较为方便快捷。
2.模拟式路径识别:其发光和接收都是锥角一定的圆锥形空间,电压大小与传感器距离黑色路径标记线的水平距离有定量关系:离黑线越近,电压越低,离黑线越远,则电压越高。
将接收管反馈信息送到单片机的A/D口进行类型转化,即可得到车体相对路径基准线的连续变化情况。
数字型较之模拟型有反馈速度快,数据处理简单的特点。
基于比赛相关规定,组委会要求传感器个数最多为16个,我们采用1对3的接收管和发射管的组合,即一个接收管对应3个激光发射管。
采用数字式路径识别,将传感器一字均匀分布,实时采集赛道信息。
其连续变化的道路状况也可以更好地被我们利用。
通过以上分析,我们确定了基于数字量的路径识别方案。
2.3系统设计结构图
根据预先确定的方案和思路,我们设计了整个系统的结构图。
并由此展开软硬件上的具体实现。
总体设计图如下:
图2.1 总体设计方案图
第三章硬件电路的设计与安装
3.1整体设计概述
稳定可靠的硬件电路是智能车系统运行的有力保障。
我们依据智能车运行的策略方案,最终设计实现了以下六大硬件电路模块:路径识别模块、电源管理模块、电机驱动模块、光电编码器模块、键盘输入模块和主控制模块。
以下我们将对这六个硬件电路模块进行一一介绍。
3.2路径识别模块
我们选用的是激光传感器来进行路径识别,激光传感器具有体积小、安装灵活方便、反应速度快、控制简单等优点,其路径识别原理是根据传感器发射出的红外线在不同颜色的物体表面具有不同的反射性质的特性。
使用单片机产生180KHZ的PWM波,给激光发射管提供发射频率。
当发射管发射出的红外线照射到跑道上时会发生漫反射,反射回来的红外线被180KHZ接收管接收,使接收管导通,在与接收管串联的电阻上会产生一定的电压值。
但照射到赛道黑色部分和白色部分发射回来的红外线强度是不同的,经过比较得到数字量的信息。
就可以判断出各个传感器检测到的是跑道的黑色部分还是白色部分(根据得到的数字信息0和1判断赛道信息)。
在红外传感器的选型上,我们选用的是658nm/20mw发射管和180KHZ接收管。
如图所示:
图3.1 655nm/100mw发射管和180KHZ接收管实物图
3.2.1传感器电路
我们通过5V电源为红外传感器供电,使用单片机产生的180KHZ方波作为其导通信号。
电路原理图如图:
图3.2 发射与接收原理图
根据接收管反馈回来的信号得到赛道的黑白信息继而进行处理。
3.2.2传感器分布设计
为配合路径记忆的软件控制策略,我们设计了双排红外传感器:上排红外传感器主要作用是进行智能车行进中的路面情况检测,一共用到18个激光发射管和6个透镜;下排红外传感器主要负责识别赛道的起跑线,共有6个。
对于上排红外传感器的分布,我们采用了均匀排布的方式,激光发射管间距20mm,总长度约为173mm。
具体设计方案如下:
图3.3第一排光电管设计图
考虑到识别起跑线的主要目的,下排红外传感器两两之间的间距做了特殊安排。
具体设计方案如下:
图3.4 第二排光电管设计图
为了提高上排光电管的前瞻性,我们将之架高做倾斜处理。
而下排光电管以采集精确性为根本目的,所以采取近地面近车体处理。
实际安装方式如下图:
图3.5实物图
3.2.3传感器的安装
传感器如何在保证其尽量远的前瞻性的前提下,稳固、正中、轻便地安装在智能车上又是一个关键的问题,为此我们动手制作了传感器支架。
在华东赛区的决赛中,我们发现比赛的跑道质地和我们在学校调试所用跑道有所不同,尤其是在反光度方面。
因此我们特地制作了可调高度的支架,即在支架上均匀地打了很多孔,通过将传感器电路板安装在不同的孔中便可达到调节高度的目的。
相关结构如图所示:
图3.6传感器支架实物图
安装完成后,通过测试我们发现上排红外传感器的前瞻为350mm时效果最好。
3.3电源管理模块
稳定的供电系统是其他各个模块正常运行的保证。
本模块设计以组委会提供的7.2V,2000mA电池为主电源,再通过不同芯片转换成各个模块需要的稳定电压。
在硬件电路中,主控制模块S12系统板、红外传感器、光电编码器各需要稳定的5V电压,为了尽可能地使各部分稳定地工作,我们用3片5V稳压芯片为这三部分供电。
通过比较,我们发现LM7805芯片压差较大,需要输入7.5V 以上才可以稳定输出5V,LM2575芯片虽然转化效率较高,但输出有较大波纹,综合各个方面考虑我们选用了压差较小且输出稳定的LM2940芯片作为5V稳压芯片。
其硬件实现方式如下:
图3.7 5V供电原理图
在舵机驱动芯片的选择上,由于舵机打角可能需要瞬间的大电流,我们用的是开关电源芯片LM2596-ADJ,通过调节可达到6.2V。
硬件实现方案如图:
图3.8 6.2V供电原理图
对于电机驱动模块,我们直接用电池为其提供电压。
3.4电机驱动模块
在设计制作电机驱动的过程中,我们首先采用的组委会推荐的33886芯片。
但通过使用发现无论是采用同步工作方式还是异步工作方式都会出现芯片发热的现象,甚至有不工作的情况。
为此我们不得不探寻一种可靠的驱动电路。
最终我们选用了MOS管电机驱动电路,其功率元件由2支N沟道功率MOSFET管IRF3205和2支P沟道功率MPSFET管IRF4905组成,驱动电流可以达到很大。
驱动模块主要包括PWM信号输入接口、电源电路、功率MOSFET 管栅极驱动电路、桥式功率驱动电路、缓冲保护电路等。
如图:
图3.9 电机驱动原PCB图
其中MC33886驱动器芯片是Freescale电子公司推出的一种用于直流电机的控制器件,可用于驱动MOSFET管组成的H桥电路,以增大输出电流,减少功率器件的发热。
在实际使用中该驱动模块工作稳定,驱动力强,有利于电机实现瞬间的加速与减速,提高电机的工作转矩和转速。
但智能车运行一段时间后电机发烫较严重,我们为电机加装了散热片后情况有所好转。
此外我们将电机驱动模块单独做成一个电路板,在安装时尽量将其放置在一个相对比较高的位置,有利于其在智能车行进过程中散热。
如下图所示:
图3.10 电机驱动模块实物图
3.5光电编码器模块
由于路径记忆的控制策略要求尽量精确地记录好每一个脉冲,因此我们通过比较霍尔传感器、发射式光电传感器、光电编码器等方案后最终确定采用了由OMRON公司生产的E6A2型光电编码器。
该编码器工作电压为5-12V,有三根引线,其中棕色线接VCC,蓝色线接地,黑色线为输出信号,需要上拉后接入单片机。
车轮每前进一段距离时,光电编码器便产生一定数目的脉冲,单片机利用ECT 对脉冲进行计数,从而得到车速值。
该光电编码器可精确记录一周360个脉冲。
如具体安装如下:
3.11 光电编码器实物安装图
3.6键盘输入模块
在比赛中会有很多不可预知的情况,而规则规定又不允许临时改变程序参数,因此设计键盘输入模块是十分必要的。
通过拨码开关的拨动可以设定参数不同的程序策略。
键盘硬件实现如图:
3.12 键盘模块实物图
3.7主控制模块
智能车主控制器我们选用的是组委会推荐的MC9S12XS128最小系统开发板,通过将我们所用到的相关引脚用排针引出,将其固定在主电路板上。
为了控制重心,我们将主电路板固定在车体中心,如下图:
第四章系统软件的设计及实现
4.1设计规划
4.1.1功能模块化
在系统设计过程中,为了寻求最优的控制方法,需要我们多次比较不种方法,反复修正重要参数,从而制定出最优方案。
为了方便高效的移植程序以适应不同的方案策略,系统软件设计努力做到功能模块化。
通过需求分析,设计系统的基本控制过程,并将不同功能的模块严格分开,每一部分完成特定的功能。
我们可将系统划分为以下几个主要部分:
1、键盘输入模块:用于重要参数的调整和控制策略的修正。
2、定时器模块:用于产生定时操作和脉冲测速。
3、PWM模块:用于实现对电机和舵机的控制。
4、A/D转换模块:用于读取当前赛道路面信息。
5、决策控制:根据赛道信息和赛车速度控制运动轨迹。
将基本功能确定后,即可展开模块初始化,控制优化的软件编写阶段。
4.1.2流程层次化
为了使编写工作更加清晰明了具有层次感,我们设计了系统的整体流程运行图,其中主要包括以下三个部分:初始化、数据处理、决策控制。
具体实施过程如下图所示:
图4.1 软件设计流程图
4.2路径识别
4.2.1弯道策略分析
在车辆进弯时,需要对三个参数进行设定:切弯路径、转向角度、入弯速度。
其中,切弯路径主要决定了车辆是选择内道过弯还是外道过弯。
切内道,路经最短,但是如果地面附着系数过小会导致车辆出现侧滑的不稳定行驶状态,而其原因是切内道时曲率半径过小,同时速度又很快,所以模型车需要更大的向心力,而赛道本身是平面结构,向心力将全部由来自地面的摩擦力提供,因此赛道表面的附着系数将对赛车的运行状态有很大影响。
切外道,路径会略长,但是有更多的调整机会,同时曲率半径的增加会使得模型车可以拥有更高的过
弯速度。
简言之,就是内道过弯路径更短、极限速度低;外道过弯路径长、极限速度更大,所以,内道过弯的速度快还是外道过弯的速度快并不确定,要根据赛车与跑道的具体情况而定。
4.2.2舵机转角控制方案
在整个智能车系统中,我们应用了两个舵机。
一个是下舵机,也就是控制前轮转向的舵机,一个是上舵机,即控制远前瞻激光版转动的舵机。
控制方案如下所示:
在本智能车软件系统中,远前瞻的值被量化成一个长度为18的数组。
根据数组中0或1的情况得出当前黑线所在位置。
然后应用PI控制对上舵机进行控制,控制量为远前瞻激光的返回值。
尔后对输出的PWM进行上下限的判断,将输出限制在一个范围之内。
这样便实现了对上舵机的控制。
上舵机控制完毕之后,得到上舵机现PWM与中心值所对应的PWM的偏差,作为下舵机的控制量。
考虑下舵机的特殊性以及我们使用的前瞻,在下舵机控制中略去I项,使用PD对下舵机进行控制。
同时,根据近前瞻的光点返回值,对PD输出的值进行略微的修正,这样,等价于在弯很小的情况下减小了P,弯道很大的情况下加大了P。
优化了智能车的路径。
4.2.3电机驱动控制方案
智能车系统是基于光电编码器的速度检测系统,可以实现电机的闭环控制。
具体的控速方法本次使用了bang-bang控制和PID控制相结合的方法(如图3-17)。
bang-bang控制有利于控制的力度而PID 控制有利于控制的精度,两者结合是一个优势互补的解决方案。
Bang-bang控制可以在路径规划策略的基础上,给不同路况设置不同的阀值,以选择合理的加速减速时机,并且这种控制效率很高,能够大大提升系统的响应时间;PID控制则能使智能车系统运行更加准确稳定,特别是在直道时,合适的PID参数能使智能车尽快稳定在直线路径上。
这两种控制对与智能车速度的提升都有很大的作用。
另外,由于智能车运行的路况多变,因此对电机的加速减速性要求很高,而有效的减速性能是赛车高速运行和安全不出界运行的保证,通过实验总结,电机反转、自转、正转三种状态轮流切换的刹车方法最为有效。
4.2.4激光扫描方案
由于我们的远前瞻采用了18个激光管的扫描,在一般情况下,最多只有4个左右的激光管打在黑线上,其他的激光管都打在了白区域上。
这样不仅增加了扫描周期,更添加了未知的危险---其他白区域上的路况可能会对结果产生干扰。
因此,我们采用了随动检测:第一个周期进行激光管全开扫描,当扫描到黑线时,记下此时黑线所在位置,下个周期只开以这个位置为中心的七个激光管。
当所有五个激光都找不到黑线时,将激光全开,寻找黑线位置。
上面提到,摆头上舵机的控制主要是根据前瞻光点决定的,在特殊的路况下,会出现远近前瞻判断黑线左右不一致的情况,这也是很容易理解的,两前瞻之间有30cm的距离,在小S型或左右弯道交替频繁的跑道上,远近前瞻很可能在跑道的两侧,于是为了提高稳定性,我们以上舵机的光点位置为主得出上舵机的控制量,再利用下舵机的信息进行微小修正,这样等价于减小了光点在中央附近时的控制量,增大了光点偏离中心较远时的控制量,实现了舵机控制的优化。
4.2.5路况检测方案
由于激光传感器返回的只是几个离散的值,所以必须对该信息进行处理。
分辨出直道,大小弯道,坡道,起跑线甚至是S弯之类的路况,以便对智能车进行较为合理得控制。
例如在直道上,下舵机就应该“笨”一些,这样会在不会出现直道上蛇形前进;速度要快但是要有限速,防止入弯冲出赛道。
对于其他路况,也要进行类似的处理,例如在坡道舵机要摆正,速度要大小合适,弯道上下舵机要灵敏一些。
我们检测路径的基本思想是:找出路况的基本特征,然后做积累,若干个周期内都符合此特征,便通过对标志位置位,进行路况的标定。
而路况的基本特征则需要根据具体情况制定,如直道特征是中间几个光点在黑线上,坡道特征是远前瞻会什么都看不到,在此不一一讨论。
4.2.6上下坡识别
比赛中直道的路段将有会有坡道穿插其中。
考虑到坡道上路面的变化中,路面高度会有变化,将对光电管采样和行驶平稳度产生影响。
为了让小车更好地适应坡度,不影响整体成绩,我们引入状态转化的思路,将平地,上坡,,坡顶平面,下坡加以区分。
并很好地实现了相互之间的转换。
光电组、摄像头组的赛道直线部分可以有坡度在15°之内的坡面道路,包括上坡与下坡道路,如图6所示。
电磁组的赛道没有坡道。
图4.2坡道参数及示意图
上坡切换:由于赛车前端首先感应到路面高度变化,路面迫近光电管,检测距离拉近,造成采样值整体变大。
由此判断赛车切换至上坡状态,可做加速处理,帮助小车更顺利地完成爬坡工作。
坡顶平面切换:当小车行至坡道顶部时,路面突然远离光电管,检测距离变远,造成采样值整体变小。
可以识别出当前进入坡顶平面,让小车以平稳速度完成该段赛段,可以避免因速度过快而发生飞车现象。
下坡切换:在坡顶行驶中,当检测路面再次远离光电管,所有AD值大幅度变小,说明小车即将进入下坡阶段。
下坡中,赛车由于惯性作用加速过快,容易在前方弯道因过冲而无法顺利过弯。
可以适当降低车速,避免意外情况发生。
正常路面切换:下坡与平面的连接部分,路面再次迫近光电管,AD值明显增大,此刻切换状态,可使赛车重新恢复正常运行。
相互的连接切换如下图所示:。