飞思卡尔智能车竞赛光电平衡组技术报告.doc

上传人:本田雅阁 文档编号:2045078 上传时间:2019-02-08 格式:DOC 页数:43 大小:1.36MB
返回 下载 相关 举报
飞思卡尔智能车竞赛光电平衡组技术报告.doc_第1页
第1页 / 共43页
飞思卡尔智能车竞赛光电平衡组技术报告.doc_第2页
第2页 / 共43页
飞思卡尔智能车竞赛光电平衡组技术报告.doc_第3页
第3页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《飞思卡尔智能车竞赛光电平衡组技术报告.doc》由会员分享,可在线阅读,更多相关《飞思卡尔智能车竞赛光电平衡组技术报告.doc(43页珍藏版)》请在三一文库上搜索。

1、1 第八届“飞思卡尔”杯全国大学生 智能汽车竞赛 技技 术术 报报 告告 2 关于技术报告和研究论文使用授权的说明关于技术报告和研究论文使用授权的说明 本人完全了解第八届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、 使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组 委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、 技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会 出版论文集中。 参赛队员签名: 带队老师签名: 日 期: 3 摘要摘要 本文介绍了常熟理工学院物电电磁一队电磁车的成果。智能车的硬件平 台采用带MC9S12XS128 处

2、理器,软件平台为CodeWarrior IDE 开发环境,车模 采用大赛组委会统一提供的A型车模。 文中介绍了智能车机械结构调整,传感器电路设计,舵机、电机控制算 法以及起跑线的检测等。车模以MC9S12XS128单片机为控制核心,以安装在车 体前的工字电感作为循迹传感器,采用干簧管检测起跑线,以欧姆龙编码器检 测速度信息。车模系统的简单工作原理是MC9S12XS128单片机通过AD口采集电 感检测的拟量,并通过算法处理,然后返回值用于舵机控制,根据编码器返回 值进行电机的闭环控制。通过串口,借用蓝牙等工具进行舵机PD参数,电机 PID的调节,以及整定传感器参数的整合处理。 关键字: 智能车、

3、电机 PID 控制、舵机 PD 控制、电磁寻线 4 目录目录 第一章 总体方案设计-6 第二章 智能车机械结构调整与优化-9 2.1主销内倾 -9 2.2主销后倾-10 2.3 外倾角 -11 2.4车轮安装示意图如下:-12 2.5 舵机的安装-12 2.6舵机安装示意图如下:-13 2.7 小结-13 第三章第三章 电路设计说明-14 3.1 电源模块-14 3.2 传感器模块-15 3.3 电机模块 -15 3.4 舵机模块 -16 3.5 最小系统板设计 -16 3.6 系统主板设计 -17 3.7 小结 -18 第四章第四章 智能车控制软件设计说明 -19 4.1 软件设计总体框架-

4、19 4.2 电机 PID 控制 -20 4.3 舵机的控制-23 4.4 传感器数据的处理-24 4.5 小结-24 第 5 章 开发工具、制作、安装、调试过程说明 -25 5.1 软件编译环境 -25 5.2显示模块-25 5.3 蓝牙调试模块 -26 5.4 上位机调试 -26 5.5 本章小结 -27 模型车的主要技术参数说明-28 结论-29 参考文献-31 附录 A:程序源代码-32 5 引言 智能车辆是一个集环境感知、规划决策、多等级辅助驾驶等功能于一体的 综合系统,它集中运用了计算机、现代传感、信息融合、通讯、人工智能及自 动控制等技术,是典型的高新技术综合体。目前对智能车辆的

5、研究主要致力于 提高汽车的安全性、舒适性,以及提供优良的人车交互界面。近年来,智能车 辆己经成为世界车辆工程领域研究的热点和汽车工业增长的新动力,很多发达 国家都将其纳入到各自重点发展的智能交通系统当中。 在本文中,我们详细介绍了基于电磁传感器智能车系统。详细介绍车体机 械结构的调整,传感器电路的设计,舵机控制算法,电机控制算法。在做车的 整个过程中,培养了我们团队合作能力,动手的能力,创新的能力,对我们今 后的学习积极的影响。 6 第一章 总体方案设计 1.1车体结构的总体设计:车体结构的总体设计: (1)为了降低重心,主控板,电池尽量靠后就低放置。 (2)考虑到放远前瞻(约 40 CM)可

6、能带来车头过重,我们尽量选用 尺寸小的 10 mh 的电感。选用重量轻的航模碳素杆作为支架。 (3)舵机直立安装,连杆加长,提高响应速度。 ( 4 ) 传感器电路放置在车体的尾部。 1.2整体车模如下图:整体车模如下图: 图图 1.2.1 整体车模左视图整体车模左视图 7 图 1.2.2 整体车模俯视图 8 1.3本章小结本章小结 智能车能够即稳定又快速的行驶,可以说车体的结构占很大一部分比重。 由于我们组作为二年级学生第一次参赛,经验尚缺,前期没有对车体结构作太 多调整,所以后来发现再怎么调软件,也不能很好行驶。所以吸取强队的经验, 做了车体结构改造(包括轮胎的选择,电池,主控板的排放,传感

7、器的安装, 支架的安装等等)后发现,前期的代码只需很小的调节,速度很快上去了。 因此,结构很重要。前期必需做好车体结构的设计,方能在后期软件调试 阶段省心省力。 9 第二章 智能车机械结构调整与优化 2.1主销内倾 所谓主销内倾,是将主销(即转向轴线)的上端向内倾斜。从汽车的前面 看去,主销轴线与通过前轮中心的垂线之间形成一个夹角,即主销内倾角。主 销内倾的作用是使车轮转向后能及时自动回正和转向轻便。由于主销内倾,转 向轮在转向时绕主销转动,必须使车轮陷入地面以下。这当然是不可能的,实 际转向时,是强迫汽车的前部稍稍抬高。这样,汽车的重力将使转向轮自动回 正。确定主销内倾角时,还可调整主销(即

8、转向轴线)与地面的交点到轮胎接 地中心的距离,即调整主销偏距。减少主销偏距,可以减轻转向时的摩擦阻力。 主销内倾不能过大,否则转向过于沉重。主销内倾角一般为8到13,由前悬架 的结构来确定。 主销后倾和主销内倾都有使转向轮自动回正的作用。但主销后倾的回正作 用与车速有关,而主销内倾的回正作用与车速无关。因此,高速时主要靠主销 后倾的作用,而低速时主要靠主销内倾的作用。主销内倾可以增大摩擦力,避 免甩尾。 图 2.1.1 10 2.2主销后倾 主销后倾是指从汽车的侧面看时每个前轮转向轴的倾斜,倾斜程度是 用后倾角来度量的。如果转向轴向后倾斜,即上端的球形接头或支杆安装 点在下端的球形接头后面,则

9、后倾角就是正的;如果转向轴向前倾斜,则 后倾角就是负的。后轮不必检测后倾角。 主销后倾角越大,方向稳定性越好,自动回正作用也越强,但转向越 沉重。汽车主销后倾角一般不超过30,由前悬架在车架上的安装位置来保 证。现代轿车由于采用低压宽幅子午线轮胎,高速行驶时轮胎的变形加大, 接地点后移,因此主销后倾角可以减小,甚至为负值(变成主销前倾),以 避免由于回正力矩过大而造成前轮摆振。 主销后倾角影响汽车直线行驶的稳定性和转向轮的回正功能。正后倾 角比较大,则前轮有沿直线行驶的趋势。一方面,如果正后倾角大小适当, 则可以确保汽车的行驶稳定性,而且使转向轮在转向后能够回正;另一方 面,正后倾角增加了转向

10、阻力。因此,如果汽车配置了动力转向系统,则 所允许采用的正后倾角要比单纯的手动转 向系统大许多。 主销后倾角太小会使转向不稳定,并 使车轮晃动。在极端的情况下,负后倾角 与随之引起的车轮晃动会加剧前轮的杯状 化磨损。如果主销后倾角左右不等,则汽 车将会被拉向正后倾角较小(或更大的负 后倾角)的一侧。在解决汽车跑偏方面的 问题时,要特别注意这一点。 11 图2.2.1 2.3外倾角 车轮面与地面不垂直。从车头望向车轮,车轮与铅垂线的夹角称为外倾 角(Camber). 若轮胎上端向外倾斜即左右轮呈“/“形, 称为正外倾角 (Positive Camber),向内倾斜为负外倾角。基本上,正外顷角的设

11、定有较佳 的灵活度,而负外顷角具较稳定的直进性。 定义为由车前方看轮胎中心线与垂直线所成的角度,向外为正,向内 为负。其角度的不同能改变轮胎与地面的接触点及施力点,直接影响轮胎 的抓地力及磨耗状况。并改变了车重在车轴上的受力分布,避免轴承产生 异常磨损。此外,外倾角的存在可用来抵消车身荷重后,悬吊系统机件变 形及活动面间隙所产生的角度变化。外倾角的存在也会影响车子的行进方 向,这正如摩托车可利用倾斜车身来转弯,因此左右轮的外倾角必须相等, 在力的平衡下不致影响车子的直进性,再与束角(Toe)配合,提高直进稳定 性及避免轮胎耗不均。增加负的外倾角需配合增加 Toe-out;增加正的外倾 角则需配

12、合增加 Toe-in。 12 图 2.3.1 2.4车轮安装示意图如下: 图 2.4.1 2.5 舵机的安装 舵机摆杆的长度直接影响到舵机的转矩。由公式舵机转矩 = 舵机摆杆作 用力 * 摆杆长度,得:舵机摆杆作用力越大,反应越灵敏,转向速度越快。 转矩一定时,摆杆越长,输出的作用力越小,所以摆杆不能太长,不然会拉不 动轮胎左右转向,从这个角度考虑拉杆越短越好。但是我们知道,拉杆越长的 时候,舵机转一小圈,下面拉杆的会转很大的范围,也就是说,摆杆长度决定 了舵机和拉杆变化的比例也就说明相应速度。所以我们又希望摆杆很长,这样 轮子转向的响应速度就会很快。 综合考虑,我们选用的舵机摆杆的长度在30

13、mm 左右。同时考虑到阿克曼转 向理论,四个轮子路径的圆心大致上交会于后轴的延长线上瞬时转向中心,这 13 样可以使车辆在过弯时转向轮处于纯滚动状态,减少过弯时的阻力,减小轮胎 的磨损,提高车辆转弯性能。 2.6舵机安装示意图如下: 图 2.6.1 2.7 小结 舵机的安装直接影响前轮的转向,前轮定位很重要,我们花了好长时间去 调前轮的定位,不断地尝试寻求合适的倾向角。 14 第三章第三章 电路设计说明 3.1 电源模块 电源模块为系统其他各个模块提供所需要的电源。设计中,除了需要 考虑电压范围和电流容量等基本参数之外,还要在电源转换效率、降低噪 声、防止干扰和电路简单等方面进行优化。可靠的电

14、源方案是整个硬件电 路稳定可靠运行的基础。 全部硬件电路的电源由配发的标准车模用 7.2V 2000mAh Ni-cd 蓄电 池提供。由于电路中的不同电路模块所需要的工作电压和电流容量各不相 同,因此电源模块应该包含多个稳压电路,将充电电池电压转换成各个模 块所需要的电压。 主要包括以下不同的电压。 5V电压。主要为单片机系统、传感器电路以及部分接口电路提供 电源,电压要求稳定、噪声小。 6V电压,主要为舵机提供电源,提高舵机响应速度。 7.2V 电压。这部分直接取自蓄电池两端电压,主要为后轮电机驱 动 模块和部分接口电路提供电源。 电机驱动电路的电源可以直接使用蓄电池两端电压。模型车在启动过

15、 程中往往会产生很大的冲击电流,一方面会对其他电路造成电磁干扰;另 一方面由于电池内阻造成电池两端的电压下降,甚至会低于稳压电路所需 要的最低电压值,产生单片机复位现像。为了克服启动冲击电流的影响, 可以在电源中增加容值较大的电解电容,也可以采用缓启动的方式控制电 机。在启动时,驱动电路输出电压有一个渐变过程,使得电机启动速度略 为降低从而减小启动冲击电流的幅度。 15 3.2 传感器模块 此电路由电感线圈产生感应电动势,经过谐振电容产生过电压,由运 放放大,再经过整流滤波最后产生直流信号供给单片机进行AD 转换。如 下图。 图 3.2.1 3.3 电机模块 驱动芯片采用飞思卡尔半导体公司的半

16、桥式驱动器BTS7960。 。其工 作电压为5-36V,导通电阻为20m,输入信号为TTL/CMOS。 16 图 3.3.1 3.4 舵机模块 由于舵机工作频率为 50HZ,需采用双通道PWM 控制舵机转向(合并 P2、P3) 。将舵机的信号线接到P3 口上。 3.5 最小系统板设计 最小系统板使用MC9S12XS128MAA芯片。最小系统板中包括单片机时钟(有 源晶振提供)与复位电路、5V稳压电路、BDM接口等 17 图 3.5.1 图 3.5.2 3.6 系统主板设计 由于硬件是分模块设计的,最终要接在一起才能相互通信。主板电路主要 有电池接口、单片机最小系统板插座、传感器电路及其接口、舵

17、机及电机驱动 接口。另外,主板上还集成了出5V稳压以外的所有电源电路。 18 图 3.6.1 3.7 小结 对于硬件电路部分,一定要用料扎实,稳定第一,抗干扰性能一定要高。 单片机电压一定要稳定,防止舵机和电机启动的时候拉低电压导致复位。解决 这个问题最实用的办法就是加上储能器件,加上适当大小的电容是必要的。 硬件电路是智能车的基础,只有打好基础才能继续软件方面的工作。 19 第四章第四章 智能车控制软件设计说明 4.1 软件设计总体框架 小车的控制包括舵机的 PD 控制,电机的 PID 控制,传感器数值的处理, 路径优化处理。根据传感器采集的数据进行速度,以及转交的控制,实现小车 快速,稳定

18、的运行。 系统结构框架如图: 初始化程序初始化程序 按键设定速度按键设定速度 拨码开关选择状态拨码开关选择状态 传感器采集数据并处理传感器采集数据并处理 舵机舵机 PD 控制控制 电机控制电机控制 起跑线检测起跑线检测 YES NO 停车停车 20 4.2 电机 PID 控制 4.2.1 PID 算法 控制算法是微机化控制系统的一个重要组成部分,整个系统的控制功 能主要由控制算法来实现。目前提出的控制算法有很多。根据偏差的比例 (P) 、积分(I) 、微分(D)进行的控制,称为PID 控制。实际经验和理论 分析都表明,PID 控制能够满足相当多工业对象的控制要求,至今仍是一 种应用最为广泛的控

19、制算法之一。 4.2.2 模拟PID 在模拟控制系统中,调节器最常用的控制规律是PID 控制,常规PID 控制系统原理框图如图1.1 所示,系统由模拟PID 调节器、执行机构及控 制对象组成。 PID 调节器是一种线性调节器,它根据给定值r (t )与实际输出值c(t )构 成的控制偏差: e(t ) =r (t )c(t ) (1.1) 将偏差的比例、积分、微分通过线性组合构成控制量,对控制对象进 行控制,故称为PID 调节器。在实际应用中,常根据对象的特征和控制要 求,将P、I、D 基本控制规律进行适当组合,以达到对被控对象进行有效 控制的目的。例如,P 调节器,PI调节器,PID 调节器

20、等。 模拟 PID 调节器的控制规律为: (1.2) 21 式中, P K 为比例系数, I T 为积分时间常数, D T 为微分时间常数。 简单的说,PID 调节器各校正环节的作用是: (1)比例环节:即时成比例地反应控制系统的偏差信号e(t) ,偏差一旦 产生,调节器立即产生控制作用以减少偏差; (2)积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱 取决于积分时间常数I T , I T 越大,积分作用越弱,反之则越强; (3)微分环节:能反映偏差信号的变化趋势(变化速率) ,并能在偏差信 号的值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快 系统的动作速度,减少调

21、节时间。 由式 1.2 可得,模拟 PID 调节器的传递函数为 (1.3) 由于小车主要采用数字 PID 算法,所以对于模拟 PID 只做此简要介绍。 4.2.3 数字 PID 在数字计算机中,PID 控制规律的实现,也必须用数值逼近的方法。当采 样周期相当短时,用求和代替积分,用差商代替微商,使 PID 算法离散化,将 描述连续-时间 PID 算法的微分方程,变为描述离散-时间 PID 算法的差分方程。 我们小车电机采用增量式 PID 控制算法,当执行机构需要的不是控制量的绝 对值,而是控制量的增量(例如去驱动步进电动机)时,需要用 PID 的“增量 算法” 。 由位置算法求出 再求出 22

22、 两式相减,得出控制量的增量算法 (3-8) 式(3-8)称为增量式 PID 算法。 对增量式 PID 算法(3-8)归并后,得 (3-9) 其中 (3-9)已看不出是 PID 的表达式了,也看不出 P、I、D 作用的直接关系, 只表示了各次误差量对控制作用的影响。从式(3-9)看出,数字增量式 PID 算法,只要贮存最近的三个误差采样值 e(k) 、e(k-1) 、e(k-2)就 足够了。 4.2.4 PID 调试方法以及问题调试方法以及问题 将 PID 控制器的积分增益和微分增益改为 0,对系统进行纯比例控制。 不断修改比例增益,使系统输出的过渡过程曲线的衰减比 n=4,记下此时 的比例增

23、益值。 修改比例增益,使系统输出的过渡过程曲线的衰减比 n=2,记下此时 23 的比例增益值。 修改比例增益,使系统输出呈临界振荡波形,记下此时的 比例增益值。 将 PID 控制器的比例、积分增益进行修改,对系统进行比例 积分控制。不断修改比例、积分增益,使系统输出的过渡过程曲线的衰减比 n=2,4,10,记下此时比例和积分增益。 将 PID 控制器的比例, 积分, 微分增益进行修改,对系统进行比例、积 分、微分控制。不断修改比例、积分、微分增益,使系统输出的过渡过程 曲线的衰减比 n=2、4、10 记下此时的比例、积分、微分增益值。 4.2.5 实际调试结果实际调试结果 借助模拟示波器我们调

24、节 PID 各项参数得到了理想的曲线 图 4.2.5 4.3 舵机的控制 传感器采集返回的值进行处理后,偏差值返回给舵机控制。起先我们 单纯的 P 控制,发现直线晃动很厉害。调小 P 值,过弯又变迟钝。后来根 24 据传感器值,处理后区分直道,弯道进行分段控制,直道的 P 值小些,弯 道 P 值大些。取得了很不错的效果。直道很平稳,弯道基本可以切弯。 加入 D 值后,舵机的控制更加平滑,发现增大 D 值,可以加强入弯切 弯的效果,出弯道迅速摆正车头的效果。但 D 值太大,直到稳定性下降。 通过大量的调试,确定了一组合理的 PD 值。 4.4 传感器数据的处理 一次采集 10 组传感器的值,用冒

25、泡算法找出最大值。记录此值,和前 10 次的值做线性处理,得出偏差,根据不同的偏差,给定不同的 P 值,实 现舵机的打角控制。实际调试过程中发现,偏差值分的越细,P 值分的档 位越多,小车运行的越流畅,基本实现直道,小 S 可以直冲。大 C 弯道快 速过弯,普通弯道实现切弯道内侧。但不足之处是,当车没有直着进小 S 时,还是会有些晃。 当传感器检测不到时,认为是十字,或曲率很小的弯道,给舵机一个 固定的值,现实索舵机,防止小车冲出赛道。 4.5 小结 软件的设计,本章主要介绍了电机 PID,舵机 PD,以及传感器数据的处理。 25 第 5 章 开发工具、制作、安装、调试过程说明 5.1软件编译

26、环境 程序的开发是在组委会提供的 CodeWarrior IDE 下进行的,包括源程序 的编写、编译和链接,并最终生成可执行文件。 Codewarrior IDE 是 Metrowerks 公司提供的专门面向 Freescale 所有 MCU 与 DSP 嵌入式应用开 发的软件工具。其中集成开发环境 IDE、处理器专家库、全芯片仿真、可 视化参数显示工具、项目工程管理器、C 交叉编译器、汇编器、链接器以 及调试器。 5.2显示模块 我们选用的是 Nokia/诺基亚 5110 LCD 作为显示模块。诺基亚 5110 是 NOKIA 公司生产的可用于其 5110、6150,6100 等系列移动电话

27、的液晶显示模 块,国内厂家也生产有类似的兼容产品。该产品除应用于移动电话外,也可广 泛应用于各类便携式设备的显示系统。用于小车参数的显示,操作简单,方便。 图 5.2.1 26 5.3蓝牙调试模块 蓝牙信号的收发采用蓝牙模块实现,具有片内数字无线处理器 DRP(DigitalRadioProcessor) 、数控振荡器,片内射频收发开关切换,内置 ARM7 嵌入式处理器等。接收信号时,收发开关置为收状态,射频信号从天线 接收后,经过蓝牙收发器直接传输到基带信号处理器。该模块主要用于短距离 的数据无线传输领域。可以方便的和 PC 机(PDA 手机)的蓝牙设备相连,也 可以两个模块之间的数据互通。

28、避免繁琐的线缆连接,能直接替代现有的串口 线。为了实时监测小车各项参数,我们增加了蓝牙无线模块,提高了开发的效 率。 图 5.3.1 5.4上位机调试 由于自动控制系统被控对象的千差万别,PID 的参数也必须随之变化,以 27 满足系统的性能要求。这就给使用者带来相当的麻烦,为此我们找了一款可以 辅助调节 PID 参数的软件。我们借助上位机软件,模拟示波器,实时采集 PID 参数,并进行分析调试,取得了很好效果。 图 5.4.1 5.5 本章小结 本章节主要介绍了智能车开发和调试过程中用到的主要开发和调试工具: Codeworrior IDE 、蓝牙通讯模块和人机交互界面的简介。在开发工程中,

29、开 发工具可以说相当重要,可以缩短开发时间,提高开发效率。 28 模型车的主要技术参数说明 表 6.1 模型车技术参数统计 模型车技术参数统计模型车技术参数统计 项目项目 参数参数 路径检测方法(赛题组) 电磁检测 车模几何尺寸(长、宽、高) (厘米) 65cm、23cm、4.5cm 车模轴距/轮距(毫米) 201 车模平均电流(匀速行驶)(毫安) 1850 mA 电路电容总量(微法) 小于 2000 传感器种类及个数 11个(6个电感,一个编码器,4个干簧管) 新增加伺服电机个数 0 赛道信息检测空间精度(毫米) 25 赛道信息检测频率(次/秒) 50 主要集成电路种类/数量 MCU/1 B

30、TS7970/2 车模重量(带有电池) (千克) 1.65 29 结论 飞思卡尔智能车竞赛,是一个多学科,综合性的比赛。比赛中涉及的知识 包括汽车机械,传感器设计,智能控制系统,电路设计与制作,PCB 电路设计, 通讯等等。在整个工程中,将理论知识赋予实践,还学习了很多课本上学不到 的知识,丰富了我们的课余生活,充实了知识体系,收获颇丰。在整个做车的 过程中,团队的合作与分工非常重要,现在要做一件事,一个人的力量已经很 难做好了,必须有强大的团队。 做车过程中有很多问题值得反思: 1.调试的方法: 前期我们都是通过眼睛看,看小车跑的效果然后改程序。其实这种调试方 法很笨拙,效率也很低。慢慢的,

31、我们借助无线蓝牙调试模块,模拟示波 器,串口调试助手,上位机调试软件等等调试工具,将小车的各项数据发 到采集回来,然后分析处理。发现了很多眼睛观察不能看到的问题,然后 改程序,大大提高了小车的稳定性。 2.电路设计: 第一版电路我们用的还好,后来发现传感器电路(自己焊接的)太过笨重, 确定画传感器电路板。但做好后发现有很大的干扰, 不得已放弃新方案,用 老方案。总结原因有:PCB 画板子经验不足,布线的时候没有考虑模拟信号与 数字信号的干扰问题,没有做隔离。对于传感器电路也没用更多的去研究,拿 30 个电路过来就用,差多不就行了,最后吃到了恶果。所以,对于技术必须做到 慎重,严谨。 3.车体结

32、构的设计: 前文已经讲述过,在此不再细言。车体结构,在做车的准备阶段,一定要 好好考量! 4.复位问题: 做车时发现,小车经常复位。我们做过很多猜测,包括电磁干扰,静电, 插线松动,单片机供电不足等等,后来发现由于电机加减速导致单片机供 电不足而复位。所以对于单片机供电我们做了特别的处理。 通过这次比赛,我们的青春岁月又多了一些值得回忆的事情,大学期间真 得好好学习,多多的动手实践,理论永远是理论,将其付诸实践才能够闪耀她 独特的光芒。 31 参考文献 1. 邵贝贝. 嵌入式实时操作系统LCOS-(第 2 版)M. 北京清华大学 出版社2004 2. C Primer Plus 第五版 【美】

33、Stephen Prata 著 3. 谭浩强 C+程序设计 北京-清华大学出版社 2004 4. 杭州电子科技大学 第六届飞思卡尔杯 钱江一号 技术报告 5. Altium Designer10入门与 PCB 设计实例/dz 电路设计丛书 王建农 6. 黄开胜,陈宋. 汽车理论与智能模型车机械结构调整方法D. 清华大学 汽 车安全与节能国家重点实验室,2006. 7. 韩绍坤,许向阳,王晓华编.自动控制原理.北京理工大学出版社,2009 8. 卓晴,黄开胜,邵贝贝 学做智能车 北京-北京航空航天大学出版社 2007 32 9. 张文春汽车理论M北京机械工业出版社2005 10. 西安科技大学电

34、控学院毕业设计(论文) 附录 A:程序源代码 传感器:传感器: #include“sensor.h“ int max; /AD 检测 unsigned int ADC(unsigned char channel) unsigned int temp; /暂存 A/D 转换的结果 ATD0CTL5 = channel; /取 A/D 转换结果 for(;) if (bitget(7,ATD0STAT0)!= 0) ) /判断 ATDSTAT0 的第 7 位是否为 1 temp = ATD0DR0+ATD0DR1+ATD0DR2+ATD0DR3+ATD0DR4+ATD0DR5+ATD0DR6+AT

35、D0DR 7; break; return temp/8; 33 int sensor1(void) int i; int adc10; int max_adc=0,max_s=7; static int ad_ret_f=0,max_s_f=7,max_adc_f=0,min6=0,min7=0,min8=0,adc610,adc710,adc810; int ad_ret; /传感器检测 for(i=6;i170) adc6=min6; / if(adc7170) adc7=min7; / if(adc8170) adc8=min8; for(i=9;i=1;i-) adc6i=adc6i

36、-1; adc7i=adc7i-1; adc8i=adc8i-1; adc60=adc6; adc70=adc7; adc80=adc8; min6=adc60; min7=adc70; min8=adc80; 34 for(i=1;i60) if(adcimax_adc) max_adc=adci; max_s=i; if(max_s_f=6 if(max_s_f=8 max_s_f=max_s; max_adc_f=max_adc; 35 /线性化 /右侧 if(max_s=7/20; if(ad_ret0) ad_ret=0; if(adc7adc8)|max_s=6) ad_ret=(

37、adc6-adc7)+45);/20; if(ad_ret=11) ad_ret=11; if(ad_ret170) adc6=min6; if(adc7170) adc7=min7; if(adc8170) adc8=min8; for(i=9;i=1;i-) adc6i=adc6i-1; adc7i=adc7i-1; adc8i=adc8i-1; adc60=adc6; adc70=adc7; adc80=adc8; min6=adc60; min7=adc70; min8=adc80; for(i=1;i60) if(adcimax_adc) max_adc=adci; max_s=i;

38、 if(max_s_f=6 if(max_s_f=8 max_s_f=max_s; max_adc_f=max_adc; /线性化 /右侧 38 if(max_s=7/20; if(ad_ret0) ad_ret=0; else if(max_s=8) ad_ret=-(adc8-adc7)+70);/20; if(adc7adc8) ad_ret=(adc6-adc7)+70);/20; if(ad_ret=11) ad_ret=11; if(ad_ret=1000) sudu=1000; if(sudu0) DisablePWM(5); PWMDTY0=sudu*12/256; PWMDT

39、Y1=sudu*12%256; EnablePWM(1); else if(sudu105) jiaodu=105; if(jiaodu-105) jiaodu=-105; / jiaodu=jiaodu; DisablePWM(3); PWMDTY2=(jiaodu+702)*6/256; PWMDTY3=(jiaodu+702)*6%256; EnablePWM(3); 主函数主函数 /头文件包含区 #include “includes.h“ /总头文件 /宏定义区 #define k_num0 maxsd #define k_num1 maxsd extern int d_x50,i,d_x_q0,d_x_z0,d_x_h0,d_x_q1,d_x_z1,d_x_h1,d_x_0,d_x_1; /全局变量定义区 unsigned char com_num=0; /接受串口发送的数据 unsigned long int T0=0; /系统计时用,每一毫秒自增 1,最大 10000s; 41 int ret_sd=0; /编码器返回的速度值记录 int s1,s0,s; /电磁传感器返回值记录 int adc_9;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1