运动靶车停车入库的语音测距系统

  作者:刘宁 陈炜 时间:2015-04-27来源:电子产品世界

  1.4 其他单元

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

  2 软件编程

  2.1 ISD1730软件设计

  2.1.1 SPI相关命令

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

  2.1.2 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。

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

  2.2 超声波测距编程要点

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

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

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

  3 应用与测试

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

1 2

关键词: ISD1730 ROSC LCD 超声波 单片机

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版