温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
电磁组
厦门大学嘉庚学院长风队技术报告
电磁
厦门大学
学院
长风队
技术
报告
第八届第八届“飞思卡尔飞思卡尔”杯全国大学生杯全国大学生智能汽车竞赛智能汽车竞赛技术报告学校:厦门大学嘉庚学院队伍名称:长风队参赛队员:李华周明杰杨秋娟带队老师:康恺吴天宝第八届全国大学生智能汽车竞赛技术报告2关于技术报告和研究论文使用授权的说明关于技术报告和研究论文使用授权的说明本人完全了解第八届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。参赛队员签名:带队教师签名:日期:第八届全国大学生智能汽车邀请赛技术报告IV摘要摘要本文介绍一套智能车速度磁导航的设计,该智能车以 MC9S12XS128 处理器的 S12 环境,软件平台为 CodeWarrior IDE 开发环境,车模采用大赛组委会统一提供的 A 型仿真车模。车模以 MC9S12XS128 单片机为控制核心,以安装在车体前的工字电感为循迹传感器,由互感线圈采集赛道信息,得到多个互感线圈的信息值,通过 PID 的控制起到寻线方向控制。速度控制是由1 个编码器对电机两端进行测速,将测得的速度与给定的速度进行 PID 速度闭环控制。采用干簧管检测起跑线,来控制停车。关键词:关键词:MC9S12X128PID速度寻线方向第八届全国大学生智能汽车邀请赛技术报告V目录目录第八届“飞思卡尔”杯全国大学生.1第一章、引言.-1-1.1 概述.-1-1.2 整车设计思路.-1-第二章、电磁寻迹小车的原理.-2-2.1 磁场感应原理.-2-2.2 传感电路设计原理:.-3-2.3 车模方向控制原理.-3-第三章、电路设计.-4-3.1 传感器的电路设计.-4-3.2 电源电路模块.-4-3.3 驱动电路模块.-6-3.4 起跑线检测模块.-6-第四章、传感器安装计机械设计.-7-4.1 电感的固定.-7-4.2 轮胎的改进.-7-4.3 车子布局.-7-4.4 电机保护.-8-第五章、模型车的主要技术参数.-8-第六章、软件处理及控制算法.-8-附录.I第八届全国大学生智能汽车邀请赛技术报告-1-第一章、引言1.11.1概述概述“飞思卡尔”杯全国大学生智能汽车竞赛是由教育部高等自动化专业教学指导分委员会主办的一项以智能汽车为研究对象的创意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛之一。该竞赛以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,旨在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神,为优秀人才的脱颖而出创造条件。该竞赛以汽车电子为背景,涵盖自动控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科的科技创意性比赛。比赛要求在大赛组委会统一提供的竞赛车模,我们选择了飞思卡尔16位微控制器MC9S12XS128作为核心控制单元的基础上,自主构思控制方案及系统设计,包括传感器信号采集处理、控制算法及执行、动力电机驱动等,最终实现能够自主识别路线,并且可以实时输出车体状态的智能车控制硬件系统。我们从一月份开始经过接近7个月的制作与调试,终于完成了目前的直立智能小车的制作。期间我们合作共勉,学习开发调试软件的使用、主控芯片控制、控制原理、编程语言等方面的知识,在对机械进行了调整的基础上,对小车软件进行调试,在发现问题后努力解决问题,进一步优化智能小车的机械、软件、和传感器的方案。1.21.2整车设计思路整车设计思路根据竞赛规则相关规定,智能车系统采用大赛组委会统一提供的A型车模,以飞思卡尔半导体公司生产的16位微控制器MC9S12XS128作为核心控制器,在CodeWarrior IDE开发环境中进行软件开发。赛车的位置信号由车体前方的电磁传感器采集,经内部AD进行模数转换后,输入到控制核心,用于控制舵机的打角从而控制赛车的运动方向。通过光栅片测速模块来检测车速,并采用S12X 的输入捕捉功能进行脉冲计数计算速度和路程;电机转速控制采用PID 控制,通过PWM 控制驱动电路调整电机的调速,完成智能车速度的闭环控制。本具体的设计思路如下图1.1。第八届全国大学生智能汽车邀请赛技术报告-2-图图1.1设计思路框图设计思路框图第二章、电磁寻迹小车的原理第二章、电磁寻迹小车的原理2.12.1磁场感应原理磁场感应原理根据麦克斯韦电磁场理论,交变电流会在周围产生交变的电磁场。智能汽车竞赛使用路径导航的交流电流频率为 20kHz,产生的电磁波属于甚低频(VLF)电磁波。甚低频频范围处于工频和低频电磁破中间,为 3kHz30kHz,波长为 100km10km。如下图所示:图2-.1 电流周围的电磁场示意图导线周围的电场和磁场,按照一定规律分布。通过检测相应的电磁场的强度和方向可以反过来获得距离导线的空间位置,这正是我们进行电磁导航电感传感器MC9S12XS128 核心控制器起跑线检测运放模块电机驱动模块直流电机舵机转向控制编码器键盘第八届全国大学生智能汽车邀请赛技术报告-3-的目的。2.22.2 传感电路设计原理传感电路设计原理:在我们选取最为传统的电磁感应线圈的方案。它具有原理简单、价格便宜、体积小(相对小)、频率响应快、电路实现简单等特点。比赛选择 20kHz 的交变磁场作为路径导航信号,在频谱上可以有效地避开周围其它磁场的干扰,因此信号放大需要进行选频放大,使得 20kHz 的信号能够有效的放大,并且去除其它干扰信号的影响。可以使用 LC 串并联电路来实现选频电路(带通电路),如下图所示:图 2.2RLC 并联谐振电路上述电路中,E 是感应线圈中的感应电动势,L 是感应线圈的电感量,R0 是电感的内阻,C 是并联谐振电容。上述电路谐振频率为012fLC。已知感应电动势 f0=20kHz,感应线圈电感为 L=10mH,可以计算出谐振电容的容量为:923230116.33 10()(2)(220 10)10 10CFfL通常在市场上可以购买到的标称电容与上述容值最为接近的电容为6.8nF,所以在实际电路中我们选用 6.8nF 的电容作为谐振电容。2.32.3 车模方向控制原理车模方向控制原理实现车模方向控制是保证车模沿着竞赛道路比赛的关键。车模所在的电磁组的道路中心线铺设有一根漆包线,里面通有100mA的20kHz交变电流。因此在道路中心线周围产生一个交变磁场。通过道路电磁中心线偏差检测与电机差动控制实现方向控制,从而进一步保证车模在赛道上。第八届全国大学生智能汽车邀请赛技术报告-4-我们用电感和电容的互感采集10mA的20KHz的交变电流导线的信号通过不同方向上互感电容的信号差值,来控制舵机的打角实现转向的效果。第三章、电路设计第三章、电路设计3.13.1传感器的电路设计传感器的电路设计我们通过同10mh的电感和6800pf的电容互感经过下面的运放电路如下图3.1所示:图3.1 电感运放电路同过AD620对互感得到的小信号进行放大滤波后,采集的AD值传入单片机的AD口。3.23.2电源电路模块电源电路模块智能车使用镍镉充电电池,充满时电压在7.88.2V。可直接用于电机和舵机供电。单片机及一些数字器件使用直流5V,5V电源选用常用线性稳压芯片LM2940。图3.2.1 稳+5V电源电路稳+5V主要是给运放AD620、编码器、74HC244以及单片机工作所用。第八届全国大学生智能汽车邀请赛技术报告-5-图3.2.2 稳+3.3V电源电路+3.3V电源模块是给液晶屏供电用。图3.2.3 稳-5V电源电路其中7660用于正转负,然后在经过7905稳-5V供给运放模块。第八届全国大学生智能汽车邀请赛技术报告-6-3.33.3驱动电路模块驱动电路模块我们使用MOS管IR2184作为我们的驱动芯片,电路图如下3.3所示:图3.3 驱动电路3.43.4起跑线检测模块起跑线检测模块经过测试,在满足检测空间距离的前提下,我们选择了干簧管。干簧管是一种磁敏的特殊开关,它的两个触点由特殊的材料制成,被封装在装有惰性气体的玻璃管里,只要用磁铁接近它,磁场达到一定强度,干簧管两个触点就会吸和在一起,使电路导通。应用此原理可以准确的检测起跑线处的高强度磁场。但要注意的是当干簧管长时间处在经过一定磁场中时,两个簧片会因长时间吸附在一起而出现永久性的损坏。电路图如下图所示:第八届全国大学生智能汽车邀请赛技术报告-7-图3.4 起跑线检测电路第四章、传感器安装计机械设计4.14.1电电感感的固定的固定电感的安装如下图 4.1 所示:中间的支架选用直径较大的碳卷管,支架为 T 字型。两个杆用尼龙材料的连接件固定。需要强调的是,碳卷管比较轻,避免重心前移。图4.1电感的固定4.24.2轮胎的改进轮胎的改进轮胎应选择较软的胎,软胎还应打磨之更加柔软,但是要保留一些纹路。4.34.3车子布局车子布局车身重心位置的前后调整,对智能车行驶性能有很大的影响。按照车辆运动学理论,车身重心前移会增加转向,但会降低转向的灵敏度,同时降低后轮的抓第八届全国大学生智能汽车邀请赛技术报告-8-地力;重心后移会减少转向,但会增大转向灵敏度,后轮抓地力也会增加。因而调整合适的车体重心,让智能车更加适应跑道是很关键的。小车的布局以精简、可靠、稳定为前提。电路板采用PCB板搭建,放置于小车中部。编码器安装于小车最后。通过调整布局,基本上使小车重心维持在电池重心偏后。小车实物照片如图4.3所示。图4.3车子布局4.44.4 电机保护电机保护电机线容易断裂,应用热缩管将正负引线包好,再用热熔胶固定在电机架上。第五章第五章、模型车的主要技术参数、模型车的主要技术参数车模总体重量1.09kg车模长75cm车模高25cm车模宽25cm电容总容量1700uf传感器个数干簧管*6、工字电感*5第六章、软件处理及控制算法第六章、软件处理及控制算法微处理器:MC9S12XS128控制理论:用车速模块(编码器)测得当前小车的行驶速度,利用PI控制原理把速度控制在某个自己设定的值实现小车匀速行驶。利用AD口读取五个电感的电压值,再通过五个电感的值实现对路径的检测,用PD控制来控制车模的转向。算法:由于控制小车需要控制其直立,速度和方向,而输出量只有两个电机的PWM脉冲。为了避免各个控制输出量的互相影响,我们把各个控制分配到中断的分段中,使其不互相影响。第八届全国大学生智能汽车邀请赛技术报告-9-代码设计:代码主要分为 1初始化 2 信息的获取 3 控制其中初始化包括:PLL设置,PWM,AD,无线模块,液晶屏,按键等模块的端口初始化。信息的获取包括:各模块的AD值,脉冲数,电感电压等。控制包括:速度,方向控制。参考文献1邵贝贝等学做智能车2004年北京航空航天大学出版社2陶永华主编新型PID控制及其应用 机械工业出版社 2002年3谭浩强C+程序设计北京-清华大学出版社 2004第八届全国大学生智能汽车邀请赛技术报告I附录附录源程序源程序/*端口使用说明*PWMDTY01/电机正转PWMDTY23/电机反转PWMDTY67/舵机输出DDRM/液晶屏输出DDRT/编码器输入DDRB_DDRB1/停车控制输入PORTB/(除 1 以外)/无线模块PORTA/键盘*/*-头文件时间:2013-04-10-*/#include#include/*common defines and macros*/#include derivative.h/*derivative-specific definitions*/#include LQ12864.h#include Init.h#include Output.h#include Keyboard.h#include 无线模块.h/*-主函数时间:2013-04-10-*/void main(void)byte i=0;PLL_Init_80M();/中断初始化PWM_Init();/PWM 初始化AD_Init();/AD 初始化io_Init();/液晶屏 IO 口初始化第八届全国大学生智能汽车邀请赛技术报告IILCD_Init();/液晶屏初始化PIT_Init();/PIT 中断初始化Init_STOP();/停车初始化Init_Event_Count();/编码器初始化Keyboard_Init();/键盘初始化EnableInterrupts;for(;)Key=-1;/设定初始键值Key_Scan();/调用键盘扫描函数Menu();/调用液晶屏显示函数/LCD_CLS();/液晶屏刷新函数/*please make sure that you never leave main*/*-PIT 中断编写日期:2013-04-291ms 中断一次-*/#pragma CODE_SEG _NEAR_SEG NON_BANKEDvoid interrupt 66 PIT0_ISR(void)DisableInterrupts;/*内置计时模块*/if(s_stop=0)timer=0;if(s_stop=1)time+;if(time=999)time=0;if(s_stop=1)timer+;第八届全国大学生智能汽车邀请赛技术报告III/*内置计时模块*/*判断停车*/if(stop_t=limit-1)stop_t+;/stop_t=1if(stop_t600)stop_t=-1;if(is_stop!=0)is_stop+;if(is_stop=999)is_stop=0;if(is_stop=0)if(PORTB_PB1=0)is_stop+;s_stop+;stop_t+;/*判断停车*/*电机是慢系统!*/*起步延时+加速*/if(delay0)delay+;if(delay2000+rush*1000)delay=0;/*起步延时+加速*/if(delay0&delay2000)PWMDTY01=6000;PWMDTY23=0;g_fSpeedIntegral=3500;elseif(s_stop=limit)speed.pulse=speednow;speednow=0;/把累加的速度清零if(stop_t=limit-1)/stop_t=1if(speed.pulse5)Speed_Back_Control();elseMoto_Drive(0);elseMoto_Drive(0);elseif(count_s=5)/分 5 次补偿速度speed.pulse=(int)(speednow/5);speednow=0;/把累加的速度清零SpeedControl();count_s=1;else第八届全国大学生智能汽车邀请赛技术报告VSpeedControlOutput(count_s);count_s+;break;case 3:/方向控制Servo_Control();/方向控制方面看你的车子抖不抖,要是抖的话也可以考虑使用像速度控制一样分批次给值输出的做法break;if(step3)step+;elsestep=0;PITTF_PTF0=1;EnableInterrupts;/*-PID 算法函数时间:2013-05-29-*/void SpeedSet()if(flag=0)speed.think_speed=speed.max_speed-abs(dj.out-DJ_MID)/15;if(speed.think_speed125)PWMDTY01=0;PWMDTY23=0;elseMoto_Drive(g_fSpeedOut);/电机输出第八届全国大学生智能汽车邀请赛技术报告VII/*-舵机调节时间:2013-4-15-*/void Servo_Control()ad.diff_now1=(ad.v0-ad.v1)/(ad.v0+ad.v1);ad.diff_now2=(ad.v3-ad.v4)/(ad.v3+ad.v4);if(ad.diff_now1-0.15&ad.diff_now1-0.15&ad.diff_now2border)ad.diff_now=ad.diff_now1;flag=1;elsead.diff_now=ad.diff_now2;flag=0;dj.out=Djcenter+ad.diff_now*dj.P+(ad.diff_now-ad.diff_before)*dj.D;ad.diff_before=ad.diff_now;DuojiDrive(dj.out);/*-舵机驱动编写日期:2013-05-19-*/void Duoji_Drive(int pwm)if(pwm=3940+760)/760PWMDTY67=3940+760;第八届全国大学生智能汽车邀请赛技术报告VIIIelse if(pwm=3940-760)PWMDTY67=3940-760;elsePWMDTY67=pwm;/*-电机驱动编写日期:2013-05-19-*/void Moto_Drive(int pwm)PWMDTY23=0;if(pwm=6000)pwm=6000;PWMDTY01=pwm;