基于STM32的声音定位系统

2021-02-07 08:56东南大学成贤学院贾艺石王军程马华晨
电子世界 2021年2期
关键词:时间差变阻器声源

东南大学成贤学院 贾艺石 王军程 赵 越 马华晨

定位系统对于各领域都有重要的使用价值。传统的声音定位方法有基于可控波束的定位、基于频谱估计的定位以及基于时延的定位。本文设计出的定位系统采用时延估计中的到达时间差(TDOA)来进行计算。由声传感器阵列的排放与到达时间差(TDOA)结合而产生的算法能算出声源的位置。系统以stm32单片机为信号处理平台,处理核心为STM32F103ZET6。该单片机的系统时钟频率为72Mhz,足以处理时间差的计算。

声音作为获取信息的重要载体,无时无刻不存在于我们的生活之中。随着科技发展的需要,声传感器的精度有了很大的提高,因此人类在声传感器的研究中投入越来越多的资源。以声音为载体的传感器广泛应用于如最基本的声控电路、机器人等领域,同时作为获得战场信息位置的一个重要方式,声音定位技术受到很多国家的重视。因此,基于传感器阵列的目标定位问题的研究有很重要的实际意义。

1 系统的总构架

本系统分为两部分,单片机及外围电路构成的最小开发板和声音传感器阵列。当传感器检测到声音数据之后,与其相连接的单片机端口产生外部中断,内部定时器计算声音到达的时间差,以待下一步的算法处理。

1.1 单片机类型的选择

传感器阵列需要四个声传感器,因此需要有嵌套向量中断控制器的单片机。因此我们选择了市场上同类型产品中性价比最高的STM32增强型单片机,此单片机时钟频率为72MHZ,可以满足本系统微秒级计算。STM32功耗大约于为0.5MA/MHZ,可以满足低功耗的设计要求。

1.2 声音传感器的选取

本文采用的声音传感器模块由LM393和驻极体电容式传感器组成。LM393的特点是所需工作电压要求低,单电源或者双电源都可以正常工作,并且电流消耗很小,大约为0.8mA。本文的声音传感器还配备了滑动变阻器来调节声传感器的灵敏度。

1.3 声传感器其阵列的设计

生源定位技术中,多个传感器按照特定的方式排列成阵列用于接收信号。通过各个传感器接收到声音的时差来计算声源的坐标。传感器阵列的设计是非常重要的一部分,阵列的设计会影响算法的设计。一般来说声传感器可分为线型阵列、平面阵列、和立体阵列。线型阵列不能判断声源的方向,因此会引发计算错误。立体阵列可以测得声源的三维坐标,但所需算法要复杂的多。平面阵列可以在整个平面对声源进行定位,且所需算法并不算困难。

本文采用平面十字形排列。假设四个传感器中心为坐标原点,传感器到原点的距离都为a,则四个传感器的坐标为(a,0)、(-a,0)、(0,a)、(0,-a)。这种传感器阵列可以巧妙的简化计算公式,从而实现算法的简化(见图1)。

1.4 声传感器灵敏度设定

为了调节声音传感器的灵敏度,在模块中加了一个滑动变阻器,而灵敏度设定的合理与否直接影响传感器对声音的采集。首先调节滑动变阻器,使其阻值最小,此时灵敏度为最高,实验显示灵敏度最高的时候误差较大。将滑动变阻器调至阻值最大,灵敏度为最低,结果传感器会出现接收不到信号的现象出现。

经测试,最终将滑动变阻器调至25K,灵敏度适中,可有效的抑制部分噪声信号,又不会造成信号丢失。

图1 声传感器阵列

2 系统程序设计

本文所使用的声音传感器可以设为数字输出模式,当声音传感器的麦克风接收到声源目标所发出来的声音信号的时候,传感器输出电平信号。传感器没接收到声音时,输出为平稳信号。当声传感器阵列与单片机的IO口相连接,只要IO口的电平发生了变化,就说明传感器接受到了声音信号。

2.1 单片机相关配置

本文使用的单片机系统的作用是对所接收到的声音信号做时间差计算,并通过串口和PC进行通信,以验证声源坐标的正确性。主要使用GPIO(通用输入输出接口)、TIM(通用定时器模块)、USART(通用同步/异步收发器)、NVIC(嵌套向量中断控制器)

2.2 单片机IO口设置

STM32单片机的IO口一共有8种模式,每种模式都可以通过程序进行配置。本文与声传感器连接的IO口全部配置为输入浮空模式,速度为50MHZ。此处正确使用宏定义可以增加程序的可读性,有利于后续的实验调试。

2.3 定时器模块

通用定时器模块含有一个可编程的预分频数驱动的16位自动重载计数器。使用定时器分频数和CPU时钟预分频数可实现微秒级别的控制。计数器包括向上计数、向下计数、向上向下双计数等模式。本文采用向上计数模式。

2.4 通用同步/异步收发器

用来进行串口通信。本系统用串口通信将定位坐标通信给PC机,验证定位结果的准确性。在PC机上使用的对应软件为串口调试助手,注意使用时波特率要对应,否则会出现乱码。

2.5 嵌套向量中断控制器

对中断进行控制。当传感器连接的IO口电平发生变化时,进入中断,中断函数记录此时计数器的值,以便进行时间差的计算。需要注意的是,每次定位流程结束时,要将各种参数清零以备下次信号的检测。

3 结语

本系统根据声音传感器阵列,由声音到达时间差计算声源目标坐标信息。系统所使用的STM32系列单片机,具有高速的处理能力,通过外围电路与四个声音传感器相连接,计算出声源目标信号到达不同传感器的时间差,并由算法计算出声源目标的具体位置。精确的定位需要高质量的声传感器来传递高质量的声音信号,其次还需要有传感器科学的排列方式。实际试验和模拟试验会有很大的差距,会有很多想不到的困难,但只有发现问题并解决,才能有所创新。

猜你喜欢
时间差变阻器声源
虚拟声源定位的等效源近场声全息算法
巧解滑动变阻器类动态电路题
量子定位系统中符合计数与到达时间差的获取
小小变阻器有大用
基于GCC-nearest时延估计的室内声源定位
基于BP网络的GIS局部放电声电联合检测故障定位方法
立体声音乐节目后期制作中声像定位的探讨
运用内积相关性结合迭代相减识别两点声源
厘米级室内无线定位方法研究
力-声互易在水下声源强度测量中的应用