智能车硬件系统设计及实现.docx
- 文档编号:29730372
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:60
- 大小:1.55MB
智能车硬件系统设计及实现.docx
《智能车硬件系统设计及实现.docx》由会员分享,可在线阅读,更多相关《智能车硬件系统设计及实现.docx(60页珍藏版)》请在冰豆网上搜索。
智能车硬件系统设计及实现
第1章引言..........................................1
第2章系统总体设计..................................2
2.1系统概述..........................................2
2.2整车布局.........................................3
第3章机械设计及实现................................4
3.1转向轮倾角的调整..................................4
3.1.1主销后倾........................................4
3.1.2主销内倾........................................5
3.1.3前轮外倾........................................5
3.1.4前轮前束.......................................5
3.2舵机安装.........................................6
3.3编码器的安装.....................................7
3.4线性CCD的安装..................................7
3.5齿轮啮合与差速调整...............................8
第4章智能车硬件系统设计及实现......................9
4.1硬件设计方案.....................................9
4.2单片机最小系统板.................................9
4.3电源稳压电路....................................10
4.4电机驱动........................................11
4.5辅助调试模块...................................12
第5章软件系统设计及实现...........................13
5.1系统软件流程图..................................13
5.2线性CCD赛道识别处理...........................14
5.2.1图像预处理.....................................14
5.2.2边沿检测算法..................................14
5.3控制策略........................................14
5.3.1舵机PD控制....................................14
5.3.2速度PID控制...................................15
第6章系统开发及调试工具...........................17
6.1软件开发工具....................................17
6.2上位机..........................................18
第7章车模的主要技术参数...........................19
第8章结论.........................................20
8.1制作成果........................................20
8.2问题与思考.....................................20
8.3不足与改进.....................................20
8.4致谢与总结.....................................21
参考文献............................................22
附录
附录A:
系统原理图................................Ⅰ
附录B:
部分程序源代码............................Ⅱ
摘要
本文针对第九届飞思卡尔智能车比赛,主要介绍了南京信息工程大学FIW队设计的智能车系统。
该智能车系统以MK60N512VMD100微控制器为核心控制单元,采用线性CCD摄像头来采集赛道信息,并对采集到的图像进行软件二值化,利用边沿检测算法提取黑色引导线。
通过光电编码器检测模型车的实时速度,使用PID控制算法来调节电机转速和舵机转向角,实现对模型车运动速度和运动方向的控制。
为了保证智能车运行时的快速性和稳定性,使用了无线模块和蓝牙串口模块,键盘液晶模块作为调试工具,并进行了大量硬件与软件调试。
实验结果表明,该系统设计方案确实可行。
关键字:
MK60N512VMD100,PID,线性CCD,边沿检测算法;
Abstract
Accordingto theNinthFreescaleSmartCarCompetition, thisarticlemainly introducesthesmart carsystemdesignedbytheFIWteamfromNanjingUniversityofInformationScienceandTechnology. Thesmartcar systemusesMK60N512VMD100 microcontrollerasthecore controlunit, capturesthe informationofthetrackbylinear CCDcamera, obtainstwodifferentvaluesbysoftwarefromthecollectedimages, and uses edgedetectiongorithmtoextractblackguideline. Weuseaspecialphotoelectricencoderasasensortodetectthereal-time speedofthemodelcar,andadjustthe motorspeedand steeringanglethroughthePIDcontrol algorithm tocontrolthespeed anddirectionofthemotion. Inordertoimprovetherapidity andstability ofthecar, weaddawireless module,abluetooth serialmodule, akeyboardand aLCDmoduleas debuggingtools,andcarryoutalotof testsbasedonhardware andsoftware. Theresultsshowthatthesystemdesign isfeasible.
Keywords:
MK60N512VMD100, PID, linear CCD, edgedetection algorithm;
第1章引言
全国大学生“飞思卡尔”杯智能汽车竞赛起源于韩国,是韩国汉阳大学汽车控制实验室在飞思卡尔半导体公司资助下举办的以HCSl2单片机为核心的大学生课外科技竞赛。
组委会提供一个标准的汽车模型、直流电机和可充电式电池,参赛队伍要制作一个能够自主识别路径的智能车,在专门设计的跑道上自动识别道路行驶,最快跑完全程而没有冲出跑道为获胜者。
其设计内容涵盖了控制、模式识别、传感技术、汽车电子、电气、计算机、机械、能源等多个学科的知识,对学生的知识融合和实践动手能力的培养,具有良好的推动作用。
本技术报告主要包括机械系统、硬件系统、软件系统等,详尽地阐述了我们的设计方案,具体表现在硬件电路的设计以及控制算法的独特想法。
智能车的制作过程包含着我们的辛勤努力,这份报告可以说是凝聚了我们这半年来的血汗和智慧,我们团队此次能突破我校在历年的参赛史上的突破,这也是我们共同努力的结果。
在准备比赛的过程中,我们小组成员涉猎控制、模式识别、传感器技术、汽车电子、电气、计算机、机械等多个学科,半年来的经历,培养了我们电路设计、软件编程、系统调试等方面的能力,锻炼了我们知识融合、实践动手的能力,对今后的学习工作都有着重大的实际意义。
在此要感谢南京信息工程大学信息与控制学院对此次比赛的关注,我们的成果离不开学校的大力支持及指导老师悉心的教导;还要感谢的是和我们一起协作的队员们,协助,互促,共勉使我们能够走到今天。
第二章系统总体设计
2.1系统概述
该系统以Freescale32位单片机K60作为系统控制处理器,采用基于线性CCD的图像采集模块获取赛道图像信息,对图像进行软件二值化,提取黑色引导线,算出赛道中心线,计算出小车与赛道中心线的位置偏差;通过光电编码器来检测车速,并采用MK60N512VMD100的输入捕捉功能进行脉冲计算获得速度;转向舵机采用PD控制;驱动电机采用PID控制,通过PWM控制驱动电路调整电机的功率;而车速的目标值由默认值、运行安全方案和基于图像处理的优化策略进行综合控制。
根据智能车系统的基本需求,我们设计了系统结构图,如图2.1所示
图2.1系统结构图
2.2整车布局
在整个设计过程中我们根据赛车的特点,在满足比赛要求的情况下,力求系统简单高效,因而在设计过程中尽量简化硬件结构,整车布局总结为以下6点:
(1)舵机采用立式安装,以提高舵机的响应速度;
(2)采用强度高、质量轻的碳素杆制作线性CCD支架;
(3)为了降低车模重心,电池低位放置;
(4)将电池放在小车中间偏后,重心稍后,利于小车过弯;
“FIW”的整车布局图如图2.2所示:
图2.2整车布局图
第三章机械设计及实现
光电组今年采用B车模,在整个调试过程中我们发现,车辆在高速情况对整车机械性能要求很高,为了能够使车在高速情况下更稳定流畅地运行,我们在前期装配时,对整车进行了细致的分析和装配,在规则允许的范围内进行改造,使车模的机械性能得到了提升。
而前轮的束角和主销倾角对车的高速运行下的稳定性影响是最大的。
舵机的灵敏程度同样对高速运行的车辆起着至关重要的的作用。
图3.1车模示意图
3.1转向轮倾角的调整
3.1.1主销后倾
主销的轴线相对于车轮的中心线向后倾斜的角度叫做主销后倾角,前轮的重心在主销轴线上,由于主销后倾使前轮的重心不在车轮与地面的接触点上,于是产生了离心力,这样可以保证汽车在直线行驶的稳定性还可以帮助车轮自动回正。
图3.1.1主销后倾示意图
3.1.2主销内倾
主销轴线相对于车轮的中心线向内倾斜的角度叫主销内倾角。
主销内倾角可以帮助舵机复位。
但主销内倾角不宜过大,否则会加速轮胎的磨损。
3.1.3前轮外倾
转向轮上端略向外倾斜的角度叫前轮外倾角。
小车在空载时如果车轮垂直于路面,承载后由于悬架的变形而出现车轮内倾,由于外端轴承明显小于内端轴承,于是车轮工作的不安全性大大增加。
为提高车轮的工作安全性,前轮要留有一定外倾角,承载后车轮正好垂直于地面。
3.1.4前轮前束
前轮前束是指转向轮前端向内倾。
此举是为了抵消前轮外倾带来的转向轮向两侧滚开的趋势,最大限度地减少车轮行驶过程中的横向滑移。
图3.1.4前轮前束示意图
3.2舵机安装
舵机安装直接关系到是否能快速灵敏地转向的问题。
如果舵机调整不到位,将很大程度上限制转向角度和转向响应速度。
舵机安装有两种方式,一种是卧式安装,另外一种为立式安装。
卧式安装为车模默认安装方式,但这样安装会使左右两边轮子连杆不等长,根据杠杆原理可知舵机对长连杆轮子用的力要大些,因此造成了舵机对左右两边转向响应时间不一样。
另外由于卧式安装会使连杆与水平面呈现一定角度,从力学知识可以知道在轮子转向获得的力只是舵机施加在连杆上力的一个水平方向上的分力。
立式安装把舵机架高,增长了力臂,使得小车反应更加灵活,但增大了阻力,力的作用减小。
因此,根据舵机性能和实际情况确定高度,将舵机立式正放,提高了其响应速度,然后将支架以合适的高度固定在底盘上。
如图3.2所示。
图3.2舵机安装图
3.3编码器的安装
编码器是智能小车速度反馈元件,其安装位置应该充分考虑测速的准确性,我们使用的是欧姆龙编码器。
欧姆龙编码器连接线有四根,棕色为+5V,蓝色为负极,细黑和白色为信号输出,信号线需上拉电阻5—10K,区分正反转是通过相位差获得。
在尝试了各种可能性后,采用了如图的安装方式。
将编码器安装于车模尾部并尽量放低,与车轮传动齿轮良好啮合。
图3.3编码器安装图
3.4线性CCD的安装
CCD支架的选取,支架与车模的固定,CCD与支架的固定等,都会对小车的性能造成很大的影响。
我们选取轻质碳杆作为CCD的支架,我们购买合适的器件将支架和车模牢牢的固定在一起,防止小车在运行过程中大幅抖动。
CCD的安装如图3.4:
图3.4线形CCD安装图
3.5齿轮啮合与差速调整
电机与差速齿轮啮合主要是调整两齿轮的齿间距,合适齿间距能够减少两齿轮的磨损,延长其使用寿命。
齿轮传动部分安装不恰当,会增大电机驱动后轮的负载;齿轮配合间隙过松则容易打坏齿轮过紧则会增加传动阻力。
所以我们在电机安装过程中尽量使得传动齿轮轴保持平行,传动部分轻松、流畅,不存在卡壳或迟滞现象。
差速结构的作用是在车模转弯的时候,降低后轮与地面之间的滑动;并且还可以保证在轮胎抱死的情况下不会损害到电机。
差速器的特性是:
阻力越大的一侧,驱动齿轮的转速越低;而阻力越小的一侧,驱动齿轮的转速越高,以此次使用的后轮差速器为例,在过弯时,因外侧后轮轮胎所遇的阻力较小,轮速便较高;而内侧后轮轮胎所遇的阻力较大,轮速便较低。
好的差速机构,在电机不转的情况下,右轮向前转过的角度与左轮向后转过的角度之间误差很小,不会有迟滞或者过转动情况发生。
第四章智能车硬件系统设计及实现
4.1硬件设计方案
我们在硬件总体设计时综合考虑了系统的可靠性、稳定性以及简洁性。
硬件设计应在可靠的基础上使其简单化,满足稳定工作的基本要求,电源管理模块要保证使整个系统供电稳定;保证传感器信息采集准确有效;电机驱动则需在保证正常工作的情况下尽量减少对其他电路的干扰,所以电机驱动模块与主板无论是设计还是制板都是分开的。
同时为了提高系统的简洁性,PCB板的形状设计和安装也充分考虑了车模的外观和整体设计。
整个智能车控制系统由三部分构成:
K60最小系统板、主板、电机驱动和键盘电路板。
4.2单片机最小系统板
MK60N512VMD100是K60系列MCU。
Kinetis系列微控制器是Cortex-M4系列的内核芯片。
图4.2最小系统原理图
最小系统使用K60100PIN封装,为减少主板空间,板上仅将本系统所用到的引脚引出,包括PWM接口,若干普通IO接口。
其他部分还包括电源滤波电路、时钟电路、复位电路、串行通讯接口、SPI接口。
用到的接口如下:
电机PWM波输出:
PTB0、PTB2
舵机PWM波输出:
PTA5
编码器两相信号输入:
PTB18、PTB19
线性CCD图像信号输入:
PTE2
键盘输入信号:
PTD0、PTD1、PTD2、PTD3、PTD4、PTD5、PTD6、PTD7
LCD接口:
PTA14、PTA15、PTA16、PTA17
4.3电源稳压电路
智能车的硬件电路有可充电镍镉电池(7.2V、2000mAh)提供。
系统中的各个电路模块所需要的供电电压是不相同的,所以设计了稳压电路,将电池电压转换成各个模块所需要的电压。
本系统中,+3.3V给单片机供电;+5V为LCD、光电编码器、线性CCD模块、电机驱动模块供电;+6V为舵机供电;
单片机供电选用了低压差降压稳压芯片LM1117IPM-3.3,在压差为1V时就可稳定输出3.3V电压。
由于在电机驱动时电池压降较大为提高系统稳定性,必须使用低压差稳压芯片。
为此我们选用了低压差线性稳压芯片LM2940S-5.0为5V工作的芯片供电。
它们的纹波电压小,能对负载的变化迅速做出反应,适合为各个模块供电。
图4.3电源稳压电路
4.4电机驱动
B车模电机功率比较大,在实际工作时转速很快,电机本身的性能直接决定了小车的行驶速度和加减速性能,因此,对驱动电路的参数要求十分严格,驱动电路的参数性能对电机的发挥影响重大。
图4.4电机驱动电路
4.5辅助调试模块
辅助调试模块主要用于智能汽车系统的功能调试、赛车状态监控。
我们采用液晶OLED128*64和按键以及蓝牙进行辅助调试,为方便调试提供了好的平台。
图4.4键盘电路图
第五章软件系统设计及实现
5.1系统软件流程图
图5.1主程序流程图
图5.2中断流程图
5.2线性CCD赛道识别处理
5.2.1图像预处理
由于TSL1401线性CCD返回的数据是模拟量,单片机需要对其进行AD转换后方能使用。
要对CCD数据进行二值化,还需要设定一个阀值。
但是由于CCD受环境光线影响较大,所以这个阀值需要实时变化即动态阈值,才能使CCD数据二值化后更准确。
由于线性CCD数据中本身可能会有噪声,赛道上的白色跑道可能会有斑点,赛道背景可能会反光等原因,CCD返回的数据不能直接使用。
首先舍掉两边各7个像素点,对剩余数据进行比较求取最大最小值,然后将最大最小值求和平均得到动态阈值,由此进行二值化,二值化后再进行单点滤波。
结果表明,此算法可行性较好。
5.2.2边沿检测算法
本系统采用的黑线提取方案是:
只寻找黑白跳变沿,然后根据跳变沿的位置及历史数据来判断左右黑线。
经过实验,本方案可靠性较高。
(1)从左向右检测右黑线,从右向左检测左黑线,记录左右黑线坐标;
(2)两边都检测到黑线,直接求和平均求出中心值;
(3)只检测到一边时,根据赛道宽度补线得出另一边,求出中心值;
(4)两边都未检测到时,根据CCD曝光时间判断出是十字交叉处还是赛道背景;
5.3控制策略
5.3.1舵机PD控制
本系统的方向控制策略是:
根据实时采集左右黑线算出的中线位置与初始赛道中心线的偏差通过PD控制来计算方向控制量。
滤波后的CCD数据中第8-120点的数据为有效数据,假设front_l为左黑线的位置,front_r为右黑线的位置,所以当前赛道中心线为(front_l+front_r)/2,将中心线视野中心的值作差,把这个差值作为方向控制的输入,乘以方向控制的P参数,即可得到方向控制量。
同时方向控制加入了微分环节,即先计算本次方向控制的误差与上一次方向控制的误差的差,然后把此差乘以方向控制的D参数。
微分环节的加入,不仅使车模在通过小S弯时能减小左右摆动,而且在较大弯道中转弯更加平滑。
最后实现车模运行方向的控制。
5.3.2速度PID控制
数字PID在生产过程中是一种最普遍采用的控制方法,在机电、冶金、机械、化工等行业中获得了广泛的应用。
将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称PID控制器。
数字PID的版本有非常多,但是比较常用的版本是位置式PID和增量式PID,其中位置式PID的特点是它的输出与整个过去的状态有关,用到了误差的累加值,所以累积误差较大,位置式PID适用于执行机构不带积分部件的对象,如液伺服阀等;增量式PID的特点是它输出的控制量对应的是本次执行机构位置的增量,而不是对应执行机构的实际位置,因此要求执行机构必须具有对控制量增量的累积功能,如步进电机等。
本系统中速度控制使用了增量式PID和Bang-Bang控制。
PID算式连续控制系统中的PID控制规律是:
公式1
计算机系统是采样控制系统,只能根据采样时刻的偏差值计算控制量,数字PID是模拟连续系统PID控制规律的数字实现,所以要对控制系统反馈的信息进行离散化处理,用数字形式的差分方程代替连续系统的微分方程,即:
公式2
公式3
公式4
得到位置式PID算法公式为:
公式5
根据公式5可得前一时刻的PID输出为:
公式6
将公式5与公式6相减,得到增量式PID算法的计算公式为:
公式7
在实验中,根据需要选取其中的一个或者多个环节来对被控对象进行控制。
本系统中的速度控制则使用了增量式PID中的三个环节。
小车行驶途中,控制的主要思想:
由于线性CCD每次只能采到一行数据,有效数据非常少,对于以较高速度行驶的智能车来说,仅凭借当前采到的一行数据是远远不够的,所以我们想到利用历史数据辅助判断赛道类型,将之前50个赛道中心线位置数据保存在数组中,组成一连串的赛道路径数据,并实时更新,由于CCD有一定的前瞻,所以历史数据便组成了一幅二维图像。
在直道中主要通过直道计数器来完成对电机的控制。
若正在处理的累计方差大于一个设定的值(通过测试得到),直道计数器加一。
计算中心线与视野中心的累计方差,对于直道来说累积方差较小,对于弯道来说累积方差较大。
若数组中前面累积方差大,同时直道计数器达到某一范围值时,即可判定是直道入弯,此时电机减速;若前面的累积方差较小,同时直道计数器达到一定的值时,即可判断是直道或弯道入直道,此时控制电机加速。
第六章系统开发及调试工具
6.1软件开发工具
程序开发在IAREmbeddedWorkbenchIDE下进行,EmbeddedWorkbenchforARM是IARSystems公司为ARM微处理器开发的一个集成开发环境(下面简称IAREWARM)。
比较其他的ARM开发环境,IAREWARM具有入门容易、使用方便和代码紧凑等特点。
EWARM中包含一个全软件的模拟程序(simulator)。
用户不需要任何硬件支持就可以模拟各种ARM内核、外部设备甚至中断的软件运行环境。
从中可以了解和评估IAREWARM的功能和使用方法。
图6-1IAREmbeddedWorkbenchIDE
图6.2IAR编程主界面
6.2上位机
调试期间为了监测车模运行中遇到的各种赛道情况,需要用专门的串口软件来观察线性CCD的数据,我们选择了线性CCD调试助手。
它能以灰度的方式显示CCD数据,实时地观察到数据的变化。
图6.3为线性CCD调试助手的界面。
图6.3线性CCD调试助手
第七章车模的主要技术参数
表7.1车模的主要技术参数表
赛车基本参数
长
280mm
宽
180mm
高
380mm
车重(千克)
1.3
功耗
带载
>15
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 硬件 系统 设计 实现