版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
语音控制小车系统设计前言根据摩尔定理,芯片的集成化越来越高,因此计算机处理器的发展趋势就是越来越微型化,按键键盘逐渐会被移动设计平台所淘汰,如果一个产品仅仅只有一个0.96寸的OLED那么大,那么外加一个按键键盘是不方便操作的。这时候语音识别技术的研发就显得愈发重要,它能够解决信息技术中人机进行脱离键盘无线操作问题,随着人工智能技术和语音处理技术的发展,语音识别技术越来越多的应用到智能产品中。国内外的科技巨头们很早就意识到语音识别技术研发的重要性,如今已有很多种智能产品中就语音识别的应用,这预示着语音识别技术有着非常广泛的应用领域和良好的市场前景。语音识别技术其目的是人与机器能进行自然语言通信,用语言操控电脑。近年来,智能语音产品越来越多的进入人们的生活,家用电器和玩具的操作,不再需要以遥控器的繁多按键为控制接口,取而代之的是我们平常说话的模式来驱使家用电器和玩具动作,天猫精灵、小爱同学、小度、叮咚等产品不用遥控器,不用走到跟前去按控制键,只需要去跟产品对话,就能够进行人机交互,让机器能听会说,这不仅仅能给我们的生活带来便利,也能增添许多乐趣,这是未来家用电器开发及应用的趋势。本文设计了一款语音控制小车系统,该设计通过识别语音控制小车出发、暂停、后退、转向等运动状态,娱乐性较高,也是未来智能玩具的一个发展方向。如今,市场上的机器人种类越来越多样化,智能声控小车这种新型玩具备受广大消费者喜爱。伴随着微电子技术的高速发展,声控技术给人们的生活带来各种各样的便利,就以语音遥控玩具车为例,要想拓宽此类玩具色市场,就要解决系统的过滤噪声问题,当芯片的抗噪声性能得到提高,就能提高识别精度,从而准确的识别语音,并进行良好的控制。近年来,百度、谷歌等科技巨头都投入大量的资金和人力在无人声控汽车研发方面,并取得了许多成就,人们希望能够将人的思想与机器的高性能进行完美配合。但是目前声控技术由于抗噪声性能仍然有很大的提升空间,如何提高语音技术的时效性和对环境的适应性,以及如何能够识别多人语音需要进一步探索。1绪论1.1自动语音识别技术的发展过程最早对人类语音信号进行识别研究的是美国著名实验室——AT&T,1950年代,通过跟踪语音信号中的共振峰进行识别度Audrey系统问世,虽然识别数量少,但精度高达98%。十几年后,语音识别技术取得了突破性进展,这不仅与当时计算机技术的高速发展密不可分,还与\t"/item/%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%88%AB%E6%8A%80%E6%9C%AF/_blank"线性预测编码LinearPredictiveCoding(LPC)和动态时间规整DynamicTimeWarp技术的出现息息相关。最早的语音识别是用与设定的语音模板进行匹配比对的方法,所识别的语音信号不仅局限在特定的某个人声,而且必须是独立简短的词语,所以早期的语音识别技术是基于LPC和DTW技术的特定人声、独立词语声音识别系统。随着科技的发展,声控技术的应用领域越来越广泛,为了迎合市场需求,词汇表容量小、特定人声识别、词语必须独立等限制条件需要得到解决。由于初期的声音识别是进行模块识别,如果将词汇表的内容扩大就会造成模板在进行建立和匹配选取时由于数据繁琐而产生困难;;在识别多种人声时,由于人与人之间的不仅声音特征存在差异,而且每个人在生理、心理不同的状态下说出相同的话的发音也会存在很大的区别;而且在识别一段较长的语音信号时,很难避免背景噪声或其他发声体的干扰。因此我们需要找到新的识别技术来代替模块识别技术。语音识别技术中最关键的技术就是隐马尔科夫模型HiddenMarkovModel。从Baum提出相关\t"/item/%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%88%AB%E6%8A%80%E6%9C%AF/_blank"数学推理,经过Labiner等人的研究,\t"/item/%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%88%AB%E6%8A%80%E6%9C%AF/_blank"卡内基梅隆大学的\t"/item/%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%88%AB%E6%8A%80%E6%9C%AF/_blank"李开复最终实现了第一个基于隐马尔科夫模型的非特定人大词汇量连续语音识别系统Sphinx。此后严格来说语音识别技术并没有脱离HMM框架。基于语法的语言处理机制也已应用于语音识别。上世纪九十年代前期,语音识别技术在产品中的应用成为世界各大科技公司研发的重点之一。识别的精确率是语音技术好坏的一个重要评判标准,经过不懈的努力,这项指标在研究中逐步提高。例如IBM公司推出的ViaVoice、微软的Whisper等。其中IBM于1997年开发了中文语音识别系统,紧接着98年开发出了viavoice'98语音识别系统,可以识别上海话、四川话、闽南话等地方口音。今天,嵌有语音控制的产品多种多样,IOS系统的Siri、亚马逊的Alexa和微软的Cortana都是目前人们所熟知并广泛应用的。这些技术基本上应用于移动电话。以Siri为例,它是人们学习和生活的个人助手。通过自然语音输入,人类可以搜索数据、直播、安排行程、提问和回答等,为人们提供快捷方便的服务。我国从1987年开始加大了在语音识别领域的研发力度,经过科学家们的努力,语音识别技术的精确度达到国际先进水平。2002年,我国自主研发的“天语”中文语音系列产品——PattkASR,能够应用于多种开发和应用平台,将核心技术掌握在了自己的手里。目前,百度公司的语音识别应用产品走在前列,无论是网页搜索还是定位导航都可以使用语音输入,再进一步转化为文字。最近,阿里巴巴达摩院机器智能实验室的语音识别团队推出了新一代语音识别模型DFSMN,该模型不仅被谷歌等外国巨头引用,而且全球语音识别得分为96.04%。此外,该团队还宣布了这一点:向世界各地的企业和个人开放DFSMN模型,允许全球开发人员分享这种力量。1.2课题设计意义现在大多数的智能小车的控制都局限于用手动遥控小车来控制其运动状态,当然也有利用摄像头、光电、电磁等传感器控制的智能车,但是这类小车对于场地有着一定的要求。对此,本次设计通过语音信号来控制小车,不仅不需要遥控或按键,同时也不需要设置特定的环境,做到更加智能化的控制小车,通过LD3320的自动语音识别技术让小车根据语音命令执行操作,开发出全新的控制方式;同时,语音小车的商业化、产品化也是现代的玩具制造业的发展方向之一,随着时代的发展,科技的进步,智能电子玩具逐步取代传统玩具成为玩具市场的主力军,根据欧睿信息咨询公司的统计数据显示,2012到2017年中国玩具及游戏市场的零售总额增加了近三倍,每年增长幅度在20%左右。2017年传统玩具及游戏市场的零售额744.3亿元,仅占玩具市场总销售量的26.9%;电子玩具及游戏市场的零售额为2,020.7亿元,占玩具市场总销量的73.1%,这充分说明了先进的电子玩具已成为玩具行业发展的主流.Voicecar深受儿童群体的喜爱。他们可以拥有自己的机器人,就像卡通英雄一样。与玩具交流玩耍。在这种情况下,我们专为非特定人声的语音识别小车这一主题而设计。通过课题设计,我了解了许多有关语音识别技术方面的知识,也对现如今语音识别技术的研究程度、发展趋势、应用领域有了一定的了解,也了解了很多芯片,传感器的调试运用,这些知识有别于之前学过的理论基础知识,但基础知识的积累对于此次课题设计提供了巨大的帮助,通过对理论知识的回顾使我受益匪浅。自动语音识别技术仍然有很大的领域值得去发掘探索,不仅仅局限于玩具小车的设计中,也可以应用在更高端,更智能的产品中。因此,这次的语音小车系统课题设计是非常具有研究意义的。1.3课题设计方案方案一:采用STC89C52RC微处理器作为主控芯片,LD3320语音模块采集处理声音信号,该模块可以进行模数转换、还可以外接扬声器、麦克风等,电路精简,实用方便,具有语音识别、转化、人机交互等功能,系统识别率较高;通过使用7.2V可充电电池作为电源模块,给L298N电机驱动模块供电、L298N输出5V电压给主控芯片,为避免碰壁,在车头加入超声波避障模块。STC单片机方案结构如图1-1所示:图1-1STC单片机方案框图方案二:采用凌阳单片机来作为声控小车的主控芯片,这款开发板功能非常齐全,自带语音识别模块、语音录放模块,使用者只需外接一个麦克风并对芯片进行语音训练即可,硬件精简,节省了电路设计的时间,方便实用。这个方案的基本结构图如图1-2所示:图1-2凌阳61核心方案框图方案三:使用STM32F103ZET6单片机作为中央处理器,包括电源提供系统,LD3320语音识别模块,电机驱动模块等。通过单片机来实现几个模块之间的通信,从而实现整个控制系统的正常工作。其中语音采集处理模块是LD3320语音处理芯片,该模块能实现对非特定人声的采集即可以识别多人语音,当有语音信号产生时,语音采集模块通过咪头捕捉到后,并在模块内部的识别判断处理后,通过串口通信的方式将相应指令发送到STM32单片机上,此时STM32单片机从串口读到指令后经过内部主程序的逻辑判断后发送对应的指令来控制电机驱动的工作状态,最终通过语音来控制小车行为状态。这个方案的设计如图1-3所示:图1-3STM32核心方案框图由以上方案对比,方案一其性价比较高,但是由于引脚数目有限,许多功能需要进行扩展,无论对于硬件方面还是软件方面都会增加负担,而且51保护能力很差,外部拓展模块过多会很容易烧坏芯片,所以方案一未被采用;方案二运用的比较的广泛,看起来也比较简易,但是其语音识别部分需要进行语音训练,具有识别特定人声的局限性,考虑到其在软件上的设计比较困难并且整个设计价格较高,因此排除方案二;方案三STM32F103ZET6的引脚很多,当外加多个传感器时GPIO口足够使用,内含72MHz的系统时钟,运行速度快,功能强大,LD3320芯片识别正确率高达95%,有凌阳单片机不同,无需事先录制声音,进行语音训练,而且该模块功能众多,集成度较高,是低成本语音芯片的最佳选择;经过多方面研究考虑选择第三个方案。2语音小车硬件设计2.1语音小车原理框图图2-1语音小车原理框图本设计有五个模块,即为单片机STM32F103ZET6、语音识别模块LD3320、电机驱动模块L298N、超声波避障模块和蓝牙模块;在小车的设计上,使用7.2V可充电电池为整个系统供电,在驱动小车上,电池输出电压直接供给L298N电机驱动模块,为小车的四个直流电机提供驱动电源;同时将L298N输出的5V电压给主控芯片供电,测试输出稳定后,专门为整个语音芯片工作;由于STM32核心板上带有LM1117-3.3V稳压模块,因此可以直接将5V输入电压转化成3.3V输出电压给LD模块、蓝牙模块、超声波模块供电;GPIOC中四个输出口对L298N的四个输入端口发出相对应的控制信号,实现对直流电机的控制。2.2单片机模块单片机电路原理如图2-1所示。图2-2单片机电路原理图此声控智能小车设计用STM32F103ZET6单片机作为中央控制器,STM32单片机内置了Cortex-M3的32位ARM的CPU,可以采用串行下载或者J-LINK下载。输入/输出端口足够该设计使用,运用了高级定时器TIM8和基本定时器TIM6分别给PWM和超声波计数,蓝牙模块用到了RXD、TXD通信接口。扩展的IO引脚能够最大限度地满足用户的需求并且多功能的双向IO口,能够承受5V的信号,其中GPIO包含了八种模式不同的工作模式,根据所需要的场景来配置GPIO的不同模式。除此之外,还包含I2C、SPI、串口等几种可供选择的通信方式,其中我们也可以通过串口来对单片机进行基础的调试。该模块是系统的控制核心,控制不同模块之间的通信,当语音模块上报识别到的语音信息时,该模块会从串口中读取到相关的字符指令,并经过逻辑判断分析控制对应GPIO口的高低电平来实现小车的行为状态。2.3语音识别模块2.3.1LD3320芯片的工作原理LD芯片工作过程就是提取特征并进行分析,随后将几个关键字进行比较,相似度最高的作为结果发送到主控芯片。该芯片的检测结果和控制系统等操作只需用语音控制,而且关键词字符串可动态变化,这大大扩展了开发应用领域。该模块对语音模拟信号处理的过程如图2-3所示。图2-3语音模块处理过程框图语音识别功能是将语音与内部关键字列表中的单词进行比较的过程。识别声音之后,在芯片中分析声音的特征和声音的频谱,通过从关键字列表中进行匹配查找,找到与它最为相似的关键字作为语音识别的结果。如果需要,可以设置适当的寄存器,通过更改内部数据,列表中的相应条目将以字符串的形式写入语音识别芯片。可容纳的字数限制为30个,但如果用户说的话太长,超过8个-words,无疑错别字、漏字、多字、暂时的停顿都会提高错误率。一般来说,如果想要获得更准确的语音识别结果,必须尽量简化条目中关键词的数量。这样识别准确性就相对会提高很多。LD3320语音识别模块原理图如图2-4所示。图2-4语音芯片原理图LD3320语音芯片的诞生,来自人们对于语音识别产品的市场需求,考虑到设计的实用性和便捷性,该模块可以进行模数转换、还可以外接扬声器、麦克风等,电路精简,实用方便,具有语音识别、转化、人机交互等功能,系统识别率较高,此外,指令集可根据需求在程序中随时修改。同时,语音用户界面被添加到市场上的电子产品中,增添了电子产品语音特色。该款芯片的主要功能有:①无需特定人声识别:不区分人声,可以直接进行语音识别,语音识别的准确率可高达95%;②芯片内存大:内部存储空间大,不需扩展外部寄存器,从而降低成本;③在芯片内置有高精度的D/A与A/D通道:该芯片可以在内部自动完成A/D转换,除此之外,在A/D的输入端只需接上MIC,就可以完成模拟信号的输入。④高精度识别效果:关键词列表一次可容纳50条,而且可以动态编辑,所以该芯片应用灵活,能重复使用;在程序中设置好关键词列表,然后通过单片机写入到芯片的寄存器中,经过声音的扫描后,将内部匹配相似度最高的结果发送给单片机,然后根据结果进行下一步控制;⑤功率小,低功耗节能,3.3V供电;2.3.3语音芯片部分逻辑电路内部部分电路逻辑图如图2-5所示。图2-5LD3320内部逻辑电路图该芯片具有低功耗的特点,电源使用3.3v供电,当输出高电平时,输出电压为70%的电源电压,如果输出低电平,对应引脚电压为电源电压的30%,在本系统设计中,STM32F103ZET6核心开发板板上带有LM1117-3.3V稳压模块,可以用开发板给识别模块供电。VDD—数字电路用电源输入:3.0V-3.3V;VDDIO—数字电路输入/输出用电源输入:1.65V-VDD;VDDA—模拟电路用电源输入:3.0V-4.0V;●时钟是微处理器的核心,外围电路的时钟晶振经PLL锁相环倍频输出,倍频可选择为2~16倍,产生一定的频率,最大不超过72MHz共内部元件使用。
●不论此时芯片在执行什么操作,复位信号都能还原芯片状态。●通过并行的方式和外部主CPU连接;使用P0-P7是数据线,一个中断返回信号,以及读写信号,片选信号和A0口。●串行接口—串行接口通过SPI协议,与中央处理器进行连接通信;MD置1,(SPIS*)置0。数据进行串行通信时用到4个管脚:输出(SDO)、输入(SDI)、时钟(SDCK)、片选信号(SCS*)。●寄存器—通过对寄存器的操作来完成芯片的设置,以及处理一些命令还有传送接收数据等。寄存器读写操作有4种方式。并行方式MD接低电平时按照此方式工作。P0~P7传输数据,写和读的时序图如下:图2-6并行方式写时序图2-7并行方式读时序2.串行SPI方式与并行方式相反,时钟保持下降沿有效,SDI传输指令、地址字节、数据字节,输出为低电平。MD接高电平,且SPIS*接地时按照此方式工作。写和读的时序图如下:图2-8SPI方式写时序写的时候要先给输入发送一个“写”指令(04H),然后给SDI发送8位寄存器地址,再给SDI发送8位数据。在这个过程中,片选信号必须保持低电平。图2-9SPI方式读时序读的时候要先给SDI发送一个“读”指令(05H),然后给SDI发送8位寄存器地址,再从SDO接受8位数据。在这个过程中,片选信号保持低电平。语音芯片的管脚图和封装图如图2-5和2-6所示。图2-10LD3320芯片管脚图图2-11LD3320芯片封装图其对应管脚编号定义如表2-1所示。表2-1芯片管脚说明2.4电机驱动模块L298N模块是此次设计的核心组件。它是一款高压、大电流、全桥驱动器,内部带有两个使能控制端子,不受输入信号影响时允许或禁止设备工作。有逻辑电源,输入运行低电压电路,连接外部电感电阻,可以进行负反馈。当使用L298N模块驱动电机时,该芯片可以驱动2路直流电机,本设计使用了4个减速直流电机,将同侧的两个电机进行串联,就可以实现一个直流电机驱动模块4路直流电机。图2-12电机驱动模块实物图输出A、输出B:连接左右两侧电机,注意反接。12V供电、GND:连接电池。5V输出:给主控板供电。ENA、ENB:使能端高电平有效。IN1—IN4:IN1、IN2控制通道A侧直流电机,IN3、IN4控制通道B侧直流电机。5V跳线帽:接上跳线帽后板载5V输出有效。电机驱动模块电路原理如图2-13所示。图2-13电机驱动模块原理图该芯片输入工作电压VSS为5V,VS供给电机工作,ISENA、ISENB是电流反馈脚,在使用小型电机时将它们接在公共端;ENA、ENB是两个使能端子,PWM信号输入四个逻辑输入端;输出管脚OUT1、OUT2(1通道)和OUT3、OUT4(2通道)分别接直流电机。ENA为高电平时,选择1通道输出,ENB为高电平时,选择2通道输出,通道1和2连接到两个直流电动机,这比异步电动机的控制方法简单。只需将电机的两根控制线用适当的电压供电即可转动电机,电压越高,直流电机的转速越快,直流电机的额定功率为0.75W,额定电压为5V,额定电流为0.15A。在通电的时候,电机本身产生很高的感抗。如果电流突然急剧变化,则会产生较大的反向电流,L298N芯片容易烧毁。为了保护芯片输出免受过大的反电压,在芯片周围增加了8个续流二极管。当控制电机转动时,两个使能端置高电平,通过改变电压输入端的电压大小,中断频率使小车电机进行暂停、出发、后退、变速、转向等操作,例如当IN1、IN3置高电平,IN2、IN4置低电平时两个直流电机向前旋转,控制小车前进,具体的控制信号引脚和电机的逻辑关系如列表5-2所示。表5-2L298N信号引脚和电机运动状态关系表2.5超声波避障模块
HC-SR04超声波测距模块发射的声波能够感测到正前方30度400cm范围内物体,精确度较高,误差大约在3mm以内;该模块包括超声波发射器、接收器与控制电路。图2-14超声波模块原理图超声波工作过程如下图。当Echo反馈到单个芯片微机时,回响信号的脉冲宽度与测量距离成比例,并且MCU立即停止定时。序列图如图4所示。距离由单片机计算。即:S=VT/2,V=340m/s。图2-15超声波模块时序图2.6蓝牙模块蓝牙模块主要用于数据传输。蓝牙端口模块反映了无线通信功能,本质上是应用了STM32的串口通信,使得数据可以按序列被转移到中央处理器。蓝牙通信由两部分组成,服务模块与主机系统,服务模块与主机之间能进行配对通信,主机系统一般指计算机,手机等高级处理器,当然一些蓝牙模块也可以作为主机与另一个蓝牙进行通信。本设计中增加了HC-06模块控制智能小车,蓝牙模块接收手机的信号指令,在电脑上安装串口助手,连接上蓝牙模块设置AT指令集、修改密码、波特率、询问版本号和功能置换,在KEY(26分)放弃内存之前,HC-06模块只能记住最后一对从机和从机。蓝牙模块原理图如图2-16所示。图2-16蓝牙模块原理图3语音小车软件设计3.1系统软件流程图该系统的软件结构按系统要求实现前进,后退,左右转向,加速,减速和停止。程序包括微控制器的初始化,语音芯片的复位,软件开发的PWM信号,超声模块的动作,蓝牙模块的串行通信,延迟功能,中断处理功能以及自动语音识别过程。在系统的构造中,小车的运动主要由音频-无线控制和蓝牙-无线控制。前者是在语音识别后无线控制汽车的运动。接收无线命令用于执行小车设定的动作,小车的运动状态可以通过再次的语音命令序列而改变,操作顺序如下:首先,语音识别被初始化,检查是否每个模块能够正常工作、正确地识别出相应的关键字,则系统启动语音识别。后者使用蓝牙模块HC-06进行无线操作,首先对蓝牙模块进行初始化设置,之后在安卓手机上安装蓝牙助手APP,指令将从手机发送到HC-06蓝牙。发送到模块并通过串行通信发送到串口。单片机识别并判断是否发送了相应的字符,然后根据接收到的字符执行相应的程序。本设计系统程序总流程如图3-1所示。图3-1系统程序流程图在系统初始化部分,主要有LD3320的初始化、基本定时器和TIM8的初始化、HC-06、SR04的引脚初始化、串口初始化。设置单片机与LD3320为并行的读写方式,提高工作效率,设置EA为高电平即打开中断允许控制位,设置EX0、IE0即外部中断0请求标志位和外部中断0中断允许位为高电平,复位定时器/计数器TIM8,TIM8四通道分别输出PWM1/PWM2/PWM3/PWM4,设置好语音模块复位,使内部的寄存器回到初始状态等。3.2语音识别流程图LD3320语音识别的操作顺序:在语音识别里面使用的是中断识别的工作方式,在识别之初,对LD模块进行复位、命令的初始化和LD模块自动语音识别(ASR)的初始化,之后等待语音信号的输入,语音信号进行频谱分析后与寄存器中的关键词进行比对,比对成功就发送无线指令到单片机执行相应操作,反之就重新进行识别。其执行流程图如图3-2所示:图3-2语音识别流程图3.3LD语音模块程序设计首先将LD3320模块复位,除对此模块复位后,还需要对LD模块中的寄存器进行初始化以及对ASR功能进行初始化,调用所需的寄存器;整个语音模块的识别顺序为:1、RunASR()实现一次完整的ASR语音识别流程;2、LD_AsrStart()实现ASR的初始化;3、LD_AsrAddFixed()添加关键词到寄存器中;4、LD_AsrRun()函数启动一次ASR语音识别流程。初始化完成后,每进行一次语音识别就要按照程序设定的顺序流程进行比对。下面为向LD芯片添加关键词语的程序:uint8LD_AsrAddFixed(){uint8k,flag;uint8nAsrAddLength;#defineDATE_A10/*数组二维数值*/#defineDATE_B20/*数组一维数值*/uint8codesRecog[DATE_A][DATE_B]={"chufa",\"zanting",\"houtui",\"zuozhuan",\"youzhuan",\"zuopian",\"youpian",};/*添加关键词,用户修改*/uint8codepCode[DATE_A]={CODE_CF,\ CODE_HT,\ CODE_ZT,\ CODE_ZZ,\ CODE_YZ,\ CODE_ZP,\ CODE_YP \};/*添加识别码,用户修改*/flag=1; for(k=0;k<DATE_A;k++) { if(LD_Check_ASRBusyFlag_b2()==0) { flag=0; break; } LD_WriteReg(0xc1,pCode[k]); LD_WriteReg(0xc3,0); LD_WriteReg(0x08,0x04); LD3320_delay(1); LD_WriteReg(0x08,0x00); LD3320_delay(1); for(nAsrAddLength=0;nAsrAddLength<DATE_B;nAsrAddLength++) { if(sRecog[k][nAsrAddLength]==0) break; LD_WriteReg(0x5,sRecog[k][nAsrAddLength]); } LD_WriteReg(0xb9,nAsrAddLength); LD_WriteReg(0xb2,0xff); LD_WriteReg(0x37,0x04); } returnflag;}3.4PWM模块设计脉冲宽度调制模式可以产生一个由TIM8_ARR寄存器确定频率,由TIM8_CCR1-TIM8_CCR4寄存器确定占空比的信号,本质上是一种周期一定,高低电平占空比可调的方波。图3-3PWM占空比逻辑图PWM波形的分段函数式表示为:其中:T是单片机中计数脉冲的基本周期,也就是STM32定时器的计数频率的倒数。N是PWM波的一个周期的计数脉冲个数,也是STM32的ARR-1的值。n是PWM波一个周期中高电平的计数脉冲个数,也就是STM32的CCRx的值。VH和VL分别是PWM波的高低电平电压值,k为谐波次数,t为时间。我们将①式展开成傅里叶级数,得到公式②:从②是可以看出,式中第一个方括号为直流分量,第二项为一次谐波分量,幅度和相位与n有关,PWM输出频率为1/(NT),第三项为于大一次的高次谐波分量。式②中的直流分量与n成线性关系,并随着n从0到N,直流分量VL到VL+VH之间变化。本课题中PWM的设计主要是通过对定时计数器TIM8的设置来控制小车的速度,程序中设置TIM8定时器的工作方式主要程序设计段为:voidTIM8_Configuration(void){ GPIO_InitTypeDefGPIO_InitStructure;TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;TIM_OCInitTypeDefTIM_OCInitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_Init(GPIOC,&GPIO_InitStructure); TIM_TimeBaseStructure.TIM_Prescaler=0; TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_Period=PWMPeriod; TIM_TimeBaseStructure.TIM_ClockDivision=0; TIM_TimeBaseStructure.TIM_RepetitionCounter=0; TIM_TimeBaseInit(TIM8,&TIM_TimeBaseStructure); TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2; TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNState_Disable; TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low; TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCNPolarity_High; TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Set; TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCIdleState_Reset; TIM_OC1Init(TIM8,&TIM_OCInitStructure); TIM_OC2Init(TIM8,&TIM_OCInitStructure); TIM_OC3Init(TIM8,&TIM_OCInitStructure); TIM_OC4Init(TIM8,&TIM_OCInitStructure); TIM8->CCR1=0; TIM8->CCR2=0; TIM8->CCR3=0; TIM8->CCR4=0; TIM_Cmd(TIM8,ENABLE); TIM_CtrlPWMOutputs(TIM8,ENABLE); }在对小车电机进行调速时,PC6-PC9分别连接IN1-IN4,使用的是软件PWM调节速度的方法。PWM调速原理非常简单易懂,就是用开关的关断时间来控制速度,开关关断的频率是固定的。3.5USB转串口下载器工具在芯片的测试中以及后续程序的下载都用到这个工具,下载安装好相关的驱动,在这里我所用到的驱动是usb-serialch340,在下载好兼容的驱动程序后,开始安装使用,该工具的结构主要是使用CH340芯片,这块芯片特点有:①支持RTS、DTR、DSR、RIC、TS、DCD常用的联络信号;②非常高速的USB设备接口,其性能完全兼容传统2.0的USB口,在外围的元器件上,就只需要电容和时钟晶振即可;③3.3V和5V的电源供电均可。4.1软件调试在程序方面,首先是利用在微雪科技官网上下载的LD3320调试程序进行测试,该芯片资料非常详细完整,在硬件电路上将相应的引脚连接好,给芯片供电该调试程序是控制LED灯的亮灭、闪烁,根据STM32核心板的引脚资料,修改对应的LED引脚。根据硬件的相关配套资料,在软件中进行宏定义和相关变量设置。如图4-1所示。图4-1小车程序宏定义及头文件通过编译下载,在开发板上实现了通过语音控制LED灯亮灭等操作,说明语音模块能够正常工作。之后添加PWM例程,调用定时器,将历程中的初始化子程序以及电机调速子程序添加到主程序中,进行编译调试。如图4-2程序图。图4-2电机驱动程序宏定义按照需求编辑程序中的关键词指令:出发、后退、停止、左转、右转、左偏、右偏,根据相应的动作命令设置速度,也就是设置PWM的输出频率,频率越高,速度越快,程序设置频率上限为7000,下限为200,前进时左右四个电机频率都设置为4000;如果要执行后退操作,就在频率前加一个负号;如果想让小车左转,就让左侧频率为0,电机停转,右侧电机给一个适当的值即可,右转同理。相关指令集设置如图4-3。图4-3关键词设置小车进行相应操作运动时电机的速度设置如图4-4。图4-4电机速度设置图在测试程序编译通过后,打开FlyMcu软件,选择芯片型号、搜索串口以及设置合适的波特率,选择STMISP勾选前三个选项,左下角选择列表中第四项,DTR复位置0,RTS置1进入引脚下载。然后选择要烧录的hex文件。使用CH340串口下载器下载到芯片里面,在此具体操作如下图4-3所示。图4-5软件下载图采用340下载器存在一个缺陷,即断电会擦除芯片内的程序,有时会下不进去程序,需要按一下主控板上的复位键,后期决定采用J-LINK下载器,将BOOT0、BOOT1都置0,并将KEIL5的相关参数设置进行修改。首先电脑和核心板用J-link连接,用梯形接口的数据线给开发板供电;打开编译软件,点击魔术棒快捷图标,如图4-6所示:图4-6快捷图标弹出Optionsfortarget‘target1’...对话框,1.选中Utilities标签。2.选中UseTargetDriverforFlashProgramming。3.选择列表中第三项J-LINK/J-TRACE。4.点击Settings,进入FlashDownloadSetup界面,如下图所示:图4-7J-link烧录选项设置其他设置可按照自己情况设置,点击“Add”按钮,弹出如下添加Flash界面:图4-8添加Flash界面这里我选择的是STM32F10xHigh-densityFlash,元件尺寸512K。单击“Add”后添加完成,这里要注意不能重复设置添加,否则下载时会出错。图4-9芯片类型选择到这一步对于J-link下载器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年融资服务机构担保协议模板
- 2024年汽车维修保养服务协议细则
- 2024辣椒种苗供应及培育协议样本
- 2024专用消防水池建设协议范本
- 2024年专属个人投资协议样本
- 2024年度保安服务外包协议样本
- DB11∕T 1703-2019 口腔综合治疗台水路消毒技术规范
- DB11∕T 1684-2019 城市轨道交通乘客信息系统测试规范
- 2024商业用地租赁及盈利共享协议
- 2024国家物流代理协议模板规范
- 5.32.4园路、广场硬质铺装工程检验批质量验收记录
- 相逢在花季――青春期心理健康
- 市场监管局执法文书可编辑版现场检查笔录
- 布草洗涤程序
- 最新小学四年级部编语文上册-第四单元考点梳理(含答案)
- IPC4552中文.doc
- 和泉PLC编程软件
- 中学30+15高效课堂教学改革实施方案
- 《Flash CC动画制作》教学大纲 课程标准 最全最新
- 高喷防渗技术交底
- 大班语言《风在哪里》ppt课件[共12页]
评论
0/150
提交评论