适用于靶车停车入库的语音测距系统设计

适用于靶车停车入库的语音测距系统设计,第1张

  总体设计

  语音测距系统要求实现以下功能:运动靶车入库时,超声波模块(集成温度补偿)即实时测量靶车与库区极限位置之间的距离, *** 作者按下遥控器,语音播报模块激活,开始播报测量数据。

  温度测量采用1-Wire 器件DS18B20实现,语音播报的核心器件是华邦公司出品的ISD1730,单片机选用51系列AT89S51。除此之外,还有LCD显示、矩阵键盘、红外遥控等单元,其中语音芯片ISD1700是整个系统的关键器件,本文着重介绍ISD1730的性能特点、电路设计及编程要点。图1是系统结构框图。

  适用于靶车停车入库的语音测距系统设计,第2张

  图1 总体结构框图

  ISD1730是一种高集成度、高性能、高音质的语音录放芯片,内部含有自动增益控制、麦克风前置放大器、扬声器驱动等电路;可处理多达255段语音信息,可以多段录音并由片内专门的存储系统来管理;采样率可在4KHz至12KHz间调节,支持独立按键和SPI两种 *** 作模式;带负载能力强,可直接驱动小型扬声器;具有4 种预设音效,录音数据存储在FLASH 内,不经任何压缩,因此有较好的音质。

  为便于单片机控制,本文将ISD1730置于SPI工作模式,根据芯片手册,ISD1730可直接驱动8Ω阻抗扬声器或普通耳机,但为增强带负载能力,保证语音传输距离,在ISD1730的后置环节设计了功率放大电路—LM386,见图2所示,功率放大电路能提供50倍以上的增益,可以驱动阻抗16Ω的扬声器。

  适用于靶车停车入库的语音测距系统设计,第3张

  图2 ISD1730语音录放系统

  超声波测距单元

  结合库区的实际,本文采用分立元件,自行设计超声波测距电路,如图3所示。超声波探头中心频率为40kHz,方向角60度,工作温度-20—70℃,能满足库区工作的需要。图4是设计的超声波测距模块实物。

  适用于靶车停车入库的语音测距系统设计,第4张

  图3 超声波测距单元原理图

  其他单元

  其余单元功能如下,LCD单元用来显示实验数据,便于系统调试。矩阵键盘单元用来实现按键输入;红外遥控单元负责整个系统的触发,一体化红外接收头与单片机Int0连接,当用户按下遥控器按键时,Int0产生中断,单片机发出语音播报指令。

  软件编程

  ISD1730软件设计

  SPI相关命令

  SPI模式下,ISD1730相关命令如表1所示。注意芯片管脚2连接一只蓝色LED,用以指示语音芯片工作状态,为使能此LED,所有的指令码bit4必须置1。

  适用于靶车停车入库的语音测距系统设计,第5张

  表1 ISD1730相关命令

  ISD1730编程要点

  ISD1730采用flash作为存储器,内存地址0x00~0xff,其中0x00~0x0f为音效存储单元。实现语音播报,需预先录制距离数据,下列数组可以作为数据缓存:

  unsigned char code voic_mem[]={ //定义语音储存单元

  0x10,0x13,0x14,0x17, //语音“0”、“1”起始地址和结束地址

  0x18,0x1b,0x1c,0x1f, //语音“2”、“3”起始地址和结束地址

  0x20,0x23,0x24,0x27, //语音“4”、“5”起始地址和结束地址

  0x28,0x2b,0x2c,0x2f, //语音“6”、“7”起始地址和结束地址

  0x30,0x33,0x34,0x37, //语音“8”、“9”起始地址和结束地址

  0x40,0x43,0x44,0x47, //语音“百”、“十”起始和结束地址

  0x48,0x4b,0x4c,0x4f, //语音“点”、“米”起始和结束地址

  };

  ISD1730的语音录制有5种采样频率可选,采样频率越高,语音品质越好,但可录制的时间越短,采样频率取决于芯片ROSC管脚的外接电阻,录音时长、采样频率与振荡电阻的对应关系见表2。

  适用于靶车停车入库的语音测距系统设计,第6张

  表2 录音时长、采样频率与振荡电阻阻值的对应关系

  图2的接法设定采样频率为8kHz,根据ISD1730技术手册,采样频率为8kHz时,每一内存单元可录制125ms语音,实验时需要录制16段语音,程序规划每一语音片断占用4个内存单元,即每一语音片断占用0.5s时长。

  超声波测距编程要点

  距离测量与换算在 INT1 中断服务子函数中完成,该子函数启动计数器计算收到回波的时长,再根据超声波传播速度计算得到测量距离,在此注意增加延时函数,确保测量完成。

  超声波传播速度易受温度影响,因此需增加温度测量以修正超声波传播速度,从而实现对测量距离的补偿。读取温度时应注意数据转换,将温度低8位和高8位转换为1个16位的数,其高5位是相同的,代表符号,低11位,是温度的二进制数,其中高7位是温度整数,低4位是温度小数;如果是负温度,则从温度寄存器读出的是补码,应将补码取反加1得到原码。

  DS18B20的小数位可以这样理解:单片机发出读取温度寄存器命令后,DS18B20会返回9组数据,其中第一组数据的低4位代表温度小数部分,换言之,即是把1度分解为16个4位二进制数来表示,则温度小数部分的精度为1/16=0.0625。

  应用与测试

  将本系统安装在运动靶车上,靶车入库时,按下遥控器,扬声器持续播报靶车与极限位置之间的距离,当距离达到要求时,即控制靶车停止运行。经实际测试, *** 作者用本系统在库区外即可完成距离测量,测量距离最远可达4米,效果令人满意。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2549274.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存