飞思卡尔智能车毕设论文

上传人:沈*** 文档编号:100605894 上传时间:2022-06-03 格式:DOC 页数:43 大小:297.50KB
返回 下载 相关 举报
飞思卡尔智能车毕设论文_第1页
第1页 / 共43页
飞思卡尔智能车毕设论文_第2页
第2页 / 共43页
飞思卡尔智能车毕设论文_第3页
第3页 / 共43页
点击查看更多>>
资源描述
-文理学院物理与机械电子工程学院本科毕业论文设计题 目 基于微控制器k60的光电智能车 控制软件设计 专业班级 09自动化1班 学 号 08103090102 学生 昆鹏 指导教师 雷俊红 设计所在单位 文理学院 2013 年 5 月文理学院本科毕业设计论文指导教师评分表学生昆鹏学 号专 业自动化班 级1班毕业设计论文题目基于微控制器k60的光电智能车控制软件设计设计论文起止时间2013年 1 月 10 日至 2013 年 5 月 24 日指导教师评语:建议成绩:指导教师签名: 年 月 日文理学院本科毕业设计论文评阅教师评分表学生昆鹏学 号专 业自动化班 级1班毕业设计论文题目基于微控制器k60的光电智能车控制软件设计设计论文起止时间2013 年 1 月 10 日至 2013 年 5 月 24 日评阅教师评语:建议成绩:评阅教师签名: 年 月 日文理学院本科毕业设计论文辩论记录学生昆鹏学 号专业名称自动化辩论时间2013年5月24 日辩论地点C0311指导教师雷俊红题 目基于微控制器k60的光电智能车控制软件设计辩论小组成 员姓 名职 称姓 名职 称提问及答复情况记录:记录人签字: 年 月 日辩论成绩:辩论小组组长签名: 年 月 日毕业论文成绩辩论委员会认定成绩毕业论文等级学院辩论委员会意见:负责人签名: 年 月 日注:1、毕业论文成绩=指导教师成绩40%评阅教师成绩20%辩论成绩40%;2、辩论委员会认定成绩是根据该生毕业设计期间的表现及该专业整体论文情况的综合评定成绩。3、论文等级分优秀90分、良好8089分、中等7079分、及格6069分、不及格g g 是重力加速度则回复力的方向便于位移方向相反了。 此外,为了使得倒立摆能够尽快地在垂直位置稳定下来,还需要增加阻尼力,与偏角的速度成正比,方向相反。因此式2-1可变为 (2-2)按照上面的控制方法,可把倒立摆模型变为单摆模型,能够稳定在垂直位置。因此,可得控制车轮加速度的控制算法 (2-3)式中, 为车模倾角; 为角速度; 、 均为比例系数;两项相加后作为车轮加速度的控制量。只要保证在 g 0、 条件下,可以维持车模直立状态。其中, 决定了车模是否能够稳定到垂直位置,它必须大于重力加速度; 决定了车模回到垂直位置的阻尼系数,选取适宜的阻尼系数可以保证车模尽快稳定在垂直位置。 因此控制车模稳定,需要以下两个条件:1能够准确测量车模倾角 的大小和角速度 的大小; 2可以控制车轮的加速度2.2 车模速度控制车模运行速度是通过控制车轮速度实现的,车轮通过车模两个后轮电机经由减速齿轮箱驱动,因此通过控制电机转速可以实现对车轮的运动控制。 电机的运动控制有三个作用: 1通过电机加速度控制实现车模直立稳定。其中控制规律由上一节给出; 2通过电机速度控制,实现车模恒速运行和静止。比赛规则中要求车模速度恒定,要求车模在比赛之前和冲过终点之后保持静止状态。通过速度控制,就可以提高车模稳定性,从而到达静止的要求。比赛中规则要求车模静止,或者需要通过路桥等障碍,速度控制将会发挥作用。 3通过电机差速控制,可以实现车模方向控制。差速的控制方法参见下一小节“车模方向控制。电机运动控制是通过改变施加在其上的驱动电压实现的。对于电机的电磁模型、动力学模型以及车模的动力学模型进展分析和简化,可以将电机运动模型简化成如下的一阶惯性环节模型。施加在电机上一个阶跃电压 Eu (t),电机的速度变化曲线为 (2-4)式中,E 为电压;u (t)为单位阶跃函数;T1 为惯性环节时间常数;km 为电机转速常数。 对应不同的电压,电机的速度变化曲线如图2.6所示。图2. 6 电机在不同电压下的速度由图2.6 可以看出,电机运动明显分为两个阶段:第一个阶段是加速阶段;第二个阶段为恒速阶段。其中,在加速阶段,电机带动车模后轮进展加速运动,加速度近似和施加在电机上的电压成正比,加速阶段的时间长度取决于时间常数 ,该常数由电机转动惯量、减速齿轮箱、车模的转动惯量决定;在恒速阶段,电机带动车模后轮进展恒速运行,运行速度与施加在电机上的电压成正比。 调整车模直立时间常数很小,此时电机根本上运行在加速阶段。由上一节式2-3计算所得到的加速度控制量a 再乘以一个比例系数,即为施加在电机上的控制电压,这样便可以控制车模保持直立状态。 车模运行速度调整时间相对很长,此时,电机速度与施加在其上的电压成正比。通过传统的PID 反应控制,便可以准确控制电机的运行速度,从而控制车模的运行速度。 电机速度控制需要测量电机的转速,电机旋转速度可以通过安装在电机输出轴上的光电编码盘方便获得。如图2.7 所示图2. 7 电机速度检测对于电机速度PID 控制方法如图2.8 所示。图2.8 电机 PI 反应控制电机速度控制采用了PI 调节器,具体实现可以通过单片机软件编程实现。2.3 车模方向控制 实现车模方向控制是保证车模沿着竞赛道路比赛的关键。通过道路中心反射光强偏差检测与电机差动控制实现方向控制。(1) 道路反射光强度的偏差检测道路中心反射光强度偏差可以通过线性CCD来反应实现。CCD是一种半导体器件,能够把光影信号转化为数字信号。2 电机差动控制 利用光强偏差检测信号分别与车模速度控制信号进展加和减,形成左右轮差动控制电压,使得车模左右轮运行角速度不一致进而控制车模方向。如图2.9 所示。图2. 9 通过差动控制左右电机驱动电压控制车模方向通过左右电机速度差驱动车模转向消除车模偏差,这个过程是一个积分过程。因此车模差动控制一般只需要进展简单的比例控制就可以完成车模方向控制。2.4 车模倾角测量在上节车模直立控制中介绍了控制车模直立的算法,通过测量车模的倾角和倾角加速度控制车模车轮的加速度来消除车模的倾角。因此车模倾角以及倾角加速度的测量成为控制车模直立的关键。测量车模倾角和倾角加速度可以通过加速度传感器和陀螺仪实现。加速度传感器可以测量由地球引力作用或者物体运动所产生的加速度。竞赛规则规定如果车模使用加速度传感器必须使用飞思卡尔公司产生的加速度传感器。该系列的传感器采用了半导体外表微机械加工和集成电路技术,传感器体积小,重量轻。它的根本原理如图2.10 所示。图2.10 加速度传感器通过微机械加工技术在硅片上加工形成了一个机械悬臂。它与相邻的电极形成了两个电容。由于加速度使得机械悬臂与两个电极之间的距离发生变化,从而改变了两个电容的参数。通过集成的开关电容放大电路量测电容参数的变化,形成了与加速度成正比的电压输出。MMA7260是一款三轴低g 半导体加速度计,可以同时输出三个方向上的加速度模拟信号,如图2.11 所示。图2.11 三轴加速度传感器通过设置可以使得MMA7260最大输出灵敏度为800mV/g 。 只需要测量其中一个方向上的加速度值,就可以计算出车模倾角,比方使用Z 轴方向上的加速度信号。车模直立时,固定加速度器在 Z 轴水平方向,此时输出信号为零偏电压信号。当车模发生倾斜时,重力加速度 g 便会在Z 轴方向形成加速度分量,从而引起该轴输出电压变化。变化的规律为qD=式中,g 为重力加速度;q为车模倾角;k 为比例系数。当倾角q比拟小的时候,输出电压的变化可以近似与倾角成正比。似乎只需要加速度就可以获得车模的倾角,再对此信号进展微分便可以获得倾角加速度。但在实际车模运行过程中,由于车模本身的运动所产生的加速度会产生很大的干扰信号叠加在上述测量信号上,使得输出信号无法准确反映车模的倾角,如图2.12 所示。图2.12 车模运动引起加速度计信号波动车模运动产生的振动加速度使得输出电压在实际倾角电压附近波动,可以通过数据平滑滤波将其滤除。但是平滑滤波也会使得信号无法实时反映车模倾角的变化,从而减缓对于车模车轮控制,使得车模无法保持平衡。因此对于车模直立控制所需要的倾角信息需要通过另外一种器件获得,那就是角速度传感器- 陀螺仪,如图2.13 所示。2角速度传感器-陀螺仪 陀螺仪可以用来测量物体的旋转角速度。竞赛允许选用村田公司出品的EN-03 系列的加速度传感器。它利用了旋转坐标系中的物体会受到克里利奥力的原理,在器件中利用压电瓷做成振动单元。当旋转器件时会改变振动频率从而反映出物体旋转的角速度。图2.13 角速度传感器在车模上安装陀螺仪,可以测量车模倾斜的角速度,将角速度信号进展积分便可以得到车模的倾角。如图2.14 所示。图2.14 测量车模角速度和角度由于陀螺仪输出的是车模的角速度,不会受到车体振动影响。因此该信号中噪声很小。车模的角度又是通过对角速度积分而得,这可进一步平滑信号,从而使得角度信号更加稳定。因此车模控制所需要的角度和角速度可以使用陀螺仪所得到的信号。 由于从陀螺仪的角速度获得角度信息,需要经过积分运算。如果角速度信号存在微小的偏差,经过积分运算之后,变化形成积累误差。这个误差会随着时间延长逐步增加,最终导致电路饱和,无法形成正确的角度信号,如图2.15 所示。图2.15 角度积分漂移如何消除这个累积误差呢? 可以通过上面的加速度传感器获得的角度信息对此进展校正,如图2.16 所示。图2.16 角度积分漂移校正利用加速度计所获得的角度信息与陀螺仪积分后的角度进展比拟,将比拟的误差信号经过比例放大之后与陀螺仪输出的角速度信号叠加之后再进展积分。从图2.16中的框图可以看出,对于加速度计给定的角度,经过比例、积分环节之后产生的角度必然最终等于。由于加速度计获得的角度信息不会存在积累误差,所以最终将输出角度中的积累误差消除了。加速度计所产生的角度信息中会叠加很强的有车模运动加速度噪声信号。为了防止该信号对于角度的影响,因此比例系数应该非常小。这样,加速度的噪声信号经过比例、积分后,在输出角度信息中就会非常小了。由于存在积分环节,所以无论比例多么小,最终输出角度必然与加速度计测量的角度相等,只是这个调节过程会随着的减小而延长。 为了防止输出角度跟着过长,可以采取以下两个方面的措施:1仔细调整陀螺仪的放大电路,使得它的零点偏置尽量接近于设定值,并且稳定。 2在控制电路和程序运行的开场,尽量保持车模处于直立状态,这样一开场就使得输出角度与相等。此后,加速度计的输出只是消除积分的偏移,输出角度不会出现很大的偏差。第3章 车模控制算法设计3.1控制算法智能车的控制包主要是电机控制。具体的控制算法有PID控制和模糊控制等控制算法。PID控制PID 控制是工业过程控制中历史最悠久,生命力最强的控制方式。这主要是因为这种控制方式具有直观、实现简单和鲁棒性能好等一系列的优点。PID控制主要有三局部组成,比例、积分、微分。比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。偏差一旦产生,调节器立即产生控制作用使被控量朝着减小偏差的方向变化,控制作用的强弱取决于KP。当仅有比例控制时系统输出存在稳态误差Steady-state error。为了消除稳态误差,引入积分控制。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。为了预测预测误差变化的趋势,引入微分的控制器,这样就能够提前使抑制误差的控制作用等于零,甚至为负值,从而防止了被控量的严重超调。PID控制框图如以下图所示对应的误差传递函数为: Us/E(s)=Kp(1+1/Ti+Td)式中,Kp为比例增益;Ti为积分时间常数;Td为微分时间常数;U(s)为控制量;E(s) 为被控量与设定值R(s)的偏差。时域表达式为 式一在单片机中,我们仅能对数字信号处理,即数字PID控制。将上式离散化,得错误!未找到引用源。式二A.位置式PID算法直接利用上述离散化公式计算,框图如右图所示。由于积分项Pi是将所有采集值偏差相加,在一段时间后会很浪费单片机资源。对其稍加改良,得到增量型PID算法。B.增量式PID算法根据式二得第k-1个采样周期的控制量为错误!未找到引用源。 式三式二减式三得错误!未找到引用源。 式四) 由此,第k个采样时刻实际控制量为错误!未找到引用源。,为方便书写,写为错误!未找到引用源。 式五其中,错误!未找到引用源。由上可知,利用三个历史数据,递推使用,即可完成PID控制量。框图如右图所示:模糊控制一般控制系统包含了五个主要局部,即:定义变量、模糊化、知识库、逻辑判断及反模糊化,底下将就每一局部做简单的说明:(1) 定义变量:也就是决定程序被观察的状况及考虑控制的动作,例如在一般控制问题上,输入变量有输出误差E与输出误差之变化率CE,而控制变量则为下一个状态之输入U。其中E、CE、U统称为模糊变量。(2) 模糊化fuzzify:将输入值以适当的比例转换到论域的数值,利用口语化变量来描述测量物理量的过程,依适合的语言值linguisitc value求该值相对之隶属度,此口语化变量我们称之为模糊子集合fuzzy subsets。(3) 知识库:包括数据库data base与规则库rule base两局部,其中数据库是提供处理模糊数据之相关定义;而规则库则藉由一群语言控制规则描述控制目标和策略。(4) 逻辑判断:模仿人类下判断时的模糊概念,运用模糊逻辑和模糊推论法进展推论,而得到模糊控制讯号。此局部是模糊控制器的精华所在。(5) 解模糊化defuzzify:将推论所得到的模糊值转换为明确的控制讯号,做为系统的输入值。模糊算法可以解决一些非线性问题,将赛道分为直线、入大小弯、出大小弯、蛇形弯道,对应的直线加速、入大弯减速转方向、入小弯制动转方向、出弯加速、蛇形弯道直接通过假设可以到达这种前瞻性。要到达这种控制要通过实际检测,分析大量赛道磁场信息,找出它们的特征。3.2 总结虽然模糊控制可以较好解决一些非线性问题,但控制复杂,实际调试中较PID控制无明显优势,所以我们采用PID控制。电机控制为增量式PID,由于给定速度频繁变化,采用微分先行PID,使电机能够快速响应。车模直立PD控制 车模直立控制是关键子程序。其中涉及到两个关键控制系数: :CAR_AA_P_INT :倾角比例,0.75*0*7fff :CAR_AA_D_INT :角速度比例,0.125*0*7fff上面的乘以0*7fff 是为了将小数化成定点小数表示形式。 这两个系数是通过实验调试逐步确定的。具体确定的方式如下: 首先将CAR_AA_D_INT 置为0 。逐步加大CAR_AA_P_INT数值,直到车模开场前后震荡。此时再逐步增大CAR_AA_D_INT,消除震荡。然后逐步增加这两个数值,直到车模开场抖动,然后略减少这两个数值即可。 这个过程需要反复调整,直到车模可以比拟稳定的到达直立平衡。由于现在还没有参加速度闭环,所以由于加速度传感器零偏的误差,会导致有时车模在直立的时候会往一个方向加速行驶。 如下是车模直立控制子程序代码: void CarAngleAdjust(void) int nLeft, nRight; int nSpeed; int nP, nD; nP = g_nCarAngle; nP = (int)mult_r(nP, CAR_AA_P_INT); nD = g_nCarGyroVal 5; nD = (int)mult_r(nD, CAR_AA_D_INT); nSpeed = nD + nP; if(nSpeed MOTOR_SPEED_SET_MA*) nSpeed = MOTOR_SPEED_SET_MA*; else if(nSpeed MOTOR_SPEED_SET_MIN) nSpeed = MOTOR_SPEED_SET_MIN; nLeft = nSpeed + g_nLeftMotorOutSpeed - g_nMotorLeftRightDiff; nRight = nSpeed + g_nRightMotorOutSpeed + g_nMotorLeftRightDiff; g_nLeftMotorOut = nLeft 6; g_nRightMotorOut = nRight MOTOR_OUT_MA*)g_nLeftMotorOut = MOTOR_OUT_MA*; if(g_nLeftMotorOut MOTOR_OUT_MA*) g_nRightMotorOut = MOTOR_OUT_MA*; if(g_nRightMotorOut 3) - nP; if(g_nMotorOutSpeedKeep MOTOR_OUT_MA*) g_nMotorOutSpeedKeep = MOTOR_OUT_MA*; if(g_nMotorOutSpeedKeep MOTOR_OUT_MIN) g_nMotorOutSpeedKeep = MOTOR_OUT_MIN;void CalculateMotorOutSpeed(void) int nValue; nValue = g_nMotorOutSpeedNew - g_nMotorOutSpeedOld; nValue = nValue * (g_nCarMotionCount + 1) / (CAR_MOTION_PERIOD - 1) + g_nMotorOutSpeedOld; g_nLeftMotorOutSpeed = g_nRightMotorOutSpeed = nValue; 车模方向P控制车模方向控制是通过比拟车模两个电感检波电压进展的。这个调节函数调用周期为5毫秒。下面的算法中,采用了比例控制算法。 首先计算两个电感电压差除以两个电感电压之和所得到的比例。这个数值在-1.0 至1.0之间。然后再乘以一个比例系数CMA_P_MA*。 CMA_P_MA*可以通过实验逐步确定一个适宜的取值。车模方向控制子程序:void CarMagneticAdjust(void) int nP; long lnDelta; int nSigma; lnDelta = g_nCarMagneticRightAverage - g_nCarMagneticLeftAverage; nSigma = (g_nCarMagneticLeftAverage / 2) + (g_nCarMagneticRightAverage / 2); if(nSigma = 0) return; nP = (int)(lnDelta * CMA_P_MA* / nSigma) / 2; g_nMotorLeftRightDiff = nP;车模的三种控制直立、速度、方向最终是将控制量叠加在一起作为电机输出电压控制量。直立控制是根底,它的调整速度非常快,速度和方向控制相对调整速度慢。速度和方向控制的输出量是直接叠加在电机控制电压上。它们假定直立控制会始终保持车模不跌倒,直立控制会自动调节车模的倾角以适应车模的加速、减速和转弯的需要。车模加速前进时,由速度控制算法给出电机增加的正向电压,电机开场逐步加速旋转。在此同时,车模直立控制会迅速进展调整,使得车模往前倾斜,车模开场加速。当车模速度到达设定值,由车模速到控制算法使得电机进入恒速运行。此时车模直立控制算法也会相应调整车模出于直立状态,车模恒速运行。车模减速过程与此类似,由速度控制算法减少了电机的电压,电机开场减速运行。直立控制算法会自动调整车模往后倾斜,使得车模减速。车模转向控制是在车速控制根底之上,调节两个电机驱动电压差使得电机运行速度出现差动,进而调整车模的方向。第4章 软件系统设计及实现软件运行需要配置单片机各个模块存放器数值,使单片机各个模块正常工作。初始化中包括:单片机时钟配置、I/O口配置、PWM模块配置、A/D模块配置、实时中断配置、脉冲捕捉模块配置。当初始化完毕后,进入跑车程序:对传感器输入信号进展采样,当完成一次采样后将采样值映射成车相对于跑道的位置,根据当前与过去位置决定舵机转角和电机速度,通过改变PWM模块部存放器数值可以得到不同占空比的方波信号,实现对舵机和电机的调节。软件整体流程如以下图所示:程序上电运行后,便进展单片机的初始化。初始化的工作包括有两局部,一局部是对于单片机各个应用到的模块进展初始化。这局部的代码由CodeWarrior集成环境的ProcessorE*pert 工具生成。第二局部是应用程序初始化,是对于车模控制程序中应用到的变量值进展初始化。 初始化完成后,首先进入车模直立检测子程序。该程序通过读取加速度计的数值判断车模是否处于直立状态。如果一旦处于直立状态则启动车模直立控制、方向控制以及速度控制。 程序在主循环中不停发送监控数据,在通过串口发送到上位机进展监控。同时检查车模是否跌倒。跌倒判断可以通过车模倾角是否超过一定围进展确定,或者通过安装在车模前后防撞支架上的微动开关来判断。一定车模跌倒,则停顿车模运行。包括车模直立控制、速度控制以及方向控制。然后重新进入车模直立判断过程。车模的直立控制、速度控制以及方向控制都是在中断程序中完成。通过全局标志变量确定是否进展这些闭环控制。中断程序框架如下图。图中,使用K60的一个定时器,产生一毫秒的周期中断。中断效劳程序的任务被均匀分配在0-4 的中断片段中。因此每个中断片段中的任务执行的频率为200Hz 。 将任务分配到不同的中断片段中,一方面防止这些任务累积执行时间超过1 毫秒,扰乱一毫秒中断的时序,同时也考虑到这些任务之间的时间先后顺序。 这些任务包括: 1电机测速脉冲计数器读取与去除。累积电机转动角度。累积电机速度,为后面车模速度控制提供平均数; 2启动AD 转换。由于AD 转换启动到完成需要一定时间。所以读取AD 转换在下一个时间片段中。 3读取AD 转换值。这些值包括有陀螺仪、加速度计数值、CCD图像检测电压值等。读取完毕之后,便进展车模直立控制过程。包括车模角度计算、直立控制计算、电机PWM 输出等。 4车模速度控制:在这个时间片段中,又进展0-19 计数。在其中第0 片段中,进展速度PID 调节。因此,速度调节的周期为100 毫秒。也就是每秒钟调节10次。 5车模方向控制:根据前面读取的CCD图像检测数值,计算偏差数值。然后计算电机差模控制电压数值。前面给出的算法程序存在很多参数,虽然从理论上可以对这些参数进展优化计算。但是由于受到车模模型精度的影响,计算所得到的参数也只能够作为参考值调试的起始围。实际优化参数需要通过一定的工程步骤最终确定,这个过程称为参数整定。 为了保证调试顺利,一般需要配合上位机串口监控程序,能够实时显示程序运行采集到的各种数据,通过曲线或者数字显示出来,帮助确定一些待定参数,加快程序调试,确定控制参数的优化数值。开发制作相应的辅助调试工作,不仅可以大大加快调试的进度,同时也会锻炼解决工程问题的能力。 程序调试的一般步骤。 1电机PWM 输出调试:程序给出两个电机固定的PWM 输出。测试电机转速以及转向是否符合设定的要求。在此过程中,测试车模电机死区补偿电压数值:MOTOR_OUT_DEAD_VAL。 2陀螺仪和加速度计零偏调试:获得这两个传感器零点的偏移量。保持车模直立静止。读取两个传感器AD转换值,记录下来,作为后面程序中的零偏常量。 3测试车模直立判断程序和跌倒判断程序:此时制止车模直立控制环节,通过读取加速度计的数值,判断车模是否直立或者跌倒。一般情况下,车模直立要求,车模倾角在正负10度之,保持2 秒钟。车模跌倒判断车模的倾角大于45度。 4车模直立控制调试:只启动车模直立控制,调整两个控制参数:倾角比例和角速度比例,使得车模能够稳定的直立。此时由于没有速度控制,车模可能会朝一个方向加速行驶。可以通过微调加速度计的零偏值,减小车模在直立的时候朝一个方向的加速度。尽量控制车模静止。5车模速度控制调试:启动车模的直立控制和速度控制,调节速度控制的PI 参数,使得车模能够静止稳定在一个地点。然后再给定一个设定速度,车模可以稳定的前行或者后退。 6车模方向控制调试:启动车模的直立控制、速度控制和方向控制。将车模放在跑道上,车模可以稳定在跑道上运行。 通过上面几个步骤,逐步确定各个控制环节中的参数。赛车调试上述算法参数的获取必须通过实际的测量,赛道信息的获取我们通过用串口传送数据。利用串口模块,将所需数据发回PC机,通过仿真分析偏差变化,对数据进展处理得到赛道信息,从而调整参数使之到达最正确值。完毕语毕业设计过程中,我们在雷教师的指导下,完成了对CCD传感器,陀螺仪以及加速度传感器的理解与运用,使得我们对飞思卡尔智能车的软件设计有了一个比拟可靠的硬件原理根底。之后通过对PID闭环控制系统的学习,使我们对智能车软件的算法有了一个明确认识,为后来的程序设计奠定了根底。通过对智能车模的行走特点理解,我们对其进展了车模直立控制,车模速度控制和车模方向控制,在完善控制原理的根底上对车模直立行走进展了有针对性的程序设计工作,并且对其中的控制参数进展了检测与改良,经过我们不懈的努力,最终完成了车模直立行走的任务。致本课题的研究探讨以及论文撰写一直都是在雷俊红教师的细心指导下进展的,可以说其中的每个环节都倾注了雷俊红教师的智慧和心血,雷教师对我们的设计进展了从开场准备素材到中期的设计指导,从开场着手到整理完毕没有一处不凝结着雷教师的辛苦汗水。同时对教师找来的上级的学长带来的指导与沟通表示衷心感,也可以说没有雷教师跟学长的指导与沟通这个毕业设计是不可能如此顺利的完成的,也同样感院里的各位教师给我们这个时机让我们在临近毕业时又有了一次提高,还要感为我提供硬件支持的梁同学,让我有了硬件平台的展示。总之,在各位教师同学的帮助下我的毕业设计才得以顺利完成。参考文献 1永湘 延西 跃.过程控制与自动化仪表.第二版.机械工业。2007 742全利 单片机原理及接口技术 第二版 高等教育 20093思民 嵌入式系统设计与应用 清华大学 20084解争龙 田俊华 许青林 大学信息技术根底 C语言版 科学 2005附录A:局部程序源代码#include include.h#include calculation.h/* 函数名称:CCD_init* 功能说明:CCD初始化* 函数返回:无*void CCD_init(void) gpio_init (PORTB , 23, GPO,HIGH); /SDIN gpio_init (PORTC , 3, GPO,HIGH); /CLK adc_init(ADC0, AD14) ;/* 函数名称:StartIntegration* 功能说明:CCD启动程序* 函数返回:无*void StartIntegration(void) unsigned char i; SI_SetVal(); /* SI = 1 */ SamplingDelay(); CLK_SetVal(); /* CLK = 1 */ SamplingDelay(); SI_ClrVal(); /* SI = 0 */ SamplingDelay(); CLK_ClrVal(); /* CLK = 0 */ for(i=0; i127; i+) SamplingDelay(); SamplingDelay(); CLK_SetVal(); /* CLK = 1 */ SamplingDelay(); SamplingDelay(); CLK_ClrVal(); /* CLK = 0 */ SamplingDelay(); SamplingDelay(); CLK_SetVal(); /* CLK = 1 */ SamplingDelay(); SamplingDelay(); CLK_ClrVal(); /* CLK = 0 */* 函数名称:StartIntegration* 功能说明:CCD启动程序* 函数返回:无*ImageData = ad_once(ADC1, AD6a, ADC_8bit);*/void ImageCapture(unsigned char * ImageData) unsigned char i; e*tern u
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!