5简易智能电动车电院.docx
《5简易智能电动车电院.docx》由会员分享,可在线阅读,更多相关《5简易智能电动车电院.docx(26页珍藏版)》请在冰豆网上搜索。
5简易智能电动车电院
简易智能电动车
摘要
简易智能电动车实现了路面标识跟踪、金属探测、曲线行驶、躲避障碍物、寻找光源以及安全进入车库等功能,并且能够在行驶过程中用语音、指示灯等方式提示电动车的行驶状态。
采用左右独立的传动模式行驶,通过光电、红外和接近开关等传感器,由单片机系统来决策智能车的行驶状态。
采用PWM技术实现了电动机的多级调速;采用硬件自学习电路提高对不同黑白程度路面的适应能力。
独特的雷达扫描式光电探测装置保证了光源探测的灵活性,提高了控制决策的有效性。
不同路段的软件模块对各个传感器赋以不同的权值,提高了各个路段行驶策略的针对性。
通过均值采样算法降低了噪声信号的干扰,通过模糊控制算法实现了智能避障和光源跟踪。
采用原子模块循环法实现数据采集、分析、处理和控制输出。
关键词:
电动车智能PWM硬件自学习雷达扫描式光电探测
原子模块循环法
一、方案选择与论证
1、运动方式的选择
通常的运动方法有轮式和履带驱动式两种,其选择依赖于路面状况、机械复杂性和控制复杂性。
方案一:
采用四轮——常见的汽车结构模式
特点是一个马达作为动力,通过变速箱驱动后轮;另一个马达转动导向轮来决定行驶方向。
优点是在直道行驶速度较快、方向和速度相互独立。
缺点为转弯半径大、驱动轮易打滑、导向轮方向不易精确控制。
方案二:
采用履带式结构
特点:
两个电机分别驱动两条履带。
优点是可以在原地转动;在不平的路面上性能稳定,牵引力大。
缺点为速度慢、速度和方向不能单独控制摩擦力很大;能量损耗大,机械结构复杂。
综合考虑,我们将轮式和履带式的优点结合在一起,采用两个大脚车的模型(见附图三)拼接而成,达到了较好的机动性和可控性。
2、电机驱动调速方案论证
电机驱动调速方案的控制目标是实现电动机的正、反转及调速
方案一:
电阻网络或数字电位器调整分压
采用电阻网络或数字电位器分压调整电动机的电压。
但电动机工作电流很大;分压不仅会降低效率,而且实现很困难。
方案二:
采用继电器开关控制
采用继电器控制电动机的开或关,通过开关的切换调整车速。
优点是电路简单,缺点是响应时间慢、控制精度低、机械结构易损坏、寿命较短、可靠性低。
方案三:
H型PWM电路
采用电子开关组成H型PWM电路。
H型电路保证了简单的实现转速和方向的控制;用单片机控制电子开关工作的占空比,精确调整电动机转速。
最终选择方案三。
3、路面探测方案论证
探测路面黑线的原理:
光线照射到路面并反射,由于黑线和白线的反射系数不同,可根据接收到的反射光的强弱来判断传感器和黑线相对位置。
方案一:
采用可见光发光二极管和光敏二极管
采用普通可见光发光管和光敏管组成的发射-接收电路。
其缺点在于易受到环境光源的影响。
即便提高发光管亮度也难以抵抗外界光的干扰。
方案二:
采用反射式红外发射-接收器
采用反射式红外发射-接收器。
直接用直流电压对发射管进行供电,其优点是实现简单,对环境光源的抗干扰能力强,在要求不高时可以使用。
方案三:
采用脉冲调制的红外发射-接收器
在方案二的基础上采用脉冲调制发射。
由于环境光干扰主要是直流分量,因此如果采用带有特定交流分量的调制信号,则可在接收端采用相应的手段来大幅度减少外界干扰。
缺点是实现复杂﹑成本高。
根据本题目中对探测地面的要求,由于传感器可以在车体的下部,发射、接收距地面都很近,外界光对其的干扰都很小。
在基本不影响效果的前提下,为了简便起见,我们选用了方案二。
4、障碍物探测模块
方案一:
超声波探测
采用超声波器件。
超声波波瓣较宽,一个发生器就可以监视较宽的范围。
其优点为抗干扰能力强,不受物体表面颜色的影响。
缺点为实现电路复杂,且用通常的测量方法在较近距离上有盲区。
方案二:
光电式探测
采用光电式发射、检测模块。
由于单个发射器的照射范围不能太小,因此不使用激光管。
用波瓣较宽的脉冲调制型红外发射管和接收器。
其优点是电路实现简单,抗干扰性较强。
由于题目中已知障碍物外表为白色,有利于红外线的反射。
同时从电路实现的难易程度上考虑,我们最终选择了方案二。
5、寻光定向模块
题目条件是在终点线后放置200W白炽灯用以指向,因此采用普通光敏三极管进行检测。
方案一:
车转式安装
采用固定方向安装方式。
将两个光敏三极管固定在车头的左右两边指向前方,当车头对准光源时,两传感器输出平衡;当车的方向不准时,通过两传感器输出的差别控制车原地转向来寻找光源。
方案二:
模拟雷达扫描
用装在车底盘上的步进电机带动圆盘左右扫描,装在圆盘上的光敏传感器通过扫描,可以准确定位光源。
方案一实现简单,其缺点为寻找光源较麻烦,需要驱动整辆智能车转动,功耗多且浪费时间;方案二实现较为复杂,但是其定位准确,仅转动圆盘而不用转动智能车,节省了电源和时间。
考虑到题目的指标要求及系统性能要求,我们采用了方案二。
6、车轮检速及路程计算模块
方案一:
磁感应式
采用霍尔元器件(霍尔元器件应用霍尔效应,输出量与磁场的大小有关)并在车轮上安装磁片,利用位置固定的开关型霍尔元器件来检测车轮的转动,通过单位时间内的脉冲数进行车速测量。
方案二:
光反射式
采用反射式红外器件。
在车轮轮辐面板上均匀画出黑底白线或白底黑线,通过正对线条的反射式红外器件,产生脉冲。
通过对脉冲的计数测速。
方案三:
光对射式
采用对射式红外传感器。
在轮辐面板上均匀刻出孔,在轮子两侧固定相对的红外发射、接收器件。
在过孔处接收器可以接收到信号。
从而轮子转动时可以产生连续脉冲信号,通过对脉冲的计数进行车速测量。
以结构简单和输出精确作为选择标准,我们认为使用方案一的工作量最小。
方案二、三虽然可以达到较高的精度(磁片不可能放置太密),但安装较麻烦。
由于题目中对路程的记录没有较高的精度要求,因此选择了方案一。
7、供电电源选择
方案一:
单电源供电
优点是供电电路简单;缺点是由于电机的特性,电压波动较大,严重时可能造成单片机系统掉电。
方案二:
双电源供电
将电机驱动电源其它电路电源分离,利用光电耦合器传输信号。
优点是减少耦合,提高系统稳定性;缺点为电路较复杂,电池占空间较大。
由于车耗电量较大,用3节锂电池(每节3V)或6节5号碱性电池串联供电,可以满足电量要求,为了节省有限的空间,选用单电源供电。
又考虑到锂电成本较高,且车体需要电池来配平重心,最终选用6节碱性电池装到车体后部。
电流分为两路,一路通过7805稳压后向控制系统和传感器供电,另一路加到电机驱动电路,并在电机端口两端加上了0.1uf去耦电容。
8、方案论证总结
综上所述,本设计方案如图1所示。
图1智能车系统模块划分图
二、硬件的设计与实现
1、电动机PWM驱动模块的电路设计与实现
具体电路如图2所示。
本电路采用的是基于PWM原理的H型驱动电路。
采用H桥电路可以增加驱动能力,同时保证了完整的电流回路。
图2H型驱动模块的设计
当
为高电平,
为低电平时,
、
管导通,
、
管截止,电动机正转。
当
为低电平,
为高电平时,
、
管截止,
、
管导通,电动机反转。
电机工作状态切换时线圈会产生反向电流,通过四个保护二极管D1、D2、D3、D4接入回路,防止电子开关被反向击穿。
采用PWM方法调整马达的速度,首先应确定合理的脉冲频率。
脉冲宽度一定时,频率对电机运行的平稳性有较大影响,脉冲频率高马达运行的连续性好,但带负载能力差;脉冲频率低则反之。
经试验发现,脉冲频率在50Hz以上,电机转动平稳,但智能车行驶时,由于摩擦力使电机转速降低,甚至停转。
当脉冲频率在10Hz以下时,电机转动有明显的跳动现象,经反复试验,本车在脉冲频率为15~20Hz时控制效果最佳。
为方便测量及控制,在实际中我们采用了20Hz的脉冲。
脉宽调速实质上是调节加在电机两端的平均功率,其表达式为:
式中P为电机两端的平均功率;
为电机全速运转的功率;K为脉宽。
当K=1时,相当于加入直流电压,这时电机全速运转,
;当K=0时,相当于电机两端不加电压,电机靠惯性运转。
当电机稳定开动后,有
(f为摩擦力)
则
所以,
由上式可知智能车的速度与脉宽成正比。
由上述分析,
、
这对控制电压采用了20Hz的周期信号控制,通过对其占空比的调整,对车速进行调节。
同时,可以通过
、
的切换来控制电动机的正转与反转。
在实际调试中,我们发现由于桥式电路中四个三极管的参数不一致,使控制难度加大,因此我们用专用的电机驱动管L298构成。
图3L298内部电路
使用一片L298便可完成对两路电机的控制。
图4用L298实现双路电机驱动
驱动信号由单片机的P1.1~P1.4口输出,同时使用一片74HC08驱动LED完成行驶状态指示。
2、路面黑线探测模块的设计与实现
为了检测路面黑线,在车底的前部安装了三组反射式红外传感器。
其中左右两旁各有一组传感器,由三个传感器组成“品”字形排列,中轴线上为一个传感器。
因为若采用中部的一组传感器的接法,有可能出现当驶出拐角时将无法探测到转弯方向。
若有两旁的传感器,则可以提前探测到哪一边有轨迹,方便程序的判断。
采用传感器组的目的是防止地面上个别点引起的误差。
组内的传感器采用并联形式连接,等效为一个传感器输出。
取组内电压输出高的值为输出值。
这样可以防止黑色轨迹线上出现的浅色点而产生的错误判断,但无法避免白色地面上的深色点造成的误判。
因此在软件控制中进行计数,只有连续检测到若干次信号后才认为是遇见了黑线。
同时,采用探测器组的形式,可以在其中一个传感器失灵的情况下继续工作。
中间的一个传感器在寻光源阶段开启,用于检测最后的黑线标志。
在实验场地上测试时发现中路传感器的功能完全可由左右两路传感器结合软件来实现,故采用此法来实现。
每个寻迹传感器由三个ST178反射式红外光电传感器组成,内部由高发射功率红外光电二极管和高灵敏度光电晶体管组成,具体电路如图5。
为了防止环境光的影响,将其安装在靠近地面约10mm高度的位置上并蒙上用曝光胶卷制成的遮光片以减小影响。
在此条件下测得对白色地面的输出值约为0.8V,对黑色地面的输出值约为4.1V,保证差值为2V以上。
测得值由4051选择,ADC0820进行A/D采集。
3、障碍物探测模块
采用TX05D反射式红外反射开关进行探测。
TX05D红外反射开关实际上是一种一体化的红外线发射、接收模块。
其工作电压为5~12V,检测距离0~120cm可调,发射的是38KHz调制红外线,可有效避免干扰。
题目给定障碍物的高度为6cm,则传感器的固定高度应低于6cm。
我们用曝光胶片作为滤光片,以减小非红外部分光对光敏管的影响。
用三个传感器模块进行探测,分别对应正前方、左前方、右前方。
图6探障模块位置图
由于车体为24cm×14cm,则车体以中心点为圆心转动时车体中心距边缘最大距离为14cm。
由于探测头在车的边缘,因此,将探测的范围定为10cm,为此需要调整发射强度和调节接收灵敏度。
4、寻光定向模块
借鉴雷达扫描定位的方法。
在距地面20cm处设置扫描寻光平台,采用步进电机驱动扇形扫描。
为了压窄扫描波瓣的波束宽度。
我们在传感器上加上了长约100mm直径约为10mm的导光管,使其波束宽度约为3度,提高了方位分辨力。
抑制了其他高度上的光源影响,使本车不仅在室内抑制了顶灯壁灯的干扰,并可在室外抑制更为强烈的阳光影响。
步进电机采用四相四拍接法,步距角为1.40625°使用ULN2803作为步进电机的驱动。
5、车轮检速及路程计算模块
采用霍尔开关电路30211。
其输入为磁感应强度,输出为数字电压信号,开关速度快,无瞬间抖动。
电路实现如图8:
智能车的车轮直径
,
。
我们在固定在轮轴上且与轮轴平行的圆盘上等R的位置上间隔45°固定8个磁钢。
智能车行驶时圆盘与轮子同轴转动。
则行驶距离的测量精度为
。
霍尔片产生的脉冲送入单片机的INT1口进行计数,由单片机完成脉冲数到距离的转换,并由
求得速度。
6、金属探测模块
我们使用电感型接近开关探测金属片。
其工作原理为:
利用外界的金属性物体对传感器的高频震荡产生的阻尼效应从而识别金属物体的存在。
震荡器即是由缠绕在铁氧体磁芯上的线圈构成的LC震荡电路。
震荡器通过传感器的感应面,在其前方产生一个高频交变的电磁场。
当外界的金属性导电物体接近这一磁场,并到达感应区时,在金属物体内产生涡流效应,从而导致LC震荡电路震荡减弱,振幅变小,即称之为阻尼现象。
这一震荡的变化,即被开关的后置电路放大处理并转换为一确定的输出信号,触发开关并驱动控制器件,从而做非接触式目标检测。
其特点为:
没有磨损,使用寿命长;不会产生误动作;无接触,因而可免于保养;输出为开关量,方便MCU处理。
为了防止路面不平及车体晃动对探测的影响,我们使用了有效距离为15mm的接近开关作为探测器。
使用时,我们将其固定在智能车的正前端,将探测面固定在与地面距离10mm左右的位置。
将它的信号输出端接到INT0口,通过中断方式进行探测。
7、语音模块
为了达到节省空间及省电的目的,我们采用了ISD1420芯片。
ISD1420是单片,高质量,短周期的录放音电路。
由于录制的信息存放在内部不挥发单元中,断电后可以长久保存,这将大大简便电路设计,并可以减少电力的损耗。
由于语音和音频信号不经过转换直接以原来的状态存储到内部存储器,可以实现高质量的语音复制。
ISD1420的输入取样速率为6.4K/s,最小录放音周期为125ms,共可有160段。
ISD1420共有8条地址线,即选址范围为00000000~10011111。
当片内有多段音频时,通过地址线选定起始地址,当放音至结束标志时,放音结束。
MCU的地址线经过锁存器提供ISD1420数据地址,地址锁存后,向PLAYE口送入由高到低的电平跳变,即可开始放音。
我们预先将每一段语音的地址编成地址表,在使用时,只需从表中查处相应的地址码,赋值后再发出放音指令即可。
语音系统实现的电路图如图11所示
图11ISD1420应用电路
8、地形自动匹配模块
由于地面纸张不是很平坦,路面的突起或凹陷会造成红外线的汇聚或发散,从而会影响测量的值。
即便在同色的路面上,测量值也会因此产生一些波动。
当比较门限为定值时,有可能在波峰处有误动,而在波谷处即便有黑色信号也可能无法测出,引起漏报。
为了解决这个问题,可以使用“自学习”方式来设定门限,即求出多个采样点的平均值,再加减一个值,作为最终的比较门限。
这样比较门限可以随地面信号的波动而波动,从而减少误报或漏报。
常用的解决方式有两种:
“软件自学习”和“硬件自学习”
由于软件采样率高,如果用软件自学习的方式,软件的工作量很大,较难实现。
故本设计采用硬件自学习的方式:
利用RC网络做成一个LPF等效于数字滤波中多个点求平均值,然后再加上一个值来构成浮动门限。
具体电路如下:
软件的采样率为5ms,故此RC网络相当于求4点的平均值,再加上2V左右电压值,产生了当前的门限,实现了自动地形匹配功能。
硬件自学习地形匹配模块功能验证
地面条件
白色
灰色
黑色
门限值
1.37V
2.07V
2.35V
测试说明硬件自学习方式可以提高智能车行驶时对路况的适应性。
9、硬件设计总结
在一般的设计方法的基础上借鉴了雷达扫描原理对光源定向,同时通过硬件浮动门限实现了多传感器地形匹配,利用左中右三个避障传感器确定障碍位置,采用金属传感器识别铁片,利用三个电机完成了所有的机械控制,并加入一些其他功能模块。
四、软件设计
1、整体设计
软件设计采用原子模块循环法,原子模块循环法的原理简述为:
整个程序体即为最小循环体,不断进行循环执行,直至任务结束。
程序体分为采集模块、处理模块、判断模块、存储模块、输出模块。
采集模块通过模拟开关采回传感器的输出值。
处理模块对采集模块采回的值进行处理。
对于开关量可以直接使用,对于模拟量通过A/D采回的值,通过程序处理将其转换为开关量。
判断模块是程序流程的核心,通过不同的策略对数据进行一系列运算,判断出当前智能车的状态及下一步的运动方案,产生运动的指令。
存储模块可将处理过的采集值及判断模块发出的指令按次序进行记录,方便历史数据回调。
输出模块作用是将判断模块产生的指令送入各种执行模块。
系统的流程图如图13所示
在每一个采样周期内(5ms)程序将按流程运行一遍,直到判断模块发出结束指令,程序结束。
这种程序具有很强的通用性。
对于题目中不同的区段要求,只需改变判断模块中的策略。
传感器的个数改变时可相应改变判断模块的输入的数据即可,且这种方法使程序可靠,策略执行效率较高。
2、策略分析
对于有多个环境变量的策略设计,需要使用模糊算法。
我们利用MATlAB6.1实现了有三个环境变量的智能车模糊控制的算法仿真。
假定输入量分别是障碍物1的距离、障碍物2的距离、光源的光强参数,输出量分别是角度的改变量、速度的改变量。
算法模型如图14所示:
每个输入、输出量分为3个等级,且用三角函数划分有效域。
输入量中的距离1,距离2分别划分为near(近)、Middle(一般)、far(远),光源强度划分为thin(弱)、common(中)、strong(强)三个区域。
控制的输出量包括智能车角度改变量三个等级分别是left(左偏)、middle(保持),right(右偏),速度改变量也包括三个级别分别是:
low(减速)、middle(速度不变)、fast(加速)。
模糊规则定义原则
距离1和距离2和智能车角度的仿真3D图形
图18
智能车距离、光强和智能车速度的3D仿真图形
图19
以上仿真给出了小车右优先避障行的行驶过程。
由于89s52的运算功能有限,当直接进行模糊推理时,还需运行浮点和乘除运算,这样就不能实现智能车控制的实时性。
当采用查表法实现控制时,可以根据实时的输入端口查表得到当前的输出量,为了减少存储空间,提高查找速度有必要降低区分度。
对于本题目来说,在不同的分段区域中,可以将决策条件优化为单个的环境变量。
鉴于原子模块循环法的实时性和灵活性,无需在程序中进行复杂的模糊推理。
具体策略实现如下:
寻迹行驶:
由于采用了左右两个传感器,因此沿直线运行时两侧传感器测得值都为白。
当拐弯或偏离轨迹时,会有一侧传感器测值为黑,即向同一侧调整,使黑线始终在两个传感器之间,从而达到寻迹行驶目的。
当小车到达C点时,智能车车头指向前方。
避障行驶:
当智能车到达C点时,车头指向前方。
在障碍区和C点还有一段区域,在这段区域先让智能车向右行驶,约到达障碍区边界时调整车头指向,并开始执行避障策略,具体实现方法:
没有遇到障碍物,一直向前走,当遇到障碍物时,智能车依次执行向左转,后退,右转,前进(具体示意见组图20-23,这样相当于智能车向右平移了一段距离,用软件控制这段距离,使之稍大于车宽,以防智能车与障碍碰撞,如果遇到右边界则执行反相策略,即向右平移(图24表示)。
出障碍区,关闭避障策略。
图20图21
图22图23图24
进入障碍区执行避障策略,具体实现流程见图2
7
寻光源:
示意图如图25。
充分利用旋转式光电探测模块的优点。
采用分级锁定目标的方式逼近目标。
具体实现方法,初始时扫描扇区为180°,分为三个区域(左、中、右),每个区域各60°。
策略为光源在左区域车左转,在右区域车右转,在中区车前进。
下次扫描时将扫描扇区定为120°,再次执行上述策略。
理论上,可逼近至偏差角小于1.40625°(步距角)。
这样即可在短时间内精确定位光源。
入库:
在寻到光源的情况下,智能车会不断向光源方向调整,同时依靠探地传感器避免车辆压线,最后安全入库入库,其策略如图26(粗细线分别表示车进入障碍区不同初始位置和运动轨迹)。
左右传感器用来防止撞到车库侧壁,左边探到车向右拐,右边探到向左拐。
实测进入车库前两传感器同时探到黑线的几率很小,不予考虑;智能车行至底线时,两传感器将几乎同时发现黑线,故我们设定两传感器发现黑线的间隔不超过20ms,即认为到达底线,再令车倒退10ms正好停在车库中。
并加入距离限制:
停车区共1米,由于进入停车区时一般不会正对车库,有一定偏角,此时开始计路程,软件规定距离大于1.2米时立即停车,防止传感器失灵时整车冲出车库。
3、时间、距离统计及车速检测程序
如前文所述,当车轮转动时,安装在圆盘上的磁钢依次通过霍尔开关,每通过一次就产生一个脉冲。
通过对脉冲的计数即可以得到总的路程。
金属传感器信号到来时纪录当时距离,即为金属片到起点的距离。
计数器从车体启动时开始计时,判断模块发出结束指令后计时停止,由此可得到行驶的时间。
由路程和时间即可得到平均速度。
当车达到终点后,通过LED和语音输出时间、路程和平均速度。
五、系统调试、测试及结果分析
1、系统调试
(1)偶然发现寻迹失灵
现象:
在寻迹走阶段若在探地传感器发出调整信号时正好金属传感器发出中断信号,MCU在处理中断时车偏离轨迹,则寻迹行驶有失灵。
解决方案:
对探测到金属片后的操作不放在中断程序中执行,而是改设一全局布尔变量,在外部程序中进行后续操作。
成功解决此问题。
(2)偶然不能正常启动
现象:
键盘使用中断方式,和霍尔探测器共用一中断口。
设计为行驶时接收中断信号为霍尔传感器的信号;停车时检测到的为键盘的中断。
但发现有时启动时键盘失灵。
检查发现,当停车时若霍尔传感器正好检测到一磁钢片,则中断口被拉低,按键失灵。
解决方案:
按键改为查询方式,避免中断复用,问题解决。
(3)金属片中心与起点距离不准
现象:
题目要求的是中心距,应该将前后沿与起点距离分别测出后,再取二者平均值,这才是中心与起点的距离。
但车上金属传感器信号接到INT0口,通过中断方式进行探测时,只能测铁片前沿,故测出距离总比真值小半个铁片长。
解决方案:
中断加查询,中断函数获取铁片前沿的距离,查询中断口电平由低到高跳变时获取铁片后沿的距离,再求平均。
问题解决。
2、系统测试及结果分析
(1)测试条件
室内测试,室温25题目给定标准场地
(2)测试仪器
胜利仪器DT890数字式万用表
秒表
卷尺长度3.5米
(3)测试结果及分析
a、基本要求一:
到达B点,显示铁片数目并有声光提示。
表一
次数
是否到达B
铁片数目
显示铁片数目
有无声光提示
1
是
2
2
有
2
是
2
2
有
3
是
1
1
有
4
是
3
3
有
b、基本要求二:
到达C点,停车5s并有声光提示。
表二
次数
是否到达C
有无停车延时(时间)
有无声光提示
1
是
有(5s)
有
2
是
有(5s)
有
3
是
有(5s)
有
4
是
有(5s)
有
c、基本要求三:
从障碍物间通过,进入停车区并进入车库。
表三
次数
是否进入停车区
是否进入车库
是否从障碍物间通过
与障碍物碰撞次数
1
是
是
是
0
2
是
是
是
1
3
是
是
是
0
4
是
是
是
0
d、基本要求四:
入库后停车,行驶时间小于90s。
表四
次数
入库后是否停车
行驶时间(秒表测量)
1
是
25s
2
是
25s
3
是
26s
4
是
26s
由上述测试可以看出,本智能车完全实现了题目的基本要求。
e、发挥要求一:
正确显示铁片的中心位置
铁片位置测量(铁片中心距起跑线)单位:
厘米
表五
次数