基于光电传感器的智能小车控制系统设计与实现.docx
《基于光电传感器的智能小车控制系统设计与实现.docx》由会员分享,可在线阅读,更多相关《基于光电传感器的智能小车控制系统设计与实现.docx(40页珍藏版)》请在冰豆网上搜索。
![基于光电传感器的智能小车控制系统设计与实现.docx](https://file1.bdocx.com/fileroot1/2023-2/1/a34cc721-e390-4780-b211-eb631447dce3/a34cc721-e390-4780-b211-eb631447dce31.gif)
基于光电传感器的智能小车控制系统设计与实现
第1章 绪论
闭环控制是自动控制论的一个基本概念,也称反馈控制,在日常生活的各种控制实例中有具体的表现方式,比如常用交通工具中电车的速度控制,汽车的速度控制,冰箱的温度调节等,其中采用闭环控制方案对直流电机进行调速是生产生活中最常见的一种闭环控制实例。
在工业自动化飞速发展的今天,利用高性能单片机来完成对仪器设备的自动化控制是其中最重要的一个环节。
本文研究对象是基于Freescale单片机的移动小车控制系统设计,涉及到对直流电机的速度控制,舵机转向的控制,应用了所学的电路基础知识、自动控制理论知识,又充分利用了Freescale单片机的高性能与可靠性。
1.1 速度闭环控制系统
随着工业自动化以及电子信息技术和自动控制技术的不断发展,电机的种类不断增加,性能也更加出色。
以电机为动力的车辆的自动化程度也越来越高,对车辆自动化程度的要求也越来越高,电车近几十年来发展十分迅速,直流电机电瓶车的速度控制水平也得到了极大的提高。
转速控制作为电机控制中最关键的部分,具体反映到电车就是在车体速度控制上,而速度闭环控制作为重要的控制方式,得到了最广泛的应用。
直流电机速度闭环控制系统包括以下内容:
(1)直流电机在接到起动电压后起动;
(2)转速达到预设速度后,利用PWM脉宽调制电路产生方波,并通过单片机设定占空比,达到无级调速;
(3)采用直流电机反接制动原理来调速,在增量PID控制算法下达到稳定转速的效果。
速度闭环控制系统硬件组成:
(1)PWM脉宽调制电路
(2)测速装置(光电编码器)
(3)动力装置(直流电机)
(4)直流电机驱动器
本设计以FreescaleCodeWarrior为开发环境,采用MC9S12XS128(16位)MCU(MicroControlUnit)作为主控芯片,利用MC9S12XS128教学实验系统并增加必要的外围辅助电路,设计完成直流电机的速度闭环控制,直流电机驱动器,整个系统的设计不仅是对小车控制系统的开发,达到了理论与实践的结合,加深了对自动控制理论的了解。
1.2直流电机闭环控制的目的和意义
电机在工业生产中的主要控制方式为闭环控制,电机闭环控制技术的不断改进带来生产和生活了众多的好处:
能够提高电机运行过程中的平稳,进而使以电机为动力的机械可靠性增加;增加各类机械中的自动化技术含量;增加电力机车在交通运输工具中所占的比例,减少环境污染等。
而为了提高直流电机调速系统的动静态性能指标,通常采用闭环控制系统(包括单闭环系统和多闭环系统)。
对调速指标要求不高的场合,采用单闭环系统,而对调速指标较高的则采用多闭环系统。
按反馈的方式不同可分为转速反馈、电流反馈、电压反馈等。
在单闭环控制系统中,转速单闭环使用较多。
在对调速性能有较高要求的领域常利用直流电机作动力,但直流电机开环系统稳态性能不能满足要求,可利用速度负反馈提高稳态精度。
反馈控制系统的规律是要想维持系统中的某个物理量基本不变,就引用该被控量的负反馈信号去与恒值给定相比较,构成闭环系统。
对调速系统来说,若想提高动静态指标,希望电机转速在负载电流变化时或受到扰动时基本不变。
要想维持转速这一物理量不变,最直接和最有效的方式就是采用转速负反馈构成速度闭环控制系统。
PWM简称脉宽调制,即英文PulseWidthModulation的缩写,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。
采用单片机产生PWM脉冲进行直流电机的无级调速是目前直流电机调速的最常用方法之一。
1.3 主要内容
本文以FreescaleCodeWarrior为开发环境,采用飞思卡尔MC9S12XS128(16位)MCU作为主控芯片,进行课题的设计与研究。
具体研究内容如下:
1、选用恒压恒流H桥式驱动芯片L298N,完成基于PWM(脉宽调制)电路的直流电机驱动器设计,实现对7.2V直流电机的无级调速。
2、采用增量式PID控制算法进行直流电机闭环控制程序设计,编写相应C语言程序,完成对直流电机的速度单闭环控制,从而实现小车速度的实时控制。
3、基于超声波测距原理设计倒车防撞报警器,并用C语言编写功能程序,使小车在倒车过程具有防撞报警功能。
4、设计制作LCD显示系统,用于显示小车的实时速度值,使速度量可视化,完善小车功能。
5、利用Freescale单片机开发板和FreescaleCodeWarrior4.7开发软件包,完成对速度闭环控制程序、超声波倒车防撞报警程序、LCD显示功能程序的调试。
第2章 总体设计思路及方案论证
基于FreescaleS12单片机对移动小车控制系统进行设计,实现对小车的速度闭环控制。
因为需要设计直流电机驱动器、倒车防撞报警器、LCD液晶显示系统等硬件实物,并通过FreescaleCodeWarrior4.7软件包开发设计相应的驱动和功能程序,所以对设计总体思路进行把握主要工作分为两部分:
硬件和软件。
首先对硬件和软件的设计方案分别进行可行性论证,在此基础上才能进行具体的方案设计与软硬件调试。
2.1 硬件设计方案论证
采用FreescaleMCU作为控制芯片,对个功能模块进行控制。
由于涉及到的功能相对较多,首先需要在原理上对每一部分功能模块进行分析,再把软硬件集成到一起进行可行性论证。
2.1.1 单片机模块方案
MC9S12XS128属于FreescaleMC9S12系列微控制器[19],是飞思卡尔半导体公司的汽车电子类产品,早在飞思卡尔还没有从摩托罗拉分离出来前就已经诞生了。
其内核为CPU12高速处理器。
MC9S12XS128拥有丰富的片内资源,flash达128kb,加入裁减过的µC/OS都没有问题,所以对于中等复杂程度的控制系统它不用扩充片外存储器。
1、FreescaleMC9S12系列微控制器
FreescaleMC9S12系列MCU是以高速CPU12内核为基础的微控列,简称S12系列[2]。
典型的HC12总线频率为8MHz,而典型的S12总线频率为25MHz。
HC12与S12指令完全兼容,故统称为HCS12系列微控制器。
智能产品的设计人员可利用S12系列微控制器低成本的FLASH存储器,轻松实现以微控制器为基础的远程升级、换代和现场进行快速再编程系统设计,可缩短嵌入式产品的设计周期,改善性能,同时亦降低售后服务系统的整体成本。
S12微控制器已广泛应用于通信、工业以及无数消费类电子产品中,例如空调、冰箱、PC外围设备和通信机电产品等。
S12系列微控制器主要有A、B、C、D、E、F、G、H、L等系列,分为以下几大类:
(1)MC9S12A系列和B系列16位微控制器;
(2)带CAN总线的MC9S12D系列16位微控制器;
(3)带液晶驱动的MC9S12H系列和MC9S12L系列16位微控制器;
(4)低供电电压的MC9S12E128和MC9S12E64系列16位微控制器;
(5)带USB接口的MC9S12UF32系列16位微控制器;
(6)带以太网接口的MC9S12NE系列16位微控制器。
S12系列微控制器有以下优点:
(1)S12系列具有FLASH存储器;
(2)S12系列采用的C语言已进行了最优化设计,编码方式效率高;
(3)S12系列具有低成本调试功能。
2、MC9S12XS128微控制器的组成
MC9S12XS128有16路AD转换,精度最高可设置为10位;有8路8位PWM并可两两级联为16位精度PWM,特别适合用于控制多电机系统。
它的串行通信端口也非常丰富,有2路SCI,2路SPI此外还有IIC,CAN总线,增强型捕捉定时器等端口,并且采用了引角复用功能,使得这些功能引角也可设置为普通的I/O端口使用。
此外它内部还集成了完整的模糊逻辑指令,可大大简化我们的程序设计。
MC9S2XS128的封装有两种,一种为80引角的QFP-8封装形式,它没有引出扩展总线,且AD转换只引出了8路;一种为112引角的LQFP-112封装形式,两种都采用了表面贴片式封装。
从下面的引角图我们可以看到MC9S2XS128的引角复用情况,一个引角往往有双重或多重功能,而这些功能的设置大部分是通过编程来实现的,非常方便。
对于MC9S2XS128的学习,先从各引角的功能学起,然后试着下载程序,再逐渐编程实现各引角的功能。
在单片模式下,A口、B口和部分E口都可以用作通用I/O接口,如果所有接口工作在通用I/O方式下,那么I/O口将达到63个。
这些双重功能的I/O口本身及控制逻辑完全集成在MCU内部,其体积、功耗、可靠性、应用简单方便程度都与用户自行扩充的I/O口有着重要区别。
LQFP-112封装的MC9S12XS128[1]引脚图如图2.1。
图2.1MC9S12XS128引脚图
3、单片机基本硬件系统
目前多数单片机产品都是表面贴片封装的器件,因为直接设计目标板有相当难度,不妨先设计一个最小系统,将单片机所有I/O引脚都引出到排针或者插座上。
I/O接口板另外设计,最小系统板可以像一个直插的器件,插在目标板上。
虽然S12单片机将CPU、ROM、RAM、以及I/O都集成在一个集成电路芯片上,但仍需要一些外部电路的支持。
如为单片机系统提供电源、时钟、复位信号和I/O驱动等。
2.1.2 5V稳压电源模块方案
由于采用7.2V镍镉电池作为驱动直流电机的电源,而飞思卡尔单片机的工作电压为5V,故需要进行5V稳压电路设计。
有以下两种设计方案。
方案一:
基于LM7850稳压芯片的电路设计。
采用以TO-220标准封装的LM7850作为稳压芯片,它只有三条引脚输出,分别是输入端、接地端和输出端。
样子象是普通的三极管,是最常见的三端稳压集成电路。
这是起始时候我的设计方案。
LM7850电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。
但是LM7850稳压电路的稳压性能在电池电压低于7V时候没有稳压效果,直接输出7V电压,这样会高于单片机的工作电压5V,导致烧毁单片机。
电池采用的是实验室的镍镉电池,但是由于其投入使用时间较长导致损耗比较大,持续供电会导致电压不稳,小于7V。
方案二:
基于LM2940稳压芯片的电路设计[26]。
采用LM2940作为稳压芯片,当时实验室没有此种芯片,方案二便成了开始时候的备选方案。
这种方案可以保证稳压输出端电压稳定在5V左右,满足单片机的电压要求。
由于LM2940是低压差线性稳压器(lowdropoutregulator),LM2940比LM7805的转换效率高。
LM7805直接输入不接输出的情况下,其内部还会有3mA的电流消耗(静态电流)。
而LDO元件(即LM2940)的静态电流就比它远远小得多了。
用此稳压电源给飞思卡尔单片机和LCD字符液晶以及超声波测距模块供电。
由于电池损耗原因,第一种方案达不到要求的5V稳定电压,弃用,改用为第二种方案,通过电压表的实际测试,不管电池状态怎样,电压始终稳定在4.95—5.05V,满足设计要求。
LM2940稳压电路原理图如图2.2。
图2.2LM2940稳压电路
2.1.3 直流电机驱动模块
由于本设计中直流电机的功率限制,不可能由单片机直接驱动直流电机。
所以要设计直流电机驱动器,进而驱动直流电机的正反转。
这里我采用以恒压恒流桥式2A驱动芯片L298N为驱动芯片的直流电机驱动器设计。
L298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部同样包含4通道逻辑驱动电路。
可以方便的驱动两个直流电机,或一个两相步进电机。
输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便,能完成本设计的要求。
图2.7为L298N的引脚图。
图2.7L298N引脚图
2.1.4 测速方案
速度传感器感知小车的行驶速度,有如下两种方案:
2、采用光学编码器
这是目前应用最多的测速传感器,光学编码器[15]由光源、码盘、接收器组成,码盘周围有小孔,光源透过小孔投射在接收管上,由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号,通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。
市场上有现成的光学编码盘出售,但体积和重量普遍较大,不符合轻量化设计的原则。
自制品稳定性较差。
2.2 控制方案论证
速度控制算法:
常用的控制规律有:
比例控制;积分控制;微分控制;比例积分控制;比例微分控制;比例、积分、微分控制。
对直流电机的速度控制优先采用PID控制算法,在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。
PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。
当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。
即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。
PID控制,实际中也有PI和PD控制。
PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。
因为直流电机带动小车在行驶过程中,路面信息不可确定,首先要保证小车在行驶过程中的运行平稳性,所以为了提高动态性能和稳态性能,采用PID控制方式,理论上PID控制方式可以很好的满足设计性能要求。
在实际的调试中只需要选择合适的参数,可以使控制性能达到最佳。
2.3 本章小结
本章主要讨论的是设计思路论证和方案的选择。
首先讨论硬件设计思路,在满足系统性能要求的前提下对备选方案进行论证。
接着进行了单片机外围电路与各个功能部分模块的实际分析,对主要硬件及核心芯片进行了选型。
随后进行主要控制算法的论证,了解被控对象的控制要求,匹配单片机的内部电路功能及引脚功能,进行控制算法的选择。
针对速度控制系统与超声波测距模块的特点,分析单片机的片内资源,选择合适的控制算法进程序的设计。
通过论证和分析,基本保证了软硬件的可行性,并设计了大体框架。
第3章 系统硬件电路设计
开发单片机的思路是先设计最小系统,给单片机上电,提供必要的时钟让单片机活起来;通过这个最小系统,人要能与单片机沟通,一般是通过BDM接口等来实现。
包括发命令给单片机、下载程序、调试程序等。
有了这个基本环境后才可以调试硬件,本章讲述基本硬件系统的设计。
3.1 Freescale单片机模块
以MC9S2XS128为核心控制芯片的最小系统[21]主要包括以下几个部分:
时钟电路、BDM接口、供电电路、复位电路和调试小灯。
其最小系统板如图3.1所示。
图3.1 MC9S2XS128最小系统板
3.1.1 时钟电路
时钟电路给单片机提供一个外接的石英晶振,单片机及系统运行需要两个最基本的条件:
电源与时钟。
其中时钟电路的设计甚为关键,如果由于设计中的毛病,造成时钟电路不稳定,会导致嵌入式系统瘫痪。
通过把一个16MHz的外部晶振接在单片机的外部晶振接入口EXTAL和XTAL上,然后利用MC9S2XS128内部的压控振荡器和锁相环(PLL)把这个频率提高到了40MHz。
作为单片机工作的内部总线时钟。
其电路图如图3.2。
图3.2 外部振荡电路
3.1.2 复位电路和BDM接口
复位电路是通过一个复位芯片在电压达到正常值时给单片机一个复位信号。
复位电路使用了低压复位芯片MC34064,使用专门的上电复位电路使系统上电复位更加可靠。
BDM接口可用于BDM在线调试,其中,BDMIN接口是接BDM调试工具,向MC9S2XS128单片机下载和调试程序用的。
电路原理如图3.3。
图3.3 复位电路与BDM接口电路原理图
3.1.3 单片机最小系统电源电路
MC9S2XS128系列单片机的外部供电电压为5V,分别为单片机的内部电压调整器,IO端驱动器,AD转换器提供电源,下图中除了加入了扼流电感,滤波电容以外还串接了可恢复熔断器F1和并接了稳压二极管D,这样就可以为单片机提供安全,稳定和纯净的电源了。
最后我们别忘了并接一个发光二极管来指示单片机的工作状态。
图3.4为单片机供电电路。
图3.4 单片机供电电路
3.2 5V稳压电源模块
由于采用学院自动化技术创新中心提供的7.2V、2Ah的镍镉电池作为电源来驱动直流电机,而飞思卡尔单片机的额定工作电压皆为5V,故需要进行5V稳压电路设计。
采用低压差稳压集成芯片LM2940。
由于LM2940是低压差线性稳压器(lowdropoutregulator),静态电流非常小,它的特点是在整个温度范围内按典型0.5V和最大1V的失稳电压提供1A的电流输出。
此外还有静态电流降低电路,当输入与输出的电压大于3V时还可以自动降低静态电流,该稳压器同样也具有一般稳压器的短路保护和热过载保护等功能。
主要性能:
●输出电压5V
●最大输出电流1A
●典型失稳电压0.5V
●最大工作电压26V
●工作温度40℃~+125℃
●引线温度(焊接,10S)+260℃
●输出电压组装前微调
●反接电池保护
●内部短路保护
图3.5为LM2940的引脚图。
图3.5 LM2940的引脚图
LM2940引脚名称见表3.1。
表3.1 LM2940的引脚名称
符号
名称
INPUT
输入
OUTPUT
输出
GND
接地
LM2940芯片在焊接时候注意引脚方向,切不能焊错,也不能让烙铁接触引脚时间太长,以免损坏内部电路,经典实用稳压电路如图3.6所示。
图3.6 LM2940稳压电路
注意事项:
1、C1远离电源位置;
2、要稳定的话C2必须高于22μF,并尽可能的接近稳压器。
焊接完进行调试,用7.2V电池进行供电,用万用表电压端测量输出引脚,为4.95V。
3.3 测速传感器模块
本模块采用光电码盘作为测速传感器,通过码盘转轴齿轮与后轮车轴齿轮的啮合,进行小车的测速。
3.3.1 光电码盘的工作原理及设计
光电编码器[32],是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。
这是目前应用最多的传感器,广泛用于自动控制,自动测量,作为转角与转速传感器。
光电编码器是由光栅盘和光电检测装置组成。
光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。
由于光电码盘与电动机通过齿轮啮合,电动机旋转时,光栅盘与电动机以一定传动比旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号,通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。
增量式编码器是直接利用光电转换原理输出三组方波脉冲A、B和Z相;A、B两组脉冲相位差90º,从而可方便地判断出旋转方向,而Z相为每转一个脉冲,用于基准点定位。
它的优点是原理构造简单,机械平均寿命可在几万小时以上,抗干扰能力强,可靠性高,适合于长距离传输。
其缺点是无法输出轴转动的绝对位置信息。
光电码盘的工作原理如图3.11。
图3.11 光电码盘工作原理
1、产品型号与编号
●电压输出型ZVH-4A-50BM-ES~26E
●精度500P/r
●零位宽Tm=1T
●工作电压DC5~26V
●码盘直径Φ18mm
●最高转速10000rpm
●允许角加速度10000rad/s2
●最大负载轴向4.9N径向9.8N
2、注意事项
(1)光电码盘属于高精密仪器,如安装使用不当会影响仪器的性能和寿命;
(2)避免与光电编码器刚性联接;
(3)安装时注意其允许的轴最大负载,严禁敲击和摔打。
3.3.2 光电编码器的安装结构
光电编码器用于测量电机转速,由于电机驱动后轮,故需要安装在后轮轮轴附近,通过与轮轴上的齿轮进行啮合。
机械安装结构如图3.12。
图3.12 光电码盘安装结构
3.4 直流电机及其驱动模块
直流电机作为本系统的动力来源,通过齿轮来带动后轮转动,但要完成闭环调速的功能,决定了直流电机不可能直接由单片机或者外接电源供电,必须通过设计直流电机驱动器来驱动直流电机。
3.4.1 直流电机
直流电机参数:
●电机型号RS380_ST
●驱动电压7.2V
●空载最大转速15300转/分
●堵转电流16.72A
●最大功率26.68W
●堵转扭矩680gcm
●电机直径Φ27.7mm
3.4.2 直流电机驱动器
采用以恒压恒流桥式2A驱动芯片L298N为驱动芯片进行直流电机驱动器设计。
L298N是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部同样包含4通道逻辑驱动电路。
可以方便的驱动两个直流电机,或一个两相步进电机。
L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7V电压。
4脚VS接电源电压,VS电压范围VIH为+2.5~46V。
输出电流可达2.5A,可驱动电感性负载。
1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。
L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本装置我们选用驱动一台电动机。
5,7脚接输入控制电平,控制电机的正反转。
EnA接控制使能端,控制电机的停转。
表3.2列举了L298N功能逻辑。
表3.2 L298N功能逻辑
ENA
In1
IN2
运转状态
0
×
×
停止
1
1
0
正转
1
0
1
反转
1
1
1
刹停
1
0
0
停止
由表3.2可知当EnA为低电平时,输入电平对电机控制起作用,当EnA为高电平,输入电平为一高一低,电机正或反转。
同为低电平电机停止,同为高电平电机刹停。
L298N与MC9S12XS128的连接电路如图3.15。
图3.15 电机驱动电路原理图
3.5 本章小结
本章主要进行了系统硬件电路的具体设计。
首先对单片机各模块和内部功能进行了详细的说明,并附有原理图和实物图;而超声波测距模块作为主要功能模块,是讨论的重要对象,从超声波的发射接收原理到发送接收电路,都做了说明,并进行硬件的焊装;测速传感器模块关系到本设计最主要的速度闭环控制部分,在此对光电编码器的原理跟技术参数进行了介绍;随后进行LCD显示模块的具体设计,它的设计能否完成很大程度上影响了整个系统的运行。
最后直流电机驱动模块单列出来,进行具体的设计说明,附电路原理图、工作逻辑图。
通过以上对进行硬件电路的设计,做出硬件实物。
第4章 系统软件设计
本次设计中,软件设计占据了非常大的比重,软件设计的好坏直接影响到系统的性能。
首先进行单片机系统各个部分的初始化,初始化要具体到每个引脚,进而保单片机模块的正常启用。
速度控制程序是本设计的最重要程序,从控制算法的选择到具体程序的编写,都要进行规划。
超声波防撞报警程序也是重要的功能程序,涉及到超声波硬件的应用。
最后是LCD显示程序,在其它程序运行无误的基础上进行此程序的设计编写。
软件的实现是在CodeWarrior集成环境中实现的,因此一些用法取决于CodeWarrior所使用的编译器。
4.1 软件功能及流程
编程时候首先要对用到的单片机各个模块进行初始化,包括:
系统初始化、端口初始化、中断初始化、PWM初始化、定时器初始化、时钟初始化等,然后是各个模块程序设计。
●延时程序:
采用循环体形式延时,本程序对其它功能模块程序的顺利运行起到相当大的作用,比如采用软件延时产生40K