飞思卡尔杯全国大学生智能汽车邀请赛北航神箭一队技术报告.docx

上传人:b****4 文档编号:11580738 上传时间:2023-03-19 格式:DOCX 页数:14 大小:375.96KB
下载 相关 举报
飞思卡尔杯全国大学生智能汽车邀请赛北航神箭一队技术报告.docx_第1页
第1页 / 共14页
飞思卡尔杯全国大学生智能汽车邀请赛北航神箭一队技术报告.docx_第2页
第2页 / 共14页
飞思卡尔杯全国大学生智能汽车邀请赛北航神箭一队技术报告.docx_第3页
第3页 / 共14页
飞思卡尔杯全国大学生智能汽车邀请赛北航神箭一队技术报告.docx_第4页
第4页 / 共14页
飞思卡尔杯全国大学生智能汽车邀请赛北航神箭一队技术报告.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

飞思卡尔杯全国大学生智能汽车邀请赛北航神箭一队技术报告.docx

《飞思卡尔杯全国大学生智能汽车邀请赛北航神箭一队技术报告.docx》由会员分享,可在线阅读,更多相关《飞思卡尔杯全国大学生智能汽车邀请赛北航神箭一队技术报告.docx(14页珍藏版)》请在冰豆网上搜索。

飞思卡尔杯全国大学生智能汽车邀请赛北航神箭一队技术报告.docx

飞思卡尔杯全国大学生智能汽车邀请赛北航神箭一队技术报告

目录

第一章引言4

1.1智能车制作情况概述4

1.2技术报告内容框架安排4

第二章智能车机械改造设计5

2.1光电支架和安装…………………………………………………………………………52.2测速发电机安装…………………………………………………………………………….5

2.3舵机的安装………………………………………………………………………………….6

2.4车模参数调节……………………………………………………………………………….6

第三章智能车控制电路设计7

3.1激光扫描器检测基本原理…………………………………………………………………7

3.2硬件电路…………………………………………………………………………………….8

3.2.1电路设计目的……………………………………………………………………………8

3.2.2赛道引导线的基本检测原理……………………………………………………………9

3.2.3激光驱动电路…………………………………………………………………………..10

3.2.4信号检测电路…………………………………………………………………………..10

第四章智能车控制软件设计12

4.1位置信息获取…………………………………………………………………………….12

4.2控制算法设计…………………………………………………………………………….14

4.2.1智能车系统软件设计思想…………………………………………………………..14

4.2.2软件构成………………………………………………………………………………14

第五章智能车设计总结15

第一章引言

1.1智能车制作情况概述

全国大学生智能汽车竞赛是一个涉及控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科的科技创意性比赛。

经过几个月的努力,我们使用竞赛秘书处统一指定的竞赛车模套件,采用飞思卡尔半导体公司的16位微控制器MC9S12DG128B单片机作为核心控制单元,自主构思控制方案进行系统设计,完成了智能车的制作和调试。

飞思卡尔智能车比赛的赛道,由白色泡沫材料及其中心的黑色引导线组成,对赛道信息捕获的效果好坏,直接决定着智能车的速度及控制性能。

通常采用的路径检测方式,不外乎CCD与光电两种。

CCD方案具有先天的优势,不仅能得到前方赛道的丰富信息,而且可实现远距离的前瞻,对车模重量及稳定性的影响也很小;而光电方案受传感器数量、车模重量及稳定性所限,获得的赛道信息十分有限,前瞻距离也不足,使得使用光电管方案的队伍成绩普遍不如使用CCD方案的队伍。

为得到大前瞻、连续性好的信息,我们在赛车中使用了激光扫描器,它利用快速摆动(或旋转)的镜面,反射能量高度集中的激光束,使激光束的出射角度随着反射镜的运动产生连续的变化,从而投射出一条扫描线。

虽然只有一个光电检测器和一个光源,但由于反射镜的高扫描频率,使得扫描器几乎可以同时得到一行的图像信息。

而控制算法中,速度控制采取分区间不同速度控制,舵机采取简单的PD控制

1.2技术报告内容安排说明

此技术文档的正文部分主要包括三个部分:

机械改造设计(第二章),控制电路设计(第三章)和控制软件设计(第四章)。

机械改造设计部分主要叙述我们在大赛允许范围内对智能车机械部分的改造;控制电路设计部分主要叙述各个模块的电路设计方案以及相关电路,其中包括了智能车的主要技术参数说明;控制软件设计部分主要叙述光电传感器的信号采集处理,以及智能车自主寻线的控制算法,其中包括了开发工具的介绍和调试过程。

第二章智能车机械改造设计

根据比赛规则,我们对模型车进行了机械设计和改造,主要包括CCD支架和测速电机支架的设计、舵机的安装,以及车模底盘参数的调节。

图2.1赛车整体图

2.1光电支架和安装

光电支架的作用是合理的安装和固定好激光传感器的位置,为了保证获得稳定的赛道信息,支架必须有足够的强度和刚度,同时要求质量较轻。

安装的高度和角度在调试过程中可以根据需要方便地做出调整。

本文中光电支架及其安装如图2.1。

支架的两个长杆采用碳素纤维材料,质量轻,强度高。

2.2测速发电机安装

我们采用测速发电机实现对驱动电机转速的检测,可以实时地获得准确的运行速度,同时,也需要考虑测速发电机的安装和固定,保证小车机械上的可靠和灵活。

通过齿轮传动的方式将测速电机上小齿轮与差速齿轮啮合,并且改变传动比,让测速电机和驱动电机等速。

测速发电机安装如图2.2。

图2.2测速发电机支架

2.3舵机的安装

舵机响应时间很大程度上决定了小车的灵活性,从而决定着小车在一定赛道条件下的极限速度。

为了加快车轮转向响应速度,我们设计并安装了舵机转向机构。

在并非改变舵机本身结构的条件下,改变了舵机的安装位置,舵机安装高度的最佳值通过试验获得。

舵机支架如图2.3。

图2.3舵机支架

2.4车模参数调节

根据汽车理论对底盘参数进行了调节,具体包括车模前后轴的高度、差速齿轮的松紧和主销的角度等。

第三章智能车控制电路设计

3.1激光扫描器检测基本原理

将激光扫描器应用于路径检测,需要做许多额外工作。

激光扫描器的基本原理与基于红外路径探测的原理类似,但存在如下不同点:

1、激光扫描器通常使用波长为650nm的激光管作为光源,能量高度集中,远距离时光束发散角仍然很小,检测距离远且分辨率高,而红外光电检测方案,其光源发射角大,检测距离有限且分辨率低。

2、激光扫描器增加一个可控的振镜或旋转棱镜,实现动态扫描检测,可以获得一维图像信息,利用多个(通常3个就足够了)一维激光扫描器,可以获得与CCD方案近似的图像信息,而一对红外光电传感器仅能获得一个“像素”信息,要想获得足够的赛道信息,必需足够多的光电传感器,受规则所限,同时还要考虑到车模重量及稳定性,相对于CCD方案,光电方案获得的信息十分有限。

我们应用的扫描器重量不足8g,大小与一块普通橡皮擦相当,经过适当的改造和增加附属电路,成功地应用于智能车路径检测。

光学部分:

图1激光扫描器光路原理图

如图1所示,激光扫描器光学部分含如下装置:

激光二极管、准直透镜、平面镜、凹面镜、滤光片、光敏二极管、振镜。

振镜由三部分组成:

反射镜、固定于反射镜背面的永磁铁和用于固定反射镜的支架,支架可在一定角度内自由旋转。

由激光管发出的光经准直透镜聚焦后,成为平行光进入平面镜,经平面镜反射后穿过凹面镜中央的小孔,抵达振镜,由于振镜的周期运动改变其角度,故光束由振镜的出射角亦作周期变化,形成扫描线。

与此同时,出射光在赛道上的漫反射光线通过振镜镜面,进入凹面镜的聚焦范围,经凹面镜聚焦后的光线,通过中心波长为650nm的滤光片滤除干扰光后,由光敏二极管转换成与光强相对应的光电流,再由后续硬件电路处理。

电路原理:

图2激光扫描器电路框图

如图2所示,激光扫描器包括以下电路:

控制电路:

用于控制和和监视各个模块电路工作,若发生故障,则立即关闭激光管的输出,以避免高能量的激光点光源对人眼造成伤害。

激光管驱动电路:

用于驱动激光管发出激光束。

由于激光管的输出功率受温度影响较大,故通常在激光管内部设有一个光敏二极管,以监测激光功率。

驱动电路使用此光敏二极管的输出信号构成功率闭环控制电路,从而稳定激光管的输出功率。

振镜驱动电路:

振镜驱动电路用于驱动电磁线圈产生大小、方向可控的磁力,作用在反射镜背面的永磁铁上,从而控制振镜的往复运行,形成扫描线。

同时,振镜驱动电路还输出一个用于指示扫描起始的同步信号,用于后续信息处理。

电流—电压转换电路(I/V转换电路):

光敏二极管所产生的是随光强变化的电流,为便于后续电路处理,设置电流—电压转换电路,将光强转换为电压信号。

二值化:

由光强转换得到的电压信号,经过动态阈值比较器,转换成0或1的二值化数字信号,分别指示了条码中的黑线与白区,最后由外部条码解码系统得到条码信息。

 

3.2硬件电路

3.2.1电路设计目的

激光条码扫描器输出的信号并不能直接用于赛道路径检测,主要原因如下:

1、为了准确检测到宽度为mil级的条码,激光扫描器的光源光斑直径非常小,其二值化输出信号对被测物十分敏感,以至于赛道上的黑斑、破损、缝隙等均可能导致错误输出,给后续的处理带来了困难,也大大降低了可靠性。

2、出于安全考虑,小型激光条码扫描器都使用小功率的半导体激光管,功率通常不会超过5mW,检测距离有限,并且使用时要求光束尽可能与条码面垂直,以获得足够的反射光。

为了使小车获得足够的前瞻,我们希望其检测距离能达到70cm左右(自车头开始计),并且为了稳定重心,希望扫描器的安装位置尽可能低,这势必增大扫描线与赛道垂直面间的夹角,扫描器的反射光将大幅减少,使扫描器的检测距离与要求相差甚远。

为了解决这些问题,我们仅利用扫描器的光学系统和振镜驱动电路,自行设计其它附属电路,主要设计如下:

1、直接从扫描器中的I/V转换电路引出光强信号,结合其扫描同步信号,利用自行设计的电路完成赛道检测的硬件电路部分。

2、将原扫描器上的小功率激光二极管更换成相同波长、同种封装的大功率激光二极管。

我们使用的是50mW的激光二极管,但原先的驱动电路不能与之匹配,故自行设计了激光驱动电路,并稍稍调整激光二极管的安装位置,有意使其偏离准直透镜的焦点位置,从而使扫描线适当加粗,降低扫描器对干扰目标的敏感度。

 

3.2.2赛道引导线的基本检测原理:

图3激光扫描器信号图

 

如图3所示,示波器的CH1接扫描同步信号,同步信号一个周期代表着两个扫描周期:

高电平部分为从左到右扫描,低电平部分反之。

通道CH2为I/V电路输出的光强信号波形,由实验可知,此波形中凹槽的宽度、位置与赛道中央黑色引导线的宽度、位置相对应,改变扫描线与引导线的相对位置,凹槽的位置也相应改变。

值得注意的是,随着同步信号的高低电平变化,凹槽的位置呈水平镜像翻转。

通过分析信号波形,我们可以发现引导线信号(即波形中的凹槽部分)的两个特点:

1、电压变化率(du/dt)最大,分别出现在引导线的两侧;

2、引导线信号的宽度与实际宽度呈对应关系。

由此,可以利用微分放大电路获得两个大幅度、方向相反的du./dt信号(如CH3所示),再利用两个比较器将两个信号检出(CH4),最后由DG128的输入捕捉模块测量出脉冲的宽度与位置。

3.2.3激光驱动电路:

大功率半导体激光二极管通常不带有光敏检测管(PD),因此,我们没有使用功率闭环电路,而是采取了一个可调恒流源控制电路,使激光二极管的输出功率能在合适的范围内调节。

如图4,电路的核心部分是由LM317L(三端可调稳压器)构成的恒流源电路,其最小输出电流:

1.25V/(R22+R10)≈57mA;

最大输出电流:

1.25V/(R22)≈104mA

恒流电路为激光二极管提供了稳定的驱动电流,保证激光二极管的输出功率符合要求。

此外,为了在待机状态下减少功耗,电路中设计了关闭激光管的功能(由Q2、R21、U3F构成)。

图4激光驱动电路

 

3.2.4信号检测电路:

考虑到激光扫描器内的光敏二极管输出信号十分微弱,而我们自行设计的电路与扫描器有一定距离,如果直接将光敏二极管引入到我们的测量电路,会产生较大的干扰,因此,我们从扫描器内的I/V电路的输出引出光强信号,I/V输出电路的阻抗较低,可以有效防止信号被干扰,如果读者无法找到这个信号,可以在离光敏二极管尽可能近的位置,使用微型封装的单运放电路实现一个I/V电路,参考电路如下图5。

输出电压=光电流*Rf*-1

需要特别指出的是,由于光敏二极管产生的电流极小,应该使用低偏置电流的运放(fA级),例如LMC6462。

图5I/V参考电路

如图6,光强信号首先经过一个截止频率为34KHZ的二阶RC有源滤波电路,滤除高频信号,降低电路系统对诸如小黑斑、缝隙等干扰目标的敏感度。

截止频率的选取与扫描速度有关,扫描速度越高,截止频率应该随之提高,在较低的扫描速度下,还可以进一步降低截止频率,以降低对干扰目标的敏感度。

滤波器的输出信号经过R29送由U1B为核心的微分放大器,这也是路径检测电路的核心,微分放大电路的传递函数为Uo=-RC(dui/dt),dui/dt即为输入电流的变化速率,R=R47+R44,C=C18。

图6信号处理电路

调整R29的阻值可以改变输入电流的大小,并防止微分放大电路的容性输入负载对前级运放电路的影响。

稳压二极管D1和D2是用于防止U1B因为输出幅度过大导致运放进入深度饱和状态,影响运放对输入信号的响应能力。

需要注意的是:

必须使用反向漏电电流低的稳压管,以防止稳压管的等效电阻降低微分放大电路的增益。

由于我们需要U1B工作在两个象限:

对应输入电流变化率为正的上跳变和输入电流变化率为负的下跳变,而电路的工作电压为单电源,因此,我们利用电路中的R32和R34将运放的同相端加上一个12V/2的偏置,这样就可以在两个象限输出信号。

图3中的CH2与CH3分别是微分电路输入/输出信号的波形,可以很清楚地观察到微分放大电路的作用。

微分放大电路的输出经过R22和C33滤除可能存在的尖峰脉冲后送入由U4A和U4B构成的比较器,分别将符合幅度条件的上跳变信号和下跳变信号分别检出,并经过U7E和U7B反相器(带施密特整形)送入由D触发器构成的RS触发器,触发器的输出波形见图3中的CH4所示,由于此波形中的脉冲代表了扫描线相对引导线的位置信息,下文将称之为“脉冲信号”。

至此硬件电路完成了对引导线的检测与波形处理。

第四章智能车软件设计

4.1位置信息获取

将激光扫描器安装在小车的正上方,使扫描线中心点位于车身的轴线上。

改变小车轴线距引导线中心的位置y,记下脉冲信号相对于同步信号的偏移位置x,测得一组数据。

用最小二乘法拟合可得出y与x的对应关系:

y=k*(x+ref)(4—1)

其中直线斜率k与零位偏移ref的值与扫描器安装的位置有关。

此外,测量脉冲信号(图3中CH4)宽度,可知此宽度与引导线的宽度成比例关系。

激光扫描器输出两个信号:

同步信号与脉冲信号。

同步信号用于指示每一个扫描周期的起始位置,而脉冲信号代表了扫描到的引导线信息。

因此,可由这两个信号计算出小车当前相对于引导线的位置偏移。

由公式1可知,要得到小车的位置偏移y,必需先确定零位偏移ref及直线斜率k。

故在软件中设置自动校准环节:

零位校准与斜率校准。

具体流程如下:

首先将小车置于赛道中心,程序计算当前的x值,则零位偏移值ref=-x。

然后,将小车平行移至一固定位置y(如引导线右方12cm),程序计算当前的x值,则斜率k=y/(x+ref)。

至此校准环节完成。

要计算脉冲信号中心点相对于同步信号中心点的偏移量x,需要得到脉冲信号上升沿时刻s0、下降沿时刻s1,同步信号起始时间t0、同步信号结束时间t1,则有

x=(t1–t0)/2–(s1–s0)/2(4—2)

要获得以上参量,最好方法是利用DG128的输入捕捉功能(ECT)。

DG128总共包括8个输入捕捉通道,当任意通道的捕捉事件发生时,ECT即将当前的计数器值锁存到相应通道的输入捕捉寄存器。

可以使用通道0作为同步信号输入端,通道1作为脉冲信号输入端。

将通道0,1均设置为中断允许、任意跳变沿捕捉的方式。

脉冲信号中断程序流程图如下:

如图6,index用于保存脉冲个数(可能检测到多个目标),每次同步信号发生跳变后index被清零,表示一个扫描周期的开始。

脉冲信号产生跳变时,即进入此中断程序,首先读取输入捕捉寄存器的值(即跳变发生的时刻)、之后判断此跳变是否为本次扫描周期内的首次跳变(index是否等于0),若是,且本次跳变为下降沿,则忽略并退出中断;若首次跳变为上升沿,则将此次跳变的时刻存入数组s0[index]。

假如并非首次跳变,若该跳变为上升沿,则将跳变的时刻存入数组s0[index];若为下降沿则存入数组s1[index],并将数组索引号index自加,以准备保存下一脉冲。

如图7,同步信号产生跳变时,表示上次扫描周期完成。

进入中断程序,首先记下此次跳变的时刻t1,并获知当前为高电平或低电平,用于确定当前扫描方向;计算上次扫描周期内检测到的所有脉冲宽度,由于引导线宽度固定,而污损、缝隙等产生的脉冲往往宽度很小,可以设置一个合适的阈值,将可能存在的干扰脉冲滤除;由公式2与公式1计算出小车距引导线的偏移量;最后,将t1的值赋予t0,作为下一扫描周期的起始时刻。

 

4.2控制算法设计

4.2.1智能车系统软件设计思想

为了便于软件的编写、修改、调试,在软件设计中,采用了层次化、模块化、结构化和参数化设计技术。

(1)层次化

采用层次化设计是本系统设计软件的一大特点。

我们把程序分为两大层,即物理层和应用层。

这样做的好处是为了便于程序调试和移植,同时也增加了程序的可读性和可维护性。

有了物理层后,我们就可以将在PC机上模拟的应用层的程序无需改动地直接移植到单片机上。

(2)模块化设计

采用模块化设计是为了便于系统的移植和维护,避免代码的重复,从而节省数据的存储空间。

(3)结构化编程

采用结构化的编程方法使得程序结构清晰、逻辑性强、便于设计修改,并符合了自顶向下的程序设计规测。

(4)参数化

为使软件能适应各种控制单元、硬件配置、运行环境等方面的具体要求,系统采用了参数化设计,注重于数据结构和其上进行的操作,这样有助于增强整个运行软件的灵活性和适应性。

本系统的软件设计采取了自顶而下,逐步细化的设计方法。

首先,按程序结构化的设计思想设计主程序结构,其次设计中断服务程序,然后再按功能模块化思想设计各个子程序,并逐步细化各功能模块,同时不断完善中断服务程序和主程序,最后完成所有软件的设计。

C语言是一种面向微处理器的结构化程序设计语言。

它除了具有程序设计快、可读性好、易于维护和扩充等一般结构化程序设计语言所具有的优点外,还能够直接面向微处理器的内部结构,所以用于应用系统开发可以得到一种不同于传统的用汇编语言编程的开发方式,能够极大地提高应用系统得开发效率。

因此我们采用了C语言编写该系统的软件。

4.2.2软件构成

(1)主程序

主程序为一个顺序执行的无限循环的程序。

主程序首先对系统硬件和系统各变量进行初始化。

先关中断,设置MCU工作频率和各个外设的状态,初始化各端口,控制算法初始化,然后开中断,最后程序进入主循环。

(2)功能子程序

功能子程序主要包括物理层功能子程序和应用层功能子程序。

物理层功能子程序主要是完成物理层的驱动,主要包括:

定时器设置子程序,IIC总线设置子程序,电机驱动子程序、电机调速子程序、舵机转向子程序、按键检测子程序、串口配置及发送子程序、激光数据读取子程序、EEROM读写自程序。

应用层功能子程序主要分为调试用功能子程序和算法控制功能子程序。

(3)中断服务子程序

本系统中只有两个中断服务子程序,即串口收中断服务子程序、定时器服务子程序。

为了能解析从串口发来的命令,我们自定了命令协议,并编写了命令解析的状态机程序。

第五章智能车设计总结

我们小组的智能车设计从一开始就有条不紊、分阶段有序的进行。

通过我们组成员的团结努力,我们终于设计出令我们满意的智能车。

我们从4月份开始就投入到智能车的设计制作当中,我们小组成员充分利用课余时间来讨论、优化我们的智能车系统设计方案,讨论内容保括智能车的关电信号采集方案和信号采集处理、调试平台的搭建、智能车的机械构造和机械改造、智能车的控制算法设计。

在拿出具体的方案后我们就开始着手进行智能车的实际制作。

在智能车的机械改造设计方面,我们对舵机的摆放位置进行调整,使其左右力臂等长,并加长了伺服电机的力臂。

这样能大大提高舵机的灵活性,并使舵机的左右转向性能维持一致状态。

在整个机械设计过程中,我们对赛车各个部分的配重也进行了处理,调节赛车的重心位置,让车子的重心位置处于赛车灵活性最好的位置。

传感器的支架也进行了精致地设计,以方便放置传感器和传感器位置的调节。

在控制电路设计方面,我们使用热转印技术自行设计了电路板,对光电管检测模块进行了单独设计,作为整个电路部分的一块子模块,并搭建了调试平台。

调试平台不仅给程序调试带来了很多方便,并且调试平台上的紧急停止无线接口能有效地防止意外撞伤的发生。

在控制算法设计方面,速度控制采取平缓过渡、位置偏移量分区间控制的方式。

角度控制尝试过用查表法,最后改成PD算法。

我们通过赛车在赛道上跑的状态不断地完善我们的控制算法,直到赛车跑的状态符合我们的预期要求。

激光扫描器实现了路径检测功能,并成功地应用在我们的智能车上。

这种开创性的扫描检测方式,带来了大前瞻、连续的路径检测效果,前瞻距离可以超过70cm,检测精度可达到1mm,使光电管方案产生了突破性的进展。

若采用多个扫描器组成多条平行的扫描线,则理论上可得到与CCD相媲美的路径检测能。

此外,本文介绍的实现原理,也完全适应于CCD方案,CCD的行同步信号相当于本文中的扫描同步信号,CCD输出的模拟视频信号,相当于本文中的光电信号,利用相同的电路原理,配合DG128的ECT功能,可以用最少的CPU时间开销和内存开销,达到理想的路径检测效果。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1