高级应用:SoundLocalizer 详解
1. SoundLocalizer 概述
SoundLocalizer 是一个较为复杂的传感器网络应用,它实现了一个协同事件检测系统。在这个系统中,一组节点(motes)会检测特定事件——响亮的声音,然后节点之间相互通信,找出最先检测到该事件的节点,该节点被认为最接近事件发生的位置。
为了确保及时检测事件并准确比较事件检测时间,该应用需要使用平台硬件抽象层(HAL)和硬件表示层(HPL)的一些低级接口。因此,该应用并非直接可移植的,这里是针对配备 mts300 传感器板的 micaz 节点实现的。不过,应用和代码的设计旨在简化移植过程。
2. SoundLocalizer 设计
SoundLocalizer 的设计和实现有意保持简单,所有设计选择都是为了便于清晰阐述。一个“真正”的协同事件检测系统的实现需要更多工程工作来提高精度和可靠性,但 SoundLocalizer 的结构以及它访问特定平台低级功能的方式具有代表性。
2.1 典型设置
SoundLocalizer 应用的典型设置如下:
- 多个检测节点放置在相隔几英尺的表面上。
- 当单个协调节点开启时,它会发送一系列无线电数据包,让检测节点同步它们的时钟。
- 在协调节点指定的时间,所有检测节点打开绿色 LED 并开始监听响亮的声音,如拍手声。
- 一旦听到这样的声音,节点打开黄色 LED。
- 最后,节点进入“投票”阶段,只有最早检测到声音的节点保持黄色 LED 亮着。
graph LR