基于嵌入式控制系统的智能循迹避障小车毕业论文
2020-02-19 19:02:03
摘 要
随着科技的不断进步,人们对汽车的控制有了越来越高的要求,由于传统的车辆都是依靠人来判断道路环境并操纵汽车,存在疲劳驾驶、操作失误等重大安全隐患,为了避免此类问题,需要设计新型的智能车,能够依靠提前设置的程序自主的运行,且运行效率高,既环保又安全。本文的内容是设计一种基于嵌入式系统的智能小车,主控系统采用功能全面,性价比高的stc89c51单片机,电机控制部分采用了l298n芯片,此外还使用了红外避障传感器,超声波测距模块,红外循迹传感器等硬件模块,实现小车的黑线循迹,测距,避障等功能。由于在超声波测量距离的过程中会受到温度、噪声等的影响,使得测量结果中包含大量的噪声,为了减少这些扰动带来的精度下降等问题,也为了使测量结果更加接近真实值,使用了卡尔曼滤波算法对数据进行处理。根据小车运行的情况建立模型,卡尔曼滤波器能够根据模型的系统方程和观测方程对数据进行迭代运算,使用MATLAB对算法进行了仿真验证和分析。
关键词:智能小车 避障 循迹 卡尔曼滤波器
Abstract
With the continuous advancement of technology technology, people have higher requirements for car control. Because traditional vehicles rely on people to judge and operate , there are hidden danger like fatigue driving, operating errors and other major safety risks. To avoid such problems, it is necessary to design a new type of intelligent vehicle, which can operate independently depending on a predetermined program with high operating efficiency. It is both environmentally friendly and safe. The content of this paper is to design an intelligent car based on embedded system. The main control system uses STC89C51 chip with comprehensive functions and high cost-effective . The motor control part is L298N . In addition, the hardware modules such as infrared obstacle avoidance sensor, ultrasonic ranging module and infrared tracking sensor are used to realize the functions of black line tracking, ranging and obstacle avoidance of the car. Because of the influence of temperature and noise in the process of ultrasonic distance measurement, the measurement results include a large amount of noise. In order to reduce the accuracy decline caused by these disturbances, and to make the measurement results closer to the true value, Kalman filter algorithm is used to process the data. The Kalman filter can iterate the data according to the system equation and observation equation of the model. The algorithm is simulated and analyzed by MATLAB.
Keyword : Intelligent Automobile、Tracing、Obstacle avoidance、Kalman filter
目录
第1章 绪论 1
1.1研究背景和意义 1
1.2国内外研究历史与现状 1
1.3全文综述与结构 3
第2章 硬件设计 4
2.1主控系统芯片 4
2.1.1单片机概述 5
2.1.2 最小应用系统设计 6
2.2避障传感器设计 8
2.3循迹传感器设计 9
2.4电机模块 10
2.5电机驱动模块 10
2.6测距传感器 12
第3章 软件设计 13
3.1软件设计的总体框架图 13
3.2 黑线循迹设计与实现 14
3.3 红外避障软件设计 15
3.4 PWM理论知识 16
第4章 卡尔曼滤波器在测距中的应用 18
4.1卡尔曼滤波器的提出 18
4.2卡尔曼滤波器原理 18
4.2.1卡尔曼滤波器的基本方程 18
4.2.2 卡尔曼滤波递推公式 19
4.3卡尔曼滤波器的应用与仿真 20
第5章 调试与实物图 24
5.1 硬件调试 24
5.2软件调试 24
5.3软硬联调 25
第6章 总结与展望 26
6.1总结 26
6.2展望 26
参考文献 27
附录 A 电路图 28
附录 B 单片机程序 29
附录 C MATLAB程序 36
致谢 37
第1章 绪论
1.1研究背景和意义
自工业革命以来,机器的诞生极大的促进了人类社会的发展。而智能车就是其中的一种。智能车作为一种移动机器人,集成了感知环境,定位导航,路径规划、自动行驶等功能,运用了计算机、自动控制、传感器技术、通信、人工智能、信息融合等多学科的知识。智能车的应用是多方面的,比如在物流仓库存储方面,早期的物流仓库多是人工分拣,采用的也是手动的机械搬运设备,存在着效率不高,费时费力等缺点,而智能车的使用能够大幅减少工人的工作量,减少成本投入,提高仓储效率,具有重要的作用和地位;在环境评估和灾后救援方面,智能车能够代替人类进入严重污染的区域开展侦查活动并完成实时的监控,当发生地震等灾害后,智能车能够快速进入废墟等路面情况比较复杂的地形进行作业,并配合救援人员完成一系列救援工作;同时,近年来随着大数据、互联网技术的飞速发展,无人驾驶也取得了进展。随着物联网技术、信息技术与控制技术的不断发展,智能车在工业生产、物流运输、地质勘探等领域扮演着越来越重要的角色。智能车要完成上述的各种功能,需要一些基础的功能,首先,自主循迹是智能车在各种环境中必备的一项功能,循迹有很多种方式,如电磁感应导引、磁带导引、光学导引、激光导引、惯性导引、视觉导引等[1],本次设计的是基于光学引导的黑线循迹。汽车在行驶过程中,总会碰到各种各样的障碍物,为了躲避这些障碍物,汽车可以通过使用激光测距、红外扫描、探测雷达以及视觉识别等不同的传感器采集车辆周围的环境信息[2],通过主控系统的判断控制汽车躲避障碍物。
1.2国内外研究历史与现状
国外研究智能汽车的时间较早,比如世界上第一台寻迹车由美国巴雷特公司制造的,通过在寻迹车上方安装导引线来完成自动导引[3],该系统是基于牵引式拖拉机改造的,与物流系统结合后能大幅提高运输速度和生产效率。随后,世界主要发达国家纷纷投入到智能车的研发中,其中自动引导小车的发展十分迅猛,从磁引导等有线方式发展到运用激光图像传感器等无线方式,自动引导小车的自动化水平越来越高。法国贡比涅技术大学和索邦大学的吉尔·塔涅等人为了研究车辆的横向研究,设计了一种控制器并进行横向动力学设计和验证[4],可以实现车辆相对于给定参考路径的横向位移最小化,并证明了所提出的控制方法的鲁棒性和其他性能都比较出色,最后也根据对控制器做出了一定的改进。意大利摩德纳大学的瓦莱里奥·迪加尼等人针对工业中的自动引导车(AGV)的避障问题提出一种新的算法[5],他们推导了一种计算路线图局部偏差的方法。这些偏差由各自动引导小车根据车载传感器获取的信息以及由中央集权控制中心收集的全球环境知识进行本地计算。AGV利用与路线图的局部偏差,避免与障碍物发生碰撞,同时仍朝着目标前进。谷歌公司于2014年宣布首款无人驾驶汽车原型制造完毕,该汽车项目涉及到复杂的软硬件系统,使用了雷达传感器、激光传感器等许多传感器,通过这些传感器实时获得车辆前方与周边的地图位置等信息,不需要人来操控,就可以在复杂的道路环境下行驶,不过目前还在进行各项道路测试,距离实际应用可能还需要一段时间。日本成立了道路交通车辆智能化推进协会,由于交通事故的发生比较多,并且大量的汽车在运行时会释放很多有害气体,其中的二氧化碳更是全球变暖的主要原因之一,因此,日本制定了ITS框架体系,可以有效缓解上述问题。该框架体系组成大致可以分为如下几个部分:紧急车辆运行系统、专业运输车辆管理、车辆导航系统、紧急车辆运行系统安全驾驶、自动收费系统、高效的道路路政管理系统、交通组织优化系统、公共交通信息系统、行人辅助系统等。德国大众汽车公司和德国有关部门研制出了caravelle控制系统,将普通的车和摄像机、计算机、定位仪等结合,包含了车载控制单元和众多传感器,使得车辆能够快速识别复杂的公路并且能够对车辆进行控制,普通高速里上时速达120km/h。
国内对智能汽车的研究也有一定的成就,比如由上港集团、上海振华重工联合打造的上海洋山深水四期码头,巨大的港区空无一人,全是自动引导小车在运行,它配有智能控制系统,由于码头是一个十分复杂的运行环境,所以码头的交通状况有时难以提前预测与规划,除了无人驾驶、自动导航、路径优化、主动避障外,AGV小车还能自主诊断故障、监控电量[6]。这个控制系统就可以自动规划好很多可以前进的路线,并从中选取最快捷的一条运行。这些都使得港口的运行更加高效、安全。在智能车定位研究方面,李军政研究了基于模态优化卡尔曼滤波的超声波定位[7]。他研究了超声波的定位原理以及定位所产生的误差,使用了卡尔曼滤波算法、扩展卡尔曼滤波算法对误差进行滤波,又加入了经验模态分解算法使得去噪效果更好。杨凯和在汽车主动预警方面进行了研究[8],他在各种测距方式中选择了比较成熟且性能优越的毫米波雷达测距方式,研究了毫米波雷达测距的原理,建立雷达波形模型,使用了傅里叶变换和傅里叶快速变换算法以及卡尔曼滤波算法获取目标车辆的距离信息,进行了仿真验证。在车辆导航与循迹方面,管信提出了一种基于DGNSS/INS组合导航系统的电动智能车辆循迹控制方法[9],他主要从无人车辆循迹导航控制方面入手,使用差分卫星定位系统/惯性导航系统对车辆进行定位,搭建了电动汽车的模型并设计了循迹控制器,可以分别在高速行驶状态和低速行驶状态对车辆进行精准的控制。2018年12月8日,嫦娥四号探测器成功发射,并且在2019年1月3日成功着陆于月球背面,月球车玉兔二号到达月面并开始巡视探测,进行相应的科学研究,这也是智能车辆和航空航天领域的结合应用。
1.3全文综述与结构
本设计是一款基于嵌入式控制系统的能够黑线循迹,避开障碍物的小车,用到的嵌入式芯片是STC89C51单片机。在避障系统中,为了能够更加精确的判断小车与障碍物的关系,还加入了超声波测距模块用于距离的测量,要过滤测量过程中的各种噪声,就要选择合适的滤波器,本文采用卡尔曼滤波器,卡尔曼滤波算法是一种线性、无偏和估计偏差方差最小的最优估计算法[10],智能小车可以看成智能车辆的一个基础,可以在这个基础上拓展出具有更多功能的智能车辆,许多技术都可以和智能小车结合从而产生新的产品,所以本文还将小车与卡尔曼滤波器相结合,并做了相应的仿真,得到了令人满意的结果。
第一章主要介绍了论文的研究对象以及智能小车的国内外发展状况。
第二章是硬件部分的设计与方案选择,介绍了本次毕设所用到的硬件,如单片机,红外反射式传感器,电机驱动模块,直流电机等。
第三章是软件的设计部分,所使用的编译器是keil uvision4,且使用了c51作为编程语言。其中包括小车调速的原理与编程实现,有循迹部分和避障部分的软件设计等。
第四章是卡尔曼滤波器的理论学习以及根据测距传感器的数据进行的仿真实验。
第五章是小车的软件部分调试和硬件部分的调试以及软硬联调,且有对应的实物图。
第六章是本次毕设的总结以及对未来的研究方向的一些展望。
第2章 硬件设计
总体的方案思路是选取构成小车的各个模块,其中有主控模块,避障模块,电机模块,电机控制模块等。小车通过避障、循迹模块等获得道路信息并发送给主控模块,主控部分根据发回的信号做出相应的判断,并且控制电机的转动方向和转动速度等使得小车能够实时的前进,后退或停止。总体的电路图在附录A中。总体的方案示意图如下图2.1所示:
图2.1 总体方案示意图
2.1主控系统芯片
单片机的种类有很多,像最早由INTEL公司推出的8051系列单片机,还有ATMEL公司于上世纪九十年代推出的AVR单片机,又比如ti公司的采用冯诺依曼结构的MSP430单片机,还有基于ARM技术的单片机如stm32等等。这些单片机各有优势下面选取其中两种作为备选方案
方案一:51系列单片机st89c51
该单片机是stc公司推出的,能够满足许多需求而且价格便宜,相比其他单片机更容易上手,缺点是内部集成度不是特别高,所以有些功能需要外加电路,而且性能相对比较低。stc89c52片内各个部件都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。但cpu对外围部件的控制是采用特殊功能寄存器的集中控制方式。
方案二:stm32
Stm32是基于arm内核的芯片,由意法半导体公司推出。特点就是性能高,功耗低,功能强大,但是入门难度也比较大控制没有51系列简单
综上,51系列单片机已经可以满足本次设计所需的性能,且性价比高,控制难度更低,容易操作,所以选用st89c51作为本次设计的主控系统。
2.1.1单片机概述
单片机,也就是单片微型计算机,是一种集成电路芯片[11],也就是一种在一片半导体硅上集成了中央处理单元(CPU)、只读存储器(ROM)、随机存储器(RAM)、并行I/O口、串行I/O口、定时器、中断系统、时钟电路、系统总线等功能单元的微型计算机系统。自从上世纪七十年代单片机诞生以来,它已经广泛应用于各个场合,大到工厂的自动化生产线,小到家庭电器的控制,单片机可以说无处不在了。这也是单片机应用起来简单方便,功能齐全,抗干扰能力强,体积小易于嵌入,功耗低等一系列优点所决定的,其中,单片机最具有优势的特点便是它的体积可以很小,这就使得单片机可以很好地嵌入到一个系统中,而不像传统的电脑中的处理器一样,由于体积相对较大而只能与显示器等组成一个较大的系统。单片机作为一个微型的计算机,其基本的结构大致分为两种,即冯诺依曼结构和哈佛结构,我们都知道,在计算机内部不论是计算还是存储,都采用的是二进制,这是冯诺依曼结构的一条原则,也是受物理结构限制的结果。其次,冯诺依曼结构必须包含几个重要的硬件,也就是运算器、控制器、存储器、输入设备和输出设备,也就是单片机中的中央处理单元、程序储存器、数据存储器、各个可以作为输出输入通道的输入输出口的。第三个特点就是存储器中同时存储着程序和数据,这也限制了计算机运行的速度。最后一项便是计算机在执行程序时是按顺序依次执行每一条指令。正是由于这个结构的简单与低成本使得大部分单片机都采用了冯诺依曼结构。不过随着对速度的追求不断提高,现在也发展处了很多采取哈弗结构的单片机,其特点就是程序和数据是分开储存的,提高了数据处理能力。
本次使用的单片机的具体型号是stc89c51,是dip40引脚风封装,包含4组并行输入输出(I/O)引脚,每一组是8个,还有4个控制信号引脚、2个时钟引脚和2个电源引脚。其内部结构如下图所示
图2.2 stc89c51单片机内部结构
此单片机中有一个8位的微处理器,内含运算器和控制器两个部分,有面向控制的位处理功能和位控功能。片内有128字节的数据存储器,也可以进行最多64k字节片外扩展,数据存储器的作用是存储程序运行过程中产生的中间结果、标志位等需要快速写入和读取的数据。另外还有用来存储程序的程序存储器,不过由于单片机集成度高,体积较小,片内只读存储器一般容量较小,为4k字节,所以在编写程序时需要注意程序的大小,尤其是在数组定义时需要考虑数组的类型与大小,防止空间的浪费,不过此单片机只读存储器可以根据需求扩至64k字节。该单片机的中断系统包含5个中断源,具有2级中断优先权。片内还拥有有2个具有四种工作方式的16位定时器/计数器。单片机有1个全双工的串行口,也具有四种工作方式。4组 并行输入输出口分别是P1口、P2口、P3口、P4口,其中p0口是漏极开路的双向输入输出口,可以作为地址总线使用,p1口是准双向输入输出口,p2口也是准双向输入输出口,不过可以和p0口一起作为地址总线使用,p3口也是准双向输入输出口,不过拥有第二功能。单片机我认为最重要的硬件部分的特殊功能寄存器,用于对片内的各功能的部件进行管理、控制、监视。实际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。最后,该单片机有一个看门狗定时器,顾名思义,当程序跑飞或者陷入死循环时看门狗可以让单片机复位并恢复程序的正常运行。
2.1.2 最小应用系统设计
80C51单片机不包含外部电路,所以要构成最小应用系统,还需要和复位电路和时钟电路
1、时钟电路
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: