《电子技术应用》
您所在的位置:首页 > 模拟设计 > 设计应用 > 基于MSP430F169单片机的声音定位系统
基于MSP430F169单片机的声音定位系统
2016年微型机与应用第04期
罗丽1,马尚昌1,汤志亚1,黄敏1,秦锐敏2,尤媛3,郭佳4
(1.成都信息工程大学 电子工程学院,成都 610225;2.成都金本华科技股份有限公司,成都 610044; 3.国家气象中心,北京 100081;4.北京敏视达雷达有限公司,北京 100081)
摘要: 基于MSP430F169单片机研究设计了一个对声音信号进行识别、运算处理及坐标显示的声音定位系统。声源模块利用RC桥式正弦波振荡电路产生稳定的正弦波,通过OPA2227放大以及单片机控制三极管的通断,使纸盆喇叭产生音频信号,由LM358两级运算放大器以及LM567锁相环解码器构成的音频接收和声音处理电路对声音信号进行滤波放大并将模拟信号转换为频率稳定的数字信号。根据收到的声音信号的时间差,单片机进行运算处理,将声源坐标显示在LCD12864液晶显示器上。经测试,该系统能够在误差允许范围内判定声源所在的位置坐标,并进行处理和显示。
Abstract:
Key words :

  罗丽1,马尚昌1,汤志亚1,黄敏1,秦锐敏2,尤媛3,郭佳4

  (1.成都信息工程大学 电子工程学院,成都 610225;2.成都金本华科技股份有限公司,成都 610044;3.国家气象中心,北京 100081;4.北京敏视达雷达有限公司,北京 100081)

      摘要:基于MSP430F169单片机研究设计了一个对声音信号进行识别、运算处理及坐标显示的声音定位系统。声源模块利用RC桥式正弦波振荡电路产生稳定的正弦波,通过OPA2227放大以及单片机控制三极管的通断,使纸盆喇叭产生音频信号,由LM358两级运算放大器以及LM567锁相环解码器构成的音频接收和声音处理电路对声音信号进行滤波放大并将模拟信号转换为频率稳定的数字信号。根据收到的声音信号的时间差,单片机进行运算处理,将声源坐标显示在LCD12864液晶显示器上。经测试,该系统能够在误差允许范围内判定声源所在的位置坐标,并进行处理和显示。

  关键词:声音定位;信号处理;MSP430F169;LM567;12864液晶显示

0引言

  声音定位简单地理解就是判断声音信号在空间位置中的具体方位。众所周知,人的双耳就是一个灵敏的定位系统,它不仅能够判定声源的方向,同时也能够判定声源的远近[13]。声音定位技术在声电学、信号与信息处理、通信系统以及软件工程设计等诸多技术领域发挥着重要作用[4]。在军事武器的导航系统中,利用声音定位技术可以提高作战的精确性,为打击敌人提供有效保障。在日常生活中,声音定位技术主要应用于智能手机导航以及许多室内视频会议系统、可视电话等系统中,可以在噪声环境下不受干扰,全天候提供可靠的服务。

  在机器人的导航系统中,主要靠视觉系统探寻周围环境并作出相应反应,但由于光线或者障碍物的阻挡影响,机器人的视觉系统对于障碍物的辨别能力很可能减弱甚至无法发现一些障碍物[56]。声音在传播过程中遇到障碍物所反射形成的回声声波可以有效被声音定位系统所探测到,因此给机器人装上声音定位系统,能令机器人精确识别前方障碍并绕过障碍物,有效提高机器人的定位灵敏度以及智能化水平。国内外对声音定位技术做了许多研究,研究的热点主要集中于3种声源定位技术[7]:基于可控波束形成器的声源定位技术、基于高分辨率空间谱估计声源技术以及时延估计法(TDOA,利用到达麦克风阵列上各个传声器的声音信号间的时间差来判断声源的位置)。TDOA时差估计定位算法一般比前两种方法的计算量要小,也是目前研究的热点,其中估算出较为精确的时间差是该方法的关键。

001.jpg

  本文设计了一个基于单片机控制的声音定位系统,该单片机使用德州仪器(TI)公司提供的超低功耗单片机MSP430F169,采用时延估计法(TDOA)对二维平面内的可移动声源进行声音定位,并将声源位置坐标显示在LCD12864液晶显示屏上。在较为空旷、安静的室内环境下对系统进行功能性检测,结果表明了该系统设计的合理性和算法的准确性,为研究声音定位提供了一定理论和技术参考。

002.jpg

1系统总体设计

  通过查阅大量关于声音定位系统的理论算法及国内外相关研究,研发设计出一个硬件电路容易实现、价格低廉、能准确、可靠、稳定检测声源位置坐标的声音定位系统。整个系统结构示意图如图1所示,主要由音频发声模块、声音接收处理模块、MSP430F169单片机主控单元模块、液晶显示模块4个基本模块组成。其中声响模块由纸盆喇叭产生500 Hz固定频率,持续时间约为1 s的声音信号,4路麦克风声音接收电路将收到的声音信号转换为电信号,交由信号处理模块进行滤波放大并将声音模拟信号转换为数字信号传输至单片机进行处理。本系统采用TI公司提供的16位超低功耗MSP430F169单片机[8],选用该单片机作为本系统的主控芯片是因其具有独特的优点:处理能力强大,功耗超低,处理功能强大,系统稳定,使用灵活方便,工作电压比51单片机更低,在模数信号转换、智能化仪器仪表以及电子通信设备中得到广泛的应用。单片机采用C语言编程实现分析和计算,判定出声响模块所在的位置坐标,并将其显示在液晶显示屏上。本系统采用既可以显示中文汉字又可以显示各种图形的LCD12864液晶显示器进行声源位置坐标的显示。

2系统硬件电路设计

  2.1音频发声模块

  本系统音频发声模块使用价格相对低廉、发声频率高的纸盆喇叭发声。发声的简单原理是利用RC桥式正弦波振荡电路产生幅度稳定、频率固定的正弦波,通过由高精度、高增益、低噪声运放OPA2227为核心组成的比例放大器放大后,控制三极管的通断,使纸盆喇叭产生500 Hz固定频率、持续约1s的音频信号。发声持续时间控制采用电容的充放电原理控制开关三极管的通断,实现控制振荡电路的电源,从而控制最后的发声时间。其电路原理图如图2所示。RC桥式正弦波振荡电路起振容易、调节频率方便,波形不易失真,该音频信号发生电路结构简单、功耗低、使用外界元件少、容易实现。

  2.2声音接收与处理模块

  音频信号的接收处理模块由麦克风构成的接收电路和由运算放大器、滤波选频电路等构成的音频信号处理电路组成,其原理结构图如图3所示。麦克风往往接收到的音频信号比较微弱[9],杂波信号比较多,为保证系统的稳定性,需要将声响模块产生的声波信号经过滤波放大电路去除杂波干扰以及对信号进行放大处理。由LM358芯片为核心组成两级放大电路与LM567集成音频选频芯片所组成的具有选频功能的声音开关电路,将音频模拟信号转换为单片机可处理操作的数字信号。LM567锁相环解码图3音频接受处理电路器的主要功能是对输入的模拟信号进行检波、滤波、放大、选频,最终输出数字信号。由LM358两级运算放大器以及LM567锁相环解码器构成的音频接收、处理电路,输出信号频率稳定,调节方便,不管在性能上还是在造价方面,优点都非常突出。

003.jpg

3系统软件设计

  3.1理论分析与计算

  本设计对声音信号的处理算法采用基于到达时间差的任意三角形定位算法,如图4所示,S点为当前声响模块的位置,设其坐标为(X,Y)。A、B、C、D为4个声音接收处理模块,当声响模块发声时,由于S点位置所处的随机性,A、B、C 3点接收到声音信号的时间不同,根据A、B和A、C之间的时间差Tab、Tac,声音在空气中的传播速度为V=340 m/s,通过三角形余弦定理推导可得:

  SC2=SA2+AC2-2×SA×AC×cos(90°-θ)(1)

  SB2=SA2+AB2-2×SA×AB×cos(θ)(2)

  SC=SA+V×Tac(3)

  SB=SA+V×Tab(4)

  由式(1)~(4)可得:

  }I~K}WG8@)YP8~7QH_KV`0R.png

  其中,a=1-(V×Tab)2/6002-(V×Tac)2/4502;b=(6002-(V×Tab)2)×(V×Tab)/6002+(4502-(V×Tac)2)×(V×Tac)/4502;c=-[((600-V×Tab)/1200)2+((450-V×Tac)/900)2];X=(6002-2ab-b2)/1200-50;Y=(4502-2ac-c2)/900-50。 

004.jpg

  3.2定点检测声源位置

  上电后,启动系统各工作模块(包括MSP430单片机、LCD12864模块等)进行数据初始化。手动按下发声按钮,喇叭发出声音信号,通过空气传输至接收模块对信号进行放大选频后传输到信息处理模块对信号进行模数转换处理,单片机启动TB定时器作为定时中断处理,进入中断服务程序,启动定位模式,对4路声音接收电路采集到的信息进行判断处理,根据本文采用的时间差延迟估法计算得出声源所在位置(X,Y),并将坐标值显示在LCD12864液晶显示屏上。本系统声音定位监测的主程序流程图如图5所示。

  

005.jpg

  3.3声响位置移动轨迹程序设计

  当声源在坐标值范围内进行随机移动,单片机不断地计算声源的位置坐标并对瞬时位置坐标动态显示在LCD12864的液晶显示器上,该功能主要通过编写轨迹函数实现实时定位声源位置。图6为判断声源位置移动轨迹坐标显示过程的程序流程框图。

  

006.jpg

4系统测试方案与结果分析

  4.1系统测试方法

  在一个相对安静、空旷的室内房间中对本系统进行功能性测试。按照图6在一个长600 mm,宽450 mm的平板上固定A、B、C、D 4个声音接收器,为了方便检验,在平板上绘制500 mm×350 mm的坐标方格线。

  首先检测对于固定的某一点坐标,该声音定位系统是否能正确判断声响模块所在的位置坐标;其次通过改善信号放大电路性能以及相关算法,移动声响模块,检测该系统能否正确判断声源的位置坐标。

  4.2声源固定测试结果

  将声源模块放置坐标中选定的4个坐标(A(200,100)、B(200,200)、C(300,200)、D(300,100),单位:mm)中的任意3个点,通过多次检测来验证结果是否符合要求。测试结果如表1~表4所示。(注:|误差|=(x2-x1)2+(y2-y1)2,其中测量坐标为(x1,y1),实际坐标为(x2,y2)。)

007.jpg

由表1~表4数据结果分析可知:本系统能够正常接收声源信号,单片机工作稳定,能有效判断出声响模块的位置坐标,并清晰显示在液晶显示上,且位置坐标的误差绝对值均小于30 mm,满足本系统设计要求。以上误差存在原因除了系统本身的不精确,还可能是周围环境影响所致。

  4.3声源移动测试结果

  将声源模块在平面坐标纸上任意移动,通过直接读取当下喇叭所处位置的坐标点并与液晶显示器上的结果进行分析比较,检测结果是否符合要求,同时液晶显示器能动态显示声响模块移动轨迹。表5是声源模块移动轨迹为A1→B1→C1→D1→E1,表6是声源模块移动轨迹为A2→B2→C2→D2→E2。

008.jpg

  由表5和表6数据结果分析可知:本系统测试声源位置移动轨迹坐标的每次测试误差均小于10 mm,说明该系统可以准确、稳定、动态测出声源位置移动轨迹坐标,满足设计要求。

5结论

  本系统以MSP430F169单片机为核心部件,根据接收模块获取的音频信号的不同响应时间,配合一套完整的程序,通过反复调试改进,基本实现声音精确定位,且定位误差均在允许范围之内。单片机MSP430F169作为本系统的主控芯片,在测试中工作正常,数据接收、处理、输出及时准确。显示模块LED12964显示正常。经过充分的讨论和计算,本设计也存在许多问题,特别在硬件实现方面,看似很简单的电路,仿真起来也很准确,但是测试时也会出现一些误差。在设计中,尽量采用低功耗器件,使硬件电路达到最大的经济性与准确性,充分发挥软件控制灵活的特点来满足设计要求。

  参考文献

  [1] 吴峰,高下,李志宏,等.声音空间定位测听系统的设计与实现[J].第四军医大学学报,2001,22(7):656-658.

  [2] 关健生.基于单片机的声音导航定位系统的设计[J].信息系统工程,2009(9):96-98.

  [3] 郝立果,赵凌云,袁建强,等.声音定位引导系统设计[J].机床与液压,2011,39( 22):104-108.

  [4] 陈益如,王博,邬杨波.基于声音引导的声源定位系统设计[J].工业控制计算机,2010,23(10):101-104.

  [5] 李从清,孙立新,戴士杰,等.机器人听觉定位跟踪声源的研究与进展[J].燕山大学学报,2009,33(3):201-205.

  [6] 顿向明,缪松华,沈静,等.基于麦克风阵列的储罐内爬壁机器人定位技术[J].机器人 ROBOT,2012,34(4):460-475.

  [7] PAVLIDI D, GRIFFIN A, PUIGT M,et al.Realtime multiple sound source localization and counting using a circular microphone array[J].IEEE Transactions on Audio,Speech and Language Processing,2013,21 ( 10) : 2193-2206.

  [8] 沈建华,杨艳琴.MSP430系列16位超低功耗单片机原理与实践[M].北京:北京航空航天大学出版社,2008.

  [9] 龙兴波,黄敏,樊昌元,等.基于MSP430的微弱信号检测装置[J].微型机与应用,2014,33(3):18-20.


此内容为AET网站原创,未经授权禁止转载。