作者:谢作如 张敬云 李守良
项目1-3 噪声测试仪
学习目标:
1、理解并能正确使用“调试输出”和“软件开关”节点;
2、能正确连接并使用声音传感器和Edison,完成噪声测试仪的制作;
3、了解声音传感器的工作原理。
一、项目描述
强大的物联网,就是利用互联网将世界万物连接为一个整体,使得物体与物体之间产生联系。物联网最大的特征之一是实时获取外界的信息并对该信息做出及时有效的反馈,而本节课我们将使用Edison套材中的声音传感器和LCD制作一个噪声测试仪,实现实时获取外界环境声音的强度的功能,如图 1 所示。

二、项目分析
制作噪声测试仪的关键是需要解决两个主要问题:1.实时获取外界声音值;2.将获取的声音值显示出来。Edison套材中的声音传感器可以获取外界声音值,Smart_Node的LCD节点和“调试”节点则可以帮我们显示获取的声音值。项目设计列表可以参考下表1所示。

三、基础知识
(一)声音传感器
声音传感器是一款简单、实惠的电子耳朵,它能“听到”声音的大小,并转化为模拟信号。通过模拟反馈电压信号的大小值获取环境声音的大小,因此声音传感器需要接到模拟口上,值的范围为0~1023,根据声音强弱的不同会输出不同的值,声音越强数值越大,声音越小数值越小。
使用一个简单的3芯数据线就能将它连接到“大脑”Edison控制器。Edison在“听到”不同强弱的声音后做出设定好的反应。它是基于麦克风声音检测的传感器,可用来对周围环境中的声音强度进行检测,具有300倍的放大器,输出模拟信号能使用3.3V和5V为基准AD采集。该款声音传感器可以实现根据声音大小进行互动、制作声控机器人、声控开关、声控报警等效果,如图 2 所示。

(二)调试输出
“调试输出”节点在Smart_Node中运用比较广泛,我们在调试程序时会常用到,如图3所示。其作用类似于Arduino中的串口通信,可以将我们需要调试的数据呈现在“调试”窗口中。例如在本案例中实时读取外界声音的强弱。

(三)软件开关
“软件开关”节点作为程序的起点,在Smart_Node中应用很广泛,如图4所示。顾名思义,“软件开关”节点可以取代硬件开关,成为一个虚拟开关而直接控制程序的运行。在本案例中,我们使用“软件开关”节点对噪声测试仪的程序运行进行设置。

四、实现过程
(一)硬件连接
将Edison和声音传感器连接起来,如下图 5所示,声音传感器连接到模拟输入(A0)。

(二)流程设计
噪声测试仪采用数据流的形式,通过“软件开关”节点触发,将获取的声音传感器的值实时显示在“调试”窗口中。具体流程如下图6所示。

(三)节点设置
由于要持续监测监测声音传感器所获取的数值,因此我们需要对“软件开关”节点进行设置。其设置也和硬件开关类似,可以在initVal中延时效果,即:按多长时间出发开关信号,我们将“initVal”设置“1”。如下图7所示:

为了获取外界的声音强度,我们需要在Smart_Node引入“声音传感器”节点,并且需要对此节点进行设置,如下图8所示:


声音传感器可以实时获取外界的声音强度,那么我们如何读取呢?为了解决这个问题,我们就需要用到调试节点。调试节点的设置比较简单,本案例主要将“输出”设置为“消息属性”,将“输出到”设置“调试标签页”,具体如图 9所示。

想一想:在“输出”下拉框选择“完整的消息对象”,结果会有什么不同呢?
通过对以上节点的设置,将各个节点连接起来,就可以实现我们的噪声测试仪程序编写。
(四)效果测试
点击“部署”按钮,可以观察噪声测试仪是否正常工作。如果不能正常工作,可以老师或同学交流查找问题所在。最后,分享自己的作品和经验。
五、挑战自我
点击“部署”后,我们的噪声测试仪就完成。但是在制作“噪声测试仪”的过程中,我们发现“调试”窗口显示外界的声音值有很多不方便的地方,例如硬件模块需要和电脑连接在一起不能实现离线测试。我们是否可以使用Edison套材中的LCD模块呢?将声音传感器获取的数据直接显示LCD中,动手试试吧。
六、扩展阅读
LCD与Edison的硬件连接如图10所示,我们同样将声音传感器针脚设置为A0,LCD的SCL设置A5针脚;SDA设置为A4针脚;VCC设置任一5V针脚;GND设置为任一GND针脚即可。

程序实现也比较简单,在“软件开关”触发后,声音传感器获取的数据实时传输到LCD中,程序编写如下图11所示。

注:我们可以在Smart_Node中对LCD的背景颜色(RGB)进行设置。
LCD
LCD ( Liquid Crystal Display 的简称)液晶显示器。LCD 的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置TFT(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过TFT上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否而达到显示目的。
本案例使用的LCD可以显示16*2个字符,对于Edison初学者来说,不必为繁琐复杂液晶驱动电路连线而头疼了,这款LCD扩展板将电路简化,采用I2C的通讯接口驱动,如图12所示。

文章来源:Smart Node