ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:27.17KB ,
资源ID:6984280      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6984280.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(智能车模块源程序+很详细.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

智能车模块源程序+很详细.docx

1、智能车模块源程序+很详细智能车模块源程序+很详细由于今年组委会光电池和照相机的单独竞争因此,我们选择光电池作为传感器部分。在比赛中,我们以汽车的速度记录了结果。为了使汽车跑得更快、更稳定,传感器的探测距离必须很远,这就需要很高的预见性。随着探测距离的增加,普通红外管的功率越来越小,干扰越来越严重。因此,我们制作了一个大功率管,同时采用了程控脉冲发光的方法,有效地减少了加热,提高了系统的稳定性 系统采用7.2伏2000毫安镍镉电池作为系统能源,6伏由稳压电路隔离,5伏分别给舵机和单片机供电 DC电机驱动模块接收速度控制信号,控制驱动电机运行,从而控制车速。转向伺服模块控制舵机转向,从而控制智能车

2、转向测速模块实时测量智能车辆的速度,用于系统车速的闭环控制,以精确控制车速。 系统充分利用了MC9S12DG128单片机的外围模块。具体模块包括模数转换模块、定时器模块、脉宽调制模块、中断模块、输入输出端口和实时时钟模块等。在调试 系统的过程中,使用了组委会提供的代码调试环境CodeWarrior IDE,并使用清华大学的Plastid2软件进行了仿真测试。 图1.1系统结构图 第三届全国大学生智能汽车大赛 3.1转向器部分为了使转向更加灵活,对转向器相关部分进行了一些改动首先,我们将转向机臂加长了85毫米。这样,对于相同的转向角值,只需要较小的转向齿轮转向角,从而减少了转向齿轮转动时惯性造成

3、的缺点。其次,我们反向安装转向器,使转向器连杆水平,因为转向器提供的所有力都用于转向。 3.2前轮部分 为了增加前轮转弯时的稳定性,对前轮的相关部分进行了一些改动首先,改变前后垫片的数量,使前轮主销向后倾斜,使车轮具有更好的自动定位功能其次,改变连杆的长度,使车轮向外倾斜。当车轮转动时,前半部分的重心上移,使汽车转向更加稳定。第三,通过改变转向机连杆的长度,我们增加了前轮的前束,这也增加了前轮的稳定性。 3.3底盘部分 为了提高汽车在运行期间的稳定性,对现场的相关部分进行了一些改动。首先,在前轮的相关位置添加衬垫,以降低前轮的重心。其次,改变后轮轮轴上的调整块,提高后轮的重心,使车体向前倾斜一

4、定程度,增加车辆的稳定性。 3.4后轮零件 首先,更换后轮履带调整块,以增加两个后轮之间的距离这样,汽车转弯时不容易产生侧滑其次,调整后轮的速度差,使汽车转弯更灵活。 4.1电源部分 需要调整电池电压以使智能车辆系统正常工作其中,单片机系统和车速传感器电路需要5V电压,光电传感器和路径识别接收电路工作在5V,伺服电机的工作电压范围为4.8V至6V(或由电池直接提供)。DC马达可以直接由7.2V 2000mAh毫安时镍镉电池供电。考虑到驱动电机引起的瞬时电压降,采用低电压降的三端调压器是不可避免的。我们使用lm7805和lm7806作为牙齿稳定芯片。经测试,电压纹波小,完全满足要求。 电池(7.

5、2v)2000毫安镍镉1 第三届全国大学生智能汽车竞赛 单片机对管5V调压器电路6V转速表转向器 7.2V电机 图4.1系统电压调节图 图4.2 799驱动电路如图4.4所示为了提高驱动能力,降低单片机的热输出,该电路采用了两片MC33886并联的方案。该系统利用脉宽调制控制电机转速,充分利用单片机的脉宽调制模块资源。电机脉宽调制频率设置为8千赫。 MC33886芯片工作电压为5-40V,导通电阻为140毫欧,脉宽调制频率小于10KHz,具有短路保护、欠压保护、过热保护等功能。 电机驱动芯片安装在制造的电机驱动印刷电路板上。在设计印刷电路板时,考虑到芯片散热的问题,在芯片的腹部设计了一个方形的

6、通孔。实际运行结果表明,芯片散热均匀,设计合理。为了防止电机突然停止时的电磁干扰,在电机两端焊接了一个0.1F的滤波电容。r15 res21k pw m3pw M5 VCC 31913182019101112 u 3 in1 in2 D2 D1 dncagndpgndpgndpgndmc 33886 out 1 out 1 out 2 out 2 out 2 dncv+V+V+ccpfs 67141584516172 c12 cap 47 PFR 4 res21.3 CP 1421 hea der 2r 10+7.2v 13 SW-spdts 22 res21 kr5 res21k ds2 l

7、ed 2u 533在程序中,我们直接将脉宽调制值转换为绝对速度,单位为米/秒,这使得智能车的速度更加直观,易于调试。 4.3测速电路 考虑到成本,我们采用红外灯管和黑白码盘作为测速模块的硬件组件码盘是一个32单元的黑白盘,如下图所示: 图4.5码盘的 红外传感器安装在码盘的前面。虽然精度远低于编码器,但成本低,易于制造。如果智能车速度快,它可以考虑减少码盘上黑白条纹的数量。 当圆盘随齿轮转动时,光电池接收的反射光强度交替变化,从而获得一系列高低电脉冲。设置9S12的电容层析成像模块,同时采集光电池输出电脉冲的 4 上升沿和下降沿。通过在某个时间段内累计脉冲数或记录相邻脉冲之间的间隔时间,可以获

8、得与速度相等的参数值。 测速电路采用自行研制的红外反射式光电测速传感器。测速电路由红外反射光电对管RPR220、自制编码盘、比较电路等组成 速度测量电路图见2.8红外反射光电对管的光电晶体管信号经比较器处理后输入单片机的计数模块,利用单片机的输入捕捉功能处理智能车的速度信息自制的编码盘有24个黑色条纹,当电机旋转一次时会产生24个输入捕获中断。 微控制器记录两次中断之间的时间间隔t对应于智能车辆的两个中断之间的距离S为16.5/24厘米,即0.6875厘米,其中16.5厘米是智能 能源车辆7的后轮的测量周长智能车实时速度V(厘米/秒)的计算公式如下:伏?圣?16.5/24T?0.6875 TC

9、M/s 30033 krpr 220328 a14 lm 3585.1 kioc 0 VCC 10k VCC 5.1k图4.6速度测量电路 4.4红外线管对准检测电路由于我们使用高功率管对准,红外线管对准电路是整个电路中要求最高的,确保管对准的正常运行并不重要,但也要考虑能耗和加热经过测试,我们发现当单对管子被提供100毫安到170毫安的电流时,它可以确保距离为20至30厘米 此时,每对管道的管道压降为1.2至1.5伏为了进一步增加发光量,我们采用了双发光管的方法,即一个接收管对应两个发光管。为了降低整体能耗我们有同一对串联的发射管和14对并联的发射管。同时,irf540用于开关控制。控制管的

10、脉冲发光开关频率为200赫兹这不仅保证了对大型前瞻性检测的需要,还降低了整体能耗和对电源的影响 5 第三届全国大学生智能汽车大赛 图4.7脉冲发光二极管先串联后并联的电路图 图4.8对面 图4.9对面 4年5月,dip开关电路在智能车比赛开始后无法修改智能车的硬件和软件。在确保有效和可靠的硬件的同时,软件可能无法适应新的站点。因此,有必要设计倾角开关来设置智能车的相关参数。DIP开关电路如下图所示: 6 R1表头9123456789 VCCSW 7SW 6SW 54SW 34SW 2SW 1SW 012345678 SW-DIP 8S 161151413121109图4.9 dip开关 这是一

11、个八段dip开关。我们把它分成上下两部分。显然,每个部分有16个状态。前四个改变转向器参数,后四个改变DC电机参数。这对适应新网站非常有好处。 5.1路径搜索算法 对于该控制系统,采用了14对光电管对的方案,在车身头部10厘米处排成一排编号为6和7的光伏管位于正中心位置。使用14个传感器的道路识别传感器对白色的反射率大于对黑色的反射率。单芯片模数转换器的读入值相应较大。传感器信号在程序中被处理,以判断传感器是否检测到黑色引导线 将白色和黑色道路的单个传感器的ADC值之间的差分成两个相等的部分,并且每次处理实时传感器信号时,判断采样ADC值和黑色道路的ADC值之间的差属于两个部分中的哪个部分如果

12、接近黑色部分,则确定传感器检测到黑线,并且对应于传感器的变量被设置为确定值1;如果接近白色部分,则确定传感器检测到白线,并且对应于传感器的变量被设置为确定值1;为了提高判断的准确性,采用中值滤波方法消除采样模数转换器值时的瞬时干扰。在检测到 路径之后,测量的路径值被临时存储,然后路径信息被传输到转向机和马达控制部分,以选择给定的合适的旋转角度和速度。 7 第三届全国大学生智能汽车竞赛 5.2舵机、电机控制 智能汽车舵机和电机采用经典的PID控制方法然而,由于转向机和马达的不同性能要求,已经分别进行了不同的修改。 PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成输入e (t)和输

13、出u (t)之间的关系是 。积分的上下限分别为0和t ,因此其传递函数为:g(s)= u(s)/e(s)= kp(1+1/(ti * s)+TD * s),其中KP为比例系数;TI是积分时间常数;TD是用于控制电流的差分时间常数 比率KP,误差值乘以负常数p(代表比率),然后加到预定值只有当控制器的输出与系统误差成正比时,p才成立。KP可以快速跟踪变化量。及时产生相关监管效果然而,KP有差动调节,不能消除静态误差。 集成了KI来控制过去。误差值是一段时间内误差的总和,然后乘以负常数I,然后加到预定值上我从过去的平均误差值中找出系统输出结果和预定值之间的平均误差简单的比例系统在一个预定值附近来回

14、振荡和变化,因为该系统不能消除多余的校正。通过添加一个负的平均误差比值,平均系统误差值将总是减小。因此,最终这个PID回路系统将被设置在预定值 差分KD用于控制未来。计算误差的一阶导数,乘以负常数D,最后加到预定值上。对这种衍生物的控制将对系统的变化作出反应。导数结果越大,控制系统对输出结果的响应越快。这个D参数也是为什么PID是一个可预测的控制器。d参数非常有助于减少控制器的短期变化。在第三届全国大学生智能汽车大赛中,一些速度为 8 、速度为 的实际系统可能不需要D参数 舵机PID 由于舵机是一个大延时的执行器,PID控制中不能增加积分环节否则,汽车会振动。所以这辆车是由警察控制的同时,增加

15、了一阶惯性环节,形成不完全微分,给汽车一个提前调整的机会。在 的实际使用中,为了减少计算时间,将位置式PID转换成增量式PID公式: 电机PID控制 小车的运行过程,不同的速度值需要与不同的跑道相匹配,所以电机的PID是一个给定值不断变化的PID汽车的目标速度(目标速度)如下所示:1“汽车在直线轨道上,目标速度的最大值为200。”2”汽车在大弯道上,物体速度为160 3”汽车是在小曲线或S形曲线上。物体速度为120 4英寸,汽车冲出跑道,物体速度为70 5”汽车从直道进入弯道,物体速度逐渐降低9 9 第三届全国大学生智能车大赛 6 “汽车从弯道进入直道,Object_Speed逐渐提高 在实验

16、中发现,PID的超调主要在第一个波形中起作用,即当单速从很大到很小时,或者当单速从低速突然加到高速时,会有很大的超调。然而,这种过冲不是有害的,因为当速度要求突然改变时,通常是汽车从直道进入弯道或者从弯道进入直道的过程。这个过程通常需要非常快的加速和减速。由于汽车的惯性,常规的PID调节难以满足要求。这时,使用大的过冲可以使汽车有一个加速或制动的过程,以更好地达到所需的速度。 6.1 Codewarrior开发环境 在整个开发和调试过程中,使用了Metrowerks专门为MC9S12系列提供的一整套开发工具(Freescale Codewarrior IDE 4.6)。这是一套用C语言编程的集

17、成开发环境智能车辆定位系统的软件设计部分就是在这个开发环境中完成的。 Codewarrior是一款软件工具,专门为Metrowerks公司提供的飞思卡尔的所有微控制器和数字信号处理器嵌入式应用开发。这些包括集成开发环境、处理器专家、全芯片模拟、可视化参数显示工具、项目工程管理、交叉编译器、汇编器、链接器和调试器。 CodeWarrOside可以自动检查您的代码是否有明显的错误。它通过集成的调试器和编辑器扫描您的代码,以发现并减少明显的错误,然后编译并链接程序,以便计算机能够理解并执行您的程序。每个应用程序都要经过编码、编译、编辑、链接和调试的过程,使用的开发工具有CodeWorrior。Met

18、rowerks Codewarrior IDE中的mc9s12dg128.h文件为对应于所有寄存器的存储映射地址定义了宏。开发人员可以在软件开发过程中直接调用这些宏。 6.2软件模拟 以便更好地定量分析影响汽车行驶的各种因素,并最大限度地节约时间和成本 10 第三届全国大学生智能汽车竞赛 我们采用了软件仿真和实际调试相结合的方法。模拟软件使用清华大学的PLAST2通过仿真,我们发现: 1,汽车传感器的检测距离对车速有决定性的影响。因此,传感器 应尽可能探测。然而,传感器的检测距离不能超过最小转弯半径。否则会有盲点。 2,适当增加转向器的灵敏度可以使转向更加灵活。因此,在 的实际调试中,我们加长

19、了舵机力臂。在 6.2和 的实际调试过程中,我们发现汽车在直路上会左右摇晃。通过软件设置死区或其他处理方法,效果不明显。最后,我们发现方向盘和汽车前轮之间的间隙是罪魁祸首。通过将前轮设置成内八角形,这个问题得到了完美的解决。在 的调试过程中,我们增加了液晶显示器和蜂鸣器。比赛期间不需要这些辅助设备来减轻汽车的重量。但在调试过程中,通过这些设备,我们可以及时了解汽车的运行情况,达到事半功倍的效果。 11 表7.1第三届全国大学生智能车竞赛模型车技术参数统计表 项目参数路径检测方法(竞赛题目组)光电组模型几何尺寸(长、宽、 高度(mm)车型轴距/轨道距离(mm)车型平均电流(匀速)(毫安)电路总电

20、容(微加工)传感器类型和数量385*220*60 200/150 200 430红外线管15新增加的伺服电机0轨道信息检测空间精度(mm) 9轨道信息检测频率(次/秒) 200主要集成电路类型/数量9s12微控制器最小系统/1 12 第三届全国大学生智能汽车竞赛 33886电机驱动电路/4速度检测电路/1模块重量(带电池)(kg) 0.9参考 1黄凯生,金华民,蒋南南,韩国智能模型车技术方案分析,北京:清华大学汽车安全与节能国家重点实验室,2004.3 256 北京:清华大学出版社,2004.2 3)LM 2940数据手册,2000年7月,国家半导体公司4)LM 7806数据手册国家半导体公司

21、5)RPR 220数据手册,罗门 6)半导体技术数据手册MC 33887 2002年8月摩托罗拉公司7)大型赛车模具装配手册 8 CodeWarrior IDE 3.1帮助数据手册 2002年8月摩托罗拉公司13第三届全国大学生智能汽车大赛1312科16 b8 v1数据表,2002年7月摩托罗拉公司141516 程序 电机PID控制程序259 typedef无符号字符INT8U。typedef带符号char INT8Stypedef无符号int INT16Utypedef带符号int INT16Stypedef无符号长INT32U。typedef带符号长INT32Stypedef浮点FP32t

22、ypedef双FP6414 /无符号8位数/有符号8位数/无符号16位数/有符号16位数/无符号32位数/有符号32位数/单精度浮点数/双精度浮点数 # define MAX _ 32(有符号长)0x7fffffl # define MIN _ 32(有符号长)0x 8000000001 # define有符号整数比例。有符号int IntegralGain带符号int IntegralGainScale有符号的int衍生词。带符号的int派生类。带符号int PositivePIDLimit带符号整数负数极限;有符号int IntegralPortionK _ 1;带符号int InputE

23、rrok _ 1; sCaiXinBoPIDsCaiXinBoPID SpdPID extern signed int CaixinBopidController(signed int DesiredValue,signed int MeasuredValue,ScaixinBopid * pParams);静态签名长L_sub(寄存器签名长src_dst,寄存器签名长src2) 15第三届全国大学生智能汽车竞赛 静态签名长L_deposit_l(寄存器签名长ssrc) 静态签名int extract_l(寄存器签名长lsrc) 静态签名长L_mult return(签名长)(ssrc)。 r

24、eturn(签名int)lsrc。注册签名长laccumlaccum = sinp1laccum*=sinp2。返回laccum return (src_dst+src2)。 第三届全国大学生智能车大赛符号整数积分控制器(符号整数期望值,符号整数测量值,ScaixinOpid * PParams) 符号长比例比例比例比例,积分比例,积分输出;签名的int输入恐怖;必须设置 /*-*/*饱和模式*/ /*输入恐怖= sub(所需值,测量值);*/ /*输入误差*/ /*-*/*输入误差计算-16位范围,有和无饱和模式*/ PidOutput = L _ sub(L _ deposit _ L(D

25、esiredValue),L _ deposit _ L(MeasuredValue);/*输入错误-32位范围*/ 如果(PIDoutput MAX_16) /*输入错误大于0x 00007 fff = 32767-32位范围*/ 输入错误= MAX _ 16/*输入误差=最大值。正16位有符号值*/else if(PidOutput InputError = MIN _ 16;/*输入误差=最小值。负16位有符号值*/ else 输入恐怖=提取_ l(PidOutput);/*输入误差-16位范围*/ /*-*/17 第三届全国大学生智能汽车竞赛/*比例计算*/比例比例= l _ mult

26、 (p参数-比例增益),输入误差)(p参数-比例代数+1); /*-*/ /*积分部分计算*/积分部分=L_mult(pParams-IntegralGain),输入恐怖)(pParams- IntegralGainScale+1); /*步骤k中的积分部分+步骤k-1中的积分部分*/积分部分=L_add(积分部分,L _存款_l(pParams-积分部分k _ 1); /*整数部分限制*/ if(IntegralPortion)(pParams- positivepidLimit) (pParams- IntegralPortionK _ 1)=(pParams- positivepidLi

27、mit);else if(integralportonnegativePidLimit) pParams- IntegralPortionK _ 1 = pParams- negatepidelimit;else pParams- IntegralPortionK _ 1 = extract _ l(IntegralPortion); /*-*/*导数部分计算*/ PidOutput = L _ sub(L _ deposit _ L(输入恐怖),L_deposit_l(pParams-输入恐怖_ 1);/* e (k)-e (k-1)/* e(k-1) = e(k) */如果(PidOutp

28、ut MAX _ 16)/*e(k)-e(k-1)大于0x 00007 fff = 32767-32位范围*/ InputError = MAX _ 16;/* e(k) - e(k-1) =最大。正16位有符号值- 16位范围*/else if(PidOutputDeriveGain),InputError) (pParams- DeriveGaInScale+1); /*-*/*控制器输出计算*/ PidOutput = L _ add(PidOutput,比例分配比例);/*导数部分+比例部分*/ PidOutput = L _ add(PidOutput, L _ deposit _

29、L(PParams- IntegralportionK _ 1);/* +积分部分=控制器输出*/ /*控制器输出限制*/ if(PidOutput PParams- positivePidLimit)PidOutput = PParams- positivePidLimit;ELSE IF(PidOutDownePideLimit)193届全国大学生智能车竞赛PID输出=参数-负极性EpidLimit;, 初始值void _ init (void) /*设置rti中断频率*/*调整为1毫秒(1.024 ms ), 16 MhZ振荡器*/ RTIL = 0x1f;/5 * 2 16: 48.8

30、赫兹/0x1f/setrtiprescaler:晶振16384分频;(低四位+1) * (2(高三位+9)CRGINT = 0x 80;/使能RTI中断;/低四位:1-7,不能为0,否则分频器不起作用 空隙集_锁相环(空隙) CLKSEL = 0x 00;PLLCTL=0xe1。 0;/转换队列长度8,非先进先出存储模式,ATD0CTL4 = 0x85/8bus_clk/(2*(5+1) 位精度,AD 时钟为 ATD0CTL 5 = 0x 90;/右对齐,无符号数,单转换队列模式,第1通道开始,6通道;多通道8通道, ATD1CTL2=0xc0,从通道0开始;/ADPU,快速标志清除 ATD1

31、CTL 3 = 0x 30;/序列长度:6,非fifo模式,ATD1CTL4 = 0x85/8时钟:bus _ clk/(2 *(5+1) bit decision,ATD ATD 0CTL 5 = 0x 90;/右对齐,无符号数,单转换队列模式,第1通道开始,6通道;多通道8路,从通道0开始, /*ATD初始化程序*/ Vortuservio _ init(Void)/转向机16位脉宽调制控制 PWME _ PWME1 = 0;/禁用PWM1伺服PWMPRCLK | = 0x03/clka:除以8 PWMCLK|=0x00。/这是默认值/通道1使用时钟源/24兆赫兹/8 = 3兆脉宽调制POL _ PPOL1 = 1/第一高电平 PWM

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1