阆苑一队技术报告_第1页
阆苑一队技术报告_第2页
阆苑一队技术报告_第3页
阆苑一队技术报告_第4页
阆苑一队技术报告_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第十四届“恩智浦”杯全国大学生智能汽车竞赛 室外越野电磁组技术报告 参赛学校: 惠州学院 队伍名称: 阆苑一队 参赛队员: 张桂豪 冯昊 陈伟锋 带队教师: 郑继红 李卫平第十四届飞思卡尔智能汽车竞赛技术报告 关于技术报告和研究论文使用授权的说明本人完全了解第 14 届“恩智浦”杯全国大学生智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和恩智浦半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论中。参赛队员签名: 带队教师签名: 期: 日第十四届飞思卡尔智能汽车竞赛技术报

2、告目录第一章 引言11.1 概述11.2 整车设计思路11.3 文本撰写框架2第二章 智能车机械结构设计32.1 车模机械外形32.2 整车布局32.3 舵机安装方式42.4 电感支架的设计安装52.5 前轮倾角调整62.6 编码器的调整62.7 激光雷达的安装7第三章 智能车硬件电路设计83.1 单片机系统设计83.2 电源模块设计83.3 传感器方案113.4 驱动电路设计113.5 起跑线检测传感器123.6 北醒激光测距模块12第四章 智能车系统软件设计144.1 总体设计144.2 中断174.3 赛道各元素处理174.4 PID 算法介绍18第五章 系统调试215.1 开发调试工具

3、215.2 液晶屏、按键、拨码开关调试21第六章 车模的主要参数及说明23第七章 总结23参 考 文 献I附录:源代码2I摘要本文介绍了基于恩智浦32位微控制器的基于电磁场检测巡线智能车系统。针对比赛的具体情况,我们建立了赛车、赛道和自主控制系统的基本模型,给出了理论分析、仿真计算、在线调试的基本开发方法,在比较各种算法的性能特点后,我们确定最终方案,并完成了智能车的制作和调试。本系统以M4系列微控制器K60为核心,软件平台为IAR EWARM开发环境,车模为组委会统一提供的L车模。论文介绍了整个智能车系统的硬件和软件设计开发过程。使用K60作为主控芯片,用安装在车头的磁感应传感器来检测赛道信

4、息,用编码器检测车模速度, 用霍尔传感器检测起跑线信息,用激光测距雷达检测障碍物。整个系统的工作原理是由磁感应传感器采集赛道信息并经放大处理,与编码器采集的车模速度信息一起送给单片机,通过程序设计控制优化算法,控制舵机的转角和电机的转速以达到车模在赛道上的稳定高速行驶。关键字:智能车K60循迹舵机速度第一章 引言第一章 引言恩智浦杯全国大学生智能车竞赛以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,系统涵盖了机械、电子、电气、传感、计算机、自动化控制等多方面知识,一定程度上反映了高校学生科研水平。本章节详细阐述了智能车系统的研究背景和本智能小车的设计总体概况。1.1 概述随着现代科技的

5、飞速发展,人们对智能化的要求已越来越高,而智能化在汽车相关产业上的应用最典型的例子就是汽车电子行业,汽车的电子化程度则被看作是衡量现代汽车水平的重要标志。同时,汽车生产商推出越来越智能的汽车,来满足各种各样的市场需求。第十四届“恩智浦”杯全国大学生智能汽车竟赛就是在这个背景下举行的。比赛要求在大赛组委会统一提供的竞赛车模,我们选择了恩智浦微控制器K60为核心控制单元的基础上,自主构思控制方案及系统设计,包括传感器信号采集处理、控制算法及执行、动力电机驱动等,最终实现能够自我识别路线,并且可以实时输出车体状态的智能车控制硬件系统。本文先从总体上介绍了智能车的设计思想和方案论证,然后分别从机械、硬

6、件、软件等方面的设计进行论述,重点介绍了芯片的选择和路径识别的方法, 接着描述了智能车的制作及调试过程,其中包含本队在制作和调试过程中遇到的问题及其解决方法。1.2 整车设计思路本组电磁车使用恩智浦K60作为核心控制单元,使用多传感器大前瞻进行巡线控制,并且检测起跑线。使用了编码器对小车速度进行检测。并且增加了OLED 屏和按键以及拨码开关,以便更方便的查看小车数据,修改小车参数,以及修改整体策略。根据采集到的中线信息以及小车速度信息,对小车的转向以及速度进行控制,从而实现小车的循迹,整体结构框图如图1-1所示:1第十四届恩智浦智能汽车竞赛技术报告电感电容谐振放大滤波电路通信串口模块按键,拨码

7、盘K60OLED 屏显示光电编码器直流电机转向舵机图 1.1整体结构框图1.3 文本撰写框架本文简述小车的设计过程,主要分为:智能车车模机械设计、智能车系统硬件设计、智能车控制策略和软件设计、总结等四部分。并且附录中加入小车的算法程序。第二章:智能车机械结构设计。主要介绍舵机的安装、车轮及底盘的调整、轮胎的固定等。第三章:智能车硬件电路设计。主要介绍K60单片机系统、底层主电路、电感传感器、驱动电路等。第四章:软件设计。主要介绍主程序流程、信号分析与识别、控制策略等。第五章:系统调试。主要介绍开发调试工具、辅助模块和上位机的调试。2第二章 智能车机械结构设计第二章 智能车机械结构设计制造一辆出

8、色的小车不仅需要很好的控制算法,车的机械结构也同样重要。在调试小车前期速度较低时,对小车的机械结构要求并不高,在匀速的情况下也能较好的过直角而不越出赛道丢线。到了后期车速较高的时候,车模有明显的甩尾和侧滑现象,此时对小车机械结构就要求很高。因此,我们队在不违反规则的情况下对小车进行了多方面的改造以使小车具有良好的运行性能。2.1 车模机械外形此次竞赛的赛车车模选用第十四届恩智浦智能车竞赛专用 L 型越野车模。车模外形如图 2.1 所示。图 2.12.2 整车布局(1)(2)(3)通过去除前轮传动轴,增大车模转向打角,有四轮转向和前轮转向两种;调低车模底盘,将主板及电池紧贴底部,使车模重心压低;

9、激光测距模块放置在车模前瞻最前端,以便提前判断障碍物;3第十四届恩智浦智能汽车竞赛技术报告(4)(5)(6)电感探出车模 45cm,便于提前识别路况又不撞击锥桶;停车模块采用悬挂方式悬挂与车尾处,用于识别起跑线;车模尾部增加配重块,增大车模抓地力。图 2.2。图 2.2整车布局2.3 舵机安装方式舵机响应速度是整车过弯速度的一个瓶颈。为了加快车轮转向速度,我们设计并安装了舵机转向机构。在并非改变舵机本身结构的条件下,改变了舵机的安装位置,安装更长的舵机输出臂。采用杠杆原理,在舵机的输出舵盘上安装一个较长的输出臂,将转向传动杆连接在输出臂末端。这样就可以在舵机输出较小的转角下,取得较大的前轮转角

10、,从而提高了整个车模转向控制的速度。如图 2-3 所示,但是过长的输出臂又会使舵机输出的扭矩不够而影响小车的转弯性能。4第二章 智能车机械结构设计图 2.3 舵机的安装2.4 电感支架的设计安装电感支架的重量对小车的转弯性能影响非常大,因为电感支架远离车重心的部分在转弯时会形成较大的离心力,如果支架较重的话就会导致车模在转弯的过程中发生甩尾。因此,我们尽力减轻电感支架的重量。图 2.4 是单杆 T 字方案。为了追求质量的轻量化,我们在碳素杆的连接处并没有使用带金属螺丝的锁定结,而是用热熔胶连接。图 2.4电感支架的安装5第十四届恩智浦智能汽车竞赛技术报告2.5 前轮倾角调整前轮定位的作用是保障

11、汽车直线行驶的稳定性,转向轻便和减少轮胎的磨损。束等前轮是转向轮,它的安装位置由主销内倾、主销后倾、前轮外倾和前轮前4 种可调参数决定,实现转向轮、主销和前轴等三者在车架上的位置关系。在实际调试中,我们发现适当增大内倾角可以增大转弯时车轮和地面的接触 面积,从而增大车了地面的摩擦程度,使车转向更灵活,减小因摩擦不够而引起 的转向不足的情况。2.6 编码器的调整为了更为精确的获得电机转速的返回值,本次车模上安装的是编码器,选择体积较小的 1024mini 编码器。最终综合考虑了读数精准和重心分布两大因素,用联轴器安装配合,尽量使得传动轴保持平行,传动部分轻松、流畅,不存在过大噪音和丢数情况。如图

12、2.6所示。图2.6编码器安装6第二章 智能车机械结构设计2.7 激光雷达的安装十四届竞赛新增了横断路障元素,它要求小车对它进行测距识别,然后进行避障,而电感难以对它进行准确的识别,因此小车需要增加测距模块。我们采用的是激光雷达传感器,由于激光雷达是以激光为光源,通过探测激光与被探测无相互作用的光波信号来遥感测量的,因此安装激光雷达时,前面不能有遮挡如图 2.7 所示。物。图2.7激光雷达的安装7第十四届恩智浦智能汽车竞赛技术报告第三章 智能车硬件电路设计3.1 单片机系统设计单片机最小系统是智能车系统的核心控制部件。我们采用了M4内核32位的K60芯片。原理图如图3.1所示:图 3.1单片机

13、系统原理图3.2 电源模块设计电源是智能车的原动力,电源供电的稳定性直接关系到整个系统的稳定性。所以我们要考虑电源的转换效率,尽量降低噪声,防止干扰。室外越野组比赛智能车供电电源不受限制,所以我们采用了大容量5200mah的航模电池。而系统8第三章 智能车硬件电路设计单片机需要3.3V供电;电机驱动电压为12V;一些运放电路以及其它IC大多需要5V 电源以及2.5V电源,SD-5加强版舵机需要6V可调电源。对于运算放大电路、传感器模块、蓝牙、OLED模块、编码器等功能模块供电大多是5V。但由于总量大所以需要比较大的电流,经比较对比,我们采用TPS54331为它们供电,基本满足要求。电路原理图如

14、下图3.2所示:图 3.2电源电路原理图3.3V电压,主要供给主控芯片。所以该部分供电电压要求十分稳定,否则将影响到主控芯片的正常工作。因此我们选用具有稳定输出电压,较大输出电流的LM2937。设计中,采用先5V稳压再经3.3V稳压,目的是为了减小LM2937的压差,降低发热,基本达到要求。其电路图如3. 3图所示:图 3.3 芯片供电电路原理图9第十四届恩智浦智能汽车竞赛技术报告SD-5加强版舵机的工作电压为6V。选型时,采用大电流线性稳压电源,故我们采用LM1084-ADJ芯片,该芯片配合外围电路后可调输出电压,我们用TPS54331 把电池12V降压到7V给舵机,然后将电压调至6V,使得

15、舵机工作在6V。如电路图如图3.4和3.5所示:图 3.4 舵机电路原理图图 3.5 降压电路原理图10第三章 智能车硬件电路设计3.3 传感器方案传感器是电磁车的眼睛,所以传感器模块即放大电路对于小车能否快速准确的捕捉路况信息十分重要。本系统根据LC谐振电路检测小信号的原理,选取10mH工字电感和6.8nf电容搭建LC谐振电路,但采集到的正弦信号的振幅一般只有几十毫伏,对于单片机来说太微弱。为了使单片机能够识别这种微弱信号, 采用仪表放大器INA118放大信号,该芯片具有稳定,放大倍数大,外围电路简单等特点。再通过检波模块得到所需要信号。如电路图如3. 6图所示:图 3.6 传感器电路原理图

16、3.4 驱动电路设计电机驱动电路的设计,采用IR2104+4NMOS构成H桥进行驱动。HIP4082是H 桥式N通道MOS管驱动器集成电路,特别针对于脉宽调制电动机控制。它使基于桥式电路的设计更为简单和灵活。MOS管选用IRFP3703,具有大电流内阻极小,在100摄氏度以内耐电流值不易受温度影响的特点。如图3.7所示:11第十四届恩智浦智能汽车竞赛技术报告图 3.7 电机驱动电路原理图3.5 起跑线检测传感器我们采用霍尔元件来作为检测元器件,当霍尔元件靠近到永磁铁时,会产生一个低电平号。然后让其通过一个 8 输入与非门转成高电平,传回 K60,我们选用的是全极性型霍尔元件。原理图如图 3.8

17、图 3.8 停车电路原理图3.6 北醒激光测距模块它具有以下几个优点:1. 传感器连接使用简单,对于1米以内的中距离测试精度良能优越。12第三章 智能车硬件电路设计2. 数据测量值稳定,测量结果波动较小。3. 数据传输稳定,程序读取简单不会在数据传输过程中出现卡死的现象,错误信号较少。如图3.9 图3.9北醒激光测距模块13第十四届恩智浦智能汽车竞赛技术报告第四章 智能车系统软件设计4.1 总体设计小车的控制算法是建立在硬件系统之下的,通过使用 IAR 程序进行对小车程序的编程,使得小车得以正常顺着轨道运行。本车使用了UART、FLASH、FTM、PTM、PIT、GPIO 等模块,在程序的 m

18、ain 函数之前进行了各个模块的初始化,相关代码如下:void all_init()/初始化key_init(KEY_MAX);uart_init (UART0,115200); Pin_pull_up_res();sensor_init(); motor_init(); flash_init(); LED_Init();led_init(LED1); gain_max_min_value(); ftm_quad_init(FTM1);FTM 的正交解码 功能编码器用/按键初始化/电感初始化/电机初始化/LED 初始化/初始化NVIC_SetPriority(PIT0_IRQn,0);pit_

19、init_ms(PIT0, 1);/定时器 0 初始化/定时器 1 初始化/不可山外上位/pit_init_us(PIT1, 500);/uart_init (UART4, 115200);机用,山外上位机底层已配置好set_vector_handler(PIT0_VECTORn ,PIT0_IRQHandler);/set_vector_handler(PIT1_VECTORn ,PIT1_IRQHandler);/定时器 0 配置/定时器 1 配置/set_vector_handler(UART4_RX_TX_VECTORn,UART4_IRQHandler);/设置串口接受中断 TX P

20、TC17RX PTC1614第四章 智能车系统软件设计enable_irq (PIT0_IRQn);/蜂鸣器初始化gpio_init(BUZZER,GPO,0);LED_TS();K_front_cun = K_front;K_front0_cun = K_front0;在各个模块的初始化之后,进入 main 函数:void main()all_init();uart_init (UART4,115200); while(1)LED_XS();if(pit0_flag%5=0)Read_ADC();Motor_PID();SZDG0=speed; SZDG1=motorcnt;vcan_sen

21、dware(SZDG, sizeof(SZDG);uart_laser();电感采集:for(i=0;i7;i+)ad_valu0i = adc_once(ADC1_SE15, ADC_10bit); ad_valu1i = adc_once(ADC0_SE13, ADC_10bit); ad_valu2i = adc_once(ADC0_SE12, ADC_10bit); ad_valu3i = adc_once(ADC1_SE11, ADC_10bit); ad_valu4i = adc_once(ADC1_SE10, ADC_10bit); ad_valu5i = adc_once(AD

22、C1_SE13, ADC_10bit); ad_valu6i = adc_once(ADC1_SE12, ADC_10bit);15第十四届恩智浦智能汽车竞赛技术报告整个程序的总体流程图如下:开始模块初始化定时器 5 毫秒是停车检测停车否Case0Case1Case2电感AD 采值脉冲采值激光雷达采值归一化数据处理数据处理赛道信息处理控制电机舵机转向舵机转向16第四章 智能车系统软件设计4.2 中断程序每隔 5 毫秒进入一次中断,获取电机速度值和舵机打角值,对舵机和电机进行控制,设置在终端中进行,防止阻碍小车正常运行寻迹。4.3 赛道各元素处理直角检测与处理:在小车即将经过直角元素时,我们采用

23、前排的 2 个竖直电感检测,当一侧的电感值逐渐增大,而另一端的电感值逐渐减小,同时通过后排的横电感辅助判断,判断得到直角元素,然后通过舵机进行打角,编码器控制舵机减速,缓慢通过直角。坡道检测与处理:当通过坡道时,前排中间的横电感数值会突然增大,或者通过激光雷达的辅助判断,判断得到坡道标志,清理坡道标志位。苯环检测与处理:当通过苯环时,小车的前排 3 个横电感数值会增加,特殊归一化后相加超过 180 的数值,识别到苯环后,当小车到达入环的区域时,收集数值进行打角处理,进入苯环,当出环的时候,因为小车做了延时,在一段时间内不会二次识别苯环,所以出环时候,不会再次识别到入环程序。横断检测与处理:小车

24、在经过面前的横断时候,因为横断是设置在直道上,我们为了区分横断与锥筒,识别横断时候,需要小车是否在直道上的条件达成了,才能进行横断的识别,而后,通过小车前端的激光雷达,识别到小车距离横断有 150 厘米以内后,进行一次减速,在距离横断 60 厘米以内的时候,进行小车的打角处理, 使得小车绕过横断。17第十四届恩智浦智能汽车竞赛技术报告路坎及砂石等地的处理:这两种元素,程序都采用了正常寻迹通过的方法。4.4 PID 算法介绍控制算法包括方向控制和速度控制。方向控制采用位置式PD控制,速度控制采用增量式PID-控制。 PID控制是工程实际中应用最为广泛的调节器控制规律。问世至今70多年来, 它以其

25、结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。 (1)PID控制算法简介 PID调节是Proportional(比例),Integral(积分),Differential(微分)三者的缩写,是一种过程控制算法,就是对误差信号(采样信号与给定信号的差)通过比例,积分,微分的运算后的结果作为输出控制信号,来控制所要控制的对象。 比例调节作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例使系统的稳定性下降,甚至造成系统的不稳定。 积分调节作用:是使系统消除稳态误差,提高误差度。当有误差时,积分调节就进行

26、,直至无误差,积分调节停止,积分调节输出一常值。积分作用的强弱取决与积分时间Ti,Ti 越小,积分作用就越强。反之Ti 大则积分作用弱, 加入积分调节可使系统稳定性下降,动态响应变慢。 微分调节作用:微分 作用反应系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统得动态性能。在微分时间选择合适的情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用, 因此过强的加微分调节,对系统抗干扰不利。单位反馈的PID控制原理框图如图4.4所示: 图4.4 单位反馈的PID控制原理图 单位反馈e代表理想

27、输入与实际输出的误差,这个误差信号被送到控制器, 控制器算出误差信号的积分值和微分值,并将它们与原误差信号进行线性组合,18第四章 智能车系统软件设计得到输出量u。 dedti u = k e + kedt + kpd 公式1 式中Kp、Ki、Kd分别称为比例系数、积分系数、微分系数。u接着被送到了执行机构,这样就获得了新的输出信号u ,这个新的输出信号被再次送到感应器以发现新的误差信号,这个过程就这样周而复始地进行。 (2)位置式PID控制算法 用矩形数值积分代替上式中的积分项,对导数项用后向差分逼近,得到数字PID控制器的基本算式(位置算式): 公式2 其中x0为偏差信号为 0 时的控制作

28、用,是控制量的基础。 其中T是采样时间, k p 、T i 、T d 为三个待调参数。 (3)增量式PID控制算法 在用计算机控制的离散系统中,PID的算式为: 公式3 ,那么 公式4 两式相减得增量式 PID的算式 公式5 19第十四届恩智浦智能汽车竞赛技术报告 xk 反映的是第 k 次和第 k-1 次之间的增量,而且可以看出,使用增量式 PID 只需要保存前两次的误差即可。因此代码简单高效,并且无积分的累加误差。 增量型算法与位置型算法相比,具有以下优点: (a) 增量型算法不需要做累加,控制量增量的确定仅与最近几次误差采样值有关,计算误差或计算精度问题,对控制量计算影响较小。而位置型算法

29、要用到过去的误差的累加值,容易产生大的累加误差。(b) 增量型算法得出的是控制量的增量,误动作影响小,必要时通过逻辑判断限制或禁止本次输出,不会严重影响系统的工作,而位置型算法的输出是控制量全量输出,误动作影响大。根据我们实际情况的调试,发现单一套用PID公式并不能达到预期的效果。适当对PID公式进行优化可以达到更好的效果。根据智能车系统提出的改进方法 有不完全微分、微分先行、前馈控制等。对智能车算法的采用最好是知其道, 才能达到用其妙的效果,根据具体的情况使用PID,不能完全按照理论照本宣科,墨守成规。20第五章 系统调试第五章 系统调试5.1 开发调试工具软件开发工具选用的是Embedde

30、d Workbench for ARM 。 EmbeddedWorkbench*for ARM 是 IAR Systems 公司为ARM 微处理器开发的一个集成开发环境(下面简称 IAR EWARM)。比较其他的 ARM 开发环境,IAR EWARM 具有入门容易、使用方便和代码紧凑等特点。它为用户提供一个易学和具有最大 量代码继承能力的开发环境,以及对大多数和特殊目标的支持。嵌入式 IAREmbedded Workbench 有效提高用户的工作效率,通过省软件调试时间。调试界面如图5.1所示:IAR 工具,可以大大节 图5.1IAR调试界面 5.2 液晶屏、按键、拨码开关调试在小车的调试过程

31、中需要不断地修改变量的值来达到整定参数的作用,对此我们选用了液晶配合按键和拨码开关的调试方法。此外,比赛的时候,修改21第十四届恩智浦智能汽车竞赛技术报告参数我们同样用这个模块进行修改。液晶我们选用OLED液晶,该液晶具有以下特点: 尺寸小,显示尺寸为0.96吋,而模块的尺寸约29.5mm*29.5mm 。具有普通LCD无法比拟的体积的优势。 高分辨率,分辨率为128*64,显示效果远超过LCD。可以显示的数据更多,方便观察内部的变量的变化情况。但同时,它的缺点也是显而易见的:价格远高于普通LCD,易损坏,质量不如普通LCD; 耗费更多的单片机资源,通过高精度示波器测量刷新时间,每刷新液晶屏幕

32、上一个变量值需要耗时1ms,这对高精度的高实时性的智能车是最大的不利。最后,我们选用了OLED液晶,更加看重变量可显示个数和体积带来的优越。刷新变量的耗时巨大的问题可以通过软件解决,即在主函数分时刷新,避免影响主体函数的运行。界面如图5.2所示: 图5.2 液晶界面按键我们采用普通的独立按键,设立4个按键和6个拨码开关进行开始,调试,运行,方案选择四个部分。22第l 章 系统调试第六章车模的主要参数及说明第七章 总结自从决定参加“恩智浦”杯智能汽车竞赛以来,我们小组成员查找资料,设计机构,组装车模,编写程序,分析问题,智能车终于达到了稳定、快速、简单的性能目标,最终确定了我们的作品。在此份技术

33、报告中,我们主要介绍了准备比赛时的基本思路,包括机械,电路,以及智能车的控制算法。在传感器布局,我们分析了前几届中出现的电感排布方法,综合考虑到程序的稳定性、简便性,我们最后敲定了现在的电感排布,并通过反复实践决定了传感器的数量和位置,在软件上不断完善控制算法,最终智能车在跑道上能稳定完成自主循迹行驶。23项目 参数 车体总重量 2.5KG 车模几何尺寸(长、宽、高)(毫米) 846、355、228 电路电容总量(微法) 1820 传感器种类及个数 编码器:mini1024 线,1 个10mH 电感,7 个 激光雷达:TFminiPlus,1 个 霍尔传感器:49138091849,8 个 新

34、增加伺服电机个数 0 赛道信息检测频率(次/秒) 250 主要集成电路种类/数量 主板(1)、运放(1)、驱动电路(1)、起跑线检测模块(1) 第十四届恩智浦智能汽车竞赛技术报告在电路方面,我们以模块形式分类,在电源管理,电机驱动,接口,控制, 信号采集,传感器这六个模块分别设计,在查找资料的基础上各准备了几套方案;然后我们分别实验,最后以报告中所提到的形式决定了我们最终的电路图。在算法方面,我们使用C语言编程,利用比赛推荐的开发工具调试程序,经过小组成员不断讨论、改进,终于设计出一套比较通用的,稳定的程序。在这套算法中,我们结合路况调整车速,做到直线加速,弯道减速,保证在最短时间跑完全程。在

35、之前的备战过程中,场地和经费方面都得到了学校和系的大力支持,在此特别感谢一直支持和关注智能车比赛的学校和系领导以及各位指导老师、指导学长,同时也感谢比赛组委会能组织这样一项有意义的比赛。现在,面对即将到来的大赛,在历时近一年的充分准备以及 华南赛区 赛的考验之后,我们有信心在全国比赛中取得优异成绩。也许我们的知识还不够丰富,考虑问题也不够全面,但是这份技术报告作为我们小组辛勤汗水的结晶, 凝聚着我们小组每个人的心血和智慧,随着它的诞生,这份经验将永伴我们一生,成为我们最珍贵的回忆。24第l 章 系统调试参 考 文 献 (1) 邵贝贝单片机嵌入式应用的在线开发方法 M北京清华大学(2) 刘金琨.

36、先进 PID 控制及其 MATLAB 仿真M.北京.电子工业出版.2004.(3) 李仕伯,马旭,卓晴.基于磁场检测的寻线小车传感器布局研究J.电子产品世界 2009.(4) 卓晴,黄开胜,邵贝贝.学做智能车挑战“飞思卡尔”杯M.北京:北京航空航天大学,2007.(5) 吴成东.Labview 虚拟仪器程序设计及应用M. 北京:邮电(6) 贾翔羽,季厌庸,丁芳.前馈-改进 PID 算法在智能车控制上的应用2008.(7) 何宝祥,朱正伟,刘训飞,储开斌模拟电路及其应用(8) 阎石数字电子技术基础 M 北京: 高等教育M 北京: 清华大学,2000.,2008.(9) 谭浩强著C 程序设计北京:

37、清华大学,2003I第十四届恩智浦智能汽车竞赛技术报告附录:源代码#include common.h#include include.h/定义电机 FTM 模块/定义电机 PWM 通道/定义电机 PWM 通道/定义电机 PWM 通道/定义电机 PWM 通道此处为 FTM0 模块此处为通道 CH0 此处为通道 CH1 此处为通道 CH2此处为通道 CH3#define MOTOR_FTMFTM0#define MOTOR1_PWMFTM_CH0#define MOTOR2_PWMFTM_CH1#define MOTOR3_PWMFTM_CH2#define MOTOR4_PWMFTM_CH3/定

38、义电机占空比此处为 30% (精度在 ftm.c 文件#define MOTOR_DUTY中)(250)/定义电机频率此处为 10*1000#define MOTOR_HZ(10000)/定义舵机 FTM 模块/定义舵机 PWM 通道此处为 FTM3 模块此处为通道 CH7#define S3010_FTMFTM2#define S3010_CHFTM_CH1/定义舵机频率/定义舵机中值此处为 100HZ(50100HZ)此处为 1380#define S3010_HZ(100)#define S3010_mid(1090)/芯片引脚 PTB3/芯片引脚 PTB5/芯片引脚 PTB6对应通道

39、ADC0_SE13对应通道 ADC1_SE11对应通道 ADC1_SE12#defineinductor2ADC0_SE13#defineinductor1ADC1_SE11#defineinductor0ADC1_SE10int32AD_valu3,j;/一维数组,存储滤波后的五个 ADC 通道的 AD 值int32 Steer_duty = 1090; / 舵机最终占空比输出不能正常寻迹,怎么改?上山外论坛/hjb 要自己调改,一定要改的,不改int32 angle_out = 0; /角度输出值(舵机占空比输出用) int32 Electro_erro,Electro_erro_old;

40、int16 max_front_old,position_font, max_front1,max_front_old1;/位置判断用/角度偏差舵机 PD 用float angle_error3 = 0;2第l 章 系统调试float angle_count = 0;/*舵机 PD 调参*/ float Kp = 1.9,Kd =20; /float tp = 0; /增量 p,丢线处理用void all_init()/ADC 模数转换通道初始化/ADC 模数转换通道初始化/ADC 模数转换通道初始化/ADC 模数转换通道初始化/ADC 模数转换通道初始化adc_init(inductor0)

41、;adc_init(inductor1);adc_init(inductor2);/adc_init(inductor3);/adc_init(inductor4);ftm_pwm_init(FTM2, FTM_CH1, S3010_HZ, S3010_mid);ftm_pwm_init(FTM0, FTM_CH0, MOTOR_HZ, 0);ftm_pwm_init(FTM0, FTM_CH1, MOTOR_HZ,0);ftm_pwm_init(FTM0, FTM_CH2, MOTOR_HZ,0);ftm_pwm_init(FTM0, FTM_CH3, MOTOR_HZ, 0);LED_In

42、it();led_init(LED1);void Read_ADC(void)int16i,j,k,temp;int16ad_valu35,ad_sum5;/五个电感 都读取 5 次 AD 值 存放至数组中,滤波用/ad_valu0i0:表示 0 号电感/ for(i=0;i5;i+)ad_valu2i = adc_once(ADC1_SE13, ADC_10bit);ad_valu1i = adc_once(ADC1_SE11, ADC_10bit);ad_valu0i = adc_once(ADC1_SE10, ADC_10bit);3第十四届恩智浦智能汽车竞赛技术报告/ad_valu3i

43、 = adc_once(ADC1_SE10, ADC_10bit);/ad_valu4i = adc_once(ADC1_SE9, ADC_10bit);/*简单均值滤波*/冒泡排序/上面每个电感所读取记录的电感值进行排序/5 个电感for(i=0;i3;i+)for(j=0;j4;j+)/5 个数据排序for(k=0;k ad_valuik+1)/前面的比后面的大则进行交换temp = ad_valuik+1;ad_valuik+1 = ad_valuik;ad_valuik = temp;for(i=0;i3;i+)/求中间三项的和ad_sumi = ad_valui1 + ad_valui2 + ad_valui3; /去掉最大最小值AD_valui = ad_sumi / 3; /取均值void position_judge(void)int8i,max_front=0;/,max

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论