智能车模块源程序+很具体.docx
《智能车模块源程序+很具体.docx》由会员分享,可在线阅读,更多相关《智能车模块源程序+很具体.docx(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、智能车模块源程序+很具体智能车模块源程序+很具体由于今年组委会光电池和照相机的单独竞争因而,我们选择光电池作为传感器部分。在比赛中,我们以汽车的速度记录了结果。为了使汽车跑得更快、更稳定,传感器的探测距离必须很远,这就需要很高的预见性。随着探测距离的增加,普通红外管的功率越来越小,干扰越来越严重。因而,我们制作了一个大功率管,同时采用了程控脉冲发光的方法,有效地减少了加热,提高了系统的稳定性系统采用7.2伏2000毫安镍镉电池作为系统能源,6伏由稳压电路隔离,5伏分别给舵机和单片机供电DC电机驱动模块接收速度控制信号,控制驱动电机运行,进而控制车速。转向伺服模块控制舵机转向,进而控制智能车转向
2、测速模块实时测量智能车辆的速度,用于系统车速的闭环控制,以准确控制车速。系统充分利用了MC9S12DG128单片机的外围模块。详细模块包括模数转换模块、定时器模块、脉宽调制模块、中断模块、输入输出端口和实时时钟模块等。在调试系统的经过中,使用了组委会提供的代码调试环境CodeWarriorIDE,并使用清华大学的Plastid2软件进行了仿真测试。图1.1系统构造图第三届全国大学生智能汽车大赛3.1转向器部分为了使转向愈加灵敏,对转向器相关部分进行了一些改动首先,我们将转向机臂加长了85毫米。这样,对于一样的转向角值,只需要较小的转向齿轮转向角,进而减少了转向齿轮转动时惯性造成的缺点。其次,我
3、们反向安装转向器,使转向器连杆水平,由于转向器提供的所有力都用于转向。3.2前轮部分为了增加前轮转弯时的稳定性,对前轮的相关部分进行了一些改动首先,改变前后垫片的数量,使前轮主销向后倾斜,使车轮具有更好的自动定位功能其次,改变连杆的长度,使车轮向外倾斜。当车轮转动时,前半部分的重心上移,使汽车转向愈加稳定。第三,通过改变转向机连杆的长度,我们增加了前轮的前束,这也增加了前轮的稳定性。3.3底盘部分为了提高汽车在运行期间的稳定性,对现场的相关部分进行了一些改动。首先,在前轮的相关位置添加衬垫,以降低前轮的重心。其次,改变后轮轮轴上的调整块,提高后轮的重心,使车体向前倾斜一定程度,增加车辆的稳定性
4、。3.4后轮零件首先,更换后轮履带调整块,以增加两个后轮之间的距离这样,汽车转弯时不容易产生侧滑其次,调整后轮的速度差,使汽车转弯更灵敏。4.1电源部分需要调整电池电压以使智能车辆系统正常工作其中,单片机系统和车速传感器电路需要5V电压,光电传感器和途径识别接收电路工作在5V,伺服电机的工作电压范围为4.8V至6V(或由电池直接提供)。DC马达能够直接由7.2V2000mAh毫安时镍镉电池供电。考虑到驱动电机引起的瞬时电压降,采用低电压降的三端调压器是不可避免的。我们使用lm7805和lm7806作为牙齿稳定芯片。经测试,电压纹波小,完全知足要求。电池(7.2v)2000毫安镍镉1第三届全国大
5、学生智能汽车竞赛单片机对管5V调压器电路6V转速表转向器7.2V电机图4.1系统电压调节图图4.2799驱动电路如图4.4所示为了提高驱动能力,降低单片机的热输出,该电路采用了两片MC33886并联的方案。该系统利用脉宽调制控制电机转速,充分利用单片机的脉宽调制模块资源。电机脉宽调制频率设置为8千赫。MC33886芯片工作电压为5-40V,导通电阻为140毫欧,脉宽调制频率小于10KHz,具有短路保护、欠压保护、过热保护等功能。电机驱动芯片安装在制造的电机驱动印刷电路板上。在设计印刷电路板时,考虑到芯片散热的问题,在芯片的腹部设计了一个方形的通孔。实际运行结果表明,芯片散热均匀,设计合理。为了
6、防止电机忽然停止时的电磁干扰,在电机两端焊接了一个0.1F的滤波电容。r15res21kpwm3pwM5VCC31913182019101112u3in1in2D2D1dncagndpgndpgndpgndmc33886out1out1out2out2out2dncv+V+V+ccpfs67141584516172c12cap47PFR4res21.3CP1421header2r10+7.2v13SW-spdts22res21kr5res21kds2led2u533在程序中,我们直接将脉宽调制值转换为绝对速度,单位为米/秒,这使得智能车的速度愈加直观,易于调试。4.3测速电路考虑到成本,我们采
7、用红外灯管和黑白码盘作为测速模块的硬件组件码盘是一个32单元的黑白盘,如下列图所示:图4.5码盘的红外传感器安装在码盘的前面。固然精度远低于编码器,但成本低,易于制造。假如智能车速度快,它能够考虑减少码盘上黑白条纹的数量。当圆盘随齿轮转动时,光电池接收的反射光强度交替变化,进而获得一系列高低电脉冲。设置9S12的电容层析成像模块,同时收集光电池输出电脉冲的4上升沿和下降沿。通过在某个时间段内累计脉冲数或记录相邻脉冲之间的间隔时间,能够获得与速度相等的参数值。测速电路采用自行研制的红外反射式光电测速传感器。测速电路由红外反射光电对管RPR220、自制编码盘、比拟电路等组成速度测量电路图见2.8红
8、外反射光电对管的光电晶体管信号经比拟器处理后输入单片机的计数模块,利用单片机的输入捕捉功能处理智能车的速度信息自制的编码盘有24个黑色条纹,当电机旋转一次时会产生24个输入捕获中断。微控制器记录两次中断之间的时间间隔t对应于智能车辆的两个中断之间的距离S为16.5/24厘米,即0.6875厘米,其中16.5厘米是智能能源车辆7的后轮的测量周长智能车实时速度V(厘米/秒)的计算公式如下:伏?圣?16.5/24T?0.6875TCM/s30033krpr220328a14lm3585.1kioc0VCC10kVCC5.1k图4.6速度测量电路4.4红外线管对准检测电路由于我们使用高功率管对准,红外
9、线管对准电路是整个电路中要求最高的,确保管对准的正常运行并不重要,但也要考虑能耗和加热经过测试,我们发现当单对管子被提供100毫安到170毫安的电流时,它能够确保距离为20至30厘米此时,每对管道的管道压降为1.2至1.5伏为了进一步增加发光量,我们采用了双发光管的方法,即一个接收管对应两个发光管。为了降低整体能耗我们有同一对串联的发射管和14对并联的发射管。同时,irf540用于开关控制。控制管的脉冲发光开关频率为200赫兹这不仅保证了对大型前瞻性检测的需要,还降低了整体能耗和对电源的影响5第三届全国大学生智能汽车大赛图4.7脉冲发光二极管先串联后并联的电路图图4.8对面图4.9对面4年5月
10、,dip开关电路在智能车比赛开场后无法修改智能车的硬件和软件。在确保有效和可靠的硬件的同时,软件可能无法适应新的站点。因而,有必要设计倾角开关来设置智能车的相关参数。DIP开关电路如下列图所示:6R1表头9123456789VCCSW7SW6SW54SW34SW2SW1SW012345678SW-DIP8S161151413121109图4.9dip开关这是一个八段dip开关。我们把它分成上下两部分。显然,每个部分有16个状态。前四个改变转向器参数,后四个改变DC电机参数。这对适应新网站非常有好处。5.1途径搜索算法对于该控制系统,采用了14对光电管对的方案,在车身头部10厘米处排成一排编号为
11、6和7的光伏管位于正中心位置。使用14个传感器的道路识别传感器对白色的反射率大于对黑色的反射率。单芯片模数转换器的读入值相应较大。传感器信号在程序中被处理,以判定传感器能否检测到黑色引导线将白色和黑色道路的单个传感器的ADC值之间的差分成两个相等的部分,并且每次处理实时传感器信号时,判定采样ADC值和黑色道路的ADC值之间的差属于两个部分中的哪个部分假如接近黑色部分,则确定传感器检测到黑线,并且对应于传感器的变量被设置为确定值1;假如接近白色部分,则确定传感器检测到白线,并且对应于传感器的变量被设置为确定值1;为了提高判定的准确性,采用中值滤波方法消除采样模数转换器值时的瞬时干扰。在检测到途径
12、之后,测量的途径值被临时存储,然后途径信息被传输到转向机和马达控制部分,以选择给定的适宜的旋转角度和速度。7第三届全国大学生智能汽车竞赛5.2舵机、电机控制智能汽车舵机和电机采用经典的PID控制方法然而,由于转向机和马达的不同性能要求,已经分别进行了不同的修改。PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成输入e(t)和输出u(t)之间的关系是。积分的上下限分别为0和t,因而其传递函数为:g(s)=u(s)/e(s)=kp(1+1/(ti*s)+TD*s),其中KP为比例系数;TI是积分时间常数;TD是用于控制电流的差分时间常数比率KP,误差值乘以负常数p(代表比率),然后加
13、到预定值只要当控制器的输出与系统误差成正比时,p才成立。KP能够快速跟踪变化量。及时产生相关监管效果然而,KP有差动调节,不能消除静态误差。集成了KI来控制过去。误差值是一段时间内误差的总和,然后乘以负常数I,然后加到预定值上我从过去的平均误差值中找出系统输出结果和预定值之间的平均误差简单的比例系统在一个预定值附近来回振荡和变化,由于该系统不能消除多余的校正。通过添加一个负的平均误差比值,平均系统误差值将总是减小。因而,最终这个PID回路系统将被设置在预定值差分KD用于控制将来。计算误差的一阶导数,乘以负常数D,最后加到预定值上。对这种衍生物的控制将对系统的变化作出反响。导数结果越大,控制系统
14、对输出结果的响应越快。这个D参数也是为什么PID是一个可预测的控制器。d参数非常有助于减少控制器的短期变化。在第三届全国大学生智能汽车大赛中,一些速度为8、速度为的实际系统可能不需要D参数舵机PID由于舵机是一个大延时的执行器,PID控制中不能增加积分环节否则,汽车会振动。所以这辆车是由警察控制的同时,增加了一阶惯性环节,构成不完全微分,给汽车一个提早调整的时机。在的实际使用中,为了减少计算时间,将位置式PID转换成增量式PID公式:电机PID控制小车的运行经过,不同的速度值需要与不同的跑道相匹配,所以电机的PID是一个给定值不断变化的PID汽车的目的速度(目的速度)如下所示:1“汽车在直线轨
15、道上,目的速度的最大值为200。2汽车在大弯道上,物体速度为1603汽车是在小曲线或S形曲线上。物体速度为1204英寸,汽车冲出跑道,物体速度为705汽车从直道进入弯道,物体速度逐步降低99第三届全国大学生智能车大赛6“汽车从弯道进入直道,Object_Speed逐步提高在实验中发现,PID的超调主要在第一个波形中起作用,即当单速从很大到很小时,或者当单速从低速忽然加到高速时,会有很大的超调。然而,这种过冲不是有害的,由于当速度要求忽然改变时,通常是汽车从直道进入弯道或者从弯道进入直道的经过。这个经过通常需要非常快的加速和减速。由于汽车的惯性,常规的PID调节难以知足要求。这时,使用大的过冲能
16、够使汽车有一个加速或制动的经过,以更好地到达所需的速度。6.1Codewarrior开发环境在整个开发和调试经过中,使用了Metrowerks专门为MC9S12系列提供的一整套开发工具(FreescaleCodewarriorIDE4.6)。这是一套用C语言编程的集成开发环境智能车辆定位系统的软件设计部分就是在这个开发环境中完成的。Codewarrior是一款软件工具,专门为Metrowerks公司提供的飞思卡尔的所有微控制器和数字信号处理器嵌入式应用开发。这些包括集成开发环境、处理器专家、全芯片模拟、可视化参数显示工具、项目工程管理、穿插编译器、汇编器、链接器和调试器。CodeWarrOsi
17、de能够自动检查您的代码能否有明显的错误。它通过集成的调试器和编辑器扫描您的代码,以发现并减少明显的错误,然后编译并链接程序,以便计算机能够理解并执行您的程序。每个应用程序都要经过编码、编译、编辑、链接和调试的经过,使用的开发工具有CodeWorrior。MetrowerksCodewarriorIDE中的mc9s12dg128.h文件为对应于所有寄存器的存储映射地址定义了宏。开发人员能够在软件开发经过中直接调用这些宏。6.2软件模拟以便更好地定量分析影响汽车行驶的各种因素,并最大限度地节约时间和成本10第三届全国大学生智能汽车竞赛我们采用了软件仿真和实际调试相结合的方法。模拟软件使用清华大学
18、的PLAST2通过仿真,我们发现:1,汽车传感器的检测距离对车速有决定性的影响。因而,传感器应尽可能探测。然而,传感器的检测距离不能超过最小转弯半径。否则会有盲点。2,适当增加转向器的灵敏度能够使转向愈加灵敏。因而,在的实际调试中,我们加长了舵机力臂。在6.2和的实际调试经过中,我们发现汽车在直路上会左右摇摆。通过软件设置死区或其他处理方法,效果不明显。最后,我们发现方向盘和汽车前轮之间的间隙是罪魁祸首。通过将前轮设置成内八角形,这个问题得到了完美的解决。在的调试经过中,我们增加了液晶显示器和蜂鸣器。比赛期间不需要这些辅助设备来减轻汽车的重量。但在调试经过中,通过这些设备,我们能够及时了解汽车
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 车模 源程序 具体
限制150内