




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于语音识别的智能小车摘要随着计算机技术、模式识别和信号处理技术及声学技术等的发展,使得能满足各种需要的语音识别系统的实现成为可能。近二三十年来,语音识别在计算机、信息处理、通信与电子系统、自动控制等领域中有着越来越广泛的应用。本设计是语音识别在控制领域的一个很好实现,它将原本需要手工操作的工作用语音来方便地完成。语音识别按说话人的讲话方式可分为孤立词ISOLATEDWORD识别、连接词CONNECTEDWORD识别和连续语音CONTINUOUSSPEECH识别。从识别对象的类型来看,语音识别可以分为特定人SPEAKERDEPENDENT语音识别和非特定人SPEAKERINDEPENDENT语音识别。本设计采用的识别类型是特定人孤立词语音识别。本系统分上位机和下位机两大方面。上位机利用PC上MATLAB强大的数学计算能力,进行语音输入、端点监测、特征参数提取、匹配、串口控制等工作,根据识别到的不同语音通过PC串口向下位机发送不同的指令。下位机是单片机控制的一个小车,单片机收到上位机传来的指令后,根据不同的指令控制小车完成不同的动作。该设计对语音识别的现有算法进行了验证和实现,并对端点检测和匹配算法进行了些许改进。本设计达到了预期目标,实现了所期望的功能效果。关键词MATLAB,语音识别,端点检测,LPC,单片机,电机控制SMARTCARGASEDSPEECHRECOGNITIONABSTRACTWITHTHEDEVELOPMENTOFCOMPUTERTECHNOLOGY,PATTERNRECOGNITION,SIGNALPROCESSINGTECHNOLOGYANDACOUSTICTECHNOLOGYETC,THESPEECHRECOGNITIONSYSTEMTHATCANMEETTHEVARIOUSNEEDSOFPEOPLEISMOREPOSSIBLETOACHIEVETHEPASTTHREEDECADES,THEVOICERECOGNITIONINTHEFIELDOFCOMPUTER,INFORMATIONPROCESSING,COMMUNICATIONSANDELECTRONICSYSTEMS,AUTOMATICCONTROLHASINCREASINGLYWIDERANGEOFAPPLICATIONSSPEECHRECOGNITIONBYTHESPEAKERSSPEECHCANBEDIVIDEDINTOISOLATEDWORDISOLATEDWORDIDENTIFICATION,CONJUNCTIONSCONNECTEDWORDANDCONTINUOUSSPEECHRECOGNITIONCONTINUOUSSPEECHIDENTIFICATIONIDENTIFYINGTHETYPEOFOBJECTFROMTHEPOINTOFVIEW,THEVOICERECOGNITIONCANBEDIVIDEDINTOASPECIFICPERSONSPEAKERDEPENDENTSPEECHRECOGNITIONANDNONSPECIFICSPEAKERINDEPENDENTSPEECHRECOGNITIONTHISDESIGNUSESTHEIDENTIFICATIONTYPEISASPECIFICPERSONISOLATEDWORDSPEECHRECOGNITIONTHISDESIGNISOFAGOODIMPLEMENTATIONOFSPEECHRECOGNITIONINTHECONTROLFIELD,ITDOESTHEWORKTHATWOULDOTHERWISEREQUIREMANUALOPERATIONBYTHEVOICEOFPEOPLEEASILYTHISSYSTEMINCLUDESTWOMAJORASPECTSTHEHOSTSYSTEMANDTHESLAVESYSTEMTHEHOSTSYSTEMUSETHEMATLABONTHECOMPUTERWHICHHASPOWERFULMATHEMATICALCOMPUTINGABILITYTODOTHEWORKOFVOICEINPUT,ENDPOINTMONITORING,FEATUREEXTRACTION,MATCHING,IDENTIFICATIONANDSERIALCONTROL,THENITSENDDIFFERENTCOMMANDSTHROUGHTHEPCSERIALPORTTOSLAVESYSTEMACCORDINGDIFFERENTRECOGNISEDVOICETHESLAVESYSTEMISACARCONTROLLEDBYASINGLECHIPMICROCONTROLLERITCONTROLSTHECARDODIFFERENTACTIONSACCORDINGDIFFERENTINSTRUCTIONSRECEIVEDTHEDESIGNISCHECKINGANDREALIZATIONOFTHEEXISTINGSPEECHRECOGNITIONALGORITHMANDITHEENDPOINTDETECTIONANDMATCHINGALGORITHMSWERESLIGHTIMPROVEDTHISDESIGNACHIEVEDTHEEXPECTEDGOALSANDACHIEVEDTHEDESIREDFUNCTIONALEFFECTKEYWORDSMATLAB,SPEECHRECOGNITION,EXTREMEPOINTSTEST,LPC,CHIPMICROCOMPUTER,MOTORDRIVE目录前言1第1章系统总体设计方案介绍3第2章上位机设计421语音识别简介4211语音识别发展4212语音识别的分类422声音录入523声音的预处理6231欲加重处理6232分帧处理624端点检测6241过零率6242音量7243过零率和音量积谱8244用过零率和音量积谱来检测端点925特征参数提取10251特征参数概述10252用MATLAB实现LPC系数的计算1426语音识别中的模式匹配14261DTW算法原理14262程序实现1627MATLAB上的GUI设计18第3章下位机设计2031小车总体设计20311小车总体框图20312小车结构设计2032小车硬件设计20321单片机电路设计20322驱动电路设计23323稳压电路设计2433小车软件设计24331主程序流程图24332部分主程序25333底层驱动程序27结论29参考文献30致谢31附录32前言随着计算机技术、模式识别和信号处理技术及声学技术等的发展,使得能满足各种需要的语音识别系统的实现成为可能。近二三十年来,语音识别在计算机、信息处理、通信与电子系统、自动控制等领域中有着越来越广泛的应用。语音命令控制可广泛用于家电语音遥控、玩具、智能仪器及移动电话等便携设备中。使用语音作为人机交互的途径对于使用者来说是最自然的一种方式,同时设备的小型化也要求省略键盘以节省体积。当今,语音识别产品在人机交互应用中已经占到越来越大的比例。语音识别按说话人的讲话方式可分为孤立词ISOLATEDWORD识别、连接词CONNECTEDWORD识别和连续语音CONTINUOUSSPEECH识别。孤立词识别是指说话人每次只说一个词或短语,每个词或短语在词汇表中都算作一个词条,一般用在语音电话拨号系统中。连接词语音识别支持一个小的语法网络,其内部形成一个状态机,可以实现电话语音查询、航空定票等系统。连续语音识别是指对说话人以日常自然的方式发音,通常特指用于语音录入的听写机。从识别对象的类型来看,语音识别可以分为特定人SPEAKERDEPENDENT语音识别和非特定人SPEAKERINDEPENDENT语音识别。特定人是指只针对一个用户的语音识别,非特定人则可用于不同的用户。实际上,非特定人语音识别的初始识别率往往都比较低,一般都要求用户花一定的时间对系统进行训练,将系统的参数进行一定的自适应调整,才能使识别率达到满意的程度。本设计采用的识别类型是特定人孤立词语音识别。本设计是语音识别在控制领域的一个很好实现,它将原本需要手工操作的工作用语音来方便地完成。本系统分上位机和下位机两大方面。上位机利用PC上MATLAB强大的数学计算能力,进行语音输入、端点监测、特征参数提取、匹配、串口控制等工作,根据识别到的不同语音通过PC串口向下位机发送不同的指令。下位机是单片机控制的一个小车,单片机收到上位机传来的指令后,很据不同的指令控制小车完成不同的动作。该设计对语音识别的现有算法进行了验证和实现,并对端点检测和匹配算法进行了些许改进。为了更方便的进行上位机的操作,本设计用MATLAB的GUI设计了一个图形界面。上面设置了串口选择框、录音开始按钮、语音识别结果框等。下位机采用STC2C5A60S2单片机作为控制中心,采用L298专用驱动芯片搭建双桥,进行点击的正反转调速等控制。本设计达到了预期目标,实现了所期望的功能效果。第1章系统总体设计方案介绍本系统分上位机和下位机两大方面。上位机利用PC上MATLAB强大的数学计算能力,进行语音的输入、端点监测、特征参数提取、匹配、识别、串口控制等工作,根据识别到的不同语音通过PC串口向下位机发送不同的指令。下位机是单片机控制的一个小车,单片机收到上位机传来的指令后,很据不同的指令控制小车完成不同的动作。PC机和小车之间通过串口无线传输模块进行数据传输。总体框图如图11所示图11系统总体框图第2章上位机设计上位负责语音的识别,并根据识别到的不同结果向下位机(小车)发送不同的指令。上位机的设计基于MATLAB平台,利用MATLAB强大的数学计算能力,进行语音的输入、预处理、端点监测、特征参数提取、匹配、识别、串口控制等工作。PC机(语音识别)语音输入无线发射无线接收单片机控制中心驱动电路电机21语音识别简介211语音识别发展随着时代的发展,人们越来越注重生活的品质。便捷时尚成为当代人们的追求目标。随着计算机技术、模式识别和信号处理技术及声学技术等的发展,使得能满足各种需要的语音识别系统的实现成为可能。近二三十年来,语音识别在计算机、信息处理、通信与电子系统、自动控制等领域中有着越来越广泛的应用。语音命令控制可广泛用于家电语音遥控、玩具、智能仪器及移动电话等便携设备中。使用语音作为人机交互的途径对于使用者来说是最自然的一种方式,同时设备的小型化也要求省略键盘以节省体积。当今,语音识别产品在人机交互应用中已经占到越来越大的比例。212语音识别的分类语音识别按说话人的讲话方式可分为孤立词ISOLATEDWORD识别、连接词CONNECTEDWORD识别和连续语音CONTINUOUSSPEECH识别。孤立词识别是指说话人每次只说一个词或短语,每个词或短语在词汇表中都算作一个词条,一般用在语音电话拨号系统中。连接词语音识别支持一个小的语法网络,其内部形成一个状态机,可以实现简单的家用电器的控制,而复杂的连接词语音识别系统可以用于电话语音查询、航空定票等系统。连续语音识别是指对说话人以日常自然的方式发音,通常特指用于语音录入的听写机。显然,连续非特定人语音识别的难度要大得多,因为不仅有说话人口音的问题,还有协同发音、断字断句、搜索等问题,除了考虑语音的声学模型外还要涉及到语言模型,如构词法、文法等。从识别对象的类型来看,语音识别可以分为特定人SPEAKERDEPENDENT语音识别和非特定人SPEAKERINDEPENDENT语音识别。特定人是指只针对一个用户的语音识别,非特定人则可用于不同的用户。实际上,非特定人语音识别的初始识别率往往都比较低,一般都要求用户花一定的时间对系统进行训练,将系统的参数进行一定的自适应调整,才能使识别率达到满意的程度。非特定人大词表连续语音识别是近几年研究的重点,也是研究的难点。目前的连续语音识别大多是基于HMM隐马尔可夫模型框架,并将声学、语言学的知识统一引入来改善这个框架,其硬件平台通常是功能强大的工作站或PC机。22声音录入本设计利用PC上的话筒口进行声音录入。通过MATLAB的WAVRECORD函数进行声音录入。WAVRECORD是MATLAB的专有声音录入函数,他有一下三种调用方式(1)YWAVRECORDN,FS(2)YWAVRECORDN,FS,CH(3)YWAVRECORDN,FS,DTYPE其中N代表声音录入的总采样数。FS代表声音的采样率。CH代表声音录入采用的通道数,当CH为1时为单声道,当CH为2时为立体声。DTYPE代表采样数据的存储类型,MATLAB提供四种存储类型如下(1)DOUBLEDEFAULTVALUE,16BITS/SAMPLE(2)SINGLE,16BITS/SAMPLE(3)INT16,16BITS/SAMPLE(4)UINT8,8BITS/SAMPLE本设计单次采样总数为50000点,采样率为22000HZ。即YWAVRECORD50000,2200023声音的预处理231欲加重处理预加重的目的在于滤除低频干扰,尤其是50HZ或60HZ的工频干扰,将对于语音识别更为有用的高频部分的频谱进一步提升。在计算短时能量之前应用该滤波器,还可以起到消除直流漂移、抑制随机噪声和提升清音部分能量的效果。232分帧处理在计算各个系数之前要先将语音信号作分帧处理。语音信号是瞬时变化的,但在1020MS内是相对稳定的我设定的采样频率为11025所以我们对预处理后的语音信号S1N以1024点为一帧进行处理,帧移为512个采样点。24端点检测所谓端点检测,就是在实时输入的声音信号中,区分背景噪声和环境噪声,准确地判断出声音信号的开始点和结束点。在语音识别系统中,正确、有效地进行端点检测不仅可以减少计算量和缩短处理时间,而且能排除无声段的噪声干扰、提高语音识别的正确率。研究表明,即使是在安静的环境下,语音识别系统一半以上的错误可能主要来基于MTLAB编写的语音端点检测程序。除此之外,在语音合成、编码等系统中,高效的端点检测也直接影响甚至决定着系统的主要性能。因此,端点检测的效率、质量在语音处理系统中显得至关重要。241过零率过零率(ZEROCROSSINGRATE)是在每个音框中,音讯通过零点的次数。一般而言,噪声的过零率大于气音的过零率,而气音的过零率又大于有声音的过零率。一半情况下,噪声的波形和声音波形相比幅度非常小,为了排除噪声对过零率产生的影响,我将声音的原始谱向上平移,使得噪声的过零点影响大大减小。如下,图21展示了没有平移前的过零谱图,图22展示了平移后的过零谱图。可以看出,平移后,话音可以很容易从噪音中区分开来。005115225335X10421012声声声声005115225335X1040200400600声声声图21平移前的过零谱005115225335X10421012声声声声005115225335X1040204060声声声图22平移后的过零谱242音量能量或者音量代表声音的大小,可由声音讯号的震幅来类比,又称为能量(ENERGY)或强度(INTENSITY)等。话音的能量远比噪声的能量要大,故可用能量来区分是静音还是由话音。这里将每帧的幅度绝对值之和作为每一帧的总能量大小。音量谱如图23所示005115225335X10421012声声声声005115225335X10405001000声声声图23音量谱243过零率和音量积谱通常利用短时能量来检测浊音,用过零率来检测清音,两者配合实现可靠的端点检测。端点检测算法常用的是由语音能量和过零率组合的有双门限法,以及短时能量和过零率的乘积构成的能频值法。图24展示了过零谱、音量谱和过零率和能量成绩构成的谱线。005115225335X104202声声声声005115225335X104050声声声005115225335X10405001000声声声005115225335X104024X104声声声声声声图24过零音量积谱244用过零率和音量积谱来检测端点端点检测算法常用的是由语音能量和过零率组合的有双门限法,以及短时能量和过零率的乘积构成的能频值法。这里采用的是第二种方法,通过能量和过零率的乘积构成的能频值来判断语音的端点。这里我对端点进行了两级判断。首先根据过零率和音量积设定一个较高的门限TH,若谱大于TH,则可确定2个端点A、B,并可认为这2个端点之间是语音信号,这样相当于完成初判。再根据背景噪声的过零率和音量积设定一个比TH稍低的门限TL,如果信号的能量大于TL,则所对应的端点C、D之间仍是语音信号,至此完成了第二级判断。判断结果如图25所示005115225335X10421012声声声声141516171819221X10421012声声声声图25端点检测出的语音波形25特征参数提取251特征参数概述对于特征参数,有多种参数可供选取。常见的有三种(1)线形预测系数特征矢量LPC(2)LPC倒谱特征矢量LPCC(3)MEL倒谱系数MFCC1线性预测系数LPC这里我采用最简单的一种线形预测系数特征矢量LPC。线性预测LINEARPREDICTION分析是最有效的语音分析技术之一,在语音编码、语音合成、语音识别和说话人识别等语音信号处理领域中得到了广泛的应用。基本思想是一个语音信号的抽样值可以用过去的若干个抽样值的线性组合来逼近。语音信号是一种典型的时变信号,然而如果把观察时间缩短到十毫秒至几十毫秒,则可以得到一系列近似稳定的信号。人的发音器官可以用若干段前后连接的声管进行模拟,这就是所谓的声管模型。由于发音器官不可能毫无规律地快速变化,因此语音信号是准稳定的QUASISTEADY。全极点线性预测模型LPC可以对声管模型进行很好的描述,这里信号的激励源是由肺部气流的冲击引起的,声带可以有周期振动也可以不振动,分别对应浊音VOWEL和清音CONSONANT,而每段声管则对应一个LPC模型的极点。一般情况下,极点的个数在1216之间,就可以足够清晰地描述语音信号的特征了。LPC是语音分析的重要手段,它能很好地进行谱估计,即可作为语音特征的参数。因此仅用12个LPC系数就能很好地表示复杂语音信号的特征,这就大大降低了信号的冗余度并有效地减少了计算量和存储量,使之成为语音识别和语音压缩的基础。211,0,PNKNIAI1,2KP上式表示P个方程构成的方程组,未知数为P个。求解该方程组,就可以得到系统的线性预测系数。由基于自相关的递推求解公式求解,也就是所谓的DURBIN算法得220NER231IIJNIIAJK24IIA2511,IIJJIJKAJI262LNINE公式中,上标表示第次迭代,每次迭代只计算和更新直到12,IA时,结束迭代。IP在MATLAB中利用LPC函数计算LPC系数,其语法为ALPCX,N这里X为一帧语音信号,N为计算LPC参数的阶数。通常X为240点或256点的数据,N取1012,对语音识别来说就已经足够。2线性预测倒谱系数LPCC在语音识别系统中,很少直接使用LPC系数,而是由LPC系数推导出另一种参数线性预测倒谱系数(LPCC)。倒谱实际上是一种同态信号处理方法,标准的倒谱系数计算流程需要进行FFT变换,对数操作和相位校正等步骤,运算比较复杂。在实际运作中大多数语音识别系统都会采用倒谱参数来作为有关距离的度量。LPC倒谱系数是描述说话人声道特性的,广泛应用于声纹识别。在实际计算中,当序列XN为最小相位的情况下,可以利用序列XN及其倒谱系数CN的递推关系来简化计算。序列XN及其复倒谱系数CN的递推公式如下2710,0NKNXNXKLPCC参数是一种非常重要的参数,它不是由原始信号XN得到,而是由LPC系数得到的。由26式可得LPC到LPCC的直接递推关系。MA2820LOGCG291,1MKMCAP2101,KC3MEL尺度倒谱系数MFCCLPC模型是基于发音模型建立的,LPCC系数也是一种基于合成的参数。这种参数没有充分利用人耳的听觉特性。实际上,人的听觉系统是一个特殊的非线性系统,它响应不同频率信号的灵敏度是不同的,基本上是一个对数的关系。近年来,一种能够比较充分利用人耳这种特殊的感知特性的参数得到了广泛的应用,这就是MEL尺度倒谱参数MELSCALEDCEPSTRUMCOEFFICIENT,或称MEL频率倒谱系数,简称为MFCC。大量的研究表明,MFCC参数能够比LPCC参数更好地提高系统的识别性能。从目前使用的情况来看,在大词汇量语音识别应用中已逐渐取代原本常用的线性预测编码导出的倒频谱参数,原因是它考虑了人类发声与接收声音的特性,具有更好的鲁棒性。由于语音信号在时域上的变化快速而不稳定,所以通常都将它转换到频域上来观察,此时它的频谱会随着时间作缓慢的变化。所以通常将加窗后的帧经过快速傅立叶变换(FFT),求出每帧的频谱参数。再将每帧的频谱参数通过一组N个(N一般为2030个)三角形带通滤波器所组成的MEL频率滤波器,将每个频带的输出取对数,求出每一个输出的对数能量(LOGENERGY)EK,K1,2,N。再将此N个参数进行余弦变换(COSINETRANSFORM)求出L阶的MELSCALECEPSTRUM参数。MFCC参数的计算是以“BARK”为其频率基准的,它和线性频率的转换关系是21110259LOG7MELFFMFCC参数也是按帧计算的。首先要通过FFT得到该帧信号的功率谱,转SN换为MEL频率下的功率谱。这需要在计算之前先在语音的频谱范围内设置若干个带通滤波器212,0,1,0,12MNHNMNMFCC参数的计算通常采用如下的流程(1)首先确定每一帧语音采样序列的点数。对每帧序列进行预加重SN处理后再经过离散FFT变换,取模的平方得到离散功率谱。S(2)计算通过M个后所得的功率值,即计算和在SNMHNMH各离散频率点上乘积之和,得到M个参数,。MP0,1M(3)计算的自然对数,得到,。MPL0,1(4)对计算其离散余弦变换,得到,。011,LD,1(5)舍去代表直流成分的,取作为MFCC参数。0D12,K252用MATLAB实现LPC系数的计算本系统使用的特征参数是线性预测系数LPC。在MATLAB中利用LPC函数计算LPC系数,其语法为ALPCX,N这里X为一帧语音信号,N为计算LPC参数的阶数。通常X为240点或256点的数据,N取1012,对语音识别来说就已经足够。26语音识别中的模式匹配261DTW算法原理目前,语音识别的匹配主要应用HMM和DTW两种算法。DTW算法由于没有一个有效地用统计方法进行训练的框架,也不容易将低层和顶层的各种知识用到语音识别算法中,因此在解决大词汇量、连续语音、非特定人语音识别问题时较之HMM算法相形见绌。HMM是一种用参数表示的,用于描述随机过程统计特性的概率模型。而对于孤立词识别,HMM算法和DTW算法在相同条件下,识别效果相差不大,又由于DTW算法本身既简单又有效,但HMM算法要复杂得多。它需要在训练阶段提供大量的语音数据,通过反复计算才能得到参数模型,而DTW算法的训练中几乎不需要额外的计算。鉴于此,DTW更适合本系统的要求。在孤立词语音识别中,最为简单有效的方法是采用DTW(DYNAMICTIMEWARPING,动态时间归整)算法,该算法基于动态规划(DP)的思想,解决了发音长短不一的模板匹配问题,是语音识别中出现较早、较为经典的一种算法。用于孤立词识别,DTW算法与HMM算法在训练阶段需要提供大量的语音数据,通过反复计算才能得到模型参数,而DTW算法的训练中几乎不需要额外的计算。所以在孤立词语音识别中,DTW算法仍然得到广泛的应用。无论在训练和建立模板阶段还是在识别阶段,都先采用端点算法确定语音的起点和终点。已存入模板库的各个词条称为参考模板,一个参考模板可表示为RR(1),R(2),R(M),R(M),M为训练语音帧的时序标号,M1为起点语音帧,MM为终点语音帧,因此M为该模板所包含的语音帧总数,R(M)为第M帧的语音特征矢量。所要识别的一个输入词条语音称为测试模板,可表示为TT(1),T(2),T(N),T(N),N为测试语音帧的时序标号,N1为起点语音帧,NN为终点语音帧,因此N为该模板所包含的语音帧总数,T(N)为第N帧的语音特征矢量。参考模板与测试模板一般采用相同类型的特征矢量(如MFCC,LPC系数)、相同的帧长、相同的窗函数和相同的帧移。假设测试和参考模板分别用T和R表示,为了比较它们之间的相似度,可以计算它们之间的距离DT,R,距离越小则相似度越高。为了计算这一失真距离,应从T和R中各个对应帧之间的距离算起。设N和M分别是T和R中任意选择的帧号,DT(N),R(M)表示这两帧特征矢量之间的距离。距离函数取决于实际采用的距离度量,在DTW算法中通常采用欧氏距离。若NM则可以直接计算,否则要考虑将T(N)和R(M)对齐。对齐可以采用线性扩张的方法,如果N1D2DI1,J1ELSED2REALMAXENDIFJ2D3DI1,J2ELSED3REALMAXENDDI,JDI,JMIND1,D2,D3ENDENDDISTDN,MELSEDISTREALMAXEND27MATLAB上的GUI设计MATLA作为功能强大的科学计算软件,同样也提供了图形用户界面设计的功能。在MATLAB中,基本的图形用户界面对象包括三类用户界面控件对象,下拉式菜单对象和快捷菜单对象。根据这些图形对象,可以设计出界面友好。操作方便的图形用户界面。本系统的整个上位机使用MATLAB做的,为了更方便的进行操作,我用MATLAB的GUI设计了一个图形界面。上面设置了串口选择框、录音开始按钮、语音识别结果框等。实际界下面如图26所示图26MATLABGUI界面第3章下位机设计31小车总体设计311小车总体框图系统总体框图如下所示。整个系统以单片机作为控制中心,单片机前要接受上位机传来的控制指令,后要根据收到的指令控制小车完成不同的功能。小车共有两个电机,有L298构成的H桥来驱动。稳压电路采用线性稳压芯片7805来完成。系统框图如图11所示图31系统总体框图312小车结构设计本小车底盘采用三轮结构,两个动力轮分别由两个直流电机单独驱动。第三个轮是转向轮,可以三百六十度转向。核心板采用通用板搭建,采用专用芯片插槽,方便单片机的拆卸。驱动电路和稳压电路焊在同一通用板上,两个板子用铜柱固定为上下两层,节省空间。整个小车实物图见附录一。单片机控制核心串口接收L298电机驱动电路电机32小车硬件设计321单片机电路设计本系统单片机采用的是宏晶公司的STC12C5A60S2,它采用增强型8051内核。指令代码完全兼容传统8051单片机,但速度比传统8051单片机快812倍。单片机控制电路主要有复位电路、晶体振荡电路两部分。其总体电路图如图32所示图32单片机电路图1复位电路复位电路是单片机控制电路中很重要的电路之一。STC12C5A60S2单片机为高电平复位,及即要使得复位管脚RST保持一定时间的高电平。其复位电路分两种情况。当单片机时钟频率小于12MHZ时,采用第一种复位电路。将RST管脚接1K电阻R1到地,其电路如图33所示。图33第一复位电路当单片机时钟频率大于12MHZ时,采用第二复位电路,其电路如图34所示。图34第二复位电路本电路单片机时钟采用的是12MHZ,故复位电路采用第二种。以上复位电路只能保证单片机能够上电复位,为了更好的进行调试,本电路对上面的电路进行了更改,使得单片机电路能够手动复位。改进后的复位电路如下图35所示。当按键按下时,由于电阻R1的作用,RST管脚保持为高电平。单片机复位。图35改进后的实际复位电路2晶振电路STC12C5A60S2单片机内部含有R/C时钟振荡电路,单片机可以选择使用内部自有的R/C时钟振荡电路,也可以使用外接的高精度晶体/时钟。用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体时钟。常温下内部时钟频率为5V单片机1117MHZ,33V单片机812MHZ。单片机内部时钟电路受温漂等影响较大,当对精度要求不高时可以使用内部时钟。本电路需要串口数据收发,控制对时钟要求较高,故采用的时钟源是外接的高精度晶体/时钟。其电路如图36所示。图36晶体振荡电路322驱动电路设计驱动电路的选择及稳定性对小车性能来说是至关重要的。这里我采用L298专用驱动芯片来驱动两个直流电机。L298驱动芯片内置两个H桥电路,可以两个电机实现正转和翻转。最大输出电流可以达到两安,这对小车上的直流电机足够用。L298的外围电路也是非常重要的,图37为L298的外围电路。途中8个单向导通二极管起着非常重要的作用,它可以防止电机磁场作用产生很大的反向电压时对L298内部电路的破坏作用。图37L298外围电路323稳压电路设计小车的整个硬件电路共需要两个电压,电源电压为8伏,直接供给直流电机。而单片机控制电路需要五伏的电压,故需要设计一个稳压电路来输出稳定的5伏电压供给单片机控制电路。本系统采用线性稳压芯片7805把8伏的电源电压稳成5伏输出。其电路图如图38所示图385V稳压电路33小车软件设计331主程序流程图图39主函数流程图小车单片机采用STC12C5260S2,此单片机属于8051内核,采用KEIL开发环境来编程。下位机程序主要功能就是时刻准备接受上位机传来的串口数据,然后,根据不同的数据控制小车电机是小车完成不同的动作。主函数流程图如图39所示332部分主程序LM7805VINVOUT5V系统初始化前进停止后退串口数据1部分程序如下INCLUDEINCLUDE“HARDH“UNSIGNEDCHARRXBUF320/接收缓冲区/名称COM_INIT功能串口初始化,晶振110592,波特率9600,使能了串口中断输入无输出无/VOIDCOM_INITVOIDTMOD0X20PCON0X00SCON0X50TH10XFD/设置波特率9600TL10XFDTR11/启动定时器1ES1/开串口中断EA1/开总中断/名称COM_ISR功能串口中断子函数输入无输出无/VOIDCOM_ISRVOIDINTERRUPT4STATICUNSIGNEDCHARI0/定义为静态变量,当重新进入这个子函数时I的值不会发生改变EA0IFRI1/当硬件接收到一个数据时,RI会置位IFI0RXBUF0SBUF48/这里减去48是因为从电脑中发送过来的数据是ASCII码。RI0III2EA1/主函数/VOIDMAINCOM_INITWHILE1SWITCHRXBUF0CASE1GO_AHEADBREAKCASE2STOPBREAKCASE3GO_AFTERWARDBREAKDEFAULT333底层驱动程序底层驱动程主要分两块儿电机控制程序和串口控制程序。串口控制主要是进行寄存器设置,设置串口时钟得喝波特率。串口数据的接收程序有查询法和中断法。查询法主要是通过不断查询串口数据接收标志位,当标志位置位时,说明串口数据接收缓冲区已满,于是就可以把数据从接收缓冲区中读出,其流程图如图310。中断的方法是,打开单片机硬件串口中断,串口数据接收缓冲区已满时,单片机就会触发串口中断,通知CPU读取串口接收的数据。中断的方法可以减少CPU占用率,故这里我采用了中断的方法。图310串口程序,查询法RI1YNRI0读取串口数据开始电机控制主要是通过控制L298电机驱动芯片来控制电机。L298有六个输入脚(IN1,IN2,ENAIN3,IN4,EAB)和四个输出脚(OUT1,OUT2OUT3,OUT4)。它的六个输入口分别连接单片机的P00P05,四个输出口连接两个电机。通过控制六个输入口电平来控制电机正反转或者停止。其主要的控制方法见表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030硅碳负极材料行业市场深度调研及发展前景与投资机会研究报告
- 2025-2030石榴石手链行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030真空包装产业行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030皮肤主食卸妆行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030生物活性成分和产品行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030生化药品行业风险投资态势及投融资策略指引报告
- 2025-2030牛肉辣椒酱行业市场深度调研及前景趋势与投资研究报告
- 2025-2030溜冰专用护具市场市场现状供需分析及投资评估规划分析研究报告
- 2025-2030清香型白酒行业市场发展分析与发展前景及投资战略研究报告
- 2025-2030液晶显示器行业市场发展分析及投资前景研究报告
- 织码匠文字材料语言大纲目录
- 2023年全国测绘生产成本费用定额
- 2023年河南应用技术职业学院单招职业适应性测试题库及答案解析
- GB/T 28758-2012起重机检查人员的资格要求
- GB 18489-2001管形荧光灯和其他放电灯线路用电容器一般要求和安全要求
- 设计变更指令单
- 《高速铁路无砟轨道修理规则》第九章维修工机具、常备材料与作业车辆停留线课件
- 三年级《中国古代寓言故事》知识考试题库(含答案)
- 摩擦学发展前沿课件
- (通用版)医院收费员考试试题及答案
- 个人有关事项报告表(全)
评论
0/150
提交评论