




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十一届“恩智浦杯”全国大学生智能汽车竞赛技术报告学 校:中原工学院信息商务学院队伍名称:倔强小毛驴参赛队员:王超 张佑宇 雷达带队教师:李伟峰 王双玲摘要本文以第十一届全国大学生智能车竞赛为背景,介绍了四轮小车控制系统的软硬件结构和开发流程。参加该比赛我们采用的是大赛组委会统一指定的C型车模,以恩智浦半导体公司生产的16位单片机MC9S12XS128为核心控制器,在CodeWarrior IDE v5.1开发环境中进行软件开发,使用TSL1401系列的线性CCD进行赛道信息采集。整个系统涉及硬件电路设计、控制策略、整车机械架构等多个方面。为提高在高速运行下的稳定性,测试了不同方案的设计,并使用Matlab进行了大量的数据分析以及上位机的设计调试,确定了现有的整车架构和相关控制参数。并根据TSL1401采集到的赛道信息通过软件进行路径规划,以控制舵机的转向和后轮的差速,完成车的智能行走。 关键词:智能车,MC9S12XS128,TSL1401目录摘要1引言1第一章 方案设计11.1硬件系统总体方案的选定11.2软件系统总体方案的设计21.3车体技术参数4第二章 智能汽车机械结构调整与优化52.1 智能汽车车体机械概述52.2 车模机械结构的调整与改装62.2.1 舵机改装62.2.2 底盘改装72.2.3 前轮定位82.2.4 主销内倾,主销后倾92.2.5 前轮前束102.2.6 轮胎磨合11第三章 硬件控制电路设计133.1硬件方案设计133.2电源模块133.3最小系统板143.4驱动板153.5传感器和辅助模块16第四章 软件算法设计与控制策略184.1 PID 控制184.1.1 PID 控制简介184.2 舵机位置式 PD 控制194.3 电机增量式 PI 控制204.4 赛道提取中心214.5 障碍识别244.6 速度控制策略244.7 停车控制策略264.8 双轮差速控制策略27第五章 开发工具与调试说明305.1 开发工具305.2 调试工具315.2.1 蓝牙无线调试315.2.2 上位机316.2.3 辅助调试31第六章 总结32参考文献:I附录A:I引言“恩智浦”杯全国大学生智能汽车竞赛是一项以汽车电子为背景,涵盖控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科的科技创意性比赛,由教育部高等学校自动化教学指导委员会主办、恩智浦半导体公司协办。现在,该赛事已发展成为教育部面向全国大学生的大型专业竞赛之一,对培养学生的综合工程能力、创新精神、实践动手能力及团结协作精神均具有良好的促进作用。比赛要求在组委会提供统一智能车竞赛车模、单片机、开发软件和在线调试工具的基础上制作一个能够自主识别路线的智能车,它将在专门设计的跑道上识别道路自主行驶,在不违反规则的情况下以最短时间完成比赛。通过将近一年的准备、学习、制作以及调试,我们的小车实现了大赛基本的要求,并顺利进入全国赛。在这一年的时间里,我们汲取历届比赛留下来的精华,不断创新,一步一个脚印,理论联系实际,使我们的动手实践能力,团队合作能力有了较大的提升。我们的智能车系统以恩智浦16位微控制器MC9S12XS128作为核心控制单元,软件平台为CodeWarrior IDE v5.1,车模采用大赛组委会统一提供的 C型车模,赛道传感器选用线性CCD,速度传感器选用光电编码器,电机驱动采用经优化的全桥电路,自主构思控制方案进行系统设计,完成了智能车的制作和调试。在该技术报告中,我们详细介绍了智能车系统的软硬件结构及设计开发过程。其中,第一章介绍了小车的总体方案;第二章介绍了小车的机械结构及修改;第三章详细介绍了小车的硬件电路设计;第四章详细介绍了小车的软件设计和相关算法;第五章介绍了单片机软件开发工具和我们在调试时所采用的外围模块;第六章做出了对我们做车一年的总结心得。第一章 方案设计第一章 方案设计本章主要介绍智能汽车系统总体方案的选定和总体设计思路。1.1硬件系统总体方案的选定本届智能汽车大赛光电组比赛对传感器有着严格的规定,依然禁止使用激光传感器,我们使用统一的线性CCD,CCD与传统的光电传感器相比有着信息量大,质量轻,电路简单的特点,但是也会有成像失真,静电干扰严重,光线干扰等问题。在今年的规则里新添加了路肩。路肩的设置对于高速运行的小车来说增加了不稳定性,小车只要撞到上面就会造成小车震荡,轻之会使车减速,重之会卡住底盘架空小车比赛失败,所以小车的稳定性对比赛来说至关重要。要保证小车运行中减少误差,必须有较好的机械结构和较为成熟的程序。经过这一年的实践我们最终选定了单线性CCD进行进行赛道采集,因为双线性CCD增高了小车的重心,在重心较高的情况下,小车在急转弯的时候就会造成车体前轮抖动,造成弯道出弯。单CCD虽然在数据的采集上存在一定的劣势但完全可以通过软件方面来弥补,经过实践以及向其他同学了解到,单ccd可以使车的综合速度可以达到3m/s以上。根据以上系统方案设计,赛车共包括六大模块:MC9S12XS128主控模块、传感器模块、电源模块、电机驱动模块、速度检测模块和辅助调试模块。各模块的作用如下:MC9S12XS128主控模块:将采集光电传感器、光电编码器等传感器的信号,根据控制算法做出控制决策,驱动直流电机和伺服电机完成对智能汽车的控制。传感器模块:线性CCD是智能车的眼睛,用于赛道信息的采集,便于智能汽车的主控模块做出正确的决策;光电对管用于起跑线的检测,控制小车的发车与停车。电源模块:为系统提供稳定的电源供应。电机驱动模块:控制电机进行加减速,舵机进行转弯。速度检测模块:检测智能汽车轮的转速,用于速度的闭环控制。辅助调试模块:拨码开关用于速度的选择和参数的调节。硬件系统框图如下:1.2软件系统总体方案的设计遵照本届竞赛规则规定,智能汽车系统采用恩智浦的 16 位微控制器MC9S12XS128单片机作为核心控制单元用于智能汽车系统的控制。线性CCD采集赛道信息,通过单片机的ad采集,以及软件的数据处理使单片机输出 PWM 波控制电机和舵机。由于今年光电指定车模为C车,所以需要使用软件差速来实现过弯。为了对赛车后轮的差速控制,在智能汽车电机传动轴上安装光电编码器,采集编码器转动时的脉冲信号,经MC9S12XS128捕获后定时进行数字PID闭环控制。此外我们还增加了拨码开关作为输入设备,用于智能车速度的选择和参数的调节。程序系统框图如下:检测拨码开关速度;CCD曝光 采集CCD 图像,提取赛道信息,算出中心点判断赛道情况,停车线,障碍,直道,弯道差速调用,取出左右轮的速度以及速度pid的动态p值速度控制,利用赛道信息结合速度策略,使用PI 控制对小车左右后轮速度控制方向控制,利用所算出的赛道偏差,和赛道元素对舵机进行PD 控制。 系统总周期8ms。1.3车体技术参数改造后的车模基本参数长:310mm(400mm)宽:165mm(250mm)高:320mm(400mm)符合赛方规定参数。本系统传感器总数为7个传感器数量(个)线性ccd1红外对管4编码器2III第二章 智能汽车机械结构调整与优化第二章 智能汽车机械结构调整与优化智能汽车各系统的控制都是在机械结构的基础上实现的,因此在设计整个软件架构和算法之前一定要对整个模型车的机械结构有一个全面清晰的认识,然后建立相应的数学模型,从而再针对具体的设计方案来调整赛车的机械结构,并在实际的调试过程中不断的改进优化和提高结构的稳定性。本章将主要介绍智能汽模型车型车的机械结构和调整方案。2.1 智能汽车车体机械概述此次竞赛选用官方指定的智能车竞赛专用的C模型车,配套的电机为260电机,伺服器为S3010。智能车的控制采用的是前轮转向,后轮驱动方案。智能车的外形。模型车基本参数:尺寸轴距200mm前轮距160mm后轮距160mm车轮直径52mm2.2 车模机械结构的调整与改装车模本身的机械结构是通用结构,并不适合智能车竞赛的要求,因此要对 这些部分进行改装,另外,为了提高车模的运动性能,对一些机械结构还需要 调整,比如车轮前束等。这部分着重介绍舵机改装、底盘等部分的调整和改装。2.2.1 舵机改装为了提高舵机反应速度,在相同转角下,有尽可能大的线行程,因此需要延长舵机臂。另一方面,由于舵机扭矩和转角精度的限制,不能无限制延长舵 机臂,这样就确定了舵机臂的长度,并使用铝合金片加工成形,尺寸为 24mm 38mm。图是舵机安装实物图,四个螺丝将舵机牢固安装在支架上。2.2.2 底盘改装由于赛道特性,底盘改装目标是尽可能低(能保证通过坡道),这样可以最大程度保证智能车行驶的稳定性。因此我们降低了底盘高度。另外,由于赛道整体属于平坦路面,没有较大较多的颠簸,所以我们把后避震拆除,并紧固后桥,后连接件采用3d打印设计。如图:2.2.3 前轮定位 C 型车模前轮可以调整的角度有主销前倾、内倾、前束等,这些角度的调整 根据每个车的机械性能不同而不同调整,我们的智能车由于重心位置在中心偏 后,因此前轮压力较小,转向负担不大,因此为了增加抓地力和稳定性,选择 了主销内倾和负前束的调整。另外,由于车模本身的精度限制,这部分角度的 调整并不是主要的,仅仅是为了避免负面影响以及修正车模本身的不对称和不 平衡问题。图2.2.3所示 A 圈是用于调整主销内倾角的丝杠,B 圈是用于调整前轮 前束角的丝杠。2.2.4 主销内倾,主销后倾主销内倾角是指在横向平面内主销轴线与地面垂直线之间的夹角,它的作用也是使前轮自动回正。角度越大前轮自动回正的作用就越强,但转向时也就 越费力,轮胎磨损增大;反之,角度越小前轮自动回正的作用就越弱。通常汽 车的主销内倾角不大于 8。主销内倾角如图所示。 对于模型车,通过调整前桥的螺杆的长度可以改变主销内倾角的大小,由于过大的内倾角也会增大转向阻力,增加轮胎磨损,所以在调整时可以近似调 整为 03左右,不宜太大。 主销内倾和主销后倾都有使汽车转向自动回正,保持直线行驶的功能。不 同之处是主销内倾的回正与车速无关,主销后倾的回正与车速有关,因此高速时主销后倾的回正作用大,低速时主销内倾的回正作用大。主销后倾角如图所示。2.2.5 前轮前束 所谓前束是指两轮之间的后距离数值与前距离数值之差,也指前轮中心线 与纵向中心线的夹角。前轮前束的作用是保证汽车的行驶性能,减少轮胎的磨 损。前轮在滚动时,其惯性力自然将轮胎向内偏斜,如果前束适当,轮胎滚动 时的偏斜方向就会抵消,轮胎内外侧磨损的现象会减少。像内八字那样前端小 后端大的称为“前束”,反之则称为“后束”或“负前束”。在实际的汽车中, 一般前束为 12mm。 在模型车中,前轮前束是通过调整伺服电机带动的左右横拉杆实现的。主 销在垂直方向的位置确定后,改变左右横拉杆的长度即可以改变前轮前束的大 小。在实际的调整过程中,我们发现较小的前束,约束 2mm 可以减小转向阻力,使模型车转向更为轻便,但实际效果不是十分明显。 虽然模型车的主销后倾角、主销内倾角、车轮外倾角和前束等均可以调整, 但是由于车模加工和制造精度的问题,在通用的规律中还存在着不少的偶然性, 一切是实际调整的效果为准。2.2.6 轮胎磨合本届比赛C车模采用橡胶材料轮胎。因轮胎内部的填充物为海绵,所以较为柔软有较好的抓地性,但是刚买回来的轮胎中间有凸起部分轮胎线,会极大的减小轮胎的抓地性,剪去轮胎中间凸起的部分则可以增大轮胎与地的摩擦力。第三章 硬件控制电路设计第三章 硬件控制电路设计3.1硬件方案设计硬件电路最主要的就是保证系统的可靠性和稳定性。我们做车的同时也栽了一些跟头,吸取了一些教训同时也收获了一定的经验,也就是在这个过程中我们通过自身的实践论证了一些方案同时也确定了最终的方案。我们在电路板设计的过程中考虑了各个模块的电特性以及以及之间的耦合作用,对易受干扰的模块做了电磁屏蔽的处理。其他地方也做了电容滤波,单点接地的处理。3.2电源模块电源模块:5V的供电我们选择LM2940-5,优点是低压差稳压,它的稳压压差小于500mV,保证电池在低电压的情况下仍旧能使单片机正常地工作,同时LM2940的输出电流可以达到1A。我们采用了两块LM2940-5.0供电,一块单独给CCD供电另一块给单片机、传感器以及其他辅助模块供电。我们的舵机采用6.5V的电压,经过对比试验我们选择了LM2596S-ADJ芯片,原理图如下:3.3最小系统板我们采用的核心板是Freesacle公司的mc9s12xs128单片机,使用方便,容易上手。我们用它对传感器反馈的信息进行处理,辅助以算法和PID的调节,以便于小车更乖更好地听话。我们把电路板分成了两部分,一部分是驱动另一部分是电源、最小系统以及传感器辅助模块。需要的话可以把最小系统板画在板子上面。但我们为了节省板子上空间,我们购买的是成品的最小系统板,这样就可以在最小系统板下面再放置一些元器件,当然注意好散热就可以了。3.4驱动板我们采用的MOS管驱动,由于元器件较多以及共地的问题我们把它单独地放在了一块板子上。它为一个由分立元件制作的直流电动机可逆双极型桥式驱动器,其功率元件由四支沟道功率MOSFET管组成,可以提高MOSFET的开关速度,使得PWM控制方式的调制频率可以得到提高,从而减少电枢电流脉动。而且额定功率电流可以轻易达到100A以上,内阻较小,很大程度上提高了电动机的转矩和转速,在使用过程中效果明显。3.5传感器和辅助模块编码器实现电机闭环控制,是电路更加完善信号更加精确。拨码开关:为了不相互干扰工作,可以把电路板上的数字地和模拟地分开,最后都单点接到了电源地,这样可以防止地信号的相互串扰而影响某些敏感元件,数字元件对干扰的容忍度要强于模拟元件,而数字地上的噪声一般比较大所以将它们的地分开就可以降低这种影响了。还有单点接地的位置应该尽量靠近板子电源地的入口(起始位置),这样利用电流总是按最短路径流回的原理可将干扰降到最小。可以在电源输入位置入电容,消除纹波以提高供电的稳定性。第四章 软件算法设计与控制策略第四章 软件算法设计与控制策略4.1 PID 控制4.1.1 PID 控制简介PID(比例(proportion)、积分(integration)、微分(differentiation)控制器作为最早实用化的控制器已有近百年历史,现在仍然是应用最广泛的工业控制器。PID 控制器简单易懂,使用中不需精确的系统模型等先决条件,因而成为应用最为广泛的控制器。PID 控制器由比例单元P、积分单元I和微分单元D组成。其输入e (t)与输出 u (t)的关系为:u(t)=kpe(t)+1/TIe(t)dt+TD*de(t)/dt ,(公式 5-1)式中积分的上下限分别是 0 和 t因此它的传递函数为:G(s)=U(s)/E(s)=kp1+1/(TI*s)+TD*s,(公式 5-2)其中kp为比例系数;TI为积分时间常数;TD为微分时间常数。PID 是一种线性控制器,采用输出量和参考输入的误差及其微分、积分的线性组合来产生控制信号。PID 控制具有控制结构简单,参数个数少而且容易确定,不必求出被控对象的精确性模型就可以整定参数的特点, 在控制系统中应用极为广泛。连续 PID 控制规律如下:Kp-控制器的比例系数Ti-控制器的积分时间,也称积分系数Td-控制器的微分时间,也称微分系数比例部分:比例部分的数学式表示是: Kp*e(t)在模拟 PID 控制系统中,比例环节的作用是对偏差瞬间做出反应。偏差一旦产生,控制器立即产生控制作用,使控制量向偏差减少的方向变化。控制作用的强弱取决于比例系数 Kp,比例系数 Kp 越大,控制作用越强,则过度过程越快,控制过程的静态偏差也就越小;但是 Kp 越大, 也月容易产生振荡,破坏系统的稳定性。故而,比例系数 Kp 选择必须恰当,才能过渡时间少,静差小而又稳定。积分部分:从积分部分的数学表达式可以知道,只要存在偏差,则它的控制作用就不断的增加;只有在偏差e(t)=0 时,它的积分才能使一个常数,控制作用才是一个不会增加的常数。可见,积分部分可以消除系统的偏差。积分环节的调节作用虽然会消除静态偏差,但也会降低系统的响应速度,增加系统的超调量。积分常数 Ti 越大,积分的积累作用越弱,但系统在过渡时不会产生振荡;积分常数 Ti 越小则积分的累积作用越强,但系统在过渡时却有可能产生振荡。所以必须根据具体要求来确定 Ti。微分部分:实际的控制系统除了希望消除静态误差外,还要求加快调节过程。在偏差出现的瞬间,或在偏差变化的瞬间,不但要对偏差量做出立即响应(比例环节的作用),而且要根据偏差的变化趋势预先给出适当的纠正。为了实现这一作用,可在 PI 控制器的基础上加入微分环节,形成 PID 控制器。微分环节的作用使阻止偏差的变化。它是根据偏差的变化趋势(变化速度)进行控制。偏差变化的越快,微分控制器的输出就越大,并能在偏差值变大之前进行修正。微分作用的引入,将有助于减小超调量,克服振荡,使系统趋于稳定。微分部分的作用由微分时间常数Td 决定。Td 越大时,则它抑制偏差变化 e(t)的作用越强;Td 越小时,则它反抗偏差变化的作用越弱。微分部分显然对系统稳定有很大的作用。适当地选择微分常数Td,可以使微分作用达到最优。鉴于PID 控制器具有良好的动态、稳态性能,我们选择对舵机进行PD控制,电机进行PI控制。4.2 舵机位置式 PD 控制舵机控制采用位置式 PID 控制,由于舵机控制的特殊性,没有使用积分控制,只使用了比例和微分控制,具体控制公式如公式 5-3S_error_float=(S_P*Serror_error1) +(S_D*(Serror_error1-Serror_error0); (公式 5-3)其中,S_error_float是最要给舵机的控制信号,Serror_error1为此时车身与中线的偏差,Serror_error1-Serror_error0)为本次偏差与上次偏差之差。在调试过程中我们发现,修改参数P和D的值有着明显的效果。D 参数增大能使舵机提前打角入弯,但是过大的D会出现出弯转向不足的情况,适当的PD参数能够使小车选择更好的路径,更加流畅地过弯。我们通过小车在 90 度弯道时的姿态来调整 PD 参数,根据观察发现,前瞻适当的情况下,当车子出弯不能及时摆正,可以适当增大D参数或者减小P参数,当车子出弯转向不足,可以适当减小D参数或者增加 P参数。4.3 电机增量式 PI 控制电机控制采用增量式 PID 控制,我们只使用了其中的比例和积分控制,没用使用微分控制,具体公式如公式 5-4:Speed_Delta=(Kpv*Encoder_Integral+Kiv*speed_bias);(公式 5-4)其中,Speed_Delta为给电机的控制信号,Encoder_Integral为期望速度与此时的速度的偏差,speed_bias为本次的偏差与上次的偏差之差。整定电机 PID 参数的时候我们会发现,只用比例控制没法达到所给的期望速度,这就是因为电机本身存在静态误差,要用积分消除静态误差,所以电机控制一定要用到积分。在整定电机 PID 的参数时候,以又快又准为目的,小车能够以最快的时间准确的达到期望速度。图为理想的电机pid反应曲线图。4.4 赛道提取中心通过上位机赛道的图像发现,黑边线与白跑道之间会出现明显的跳变沿,通过寻找跳变沿即可知道黑线的位置。因为CCD两边会产生畸变,不能真实反映赛道情况,所以剔除了左右两边各7个点。从上一次的中点开始分别向左右两边进行扫描,判断每一个点与其后2个点之间的差值,以一个固定的值为阈值,为了保险我们用拨码开关设置了两个阈值。当这个差值大于这个阈值时,认为此处为黑线位置,当车体的前瞻足够长时,必须要加入补线程序,用来克服十字弯的丢线和单边丢线。十字弯的识别比较困难,在前期我们测试了很多方案,尤其遇到连续双十字的时候很难通过,后来我们改变思路就基本解决了十字问题,方法是保证入弯车身正,调用补线程序,在进入十字的时候,当丢单边线的时候用补线程序,当全丢线时候就打正,直行。具体算法如下:voidCCD_Primary_Analyze(void)CCD_Primary_Right_Count=CCD_Primary_Middle;while(CCD_Primary_Pixel_0CCD_Primary_Right_Count -CCD_Primary_Pixel_0CCD_Primary_Right_Count+230&CCD_Primary_Right_CountCCD_Primary_Right_Max) CCD_Primary_Right_Count+; CCD_Primary_Left_Count=CCD_Primary_Middle;while(CCD_Primary_Pixel_0CCD_Primary_Left_Count -CCD_Primary_Pixel_0CCD_Primary_Left_Count-2CCD_Primary_Left_Max) CCD_Primary_Left_Count-;/丢右线if(CCD_Primary_Left_Count7)&(CCD_Primary_Right_Count=121)CCD_Primary_Middle=(unsignedchar)(2*CCD_Primary_Left_Count+CCD_Primary_road_wide)/2);CCD_Primary_Correct_Flag=1;if(CCD_Primary_Middle100)/CCD_Primary_Left_Max=54; CCD_Primary_Middle=100;/丢左线elseif(CCD_Primary_Left_Count=7)&(CCD_Primary_Right_Count121) CCD_Primary_Middle=(unsignedchar)(2*CCD_Primary_Right_Count-CCD_Primary_road_wide)/2);CCD_Primary_Correct_Flag=1;if(CCD_Primary_Middle7)&(CCD_Primary_Right_Count35)CCD_Primary_Middle=CCD_Primary_Middle_1;elseCCD_Primary_Middle_1=CCD_Primary_Middle; 4.5 障碍识别由于障碍是黑色的,对于光电车来说,识别障碍通过赛道宽度来识别即可,在障碍区看到的赛道宽边会变得比较窄,识别障碍后,把此时的舵机P值加大,就能够增加舵机应对障碍的打角和反应速度,顺利通过障碍。在确认遇到障碍的时候再进行判断直道恢复P值。程序参考4.6。4.6 速度控制策略小车在全程行驶过程需要中遇到不同的路况需要不同的速度,来保证小车的快速性。基本的速度思想是“直道加速,弯道减速”。我们全程使用了两个速度,一个是直道速度,一个是弯道速度,速度的选择是慢慢测试从低到高测试出来的。具体代码如下:void Speed_Gear_Assignmen() road_error_remmber3=road_error_remmber2; road_error_remmber2=road_error_remmber1; road_error_remmber1=road_error_remmber0; /记录线性ccd的偏差 road_error_remmber0=error_absolute_value(CCD_Primary_Middle,63); if(Stop_line_juide()=1)&(stop_car_5s_flog=1)&(bomatingche=1)/确定起跑线标志位 Speed_Gear_value_flag=1; if(Speed_Gear_value_flag=0) /如果不是起跑线 if(obstacles_judge()=0)/如果不是障碍的话 if(road_error_remmber05) &(road_error_remmber16) &(road_error_remmber27) &(road_error_remmber37) &(error_absolute_value(S_error0,0)=1)|(ting_2=2)Stop_line_flog=1;ting_1=0;ting_2=0;elseting_1=0;ting_2=0;Stop_line_flog=0;return(Stop_line_flog);4.8 双轮差速控制策略在刚开始做智能车的时候找了很多种差速方案,而大多数人使用一般就是根据阿克曼角计算出来的一个公式:但是这个公式并不适合实际行驶,需要大量的数据整合再进行放大或者缩小,所以我们自己创新了一种新的差速方法,就是给定舵机固定的打角,测定左右轮行驶距离的比例,再用到差速中,这种差速非常的稳定。程序如下:void differential_velocity(signed char S_error_xing) static float Differential_Rate; switch(S_error_xing) case(-8):Differential_Rate=0.662;break; case(-7):Differential_Rate=0.696;break; case(-6):Differential_Rate=0.74;break; case(-5):Differential_Rate=0.771;break; case(-4):Differential_Rate=0.824;break;/右轮/左轮 case(-3):Differential_Rate=0.86;break; case(-2):Differential_Rate=0.916;break; case(-1):Differential_Rate=0.96;break; /右 case(0):Differential_Rate=1;break; case(1):Differential_Rate=0.96;break; case(2):Differential_Rate=0.916;break; case(3):Differential_Rate=0.86;break; case(4):Differential_Rate=0.824;break; case(5):Differential_Rate=0.771;break;/左轮/右轮 case(6):Differential_Rate=0.74;break; case(7):Differential_Rate=0.696;break; case(8):Differential_Rate=0.662;break; /左 if(S_error_xing=0) R_Car_Speed_set=Speed_Gear_value; Car_Speed_set=Speed_Gear_value*Differential_Rate; else Car_Speed_set=Speed_Gear_value; R_Car_Speed_set=Speed_Gear_value*Differential_Rate; 第五章 开发工具与调试说明第五章 开发工具与调试说明5.1 开发工具Codewarrior 是 Metrowerks 公司开发的软件集成开发环境(简称 IDE) 。飞思卡尔所有系列的微控制器都可以在codewarrior IDE下进行软件开发5。开发人员可以在不同的操作系统下使用codewarrior IDE来开发自己的软件。这些操作系统包括Windows,Macintosh, Solaris,和Linux.IDE在不同操作系统下的界面完全相同。IDE支持高级语言,比如:C,C+,和Java。另外还支持大多数微控制器的汇编语言。它的开发环境界面统一,IDE支持许多通用的桌面或嵌入式处理器。IDE 的功能可以通过加入各种插件来扩展。现在IDE支持的插件包括:编译器,链接器,预先链接器,后链接器,常用的面板,版本控制以及其他工具。插件可以让CodeWarrior IDE支持不同的语言和处理器。在软件开发过程中,通常需要经过以下几个步骤: 新建:创建新项目,源文件; 编辑:按照一定的规则编辑源代码,注释; 编译:将源代码编译成机器码,同时还会检查语法错误和进行编译优化; 链接:将编译后的独立的模块链接成一个二进制可执行文件; 调试:对软件进行测试并发现错误;在软件开发中,每个过程都会用到不同的工具。如果每个工具都单独存在,这样就会给开发人员带来很多不便。 所以 Metrowerks 公司为开发人员提供了非常方便的集成开发环境。开发人员可以在同一个工作平台上完成以上全部的工作。5.2 调试工具5.2.1 蓝牙无线调试在调试过程中经常需要发送实时数据,与上位机结合能达到非常方便的效果。是调pid的主要工具。5.2.2 上位机在调节 PID 的过程中,采用网上下载的VisualScope,可以实现图形显示。我们用这个上位机调试了舵机pid的参数和电机pid的参数。5.2.3 辅助调试我们在最小系统板上按上了 LED,通过不同的led提示来表示不同的赛道模式,这样可以有效的弥补蓝牙串口在数据传输实时性上的不足。第六章 总结第六章 总结从进入学校的实验室开始用51单片机点亮第一个发光二极管的时候,我们一年之内真的收获了很多,学习到很多。有友情,有知识,更多的是我们的心智更加的成熟了。在做车的过程中,我们遇到了大概几个重要的问题:1.由于我们的条件比较差,教室的灯光太暗,灯光太低,那时候我们用的20ms曝光周期,ad采集都达不到满,灯光太低又太容易反光,前前后后上了几次偏振片,最后还是拆了下来。白天的时候勉强能调车,大概跑到了两米三左右的速度,且不稳定。这个问题导致了我们队伍几次心情低谷期,几乎接近放弃。2.十字弯和线性的ccd的数据处理问题,我们用过大津阈值处理,检测跳变沿等还有很多叫不来名字的数据处理方法。由于用不同采集的方法,二值化或者不二值化的数据输出对过十字都是有区别的,所以十字是极其的不稳定。3.ccd的个数问题,在之前的印象之中,觉得高手都是用2个或3个ccd,而去一味的模仿,导致走了一段弯路。问题是一旦上到2个ccd,车子急转弯的时候就会前轮抖动,离比赛时间近了最后果断放弃两个ccd。4.赛道问题:暑假开始的时候,我们学校实验楼封楼,实验室封了,赛道教室也封了,我们也调不了车,几近绝望,最后终于得到临校同学的帮助虽然我们不得不每天坐公交到邻校调车,但是为了我们学校能在智能车大赛中争得一席之地和对智能车的热爱我们也没有怨言,毕竟老师常教导我们遇到困难不能轻言放弃的对吧。赛翁失马焉知非福,邻校的赛场光线很强,我们的程序完全不能用,不能用就大改程序,最后坚持下来解决了问题,可以稳定到两米六以上了。这样我们稳中有进,渐渐看到了希望。其实虽然说了这么多内在或外在的问题,最主要说做车要有坚定的决心,愈挫愈勇才有机会在比赛中出线。以上的所有技术问题都在上面的技术报告中均已解决。通过这么长时间的努力,在华北赛区比赛中,我们以预赛和决赛都是第十名的成绩顺利进入国赛,还是很欣慰的。同时也看到了其他学校的实力是非常的强。我们做车走了很多弯路,我们这次把所有的核心程序都放在技术报告里面,希望那些没有传承的学校的学弟学妹们少走些弯路,进步更快。最后感谢往届前辈们留下的知识成果,感谢开放实验室所有的成员,感谢老师,感谢中原工学院,感觉所有帮助过我们的人。“倔强小毛驴”获得的荣誉不只是属于我们,它更属于大家。参考文献:1. 卓晴等学做智能车挑战“飞思卡尔”杯,北京航空航天大学出版社2.张阳编著MC9S12XS单片机原理及嵌入式系统开发,电子工业出版社3. MC9S12XS128数据手册4.大连海事大学技术报告5.东北林业大学技术报告6.哈尔滨工业大学技术报告附录附录A:PWM初始化:void PWM_INIT(void) PWMPRCLK=0x04; /总线1/16分频clock A=2 500 000 /clock B=40 000 000 PWMSCLA=16; /clock SA=78 125 PWMSCLB=2; /clock SB=10 000 000 PWMCTL_CON45=1; /级联 PWMCTL_CON67=1; /级联 PWMCTL_CON23=1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2.3 《生物体的结构层次》说课稿-2023-2024学年浙教版七年级上册科学
- 七年级地理上册 第四章 第三节 人类的聚居地 聚落说课稿 (新版)新人教版
- 第14课 《 如何欣赏书法作品-楷书经典鉴赏(选修)》(说课稿)-2024-2025学年人美版初中美术八年级上册
- 人教版八年级地理上册说课稿:2-4 自然灾害
- 2025-2030基因检测技术在儿童智力发育评估中的应用现状与发展趋势
- 2025-2030基于机器视觉的焊缝跟踪系统精准度提升方案研究报告
- 2025-2030基于fNIRS的婴幼儿社会认知检测设备开发与医疗级早教应用场景
- 2025-2030坚果炒货品类延伸策略与消费场景创新实践分析
- 2025-2030国际航空润滑油性能标准与市场需求报告
- 2025-2030啤酒行业粉尘防爆标准升级对生产企业影响评估
- 浙南名校联盟2025-2026学年高三上学期10月联考语文试卷
- 2025中国移动春季校园招聘笔试题库历年考点版附带答案详解
- 2025年机械工程师职称考试题及参考答案
- 护理专业科普
- EHS风险管理监测规范制定
- Unit 2 We are Family.单元测试( 含答案)2025-2026学年人教版(2024)英语七年级上册
- 2025“文化强国杯”全国高校文学知识挑战赛备赛试题库150题(含答案)
- 一科一品护理服务
- 中燃集团工程物资供应商管理制度
- 小学食品安全培训课件
- 项目立项申请表
评论
0/150
提交评论