基于飞思卡尔单片机自动循迹小车控制的设计大学毕业论文

上传人:痛*** 文档编号:205246627 上传时间:2023-04-28 格式:DOC 页数:35 大小:1.28MB
收藏 版权申诉 举报 下载
基于飞思卡尔单片机自动循迹小车控制的设计大学毕业论文_第1页
第1页 / 共35页
基于飞思卡尔单片机自动循迹小车控制的设计大学毕业论文_第2页
第2页 / 共35页
基于飞思卡尔单片机自动循迹小车控制的设计大学毕业论文_第3页
第3页 / 共35页
资源描述:

《基于飞思卡尔单片机自动循迹小车控制的设计大学毕业论文》由会员分享,可在线阅读,更多相关《基于飞思卡尔单片机自动循迹小车控制的设计大学毕业论文(35页珍藏版)》请在装配图网上搜索。

1、基于飞思卡尔单片机自动循迹小车控制的设计摘 要随着我国的电子科技的不断发展,我们生活中的自动化设备越来越多,也为嵌入式在智能化上的研究提供了一个广阔的平台。本系统以MK60DN512VMD100微控制器为核心控制单元,选用OV7620 CMOS模拟摄像头检测赛道信息, 高速AD转换芯片选用 TCL5510,将提取后的灰度图像进行软件二值化,进而提取赛道信息;用光电编码器实时检测小车的实时速度,采用PID控制算法调节电机的速度以及舵机转向,从而实现速度和方向的闭环控制。关键字:MK60DN512VMD100,OV7620 CMOS,软件二值化,PIDAbstract With the conti

2、nuous development of electronic technology, more and more automation equipment into the production life of the people, the rapid development of embedded intelligent study provides a broader platform.In this paper, the design of intelligent vehicle system MK60DN512VMD100 microcontroller as the core c

3、ontrol unit, the selection of OV7620 CMOSanalog cameras to detect the track information, to using TCL5510 high-speed AD converter chip, software binarization image, extract the white guide line for identification of the track information; optical encoder to detect the real-time speed of the model ca

4、r, using the PID control algorithm to adjust the speed of the drive motor and steering the angle of the steering gear, in order to achieve closed-loop control of velocity and direction of the model car.Keywords: MK60DN512VMD100,OV7620 CMOS,software binarization, PID目 录摘 要IAbstractII1前言11.1 设计的背景以及意义

5、11.2 智能小车国内外概况11.2.1国内研究的概况11.2.2 国外研究概况21.3智能小车的发展前景22 飞思卡尔单片机自动循迹小车系统设计总方案32.1 系统硬件部分32.2 系统软件部分43 智能车硬件系统53.1 单片机最小系统53.1.1 PIT定时器模块63.1.2 PWM 模块63.1.3 I/O模块73.1.4 时钟电路73.1.5 复位电路73.1.6 JTAG接口电路83.2 电机驱动模块83.3路径识别摄像头检测模块93.3.1 摄像头的选择93.3.2 摄像头简介103.4 速度检测模块103.5 舵机模块103.6电源管理模块103.6.1 3.3V电源113.6

6、.2 5V电源114 软件系统的设计与实现124.1赛道信息的提取124.2 PID算法介绍124.2.1 位置式 PID134.2.2 增量式 PID144.2.3 PID 参数整定144.3转向舵机的控制方法154.3.1 舵机的工作原理154.3.2 舵机的 PID 控制155 开发平台介绍195.1 IAR Embedded Workbench IDE简介195.2 IAR Embedded Workbench的功能及特点195.3 硬件开发平台Altium Designer226结 论23参 考 文 献24致 谢25附录1电路原理图26附录2 PCB图27附录3 元件清单28附录5

7、部分程序源代码29- III -1前言1.1 设计的背景以及意义 在现代社会,汽车逐渐走进每个平民的家庭生活中,汽车行业发展迅速,同时交通事故也大大增多,每一分钟都有人死于车祸。近几年智能系统的发展迅速,智能车的研究成为了当下的研究热点。智能汽车研究涉及了很多领域,最直接的表现是要实现汽车的自动驾驶。要实现自动驾驶就离不开智能化系统的设计,同时要求智能车能感知周围的环境。一旦智能车投入使用,就会降低当前社会交通事故的发生率,同时能够大大提高现有交通道路的使用效率,并且能在一定程度上缓解能源危机的到来,降低广大人民的劳动强度,给人们一个更好的未来。1.2 智能小车国内外概况1.2.1国内研究的概

8、况我国在智能车的研究中投入了大量的资金和精力,为了能够培养出自己的研究骨干,在教育部的牵头下,我国组织了智能小车的高校比赛,以此来培养最基本的研究人才,这也符合我国的人才强国战略。这项比赛用的是飞思卡尔公司产的芯片,第一届比赛在清华大学举办,得到了各大高校的积极响应,取得了良好的效果。该项比赛,韩国有丰富的经验,他们已举办多届此类比赛。因为此项比赛涉及到了很多专业知识,尤其是必须要掌握自动控制、电子、计算机等多个领域的知识,所以能够提高大学生的知识水平。另外,比赛还可以提高学生的动手能力,弥补现在教育的弊端。 前两届比赛中组委会统一规定了赛车的模型,微型控制器选用当时最流行的16位微型控制器M

9、C9S12DG128,该控制器为飞思卡尔公司生产,性能优良,功能可靠。现在比赛最常用的是32位的Kinetis系列,主要包括Kinetis E,EA,M,L等系列、32位的MPC56xx系列、32位的Kinetis(ARM CortexTM-M4),主要包括Kinetis W,K等系列、16位的9S12系列、32位的DSC系列、ColdFire系列和8位的单片机系列(可使用两片)。飞思卡尔赛车比赛规定各队在符合条件规定的情况下,赛车跑完全程时间最短者获胜,我国在2007年的比赛中首次打败了韩国队,终止了其七连冠的记录。我国已经成功的举办了10次该项比赛,参加比赛的学校大概已经有300所,它们来

10、自全国各地,分布在30个省市、自治区。飞思卡尔比赛在我国已经办了多年,参赛队伍逐年增加,技术也相当成熟,学生们发挥自己的想象力,在原有技术上进行了大胆创新,取得了不错的效果。现在一些早期的学生已经投入到实际的智能汽车的研究之中。1.2.2 国外研究概况在飞思卡尔半导体公司的资助下,韩国在全球第一次举办了全国性质的高校智能小车比赛,并且取得了非常好的效果。第一届比赛要求参赛队选用大赛方指定的HCS12单片机、车模以及电动机。大赛规定,跑完全程用时最短的队伍获胜。参赛队伍需要自己学习并且应用嵌入式软件开发工具Codewarrior和在线开发发技术,自主开发识别最佳的行进路线,自行设计电机的驱动电路

11、、检测电路、舵机电路,以及相应的程序编写。此项比赛举办以来,已经得到了广大企业的认可,他们认为这项比赛提高了学生们的创新能力。这也是参赛队员在设计小车时不断积累经验,不断推陈出新,敢于创新的得结果。 韩国于2000年举办了第一届该类比赛的,由汉阳大学承办。在韩国每年的参赛队达到100多支,很多学校都会派出自己的队伍。韩国的企业也非常重视这项比赛,每年企业都会拿出非常丰厚的奖品,比如特等奖就奖给队员一辆现代汽车。甚至获奖选手可以有机会到德国宝马的总部研究学习。这些奖励不仅体现了企业对人才的重视,而且促进了学生的积极性。 如今的比赛不仅仅限于一国之内,高校的参赛队伍已经走出了国门,形成国际比赛机制

12、。2013年举办的国际赛当中,中国队以绝对的优势击败了美国队、日本队、巴西队、印度队、中国台湾队、墨西哥队、马来西亚队以及捷克与斯洛伐克队。国际赛的举办增进了各国的技术交流,对智能车的比赛以及技术的创新起到了积极的作用。1.3智能小车的发展前景 在智能车的研发方面,我国与欧洲、美国、日本等国家还有一些差距。智能车的开发需要很多领域的结合,如信息技术、计算机技术、电子技术等多个领域1,在这些领域我国也有了很高的发展。面对这个集汽车制造行业、信息与通信产业和交通系统复合的全新领域,我国有能力抢占这个高新技术的制高点,在未来的国际竞争中取得有利位置。我国必须把握这次机遇,制定好相应的计划、战略方针以

13、及落实到实处的措施,统筹管理,逐渐缩小与发达国家在智能车领域的差距并且超过他们。2 飞思卡尔单片机自动循迹小车系统设计总方案本设计的核心是基于K60的主控模块,车速由电机驱动模块控制、转向问题由舵机模块来控制、小车速度的检测交由测速传感器模块的检测,预判行进的路线由路径识别模块来决定。本设计实现的功能是在特定的跑道上小车自动行驶,完成在转弯处减速、在直道上加速行驶。本系统由两部分组成即硬件部分和软件部分。2.1 系统硬件部分本毕业设计选用飞思卡尔公司推出的32位K60微控器作为小车的核心控制单元。路径识别模块采用摄像头检测技术,将采集到的图像信息转化成电平信号送给微控单元K60。同时速度检测模

14、块收集到的信息同样转换成电平信号送给微控单元K60。微控单元经过内部的处理,输出PWM信号,控制电机转速以及舵机转向,达到控制速度和自动行驶的目的。要使智能小车又快又稳的行驶,不仅要控制好舵机的转向还要控制好车速。这样才能使小车在转弯的时候不会因为速度太快而偏离跑道,因此我们需要检测小车的速度,并且采取闭环的反馈机制。同时要求我们要将路径检测、车速控制以及控制转向的各个单元精密结合起来。如果传感器采集到了错误的信息,或者伺服电动机的控制出现偏差,就可能使小车出现严重的抖动,常出现的问题是小车偏离跑道;如果直流电动机的控制效果不理想,还会造成小车速度过慢等问题。本部小车的系统总体结构如图2.1所

15、示:图2.1 系统总体结构图由图可知,小车的系统是由以下几个模块组成的: (1)中央处理器单元中央处理器采用飞思卡尔MK60DN512VMD100芯片,以32位的ARM Crotex-M为内核,运算速度快,内核提供了1.25DMIPS/MHz的DSP指令。具有8位PWM输出8路和16位增强型定时器8路。CPU的主频频率为100MHz。内部Flash高至512KB,模数转换(A/D)共8路各2组,单片机功能强大,可以有效地控制小车的运行以及检测。(2)电源管理模块电源模块的作用是给各个模块提供稳定的电压,保证系统的正常运行,也是系统运行最基本的要成。电源模块要有稳压电路,因为各个模块所需要的电压

16、不同,我们还需要将电源的电压转换成所各模块所需要的电压。(3)舵机模块对模型车上的舵机进行驱动,快速并准确控制赛车的行驶方向。 (4)电机驱动模块电机模块的作用是控制小车的速度,它是通过控制电机的电压来达到控制车速的目的,当然也可以通过电机实行制动。(5)速度检测模块速度检测模块主要是用于小车速度的采集,将采集到的速度反馈给系统,系统做出反应,来调节速度,使小车以最快的平均速度平稳的跑完全程。 (6)路径识别摄像头检测模块该模块的作用是采集图像信息,并将其转换为数字信息传送给控制器,经过处理后控制舵机对小车的行进方向进行导航,同时控制车速。2.2 系统软件部分软件部分由这几个部分组成:小车的主

17、程序、寻迹程序、PWM程序、PID控制程序等组成2。采用动态阈值和边沿检测法提取黑线,保证提取黑线的稳定可靠;采用闭环PID和前瞻相结合的控制策略,并且基本上不对路型作判断,来提高赛车对赛道适应性。我们可以通过程序来处理无法检测起跑线的问题,所以不用安装红外传感器。3 智能车硬件系统3.1 单片机最小系统MC9S12XS128型开发板是一个16位的微控芯片,而MK60DN512型开发板是一个32位的微控芯片,这两款芯片都是专门用于智能小车的控制,选用这两款芯片可以缩短我们的设计时间,同时在二次开发方面也有很大的空间。MK60DN512与MC9S12XS128的比较:用MK60DN512替代传统

18、的MC9S12XS128,会大大提高计算性能;增加了RAM空间,适合更加复杂的算法;外部IO中断使用起来比S12更加的自由;提高了PWM和脉冲计数功能,使用上更加方便、更加好用;提供了更多的SPI(串行外设接口)、UART(通用异步收发传输器)、IIC通信接口(集成电路总线),增加了外设的挂载数量,调试更加方便;因此本设计最终选定了MK60DN512型开发板。最小系统板如图3.1所示。单片机是整个智能车系统的核心部分。我们所采用的单片机为飞思卡尔公司的Kinetis ARM Cortex-M4 32位系列的单片机K60DN512,共计有144个引脚封装。 K60DN512 芯片是 Kineti

19、s系列K60子系列的典型芯片,是 Kineits 系列中集成度最高的芯片。K60DN512的特性如下:(1) ARM Cortex- M4 内核的频率为100MHz;(2) 32路DMA, 供存储器以及外设使用,CPU的利用率得到了提高;(3) 10种低功耗模式,包括运行,等待,停止和断电;(4) 具有512K的Flash以及128K的SRAM; (5) 具有高度集成的硬件;(6) 2路16位AD转换; (7) 4 路可编程定时器; (8) SD卡主机控制器,6路SPI,IIS,UART,IIC,CAN; (9) USB2.0接口,支持OTG; (10) IEEE1588以太网接口,支持MII

20、通讯; (11) 工作电压1.71V3.6V,工作温度- 40105; (12) GPIO引脚有100多个,引脚可兼容5V电压。图3.1 最小系统板程序方面,主要涉及到到MK60DN512芯片中的PIT模块、PWM模块以及I/O模块等3。PIT模块主要负责采集定时数据和读取定时速度;PWM模块的作用是控制直流电动机的转速以及舵机的转向,光电编码器将收集到的信号转化为脉冲信号,我们通过计算脉冲信号来计算小车的瞬时速度;I/O模块的主要作用是分配指示灯。本次设计,主控芯片中所用到的模块主要有PIT定时器模块、PWM 模块、I/O模块等。3.1.1 PIT定时器模块PIT定时器模块本质上就是一个定时

21、器阵列,可用于中断和触发DMA。在使用中,它的所有中断都是可进行屏蔽的,PIT定时器能够单独设置自己的超时时期。产生中断标志位的原理:首先,定时器获取一个加载初值,这个初值一般要从PIT寄存器中获取,然后对获取的初值进行等差减数运算,当该数变为0时,定时器就会产生一个触发脉冲,该触发脉冲就会传送到中断标志位。K60的定时器模块在以往标准定时器的基础上添加了一些新的特点,其应用范围更加广,用32位的可编程计时器作为基准计时器的核心,时钟源用预分频器来控制。3个独立的定时器模块可以使用户方便的设置优先级。3.1.2 PWM 模块PWM模块共有3个调制波模块,每个模块都有8个通道,每个通道都可独立输

22、出,因为每个通道都是8位的,所以还可以将两个通道组成16位输出4。每个模块都可以进行计数且精度非常的高,可设置时钟周期,共有4个时钟源可供选择。时钟周期可以通过程序来设定,协议通道可设定为8字节或者16字节。PWM通道调制出的波形占空比为0100%。通过编程可以实现居中对齐输出或者左对齐输出。3.1.3 I/O模块K60拥有100个I/O引脚,很多引脚具有复用功能。当引脚复位以后,它会自动配置成高阻的状态。因为它是通用的输入引脚,所以内部没有上拉电阻。为避免浮空输入脚出现漏电流,复位初始化尽量使用上拉或者下拉,另外可使不常用引脚的方向为输出,以使该引脚不再浮空。3.1.4 时钟电路 时钟电路主

23、要由RTC和主晶振组成,主晶振的作用是产生芯片和外设所需要的工作时钟。RTC的作用是当系统上电和关闭时对时间进行测量,另外RTC消耗的功率非常低。K60系统板上的晶振为50MHz,如图 3.2 所示。图3.2 50MHz 有源晶振时钟电路我们选用32.768KHz 的振荡器提供时钟,如下图3.3所示。实时时钟RTC有专用的电源引脚 VBAT,它可以连接到具有3.3V的电池或者其它可以供给3.3V的电源。当CPU掉电时,要用外部时钟源来上电。图3.3 RTC 时钟电路3.1.5 复位电路K60 的复位电路如图3.4 所示,由图可知电路中的RESET连接到K60芯片上的复位引脚,复位引脚RESET

24、连接的电阻为4.7k,电阻的作用是提供3.3V的电压。低电平时芯片复位,高电平时则不会做出反应。按下复位键S1,RESET引脚接地,输出低电平,芯片复位。图3.4 复位电路3.1.6 JTAG接口电路K60系列芯片使用的是ARM Cortex-M4内核,本内核里面有一个JTAG接口,我们可以通过这个接口来下载程序或者调试程序。JTAG的接口电路如图3.5所示。JTAG 的对外引脚2接TMS,引脚4接TCK、引脚6接TDO、引脚8接TDI,这几个引脚和K60的PTA0PTA3四个引脚相对应。图3.5 K60的JTAG接口电路3.2 电机驱动模块电机驱动选用双电机驱动BTS79602S,它的优点是

25、性能稳定、电机能够提供足够的动力。BTS79602S是一个高度集成的芯片,是半桥型的,可以通过大电流。它的内部有两个MOSFET,分别是N沟道和P沟道,N沟道的是低边的,P沟道的是高边的。其主要功能有电流诊断,逻辑电平输入以及斜率调节。另外它还具有过压保护的作用。BTS79602S的芯片内部是一个半桥型装置。当IN=1并且INH=1时,可以使高边MOSFET导通,这个时候OUT引脚输出的是高电平;当IN=0并且INH=1时,可以使低边MOSFET导通,这个时候OUT引脚输出的是低电平。要控制MOS管的导通以及关断,我们可以通过改变连接在SR引脚的电阻来进行5。IS引脚的具有检测输出电流的作用。

26、BTS79602S赛车运行过程中是通过PWM波来控制的。当只需要单电机运行时,控制芯片的第二个引脚输入PWM波,电机一端接地,另一端接BTS79602S的输出引脚。如果是双电机运行时就要和另外一片BTS79602S芯片组成全桥控制。此外为了隔离驱动芯片并且达到保护单片机的目的,我们采用了74HC245DW芯片进行隔离保护。具体的电路如图3.6所示。图3.6 BTS7960原理图3.3路径识别摄像头检测模块3.3.1 摄像头的选择 用摄像头来识别小车的路径,也可以用红外传感器进行辅佐,因此我们有两种方案可供选择。 方案一:只用摄像头对路径进行检测。摄像头将采集到的画面经过处理以后交给处理器,能够

27、提前对小车前方的赛道进行分析,从而选择最佳的路径,及时调整小车的运行状态。这种方法在小车高速转弯时的优点更加的突出,因为提前预算了行进的路线,转弯时就计算好了控制的方法,弥补了舵机滞后的弱点。但是单独采用摄像头时,采集信息的频率低,而且容易受到光线以及场地的干扰。另外无法对起始位置进行采集。方案二:用摄像头和红外传感器相结合的方法对路径进行检测。加入红外传感器后,路径的选择受光线和场地的干扰大大降低,弥补了摄像头检测频率不足的缺点,同时红外传感器的电路设计以及软件编写都比较简单。但是红外传感器检测黑线的精度不高,而且检测的距离有限,功耗较大。加重了车身的重量,影响到了小车的启动能力和行进速度。

28、通过理论上的分析以及现场测试,单独使用摄像头完全满足要求,没有必要非得加上红外传感器。最终我们采用方案一。 摄像头方案的选择:1. 选用CCD 摄像头。采用CCD 摄像头时,采集到的图像的质量比较高。其采集到的动态效果和CMOS 摄像头采集到的动态效果相比效果也很突出。但是比较两者的功耗,CCD摄像头要高的多,电流为100mA。2.选用CMOS数字摄像头。CMOS 摄像头和CCD相比,其功耗较低,工作电流只有10mA 左右。而且CMOS摄像头采集出来的图像直接转化为数字信号,提高了单片机的处理速度。综上所述,我们决定选用CMOS数字摄像头。3.3.2 摄像头简介摄像头有彩色和黑白两类,我们寻找

29、路径时,是提取的图像的灰度信息,彩色图像完全用不到,因此图片的信息输出为黑白的。我们选用的摄像头芯片为OV7620,内部有一个双通道的A/D转换器,A/D转换器是10位的,它的输出是8位的图像数据;能够自动调节白平衡,能够对饱和度、对比度、亮度以及校正进行调节6,可以产生场同步信号7。接5V的电源,最大功耗为120mW,最小功耗为10W。这款摄像头在电脑、手机等很多产品上都可以使用8。3.4 速度检测模块 小车在运行中要保证又快又稳,这不仅要求舵机控制行进的方向,还需要将车速精确的控制在合理的范围之内,这样当小车在转弯时不至于因车速太快而冲出设定的跑道。根据所学的自动控制原理,闭环反馈系统比较

30、稳定,将测得的车速反馈给系统,形成一个闭环系统,从而达到控制车速的目的。测量小车速度一般有以下几种方法:方案一:霍尔传感器测速。本方法主要是通过安装的霍尔传感器接收脉冲信号来计算实时速度。具体做法是在后轮的轴上安装小型磁铁,小车行驶时,磁铁会产生脉冲。霍尔传感器安装在后轮的附近,行驶时它就会接收磁铁产生的脉冲。方案二:投射式光电管测速。它的原理是通过采集单位时间内小车后轮上的齿槽数,来计算小车的实时速度,要用到红外光线。但是安装不方便,可靠性不高。方案三:光电编码器测速。常用的是增量式光电编码器,将编码器的齿轮和小车后轴上的齿轮咬合在一起,小车行驶时带动编码器旋转,编码器就会产生脉冲信号,通过

31、计算单位时间内的脉冲数计算小车行驶速度。应用光电编码器测量速度不仅安装简单而且输出的信号波形规则,因此本设计方案采用光电编码器测速。在本系统中必须要保证编码器和后轮轴上的齿轮数成正。3.5 舵机模块舵机又称伺服电机。它的结构包括电位器、减数器以及电机。减数器的作用是把电机的速度减下来,同时改变电位器的位置,当电位器的电压变为零,电机停止转动,舵机转动的角度是通过电位器来改变的。舵机的信号是系统提供的PWM信号,通过改变占空比来改变舵机的转向。3.6电源管理模块电源模块是最基本的模块同时也是电路的最基本部分。本设计选用智能车竞赛专用多路电源模块,该产品为单路电池输入,多路常用电压输出,可以完全满

32、足智能车各个模块的用电需求。电源性能稳定、结构紧促、尺寸小巧,模块化的设计对于安装方面来说十分灵活。该车的电池参数为7.2V、2000mAh,可以多次充放电,稳定性好。它的电压不能直接供给各个模块使用,要转换为各模块需要的电压。转换好的电压要进行稳压,这样才能使整个系统稳定,不会因为电压突变影响效果。3.6.1 3.3V电源 3.3V 主要用于单片机的供电。在实际的应用中,电机和舵机在刚开始启动或者突然停止时,有时会造成电压突变,给硬件带来损伤,也会影响小车的正常行驶。要使电源稳定,就要安装稳压装置。本设计选用线性稳压装置,因为它的电源纹较小,符合要求。具体选用 AMS1117线性稳压芯片。具

33、体电路如图3.7所示。图3.7 3.3V电源3.6.2 5V电源本设计方案中的编码器和摄像头所需的电压相同,都为5V的电源。我们经常使用的稳压芯片有两种,分别是线性和开关稳压芯片。本设计对摄像头的电源要求比较高,输入的电源纹波必须很小才能符合条件。鉴于开关电源纹波比较大,而线性稳压电源纹波较小,故我们选择使用线性稳压芯片。实际使用中本设计选用 LM2940CT-5 线性稳压芯片。具体电路如图3.8所示。图3.8 5V电源4 软件系统的设计与实现4.1赛道信息的提取 CMOS摄像头采集的赛道信息输出时是黑白图像,图像信息通过8位高速AD转换器TL5510转化为灰度图像,灰度值范围为0255,灰度

34、图像通过软件构建的二维数组储存起来。一般情况下赛道的颜色和赛道的背景颜色差别很明显,背景颜色一般为蓝色,经过测试,赛道的颜色为白色时其灰度值在110左右,黑色时灰度值在55左右,而蓝色的背景灰度值在75左右。因此,提取赛道左右边沿有两种比较好的方法:一种称为边沿跳变检测法,另一种称为二值化法。 (1) 边沿跳变检测法的基本原理是取两个灰度值的差,然后判断差值是不是在给定的值域范围内。举例:白色赛道的灰度值减去黑线的灰度值之差为55左右(灰度值跳变较大),蓝色背景的灰度值减去黑线的灰度值之差为20左右(灰度值跳变较小),就可以把值域范围定在5060,通过判断灰度值跳变的大小程度即可确定左右边沿的

35、位置。(2) 二值化法 二值化法有两种,一种是固定阈值法和另一种是动态阈值法。固定阈值法:设定固定的阈值(灰度值),当采集到的灰度信息大于阈值时设定为1,小于设定的阈值时设定为0.这样灰度图像就转化为二值化图像了。 动态阈值法:取二维数组每行的最大和最小值,计算平均值,将平均值设定为这一行的阈值。理论上动态阈值可随光线的明暗变化自动调整阈值大小,但是在实际操作中只有在直道和弯道上的成像效果好,而在十字路口的成像效果就差强人意了。经过比较,固定阈值二值化更好,它不受赛道光线变化的影响,而且计算简单,占用单片机的资源少,所以最终选择固定阈值二值化法。4.2 PID算法介绍在实际的工程中,应用最为广

36、泛的是PID 控制,也可称为PID调节。它是通过控制器进行比例、积分和微分控制。它的算法是闭环控制算法,P为比例控制算法,I为积分控制算法,D为微分控制算法,闭环控制中最基本的算法是比例控制算法,实际运用中可以根据情况分别采用PI、PD和PID算法13。PID控制器发明于上世纪40年代,人们即使不知道被控对象的参数和结构也可根据经验进行调整。本设计选用PID 控制,大大节约了设计的周期,省去了很多复杂的计算,同时也使小车的结构更加的简化,提高了小车的可靠性和稳定性。原理框图如图 4.1 所示。4.1 PID 控制器原理计算机控制系统中我们要用到数字PID控制器,它的控制规律公式为: (4.1)

37、 (4.2)式中: k为采样的序号;k=0,1,2;r(k)-第k次给定值;c(k)-第k次的实际输出值;u(k)-第k次输出的控制量;e(k)-第k次的偏差;e(k-1)-第k-1次的偏差;TI-积分时间常数;KP-比例系数;T-采样周期;TD-微分时间常数。下面我们介绍的是各个校正环节的作用:(1) 比例环节:当系统产生偏差时,比例环节会立即做出反应,通过控制比例加快相应速度,降低稳态误差。但是比例不能过大,因为过大时会使系统产生振荡,影响系统的稳定性。选择恰当的比例,对PID 控制非常重要。 (2) 积分环节:要提高系统控制的精度,就要加入积分环节,积分控制能够消除系统的偏差。积分作用强

38、弱取决于积分常数的选定,积分常数越大,积分的作用就越弱,积分常数越小,积分作用越强。 (3) 微分环节:它的作用是通过计算偏差信号的变化率,不使偏差信号变的太大。在系统调节的早期加入偏差修正信号,使系统不会出现偏差信号变大的趋势,从而加快系统的动作速度进,达到减小调节时间的目的。 数字PID控制算法分为位置式和增量式两种。4.2.1 位置式 PID位置式 PID的控制方式中,执行控制机构是由计算机输出的u(k)直接控制,u(k)的值与执行机构的位置要相互对应,我们一般选用公式(4.2)作为位置式 PID 控制算法。位置式 PID 控制算法是全量输出,每次计算都需要用到以前的数据,需要对过去的e

39、(k)进行累加,这样就加大了计算机的工作量9。执行机构与输出u(k)对应,如果计算的数据出现了问题就会导致执行机构位置发生较大变化,这种问题在实践中是不允许出现的,在一些特殊的场合,甚至会产生较为严重的事件。为了避免出现不必要的问题,将算法改进为增量式PID 控制算法。增量式PID 控制算法和位置式PID 控制算法的区别是它们的输出不同,增量式PID 控制算法的输出是u(k)。4.2.2 增量式 PID 控制量的增量可由式(4.2)推导出来,先由式(4.2)推导出式(4.3),再用式(4.2)减去式(4.3)便可得出式(4.4),公式如下:(4.3) (4.4)式中增量式PID控制算法的形式如

40、公式(4.4),在计算机控制系统中它的采样周期T是恒定的,通过确定KP 、TI 、TD和偏差(使用前后三次的测量值),便可通过(4.4)求出控制增量。增量式 PID的优点:(1)切换时的冲击力小(切换方式包括手动/自动切换),可以实现无忧扰动切换。因为输出通道和系统的执行装置可以把信号进行锁存,所以当计算机出现问题时,能够保持原有的值。(2)因为计算机输出的是增量,当出现误动作时对系统的影响较小,可通过逻辑判断法关掉。(3)算式中的量不需要累加处理。第k次的采样值决定控制增量u(k)的大小,要获得比较好的效果时,可以通过加权处理得到。 4.2.3 PID 参数整定PID 控制的关键技术是对KP

41、、KI、KD 这几个参数进行调整10,也就是所谓的参数整定。PID参数整定的方法有两类。一种称为理论计算整定法,它的原理是根据给定的系统数学模型,通过理论上的计算来确定控制器的参数。另一种称为工程整定方法,它的原理比较简单,主要是根据工程的经验,在实验中操作中进行调整,此类方法简单并且易于掌握,在实际工程中被广泛应用。智能车系统不仅是机电高耦合的分布式系统,而且受赛道具体环境的影响大,在实际操作时很难建立一个高精密的数学模型,同时小车的机械结构需要不时的修正,模型的参数也需要相应的改变,理论计算整定法不切合实际,故选用工程整定法。4.3转向舵机的控制方法4.3.1 舵机的工作原理PWM信号通过

42、接收通道,传入到解调电路,解调电路对其进行解调,从而获得直流偏置电压。将电位器的电压和直流偏置电压相比较,两者得出一个电压差,将这个电压差交给电机驱动集成电路,用它来控制电动机的正反转11。电动机的转速是一定的,电位器是靠级联减速齿轮进行调整,当电压差调整成0时,电动机便停止转动12。PWM信号是舵机的控制信号,舵机位置的改变是通过占空比的变化而变化。舵机的直流电动机和控制线路由电源线和地线来提供电源。这里需要的电源是3.3V14。控制线的作用是提供一个方波脉冲信号,该脉冲信号的宽度可调且是周期性方波,方波信号的频率为50Hz。舵机转轴的角度随着方波脉冲宽度改变而改变,它们俩成正比例关系。4.

43、3.2 舵机的 PID 控制 对于舵机的控制,我们采用PID闭环控制,提取图像黑线然后求得平均值,平均值和舵机 PID的参考角度值形成一次线性关系15。当偏离中心线很小时,可以将Kp的值设置的小一些,几乎接近0,为了使赛车行驶时更加的稳定,在直道上时可以有一定的修正功能,所以没有直接设置成0。车子在直道上行驶时基本上是直线加速状态,车身左右抖动比较小。145 开发平台介绍5.1 IAR Embedded Workbench IDE简介IAR Systems 公司为ARM微处理器专门研发了IAR Embedded Workbench for ARM集成开发环境。和其它开发环境相比较,IAR Em

44、bedded Workbench for ARM入门更加容易、使用更加方便、代码也更加紧凑。在嵌入式 IAR Embedded Workbench IDE的框架里,它能够允许任何可用的工具完美的嵌入其中,以下为嵌入的工具: 1.AVR IAR汇编器; 2.IAR XAR库创建器和IAR XLIB Librarian; 3.高度优化的IAR AVR C/C+编译器; 4.一个工程管理器; 5.一个强大的编辑器; 6.一个具有世界先进水平的高级语言调试器; 7.高度优化的IAR AVR C/C+编译器; 8.通用IAR XLINK Linker;5.2 IAR Embedded Workbench

45、的功能及特点 嵌入式IAR Embedded Workbench适用的微控制器和微处理器有8 位、16 位以及32 位,因此,用户即使是开发新的项目,开发环境也是以前熟悉的环境。它的开发环境用户学起来比较容易上手,具有最大量的代码继承能力,可以支持大多数甚至一些特殊的目标。嵌入式IAR Embedded Workbench不仅有效提高了用户的工作效率,而且通过使用IAR工具,大大节省了用户的工作时间。我们称这种理念为不同构架下的同一解决方案。 IAR Embedded Workbench 操作界面不仅非常简洁而且工具栏的布局也非常合理清晰,运用不同的功能也非常的方便。IAR Embedded

46、Workbench开发环境可以很好的兼容Freescale公司生产的K60系列处理器。具体的操作界面如下图5.1 所示。图 5.1 IAR Embedded Workbench 运行界面IAR Embedded Workbench for ARM version 4.30专门用于ARM处理器的集成开发环境,它包含有编辑器、项目管理器、RTOS的测试工具以及编译连接工具。我们在这种环境下运用C/C+和汇编语言来开发嵌入式应用程序。以下为嵌入式应用的一些特点: 1.提供了一个轻量的运行库,使用户可以根据自己的需要自行进行配置,它还提供了所有的源代码; 2.对特定处理器的速度进行了优化,通用编译器的

47、功能进行了优化,存储器的功能进行了优化;3.对一些不需要的变量和函数进行了删减;4.存储器控制灵活,可以很详细的为数据和代码分配地址;5.校验和生成功能是可选的,它主要在运行时进行映像校验;6.C/C+变M和函数连接时的全局类型需要检查;7.可重定位宏汇编器功能强大,能支持的命令集和操作符丰富;8.代码和数据可以自动的放置到不连续的存储区域;9.代码覆盖率高,具有强大的执行时间分析工具。在 IAR Embedded Workbench for ARM version 4.30 开发环境下,可以很方便将程序烧录大单片机系统中。烧录时要将烧录器连接到单片机的最小系统和上位机,然后选择芯片烧录,很快

48、程序就能烧录到单片机最小系统中了。烧录过程中要注意必须保持烧录器连接的稳定,不能使其断开,另外一定要安装好相应的驱动程序。烧录界面如图 5.2 所示。图5.2 IAR Embedded Workbench 程序烧写界面图 5.2 烧录界面嵌入式调试的一些特点:1.执行控制非常的细化;2.源代码集成度高;3.有反汇编程序调试器;4.代码和数据断点比较复杂;5.数据监视功能很丰富;6.支持STL容器;7.Watch, Locals, Quick Watch, Auto, Live Watch和Watch 等变量查看窗口;8.当双击位于调用链上的任何函数时,都会更新局部变量、编辑器、寄存器、反汇编窗

49、口和变量查看;9. 控制台I/O仿真;10.具有跟踪功能,可以检查执行过的历史记录。在跟踪窗口里面,当移动鼠标时,编辑器和反汇编窗口会自动更新用来显示合适的位置;11.中断和I/O模拟仿真;12.主机执行的应用系统程序能够调用仿真;13.具有和C语言类似的宏系统,扩大了调试器的功能。5.3 硬件开发平台Altium Designer硬件的设计制作选用Altium公司开发的Altium Designer 09。Altium Designer是一个电子产品开发系统,是一个软件集成平台,能够把电子开发所需要的工具整合到一个软件中。Altium Designer包含的工具有:原理图设计、PCB绘制编辑

50、、电路的仿真、设计输出、拓扑逻辑自动布线以及信号完整分析等。除此之外,Altium Designer的工作环境还可以人为定制,大大满足了用户的不等需求。 Altium Designer 09版本改善了以前版本留下来的很多工具问题。机械层设置上增加了更多的机械层,加强了原理图网络类的定义。这个版本更加的关注于提高测试点的管理与分配、嵌入式软件的精简、流畅的License管理以及软件设计过程中的智能化调试等功能。Altium Designer09 运行界面如图5.3 所示。图 5.3 Altium Designer09 运行界面目前此款软件的最新版本是Altium Designer 16。在此次更

51、新中对Altium Designer 16的平台进行了扩展,包括多个增强PCB设计生产效率与设计自动化的全新特性,从而使工程师能够在更短的时间内零差错地实现更复杂的PCB设计。全新的备选元器件选择系统为设计者提供备选元器件选择,帮助设计者全面控制元器件的选择过程。可视化间距边界为设计者提供了电路板上不同对象间的可视化间距边界,帮助设计者实时了解其布线决策对整体设计的影响。全新的元器件布局系统为设计者提供全新的元器件布局选项,帮助设计者实现最条例高效的电路板布局。6结 论 本文分别从智能车的电路设计、程序控制以及调试过程来讲了这个基于CMOS 摄像头智能车的整体方案。在智能车的设计过程中,我不仅

52、查阅了大量的资料并对其进行研究,而且对特定的设计和原理进行了实验,如对车前轮的机械调整在智能车的制作过程中。这次的毕业设计遇到了很多困难,一开始做的时候不知道从哪里下手,于是乎就开始读资料,一点点分析原理,这样就有了一个大体的设计思路。但当实际去操作时,问题又出现了,很多东西在以前的学习中并没有遇见过。为了解决动手能力的不足,特别向学校里的实验室的同学请教,他们帮助解决了很多问题。当某个困难解决时,思路就马上变的清晰了很多。设计方案的书写也遇到很多困难,一些专业解释不能准确地表达,经过反复修改,才能达到要求。这次设计,我将学到的知识和实践相结合,不仅提升了自己的知识水平,而且补足了原来动手能力

53、不足的问题。将学到的知识进行了系统的整理,同时也提高了对专业知识的兴趣。参 考 文 献1 于丰华,雷宇桥. 基于OV7620的智能车算法研究J. 电子技术应用,2013,17:69-762 王晓翔,孙涛. 基于Freescale Kinetis EA系列MCU的CAN Bootloader设计J.电子产品世界,2012,07:79-833 赵一夔. 基于ARM Cortex-M3的嵌入式系统设计与实现J.中电网,2010,01:11-134 李伟龙.智能循迹小车设计J.甘肃科技,2013,15:15-175 林文建. 两轮自平衡机器人控制系统设计与实现J.电子测量与仪器学报,2013,08:7

54、50-7596 乔永征. 基于OV7620和FPGA的图像采集系统设计J.计算机测量与控制,2009,17:1857-18597 周鑫. 第二代基于ARM Cortex-M4的飞思卡尔MCU的电源效率达到新水平J.单片机与嵌入式系统应用,2014,02:76-778 孙延明,曹军,刘亚秋. PID控制在中密度纤维板施胶中的应用J. 木材加工机械,2007,01:26-299 曾伟钦,徐东升. .基于光电导航的自主循迹智能车系统设计J. 电子世界,2012,08:128-13010 张晴,袁晓梅. 基于PWM信号遥控机器人的设计与制作J. 数字技术与应用,2010,11:8011 邵秋萍.控制技

55、术在机电类专业建设中的整合与实践J. 中国电力教育,2009,135:108-10912 吴峰,张河新. 单片机控制脉宽调制在气动调压阀中的应用J. 阀门,2011,06:30-3313 陈玉,王静平,奚琳. 智能PID控制器控制算法及其仿真研究J.工程与试验,2011,03:66-6914 吴华波,钱春来.基于AT89C2051的多路舵机控制器设计J.单片机与嵌入式系统应用,2013,08,55:5815 马春城,郭循钊. 智能寻迹模型车的控制策略及算法研究J. 电子设计工程,2014,04:104-10716 DN Mpcec. Freescale Semiconductor Techni

56、cal Data. J.Eetimes Com,2013,04:23-2817 B Remenant. Sequencing of K60, type strain of the major plant pathogen Ralstonia solanacearumJ.Journal of Bacteriology,2012,194(10):2742-3附录1电路原理图 附录2 PCB图附录3 元件清单CommentDesignatorFootprintQuantity100nFC1, C2, C3, C6, C7, C12C08056100nFC4, C5C08052Cap Pol1C8,

57、C9CAPPR2-5x6.82CapC10, C11CAPR2.54-5.1x3.22100uFCD1, CD2, CD3, CD4C2.5x6.34W/P-LCC-2D1, D2P-LCC-22保险丝座F1保险丝座1小拨动开关K1, K2小拨动开关2拨动开关K3拨动开关1bomakaiguanM1BOMAKAIGUAN1Header 2P1, P5HDR1X22Header 8X2P2HDR2X81Header 9X2P3, P6HDR2X92Header 3P4, P19, P20HDR1X33Header 9P7HDR1X91Header 3X2P8HDR2X31Header 7X2P9

58、HDR2X71Header 4X2P10, P14, P17HDR2X43Header 4P11, P12, P13, P16HDR1X447.2V电源插座P15, P187.2V电源插座210kR/1%R1, R2, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14R0805121kR/1%R3, R4R080524.7kR/1%R15, R16R08052Button_2PinS1, S2, S3, S4Button_2Pin4LM2940U1, U4LM29402LM1117-3.3U2SOT2231change1 K60U3PCBComponent

59、_1 - duplicate1附录5 部分程序源代码/*舵机PD调节*/ FTM_PWM_Duty(FTM1,servo,(uint32)SteeringPIDCalc(&STEERING); gpio_turn(test); sprintf(c,%d %d %d %d %d,SquareFlag,Line_Flag,ValidRow,STEERING.OUT,STEERING.setpulse); LCD_clear(); LCD_set_XY(1,1); LCD_write_str(c); LCD_set_XY(1,2); sprintf(c,%d %d %d,Left_Motor.set

60、pulse,Right_Motor.setpulse,a); LCD_write_str(c); LCD_set_XY(1,3); sprintf(c,%d,bus_clk_khz); LCD_write_str(c); EnableInterrupts; /*测速中断计算PID*/void pit0_handler() PIT_Flag_Clear(PIT0); Left_Motor.backpulse=(short)(back*DMA_count_get(DMA_CH0); Right_Motor.backpulse=(short)(back*DMA_count_get(DMA_CH1); left_count=MotorPIDCalc(&Left_Motor); right_count=MotorPIDCalc(&Right_Motor); if(left_count=0) FTM_PWM_Duty(FTM0,FTM_CH1,0); FTM_PWM_Duty(FTM0,FTM_CH2,left_count); else FTM_

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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