无线语音遥控智能车资料_第1页
无线语音遥控智能车资料_第2页
无线语音遥控智能车资料_第3页
无线语音遥控智能车资料_第4页
无线语音遥控智能车资料_第5页
免费预览已结束,剩余28页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

无线语音遥控智能车摘要 20世纪中后叶,随着大规模晶体管集成电路制造工艺的飞速发展,使计算机渗透进城市的血液,成为人类社会生活中密不可分的一部分。越来越多种类的计算机投入社会生产,如果在人们的社会生活中所接触到的计算机均使用不同的、自身特有的人机接口,就要求计算机使用者掌握多种计算机操作语言,这无疑成为人们使用计算机的一大障碍。因此人与计算机的沟通成为了摆在人类面前崭新的课题。在音频压缩处理技术以及无线远程控制技术高速发展的局面下,人们开始考虑使用人类语言作为新的方式和计算机进行无线远程对话。优化人机接口,使计算机智能化,并且能听懂远处传来的人类语言,以人类的方式思考,彻底摆脱复杂的计算机语言和繁琐的输入方式是今后发展的一大方向。台湾凌阳科技推出的16位MCU-DSP混合处理器SPCE061A可以实现上述的语音识别、数据编码等功能,若在其上外扩一nRF2041双工无线模块组成语音遥控器。用一小车模型作为接收机,处理器采用ATMEL公司的高档8位微处理器ATMEGA16L,接收依然使用nRF2401无线模组,便可以使小车接收人类语言的远程控制。在控制者发出向前、向后、向左、向右等语言命令后,遥控器上的凌阳SPCE061A处理器可以自动实现语音辨识,并且与事先训练的语音模型相比较,从而通过nRF2401输出不同的控制命令,模型小车接收到不同的指令后,做出不同的响应动作,这样便可以制作出一个基于无线语音控制的智能小车。今后,根据语音控制机器人的设计理念,可将其移植到诸如汽车,小家电等具有实际意义的产品中去。在人类与计算机的关系日益密切的今天,更为便捷、更为人性化、更为智能化的人机对话方式无疑是今后科技发展的新趋势。关键词 无线语音遥控小车;凌阳SPCE061A处理器;语音辨识; ATMEGA16L;nRF2401无线模组Wireless voice remote control carABSTRACT After the middle of the 20th century leaves, as a large-scale transistor integrated circuit manufacturing process of rapid development, computers infiltrate into the cities of blood, human social life are inseparable part. Computer is gradually replacing humans, engage in complex, repetitive calculations or labor. More and more types of computers into the community production, The computer of more and more kinds puts into social production, if computer touched use different, ones own characterized man-machine interface in peoples social life, require the computer user to grasp many kinds of computer operation language, This undoubtedly becomes a great obstacle that people use the computer. So people and communication of the computer have become the brand-new subject in front of the mankind .Under the circumstances that the audio frequency compresses the situation of high-speed development of treatment technology, people consider using human language as the new interactive way. Optimize the man-machine interface, Make the computer intelligent and understand the human language, thinks in a human way, it is a general orientation that will developed to get rid of the complicated computer language and the tedious input way is a general orientation that will developed in the future.SPCE061A produce by Lingyang science and technology co.,Taiwan. It can proform the function that described above, enable its control one model car, to make the car can accept human control of language. Sends out forward, backward, towards left, towards right and so on the language orders after the master, the car embarks insults the positive SPCE061A processor to be possible to process may realize the pronunciation identification automatically, and with the pronunciation model which trains beforehand compares, output comparison result control car direct current machine running status.From now on, according to the voice control robot design idea, might transplant it to such as the automobile, the small household electrical appliances and so on has in the practical significance product.In human and computer relational close today, more convenient, a more user friendly, more intellectualized man-machine conversation way without doubt will day by day be the next technical development new tendencyKey Words: SPCE061A processor Intelligent voice control car目 录0 前言22 无线语音遥控智能车设计概述42.1 设计目的42.2 设计实现总体功能43 系统总体方案53.1 方案论证53.1.1 方案一53.1.2 方案二53.1.3 方案三53.2 方案分析74 芯片的介绍73.2.1 主控芯片及其各部分性能83.2.2 SPCE061A用于语音遥控智能小车中的功能103.3 无线语音遥控智能车电机驱动控制方案155 系统设计方案154.1系统整体设计方案154.2 主控板设计方案154.3 控制板设计方案184.4 中断方案196.声音控制智能小车软件设计206.1 语音控制实现流程216.2 语音识别主程序流程236.3 语音识别子程序设计246.3.1训练子程序:256.3.2 识别子程序256.3.3 动作子程序256.3.4 中断子程序256.4 程序开发环境与代码录入256.4.1 凌阳SPCE061A单片机指令系统与开发环境266.4.2 语音提示的录入266.5 部分程序代码解释277 结论27参考文献29致 谢30刘子龙:电子科学与技术专业毕业设计论文0 引言随着现代科学技术的飞速发展,数字化时代的来临,计算机和网络已经将触角伸入社会各行各业,渗入了城市的血液中,并且在一定程度上取代了人类繁琐的机械的劳动。世界也正面临一场大规模的新的工业革命,又称为信息革命。数字化、智能化,已经成为这场革命的主旋律。让计算机像人类一样动作一样思考,并拥有人的记忆和人的逻辑,使人类从繁琐的键盘操作和按键输入中解脱出来是电脑智能化面对的重要课题。在现代传感器技术、音频视频压缩解码技术的跨越式发展,使计算机实现了高度的集成化,功能也逐渐出现全能化、专门化以及智能化的分化发展方向。计算机的微处理器的功能也不仅仅局限于计算和处理数据,同时也将存储和硬件解码等外围电路也集成到其中。也正是因为如此,运用单独的处理器就可以实现智能化人机对话接口,让计算机像人类一样思考,通过人类的动作和语言向计算机输入指令,使计算机的操作方式发生根本性的变革,真正拉近人与计算机间的距离。现代计算机的性能已经相当强大,运算能力已经不可限量,而且还在飞速发展。在日常生活的诸多领域,电脑已经取代人类,从事大量繁琐的、重复性的劳动。但是在这些领域中,大型的计算机不能充分发挥自身性能,而且在成本方面也毫无经济性可言。所以,针对不同领域不同功能的专门性计算机应运而生,其运算处理能力并不一定非常强大,而是对于特别的应用场合在其中整合特殊的功能,使其在特定的场合发挥最大的作用。嵌入式计算机应运而生,嵌人式计算机作为计算机的一个重要分支,得到了越来越广泛的应用。随着信息技术发展所带来应用需求的增多,嵌人式计算机的应用范围和需求越来越广,性能不断改进,新的架构不断出现,各种单片机和数字信号处理器相继面世。嵌人式操作系统与PC操作系统相比,嵌人式操作系统不要求全能,但必须能够依据系统设计规格,高效率地发挥硬件的运算能力,使产品达到效率价格比的优化。本次设计是在运用成品嵌入式计算机的基础上,实现用人类的语言无线遥控单片机的运作。为了更明确的显示声音对单片机的遥控作用,使单片机控制一远处可自由运动的小车,通过小车行走方式的不同表现,体现声控单片机的运行情况。对于无线语音遥控智能小车的设计,关键在于语音识别和无线通信方式的选取。语音处理技术是一门新兴的技术,它不仅包括语音的录制和播放,还涉及语音的压缩编码和解码,语音的识别等各种处理技术。以往做这方面的设计,一般有两个途径:一种方案是单片机扩展设计,另一种就是借助于专门的语音处理芯片。普通的单片机往往不能实现这么复杂的过程和算法,即使勉强实现也要加很多的外围器件。专门的语音处理芯片也比较多,像ISD系列、PM50系列等,但是专门的语音处理芯片功能比较单一,想在语音之外的其他方面应用基本是不可能的。而无线通信技术现在多采用无线数字通信模块,其通信协议可以自己设定,通信频率可以在一定范围内可以改变,使传输数据的可靠性、安全性都大大提高。 基于上述要求本次设计拟采用三种设计方案。在芯片方面,ATMEGA16L微处理器和凌阳SPCE061A微处理器以及二者的组合应用是三种备选方案。两种微控制器都具有丰富的片上系统资源,可以通过外加辅助电路的方式实现语音辨识功能,从而满足对控制指令的语音采集、压缩、存储、解压和辨识等一系列功能的要求。在指令系统方面,两者都支持C语言,省去了繁琐重复的堆栈操作,方便了程序员的编写,和读取。在确定设计使用单片机后,还应对单片机加装部分外围电路才能使用,其中包括:电源电路、音频电路、I/O电路等。使其保证单片机各项功能的实现。此外还有部分必须的功能电路,如:复位按键,状态指示灯等等。在小车车体方面,采用后轮同轴差速驱动,前轮舵机转向的模型车。动力来自驱动后轮的直流电机,驱动器采用意法半导体生产的L298N直流电机驱动器。由一个舵机摆臂摆动不同的角度实现前轮的转向。整个小车的电源由一个7.2V镍氢电池组提供。语音指令的识别过程是利用单片机的特定人语音识别功能来实现的。首先对小车进行训练,将语音命令转换为数字信号存储在单片机FLASH存储器中。在需要控制小车的时候,单片机通过采集声音信号,并量化处理为数字信号后,与存储器中预先存储的控制命令进行辨识,结果以字节数据方式从无线模组发出,小车接收到控制指令后,控制驱动芯片和舵机,使小车完成响应动作。这些操作都是由预先编写并烧录在单片机中的C语言程序控制的。在整个设计中,两个难点在于单片机外围电路的设计和控制程序的编写。如果能很好的解决这两个方面的问题,语音控制小车的制作应该会比较顺利。1 无线语音控制智能车设计概述1.1 设计目的随着电子工业的发展,计算机技术随着集成度的提高,和大规模集成电路的发展。计算机的一个重要分支嵌入式计算机也在向高度智能化的方将发展。让机器能像人一样思考,理解人的语言已不再是一个新鲜的话题。实现使用语音控制单片机,将人机接口简化到人类可以用最自然的方式操作机器是本次设计的目的。本次拟设计能用语音无线遥控的智能小车。根据识别的语音命令来控制启动、停止、返回,完成作品虽功能单一且无实际使用价值,但可将原理推广至各种智能家电的语音遥控,所以该技术具有很高的实际应用价值。1.2 设计实现总体功能1. 利用单片机的语音采集、播放、语音识别资源,实现人类语音的命令识别;2. 通过数字无线传输模组,将控制指令无线发送;3. 接收无线语音指令,实现控制小车的前进、后退、左转、右转等功能;4. 在超出控制范围(开阔处大于100米)时能够自动停车; 2 系统总体方案2.1 方案论证2.1.1 方案一采用AVR系列8位单片机ATMEGA16L实现语音遥控器,由于有语音识、和语音播放和无线数传功能,所以需要扩展语音识别模块和语音播放模块还有无线发射接收模块,这样必然造成端口的资源紧张,所以还必须加入接口扩展芯片。该实现方案遥控器部分结构如图 3-1所示: 图 2-1 采用ATMEGA16L单片机实现语音遥控器ATMEGA16L舵 机驱动电机nRF2401无线模组图2-2 采用ATMEGA16L实现车体控制车体主控电路要实现语音指令的无线接收,舵机的转向,和直流电机的调速。采用AVR系列8位单片机ATMEGA16L实现小车主控制部分结构框图如图3-2所示:2.1.2方案二采用SPCE061A实现语音控制小车方案,由于SPCE061A内部具有语音识别和语音播放功能,所以只需要扩展基本的MIC和语音功放即可,该方案结构如图 3-3所示:图 2-3 基于SPCE061A的语音控制小车实现方案 基于SPCE61A单片机的车体部分控制框图结构如图3-4所示,在硬件表现和结构上和基于ATMEGA16L的没有区别。SPCE061A舵 机驱动电机nRF2401无线模组图2-4 采用ATMEGA16L实现车体控制2.1.3 方案三方案三不再给出框图,其遥控器部分为方案二中的遥控器框图,车体控制部分的框图为图3-4所示。即方案三由方案二的遥控器和方案一的车体控制部分组合而成。2.2 方案分析根据上述三个方案的实现结构图分析,很明显语音遥控器使用SPCE061A单片机内置的D/A、数据编码和解码、存储、语音辨识等功能,可以最大限度的简化外围电路,方便设计与实现。AVR单片机需要通过扩展种总线扩展辨识、输入输出等功能,虽然也可以实现同样的功能,但是增加了设计难度和设计成本。故遥控器部分选用SPCE061A作为主控制器。在车体控制上,两方案中硬件结构基本相同,但是通过深入分析可知,舵机从0度180度的转动需要一个50Hz、占空比2.5%-12.5%连续可调的方波信号,即PWM信号。两种微控制器都有16的定时器,故都可以产生50Hz的方波信号。但是,SPCE061A的PWM控制器只用4位,即只能6.25%布进可调,不能使方波占空比2.5%-12.5%连续可调。而ATMEGA16L的16位PWM的精度可达1/65535,近似等于连续可调。除此以外,直流电机的转速也由PWM控制,而SPCE061A没有8位的定时器,不能产生较高频率的PWM信号,而ATMEGA16L有两个8位T/C,一个16位T/C,可以产生几Hz到几十KHz的PWM信号。因此,车体控制部分采用8位微控制器ATMEGA16L,所以最终方案选用方案三。3 系统芯片功能介绍在无线语音遥控智能车的设计中,主要包含四片芯片和两个模组,芯片中包括一片凌阳SPCE061A 16位单片机,用于语音命令的识别、发送以及命令的语音播放。两片ATMEGA16L高档8位单片机,一片和nRF2401模组组成串口无线发射模块,另一片作为车体部分的主控制器。最后一块为L298N直流电机驱动芯片,用于接收车体主控制器的控制信号,驱动直流电机为小车提供前进的动力。3.1 主控芯片及其各部分性能 3.1.1无线语音遥控器主控制器SPCE061A介绍经过上述讨论,实现声音智能控制功能最理想的控制芯片为台湾凌阳科技推出的SOPC(System On Programmable Chip)级16位MCU-DSP混合处理器SPCE061A作为处理语音指令的控制芯片,其兼有微处理器,数字信号处理器,存储器的三重功能,具有丰富的片上系统资源。凌阳SPCE061A具有nSP的指令系统提供具有较高运算速度的16位*16位的乘法运算指令和内积运算指令,增添了DSP功能,使得nSPTM系列运用在复杂的数字信号处理方面既很便利,又比专用的DSP芯片廉价。凌阳内嵌32K字的Flash和2K字的SRAM,ROM和RAM统一编址,属于冯诺依曼结构计算机,这样的设计在制作中方便了对语音指令的压缩和存储。 图3-1 凌阳SPCE061A单片机 图3-2 ATMEGA16L管脚图 SPCE061A的主要性能:1. 16位nSP核心高档微控制器;2. 工作电压:VVD为2.6V-3.6V(CPU),VDDH为VDD-5.5V(I/O);3. CPU时钟:0.32MHz-49.152MHz;4. 内置2K字SRAM;5. 内置32K字FLASH;6. 可编程音频控制器;7. 晶体振荡器;8. 系统处于设备状态。耗电小雨2mA 3.6V;9. 2个16位可编程定时器/计数器(可自动预置初始计数值);10. 2个10位DAC;11. 32位通用可编程输入/输出端口;12. 14个中断源可来自定时器A/B,时基,2个外部时钟源输;13. 具备触键唤醒功能;14. 使用凌阳音频编码SACM_S240方式(2.4Kbps),能容纳210s的语音数据;15. 锁相环PLL振荡器提供系统时钟信号;16. 32768Hz实时时钟;17. 7通道10位电压数模转换器(ADC)和单通道声音模数转换器;18. 声音模数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能;19. 具备串口设备接口;20. 具有低电压复位(LVR)功能和低电压监测(LVD)功能;21. 内置在线仿真电路ICE(In-Circuit Emulator);22. 具有保密能力;23. 具有Watch Dog功能;3.1.2车体主控制器ATMEGA16L的介绍AVR 内核具有丰富的指令集和32 个通用工作寄存器。所有的寄存器都直接与算逻单元(ALU) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC 微控制器最高至10 倍的数据吞吐率。ATmega16L 有如下特点:1. 16K字节的系统内可编程Flash(具有同时读写的能力,即RWW);2. 512 字节EEPROM,1K 字节SRAM;3. 32 个通用I/O 口线;4. 32 个通用工作寄存器; 5. 用于边界扫描的JTAG 接口,支持片内调试与编程;6. 三个具有比较模式的灵活的定时器/ 计数器(T/C);7. 片内/外中断,片内经过标定的RC 振荡器;8. 可编程串行USART,有起始条件检测器的通用串行接口;9. 8路10位具有可选差分输入级可编程增益(TQFP 封装) 的ADC;10. 具有片内振荡器的可编程看门狗定时器;11. 一个SPI 串行端口;12. 四通道PWM,两路8位,两路16位;13. 六个可以通过软件进行选择的省电模式:空闲模式、ADC 噪声抑制模式、省电模式、掉电模式、Standby 模式以及扩展的Standby 模式14. 速度等级:0 - 8 MHz;15. 工作电压:2.7 - 5.5V;3.1.3 nRF2401无线传输模组的主要特性: 图 3-3 nRF2401芯片框图 nRF2401 是单片射频收发芯片,工作于2.42.5GHz ISM 频段,01Mbps 数据传输速率,125 阶(梯度1MHz)收发频率,地址检验和CRC 校验。芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。芯片能耗非常低,以-5dBm 的功率发射时,工作电流只有10.5mA,接收时工作电流只有18mA,多种低功率工作模式,节能设计更方便。其DuoCeiverTM 技术使nRF2401 可以使用同一天线,同时接收两个不同频道的数据。nRF2401 适用于多种无线图 3-4 nRF2401功能模块原理图通信的场合,如无线数据传输系统、无线鼠标、遥控开锁、遥控玩具等 。其芯片框图如图3-8所示,其模组原理图如图3-9所示。 图3-5 L298N管脚图 图3-6 L298N实物图4.1.4 直流电机驱动芯片L298N的介绍L298是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片的主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器、线圈等感性负载;采用标准TTL逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作;有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。其管脚图和实物图分别如图3-9、图3-10所示。 表1 L298N引脚功能表引脚符号功能115SENSING ASENSING B此两端与地连接电流检测电阻,并向驱动芯片反馈检测到的信号23OUT 1OUT 2此两脚是全桥式驱动器A的两个输出端,用来连接负载4Vs电机驱动电源输入端57IN 1IN2输入标准的TTL逻辑电平信号,用来控制全桥式驱动器A的开关611ENABLE AENABLE B使能控制端.输入标准TTL逻辑电平信号;低电平时全桥式驱动器禁止工作。8GND接地端,芯片本身的散热片与8脚相通9Vss逻辑控制部分的电源输人端口1012IN 3IN 4输入标准的TTL逻辑电平信号,用来控制全桥式驱动器B的开关1314OUT 3OUT 4此两脚是全桥式驱动器B的两个输出端,用来连接负载4.2 无线语音遥控器中SPCE061A的功能在本次设计中,关键地问题之一在于人声的A/D转换存储与识别,SPCE061A提供了语音输入压缩以及辨识的先进技术。1. 语音指令的输入。凌阳 SPCE061A利用麦克风的指令输入系统,SPCE061A内置由DA转换器 DACO和逐次逼近寄存器SAR组成的逐次逼近式8通道10位AD转换器,以及采样保持电路。其中7个通道用于将模拟量信号(电压信号)转换为数字量信号,可以直接通过引线(IOA 0-IOA 6)输人(Line_Inl-Line_ln7)另外一个通道只用于语音输人,即通过内置自动增益控制放大器的麦克风通道(MIC-In)输人,是语音采集专用通道,也可设置为普通A/D输入。2语音指令的训练。语音遥控器作为机器,一定是不能先天理解人类的语言的,所以,必须教会它人类语言的含义。即语音训练,内容是将人类的语言事先已训练的方式经过模数转换存储在凌阳SPCE061A的FLASH中,并指定每一条语音所要指向的操作,以便在日后的使用中将采集来的语音与存储的语音相比对,以确定单片机需要进行的操作。凌阳SPCE061A对于不同的辨识能力提供以下两种语音训练方式:1)特定发音人识别SD(Speaker Dependent),是指语音样板由单个人训练,可用于语音提示,而DVR用来录音和放音;2) 非特定发音人识别SI(Speaker Independert)。是指语音样板由不同年龄、不同性别、不同口音的人训练,可以识别一群人的命令;在本次设计中,需要向小车训练:向前、向后、左转、右转、停止等几项语音指令,以供控制小车时的辨识使用。值得注意的是,使用非特定发音人识别需要利用大量的DVR存储不同人训练的语音,但是凌阳SPCE061A并不能提供大量的内存空间供存储使用,由于设计条件有限,无法扩展必要的存储芯片完成存储语音的功能,故选择使用特定发音人识别。其训练具体流程参看后文内容。3对训练的语音指令的存储。将经A/D转换后的数据压缩存储,SPCEO61A单片机的16位DSP有很强的信息处理能力,最高时钟频率达49.152 MHz,具备运算速度高等优势。这些为语音的录放、合成及辨识提供了条件。凌阳压缩算法中DVR可用于录、放音。语音的编码、存储、解码处理是通过操作麦克风输人所生成的WAVE文件完成的,但在这个环节上会出现的一个问题为其占用的存储空间很大,对SPCEO61A单片机的32K FLASH来说想要存储大量的信息显然是不可能的。而SPCE061A提出了解决方法:SACMV25LIB。该库将A/D、编码、解码、存储及DA做成相应的模块,对于每个模块都有其应用程序接口API,所以只须了解每个模块所要实现的功能及其参数的内容,然后调用该API函数即可实现相应功能。在进行A/D转换之前,从MIN_IN输入的模拟信号要经过缓冲器和放大器,AGC功能将通过MICIN通道输入的模拟信号放大值控制在一定范围内,然后放大信号经采样-保持模块送入比较器参与A/D转换值得确定。4. SPCE061A的语音辨识。语音辨识是一种以语音模型为指令基础的控制方式,语音模型的质量直接影响辨识操作的速度和准确率。具体步骤是经过两次语音采集,即训练和发布指令。系统经复杂的函数操作将发布指令与预先训练的一音模型进行比对,如与语音模型相匹配,则输出控制信号。具体原理如图:图 3-7 语音辨识原理简图凌阳16位微处理器的SPCE061A核心实现与计算机连接采用有线方案,通过并口将预先设计的小车控制程序烧写到SPCE061A单片机,以识别各种语音指令系统的处理过程为:当向控制器发出语音命令时,声波通过MIC输入,将相应的信号传递到SPCE061A处理芯片,在芯片中通过相关的程序与预先训练好的语音模型进行比较、识别及处理,根据识别的结果进行判断、转换,然后发出相应的控制指令到无线模组,无线发送语音指令。使用特定人语音辨识的语音样板由单个人训练和识别处理组成,如图:图 3-8 语音辨识流程值得注意的是,凌阳SPCEO61A在接收到控制语音指令后,并不是直接用其进行辨识。图 3-9 语音识别电路结构为了提辨识的正确率,语音信号要经过语音识别电路,将语音信号经过滤波器降噪、加重等处理后进行预测、量化等一系列操作进行模数转换,以数字形式进行过零次数能量相关函数等方法进行匹配运算,输出辨识结果。其具体步骤如图:5语音指令的发送和回应。在对遥控器发出语音指令后凌阳SPCEO61A将人发出的指令与训练时的音频进行辨识后确定指令,由串口无线模组nRF2401发射。车上控制器接收到相应指令后,设置动作标志位,返回回应数据,同时控制L298N和舵机,使小车做出向前向后转弯的动作。SPCE061A接收到响应数据后,可知小车已经响应了语音指令,便语音播报当前小车的响应。4 系统硬件设计方案根据需要,系统硬件拟使用两块PCB板设计。其中一块为语音遥控器,用于搭载凌阳SPCE061A单片机、电源电路、音频电路、I/O电路等外围电路。另一块为车体控制板,用于搭载接口电路,电源电路及电机驱动。本章将对硬件系统各部分作具体分析。4.1 遥控器硬件设计方案在无线语音遥控智能车的设计中,凌阳SPCEO61A单片机作为遥控器的主控制器,需要增加一系列的外围电路的支持才能实现音频输入输出和识别,以及语音命令的输出等功能。需要增加的外围电路有:电源电路、MIC输入电路、音频输出电路、无线传输电路、复位电路、I/O接口电路。 1. 电源电路 凌阳SPCE061A单片机内核和nRF2401模组电源电压要求为3.3V,其他逻辑器件要求5V供电,设计中采用DC9V供电,直流电压先通过LM7805得到5V直流电源为逻辑电路供电,然后通过SPY0029稳压到3.3V,为整个单片机内核和nRF2401供电。另外,在LM7805的前端入一个二极管,目的在于防止电源接反而对整个电路造成损坏。 图4-1 电源电路图2.音频电路 1)MIC输入电路 在使用SPCE061A的语音训练和声音控制的时候,需要使用MIC输入电路将语音信图 4-2 MIC输入电路号接收,并传送至SPCE061A进行处理。为提高输入的声音质量,MIC输入电路还应具备一定的滤波降噪功能。电路中的性滤波器就能很好的实现这个功能。同时使入电路可以实现自动增益(AGC)控制。其中X1是语音的MIC输入端。2)DAC输出电路在语音训练的过程中,凌阳SPCE061A需要输出信号提示音,以让训练者了解其工作状态,方便进行语音训练。另外还要播报小车的工作状态。SPCE061A自带双通道DAC图 4-3 DAC输出电路音频输出, DAC1、DAC2转换输出的模拟量电流信号分别通过DAC1和DAC2管脚输出, DAC输出为电流型输出,所以DAC输出经过SPY0030音频放大,以驱动喇叭放音。这为单片机的音频设计提供了极大方便。在P9上接一个2pin的插针外接喇叭,即可实现提示语音输出功能。DAC电路中,SPY0030是凌阳的一款音频放大芯片,相当于LM386,但是它比LM386音质好,可以工作在2.4-6.0V范围内,最大输出功率可达700mW。3.I/O接口电路 接口电路凌阳SPCE061A的两路16位I/O接口引出,因为一般逻辑电路都是8位并行总线,所以SPCE061A的I/O接口分为4组,每组8个端口加两个电源线,电源电压可由双刀双掷选择为3.3V或5V。另外,串口和IOB7及IOB10复用,在此设计中用该资源将语音命令传输给串口nRF2401模组进行无线发射。图4-4 I/O接口电路示意图4.复位电路在一些情况下,需要对SPCE061A进行硬件复位,有阻容电路完成上电复位功能,通电就自动复位,另外,还可以按键外部复位。 图 4-5 复位电路图4.2车体控制硬件设计方案 车体控制部分电路主要由nRF2401无线模组、ATMEGA16L最小系统电路、舵机驱动电路和L298N直流电机驱动电路组成。无线模组接收到语音指令后,传递给单片机,然后微处理器根据指令返回不同的响应信号,控制舵机和动力电机做出不同的响应动作。下面详细介绍各部分的电气结构和工作原理。4.2.1主控制器最小系统图 4-6 车体主控制器最小系统图在上图中,OCR1A和OCR1B为两路16位定时/计数器的输出引脚,能够产生高精度,低频率PWM脉冲信号,占空比1/65535布进可调,近似于连续可调,用来驱动舵机转向。OC2为8位定时/计数器2输出引脚,用来产生高频PWM信号,调节直流驱动电机的转速,占空比1/255布进可调。另外PC0-PC5用来模拟nRF2401的通信时序,传给响应数据或读出语音指令。串口nRF2401无线模组的原理图和此处一样,只是其发射的数据改为ATMEGA16L串口接收到的数据,即SPCE061A串口发出的语音指令。4.2.2 直流动力电机驱动电路图4-7 电机驱动电路 L298N的主要功能和性能参数,前面都已经详细介绍过,在此不再赘述。由于只用到了一个直流动力电机,为了增加驱动能力,我将L298N的两路驱动并联实用,实现方法为,将OUT1和OUT4 并联为OUT1,OUT2和OUT3并联为OUT2,IN1和IN4并联为IN1,IN2和IN3并联为IN2,EnableA和EnableB并联为Enable,则L298的逻辑控制如下表3.1。其中C、D分别为IN1或IN2;L为低电平,H为高电平,为不管是低电平还是高电平,Ven为Enable上的电压。表2 L298对直流电机控制的逻辑真值表输入输出Ven=HC=H;D=L正转C=L;D=H反转C=D制动Ven=LC=;D=没有输出,电机不工作4.2.3舵机驱电路AVR系列高档8位单片机的IO驱动能力很强,无需外接驱动电路,需特殊说明的是舵机的额定电压为6伏,这里采用7.2伏直接供电,虽然超出额定电压,但不会损坏舵机,省掉一个电压转换芯片的同时,还提高了舵机的响应灵敏度。 5. 系统软件设计方案5.1 语音遥控器的主程序流程设计开 始初始化If(BSR_flag)语音训练成功否?定时识别成功否?无线发射语音指令等待车体响应响应否?播报车体响应返 回是NY是是否否否图5-1 遥控器软件流程图 语音遥控器的主程序流程分为四大部分:初始化部分、训练部分、识别部分、无线通信部分和指令响应播报部分。初始化操作将IOB7设置为输入,IOB10设置为输出,然后设置串口控制寄存器,将串口通信参数设置为9600、N、8、1,为向串口无线模组发送数做好准备。同时,初始化DAC1和DAC2准备播放响应指令,初始化T/C为PWM模式,准备对语音数据进行采样。下面详细讨论后三个比较重要部分的软件实现步骤。5.1.1训练部分训练部分完成的工作就是建立语音模型。程序一开始判断小车是否被训练过,如果没有训练过则要求对其进行训练,并且会在训练成功之后将训练的模型存储到FLASH,在以后使用时不需要重新训练;如果已经训练过会把存储在FLASH中的模型调出来装载到辨识器中。 5.1.2识别部分在系统方案的选取及程序的开发中,语音的识别及处理是整个系统的核心及难点识别对象的选取会对程序运行、识别的效果及实用性起决定的作用应根据具体的应用情况选择决定,以获得最佳的识别效率。为了降低开发的难度,提高语音控制器的实际的使用效能,语音控制器采用特定发音人识别方式即语音控制器适用于某个具体的特定的对象程序设计的最终目的是根据人的语音命令进行相应的处理,程序的响应、处理并转换成相应的控制指令,其依靠的转换平台就是语音的识别处理语音识别的处理分为语音样板训练和语音识别两个过程可将先前植入的标准命令模式的存储空间称之为“词库”,而把标准命令模式称之为“样板”所谓语音样板训练,就是将待识别的命令进行频谱分析,提取特征参数作为识别的标准模式语音识别的过程就是将提取语音命令的特征参数,与词库中的命令样板比较,取相似度最好的样板命令序号作为识别结果,以供程序进行处理。开始训练训练名称成功否?训练前进指令成功否?训练后退指令成功否?训练左转指令成功否?训练右转指令成功否?播报成功提示训练结束是i是i是i是i是i否i否i否i否i否i图5-2 训练流程图在识别环节当中,如果辨识结果是名字,便等待下一个动作指令。如果在名字指令后紧接一个动作指令,遥控器将会将指令通过串口nRF2401模组发送出去,并等待小车的响应,如果在名字指令后超过一定时间,没有第二个指令到来,那么遥控器将清除前次识别结果进入新的识别。其流程图如图示。 5.1.3 无线发送应答部分 既然是无线语音遥控智能车,肯定少不了无线通信,无线通当然是指两点间的通信了,所以设计中用了一对半双工无线通信模组nRF2401,由于其一块单独工作没有任何实际意义,所以在此将遥控器部分和车体部分的无线模组软件工作流程同时列举,在后面车体部分的软件设计中不再叙述。首先,我需要自己定义一个无线通信协议,nRF2401 开 始初始化语音辨识定时采集语音有效语音指令无线发送指令结 束是i否i 图5-3 识别子程序流程图无线模组,每次发送有效数据最少1字节,最多32字节,发送前模组自动为数据增加数据头和交验尾。因为不需考虑数据的保密性,所以就采用简单的一字节命令,这样也能提高通信的可靠性。每次nRF2401发送的数据格式如下:表3 无线通信数据格式8位数据头 8位有效数据DATA 16位CRC 其中,一字节的有效数据DATA共有五个,分别代表的意义如表4:DATA指令意义0x50小车名字指令0x51前进指令0x52后退指令0x53左转指令0x54右转指令表4 数传指令意义 遥控器发送指令后,怎么知道小车部分是否接收到或是否响应了呢?所以,还需要一个应答机制,小车在接收到语音指令后,在执行响应动作之前返回一个响应数据,该数据为DATA+5,则遥控器通过接收到的应答信号DATA+5可以判断小车的相应状况,然后进行相应的语音播报,若超过一定时间没有收到相应信号,则遥控器会再次发送语音控制指令。该部分软件流程图如图5-4所示。获取辨识结果if(gActivated)Y switch(res)前 进后 退左 转右 转名 字发0x50发0x51发0x52发0x53发0x54定时等待返回DATA+5N播报响应返回YN图5-4 无线数传流程图5.2 车体主控程序软件流程设计 当车体主控制器检测接收到语音指令时,先返回DATA+5,告知遥控器自己进行了响应。然后在真正进行动作响应,先响应后动作的原因是因为小车完成某个动作的时间较长,会导致遥控器因接收不到响应指令而不断的重发语音命令。下车接收到语音指令后,共有五种动作可以响应,为了更好的描述用K表示T/C2产生的PWM占空比,J表示舵机的摆角,定义90度的位置为0,左摆为负,右摆为正,Dir表示L298N方向控制位,10表示向前,01表示向后,11或00停止,则指令和动作的对应表5所示: DATA车体响应0x50J=0,Dir=11or00,K=0%0x51J=0,Dir=10,K=50%0x52J=0,Dir=01,K=50%0x53J=-45,Dir=10,K=80%0x54J=45,Dir=10,K=80% 表5 车体响应动作据此设计的软件流程图如图5-5所示。 响应指令读取DATA,返回DATA+5DATA? 检验模组状态开 始返 回图5-5 车体主控程序流程图5.3 软件开发环境5.3.1凌阳SPCE061A单片机指令系统与开发环境凌阳SPCEO61A单片机采用nSP内核指令系统的程序设计支持汇编语言和C语言编写。在编程中也可以使用汇编伪指令,这样能使句子所表达的意思的结构更加清晰,能够增强可读性,使汇编器的编译效率提高。nSP内核对支持ANSI-C中使用的基本数据类型,并且可以在C程序中调用汇编函数提高代码效率,并使其具有较好的实时性。声控小车的各种动作,以及指令以及工作方式都要通过C语言与汇编语言编写,并进行摸拟,调试等操作。为减少繁琐的堆栈操作和提高程序可读性,在本次设计中采用C语言编写辨识程序。在编程工作结束后,将会对声控小车进行程序的输入。使用凌阳科技提供的一个集成开发环境nSP IDE,它能完成程序的编辑、编译、链接、调试和仿真等功能。使用它的的软件仿真功能可以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论