浙江大学飞豹赛车技术报告Word下载.docx
- 文档编号:17864533
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:62
- 大小:428.80KB
浙江大学飞豹赛车技术报告Word下载.docx
《浙江大学飞豹赛车技术报告Word下载.docx》由会员分享,可在线阅读,更多相关《浙江大学飞豹赛车技术报告Word下载.docx(62页珍藏版)》请在冰豆网上搜索。
单片机模块直接采用了清华大学提供的MC9S12DG128B开发板。
传感器信号检测模块由路径检测和速度检测两部分组成。
路径检测部分由10个光电传感器“一”字按一定间距排列而成,在其外围安装了轻质铝合金罩以减少外界光线的干扰。
单片机通过10个10位的A/D转换口读取光电传感器检测值,然后进行数字滤波处理,保证了控制器输入值的可靠性。
速度检测由安装于赛车后轮的霍尔元件通过输出脉冲信号进入单片机ECT模块,然后经过计算得到赛车速度值。
人机交互模块使系统具有友好的人机界面,可通过按键,无线通讯的方式改变参数,并通过LCD观察系统状态参数,避免了对单片机的重复编程擦写,有效提高了调试的效率。
系统软件主要由主程序模块、功能子程序模块和中断处理模块等组成。
系统通过在主程序内循环调用信号检测、信号处理、路径计算和赛车控制等功能子程序,实现不断检测路径信息并作出相应调节动作,完成路径自动识别和自动行驶;
通过PH口中断,调用中断函数来控制汽车运行状态和修改相关参数,实现人机交互;
本系统采用单闭环,双控制器的控制策略,其中双控制器为模糊控制器和PID控制器,分别控制赛车的速度和舵机转角,另外有一个异常情况处理模块来处理赛车可能出现的异常情况,改进控制策略对某些赛道情况的控制效果。
模糊控制器采用MC9S12DG128B内置的专用模糊控制指令编写而成,PID控制采用经典的增量式算法,运行效率高,鲁棒性较好。
本系统的设计充分利用了MC9S12DG128B单片机丰富的硬件资源和强大的处理能力,在实际测试中表现出了良好的性能。
第二章硬件部分
2.1机械结构
2.1.1原赛车机械改动说明
为满足系统需要,对组委会提供的赛车作了如下改动:
1)按赛车机械安装图示,正确安装赛车转向舵机及转向杆。
2)按赛车机械安装图示,正确安装赛车橡皮轮胎。
3)按赛车机械安装图示,拧紧了赛车后部紧固螺丝,增加直流电机减速齿轮与后轮的咬合力,从而改进赛车加速,减速特性。
4)在距赛车前端80mm的左右对称中心轴上开了一个直径为3mm小孔,装上高54mm的黑色立柱,并用长螺丝固定。
该立柱与车身尾部自带的两个立杆一起用来固定主系统板(主系统板见下一节介绍)。
5)在赛车前部原安装缓冲器处安装高为2cm的塑料安装支柱,用于固定横梁和加装信号检测板(横梁与信号检测板见下一节介绍)。
6)将在赛车尾部用于固定直流驱动电机两个平头螺丝换成普通螺丝,并加装测速板。
7)在轮轴上用胶水固定4个小型磁钢,磁钢均匀排布。
经改装的赛车满足系统控制需要,且安装简单,牢固可靠,并完全符合《第一届“飞思卡尔”杯全国大学生智能车邀请赛比赛细则-2006-03-04》对智能竞赛车模改动的规定要求。
2.1.2加装机械部件说明
为满足系统检测和控制的要求,设计制作了以下主要机械部件:
主系统板、测速板、挡光罩、信号检测板、信号检测板横梁;
同时添加了主系统板安装支架、信号板安装支柱等用来安装固定。
主要机械部件尺寸图如附录A所示。
材料说明:
1)主系统板、信号检测板和测速板均为双层印刷电路板;
2)挡光罩由轻质铝合金加工而成,内层贴有黑色黏胶纸,安装后其开口部分亦用黏胶纸相连;
3)信号检测板固定横梁为铝合金材料。
2.1.3安装说明
1、安装信号检测板
1)先安装信号检测板安装支柱,用平头螺丝固定于赛车前部,然后信号检测板横梁,并用螺丝与弹簧垫片加以固定。
2)将挡光罩套在信号检测板上并有螺丝固定,用黑色黏胶纸连接挡光罩缺口。
3)把装有挡光罩的信号检测板固定在横梁上,其中与赛车距离可根据需要作调整。
2、安装测速板
把霍尔元件朝下,将测速板安装于赛车后部支架(具体位置建实物图)。
3、安装主系统板
安装完测速板后,将主系统板的固定孔与安装立柱对准安装,并用螺丝和弹簧垫圈固定。
安装完后整体实物图如图2.1所示。
图2.1赛车实物图
2.2电路设计
赛车硬件电路作为系统实现其一系列控制功能的基础,其设计的好坏直接关系到最终系统能否正常稳定的运行。
通过分析,得到系统各主要功能模块电路及其与微处理器之间的逻辑关系,系统整体硬件设计框图如图2.2所示。
图2.2系统总体硬件设计框图
图2.2中,光电路径检测电路,霍尔元件测速电路属于传感器检测模块,通过它们,系统能够即时获取外界及自身运动状态信息。
电机驱动控制模块包含直流电机驱动控制电路和舵机驱动控制电路。
作为系统控制算法的执行机构,电机能否被很好的驱动和控制,这直接关系系统能否正常运行。
人机交互模块由按键参数设定电路,无线通讯电路,LCD显示电路,LED彩灯报警显示电路组成。
对于赛车系统来说,没有这些模块它同样能够正常运行,但是加入该系统调试模块却能够极大方便系统参数调试,提高调试效率,在及时了解赛车运行状况的同时也能够在一定程度上充分利用MC9S12DG128B单片机丰富的资源。
基于以上考虑,在系统硬件设计中加入了人机交互模块。
2.2.1系统电源模块
电源模块的主要功能是将电池所提供的电压转换为+5V,从而为系统供电。
考虑到在实际运行过程当中小车可能作频繁的加速,减速动作使得电池两端的电压会有较大的波动,因此为了确保系统能够正常工作,避免单片机意外重启,这里选用了LM2575作为电源模块的电压转化芯片。
LM2575拥有较大的输入转换电压区间(7V~40V),较高的输出电压精度(±
3%的误差),以及较少的外围辅助电路。
电源转换模块电路原理图如图2.3所示。
图2.3电源转换原理图
为了消除来自电源的干扰,在输入端分别接入了电容值为1000uF的电解电容和0.1uF的瓷片电容,同时为了降低输出电压存在的纹波,减少由电源引入电路的噪声,在输出端分别加接了两级L-C滤波电路,分别滤去高频与低频成分。
由于LM2575在正常情况下能够输出1A的电流,因此该电源模块还具有较强的驱动负载能力的特点。
2.2.2电机驱动控制模块
2.2.2.1直流电机驱动控制电路
由于单片机管脚输出电流较小,远远小于电机工作时流过电机的电流,所以需要设计电机驱动电路来拖动电机。
这里所采用的是由Motorola公司生产的驱动芯片MC33886。
它内部集成了一个H桥电路,能够通过5A电流,并且外部输入控制信号PWM波的频率可以高达10kHz,从而大大提高了电机得控制频率。
因此只需根据需要为MC33886加上恰当的外围电路即可完成驱动电路的设计,电路如图2.4所示。
图2.4电机驱动电路
采用单片机PWM输出通道PP1口输出控制信号来控制驱动芯片内部H桥电路的导通和关断,通过改变加在电机两端的平均电压从而实现电机调速的目的。
I/O口PK0~PK2则可以利用其输出高低电平的组合来实现控制电机正反转或者是制动功能。
此外MC33886还设置了芯片工作异常报警输出口,将其与PK3口相连,就可以及时获取驱动电路工作情况并对异常报警作出相应处理。
2.2.2.2舵机驱动控制电路
舵机的控制主要指的是对其转角的控制,而要实现这一控制功能,只需通过改变输入舵机控制端子的PWM波占空比即可实现,而不需要改变施加在舵机两端的电压大小。
因此相对于直流电机,舵机的驱动显得要简单。
将电池的输出电压直接接到舵机电压输入端即可实现对舵机的驱动。
同时由于单片机有专用的PWM输出I/O口,因此舵机的控制可以采取直接接PWM输出口的方法。
图2.5舵机驱动控制电路
通过图2.5所示连接,再通过软件适当设置,可实现对舵机的驱动控制。
值的注意的一点是对于输入舵机的PWM波,其周期和高电平时间均有一定的限制,通过软件调整时需要确保输入舵机的控制信号能够满足周期在20ms左右,高电平时间在1.2ms~1.7ms之间变化以对应舵机向左和向右的最大机械转角。
2.2.3传感器检测模块
传感器检测模块作为小车获取外界环境变化及自身状态信息的窗口,是整个系统能够正常工作的前提和基础,其设计的好坏直接关系到控制算法的有效性以及系统运行的稳定性。
根据实际需要,引入了光电检测模块以及速度检测模块。
2.2.3.1路径检测模块布局及相应电路设计
路径检测模块是智能车系统的关键模块之一,路径识别方案的好坏,直接关系到赛车最终性能的优劣。
本设计中赛车采用光电传感器阵列检测黑色导引线,实现路径自动识别功能。
所谓光电传感器阵列寻迹方案,即通过由红外发光、接收二极管组成的光电传感器阵列来识别黑色赛道。
由于黑白两色对红外管线的反射率不同,在一定电压下红外接收管两端流过电流值将随其所处位置下方的赛道颜色变化而改变,由此赛车便能从赛道上分辨出黑色跑道。
该寻迹方案具有简单,响应速度快,系统处理量小等优点。
模块设计所选用的光电器件为以PD333作为红外接收发管,IR333作为红外发射管的分立式红外对管。
二者均为EVERLIGHT公司所生产,其中:
IR333主要特点有:
1)高辐射强度
2)峰值发射波长λp=940nm
3)发射角度40度
4)高可靠性
PD333主要特点有:
1)电流与关照强度之间线性度高
2)对外界光照变化响应时间短
3)高影像灵敏度
4)结电容小
为了克服光电传感器阵列易受外界环境干扰,空间分辨率低等缺陷,在机械设计中引入挡光照并依据控制需要合理设计光电传感器的排布,从而使得路径检测模块能够为系统提供准确,可靠的路径信息。
光电传感器具体排布方案为选用11个红外发射管和10个红外接收管,间隔排列成一条直线组成光电阵列,每个二极管之间的间隔均为10mm(具体排列位置见附录A图信号检测板机械图)。
当信号检测板处于一定高度时,红外发射管放射出的红外线恰好能完全覆盖传感器下部的跑道,此时信号板下方的道路信号能被接收管完全反映出来。
先使用处于黑线上方的传感器来识别路径,再使用其两侧的传感器进行二次识别。
这种方式可以达到较高的水平分辨率,并且具有较高的线性度。
具体传感器排布情况如图2.6所示。
图2.6传感器排布图
当黑色导引线处于上图2.6所示位置时,系统将先判别出4号接收管更加接近黑线,然后根据3、5号接收管的数据计算出黑线中轴线所处的位置在4.35左右。
图2.7表示一对红外对管检测电路原理图。
图2.7红外对管检测电路
图2.7所示的红外检测电路将电阻R2两端的电压值通过接口电路输入单片机A/D口作为后续信号处理算法的输入信号。
2.2.3.2测速模块电路
赛车运行过程中的速度信息的检测对于赛车的控制同样有着重要的作用。
考虑到实际应用情况并结合单片机ECT模块的输入捕捉功能,采用霍尔元件U18在磁钢不同极性下集电极输出高低电平的变化,通过测算高电平或者是低电平所持续的时间来得到小车的运动速度。
图2.8速度检测电路
由于U18为集电极输出,因此在经过电阻的上拉之后其输出电平Sout完全与TTL电平相兼容,因此可以直接输入单片机的I/O模块。
2.2.4人机交互模块设计
人机交互模块提供了在线观察,修改系统运行参数的有效手段。
通过该模块,可以不再为了修改某些参数而反复擦写单片机FLASHROM中的程序,并且这种在线观察和修改参数的手段在很多时候显得犹为方便,有效。
2.2.4.1按键接口电路
设计按键接口电路的目的就在于为修改程序的某些参数提供方便,便于调试。
但对于按键电路,需要解决的最大问题在于如何防抖。
由于所采用的单片机按键输入口PORTH本身在其I/O端口设置了数字滤波器,即倘若一个脉冲的高电平或者是低电平的持续时间小于4个总线周期,那么该脉冲将会被忽略,单片机不会产生中断。
鉴于该种数字滤波器已经在一定程度上减轻了按键抖动所带来的影响,因此在按键电路设计中,只是在按键的输出端加接滤波电容,以此来尽可能的消除按键抖动所造成的影响。
图2.9为按键电路原理图。
图2.9按键模块电路
2.2.4.2LCD显示模块电路
为了能够便于观察监视单片机运行时内部某些重要参数,同时为了能够充分利用单片机丰富的I/O资源,我们采用并口通讯方式建立LCD液晶屏与微处理器的连接。
如图2.10所示。
图2.10LCD液晶显示电路
在使用过程中发现LCD显示需要占用较大的系统资源,因此在赛车运行过程中并不进行LCD显示。
2.2.4.3无线通讯模块设计
引入这一模块的原因完全出于控制系统参数调试的需要。
某些系统参数(如PID参数)需要在调试过程中作频繁调整以期能够得到一组较为理想的参数,这时采用无线通讯模块就可以实现在赛车运行过程中在线调整某些重要参数,从而能够更加直观,迅速的观察到赛车在不同参数设置下的运行情况,极大方便了对于某些参数的整定。
而在比赛过程中则将该无线模块取下,避免违反规则。
在小车上所加的是无线接收模块,主要由PT2272解码芯片构成。
其可以接受来自由PT2262编码芯片构成的发射模块的信号。
利用单片机PH口能够由边沿触发产生中断的特点,则可以由软件实现信号识别并作出相应响应。
由于已有较为成熟的以PT2272为解码器的接收模块,因此只要设计系统主电路与接收模块接口电路将信号引入单片机即可,电路如图2.11所示。
图2.11无线接收模块接口电路
图2.11接口电路中,发光管D0主要起到指示灯的作用,只有在接收成功的情况下该指示灯才会亮。
在操作过程中,接收模块将所收到的信号译码并在对应的A11~A8口产生电跳变,从而触发单片机中断,根据中断标志位在得到了通道号便完成了一次通讯。
只要在软件中作相应处理,并可以利用这种无线通讯方式修改系统参数。
2.2.4.4LED彩灯报警显示
LED彩灯显示的主要目的在于指示赛车的某些动作,以使我们能够在赛车动态运行中了解控制功能是否正常,并且当赛车进入某种异常情况时,彩灯能够提供报警指示功能,据此并可判断赛车在特殊情况下能否作出相应动作,从而为调整异常处理算法提供依据。
图2.11表示LED彩灯显示电路原理图。
图2.12LED彩灯显示
第三章软件部分
3.1软件设计
本系统软件设计中遵循下面的规则:
1)采用模块程序设计。
模块程序设计是把一个较长的完整的程序,分成若干个小的功能程序模块,在分别进行设计、编程、调试之后,最终装配在一起,链接成一个完整的程序。
模块化程序设计便于程序移植和修改。
2)外部设备和外部事件采用中断方式与CPU联络,这样,既便于系统模块化,也可提高程序效率。
3)经过调试修改后的程序进行规范化。
规范化的程序便于交流、借鉴,也为今后系统功能的进一步扩充打下基础。
4)系统的软件设计充分考虑到软件抗干扰措施。
如数字滤波,程序跑飞的软件陷阱,软件的容错设计等.
3.1.1软件总体设计
本控制系统软件主要功能为通过采集信息并自动识别黑色导引线,控制直流电机和转向舵机使赛车沿跑道自动行驶,同时增加人机友好交互界面以此根据不同需要调整方案和参数,提高系统的鲁棒性。
为实现以上功能所需芯片资源如表3.1,表3.2所示。
表3.1系统资源分配
系统I/O资源占用表
编号
单片机接口
备注
1
电机驱动控制模块(MC33886)
控制信号
PK0-PK3、PWM1
软件监视
PB0
驱动芯片工作异常时报警
2
舵机控制模块
PWM3
3
LCD显示模块
数据
PA0-PA7
PK4、PK5、PK7
4
无线接收模块
PB1
与按键共用一个中断矢量地址
PH4-PH7
5
按键模块
与无线接收模块共用一个中断矢量地址
PH0-PH3
6
路径检测模块
PAD0-PAD9
10位A/D
7
速度检测模块
PT0
InputCapture
表3.2中断源分配表
系统中断源分配表
中断名称
中断源
优先级
功能
按键中断
PortH
高
按键和无线接收
输入捕捉中断
EnhancedCaptureTimerchannel7
速度检测
测速模块定时器中断
EnhancedCaptureTimeroverflow
系统主定时器中断
ModulusDownCounteroverflow
低
主程序周期循环
系统通过在主程序内循环调用信号检测、信号处理、路经计算和赛车控制等功能子程序,实现不断检测路径信息并做出相应动作完成自动识别路径和自动行驶;
通过输入捕捉中断实现速度检测。
系统程序总体流程如图3.1所示。
图3.1控制系统整体程序流程图
3.1.2软件各功能模块设计
3.1.2.1直流电机控制模块
本部分介绍直流电机的控制程序,其中包括:
直流电机初始化子程序,直流电机起动子程序,直流电机停止子程序,直流电机调速子程序;
系统通过在主程序里调用这些子程序实现对直流电机的起停控制和速度控制。
直流电机初始化子程序执行初始化相应控制端口的功能,其使MC33886控制端IN1置1,D1置1,/D2置0;
初始化单片机PWM模块,设定PWM波频率为10kHz,同时设置PWM的极性使其起始电平为高电平。
直流电机启动子程序和电机停止子程序通过控制PWM模块运行或停止的方式以实现对电机起动和停止的控制。
直流电机速度控制子程序通过设置某一周期下PWM波的高电平时间,产生占空比从0~100%变化的PWM波来改变电机两端的平均电压,从而控制电机转速,进而控制汽车行驶速度。
图3.2表示了直流电机驱动控制模块的程序流程。
图3.2直流电机控制模块程序流程图
3.1.2.2舵机控制模块
本部分为系统提供舵机控制功能,包括舵机初始化子程序,舵机停止控制子程序,舵机转向角度控制子程序;
系统通过在主程序里调用这些子程序实现对舵机的控制。
舵机初始化子程序实现初始化单片机PWM模块的相应通道,使得该通道输出PWM波频率为520Hz,同时设置PWM极性即起始电平为高电平;
舵机停止控制子程序用来停止舵机动作,并恢复其到初始状态,具体实现方法为设定通道输出PWM波的高电平时间为1.47ms,并延时一段时间后关闭PWM输出。
舵机转向角度控制子程序实现设定PWM调制波的脉宽,使其高电平宽度从1.21ms~1.47ms~1.73ms可调,所对应舵机转向角度为-38°
~0°
~38°
。
图3.3表示了舵机控制模块的工作过程。
图3.3舵机转角控制模块程序流程图
3.1.2.3人机交互模块
人机交互模块主要包括按键子程序、无线接收子程序和LCD显示子程序三部分,主要完成系统启停控制,系统参数设定及显示等功能。
其中按键子程序与无线接收子程序均使用中断完成相应动作,二者的执行方式和功能设定均相同,下面以按键子程序为例说明其运行过程。
按键子程序采用外部中断方式执行相应动作,此种方法可以节省系统时间开支,因为在系统运行大部分时间里是没有按键动作的;
为防止按键抖动造成系统误动作,加入抖动判断,如果是抖动就抛弃这次操作;
其中包括:
按键识别子程序和按键功能子程序两部分。
LCD显示子程序为LCD显示模块提供驱动和系统与LCD的接口;
LCD初始化子程序,LCD写命令子程序,LCD写数据子程序,LCD光标定位子程序和LCD写字符串子程序等。
LCD模块在需要时通过接插件即用,由按键1初始化LCD,并显示相关信息;
通过按键4进入系统菜单;
在系统菜单级别上,可以通过按键2和按键3进行浏览菜单,通过按键4可以选择菜单并激活该选项;
如果菜单内容为改变系统状态,如系统启停等,系统将给出提示信息后执行相关操作;
如果菜单内容为可修改参数,该参数就被置于可修改状态,光标将置于可修改参数的第一位,此时按键2可以移动光标选择要修改的位,按键3修改参数,按键4确认并保存修改,然后退出激活状态;
在激活状态下按键1动作,就会重新初始化LCD,并显示欢迎信息,所需修改的参数将不被保存既修改无效。
其具体操作流程如图4.5所示。
图3.4LCD菜单显示操作流程图
3.1.2.4信号采集与处理模块
此部分包括初始化子程序,数据采集子程序、数据处理子程序和路径识别子程序,通过外界信息的采集和处理,来完成路径识别的功能。
初始化子程序主要完成A/D转换操作相关寄存器的初始化操作,包括设置ATD模块转换精度为10位、转换频率为1136kHz、以及结果寄存器存储方式为右存储等。
数据采集子程序的主要作用为启动A/D转换,并在A/D转换完成后正确读取相应结果寄存器的内容。
为了减少A/D转换结果误差对系统判断造成的不利影响,在该子程序中还添加了针对A/D转换结果的软件滤波功能,具体实现为:
连续采集2次信号并将信号A/D转换结果取平均值来作为本轮信号检测结果。
图3.5表示初始化和数据采集子程序的执行流程。
图3.5数据信号采集程序流程图
数据处理子程序将基于极限条件下(将光电传感器置于全黑和全白两种环境下)得到的A/D转换最大值MaxSensordata[i](i=0,1,…,9)与最小值MinSensordata[i],在将以该最大值和最小值为端点的区间化分为100个子区间后,计算出由数据采集子程序得到的检测结果Sensordata[i]在区间中所处的子区间Sensor[i],很显然该子区间值即对应0~100的某一值,因此通过此种离散化方法所得到的结果并可作为后续计算和控制算法的输入数据。
路径识别子程序是根据前面的数据离散化结果通过排序算
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浙江大学 赛车 技术 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)