掌控板之噪声波形图

2020-12-15 06:56陈新龙
电脑报 2020年47期
关键词:监视器麦克风列表

陈新龙

今天我们用掌控板来实现波形监视器功能,这也是蛮有意思的一个挑战。掌控板中集成了RGB灯、麦克风、光线传感器……所以可以利用掌控板的麦克风模块完成噪声监视器的功能:根据声音的高低通过掌控板记录下数值并用绘圖的形式展现出来。本次实验所用到的软件是mPython,将软件换成Mind+也可以实现。

通过掌控板自带的声音传感器采集数据,首先定义声音列表。将声音传感器获取的数值存储在列表中。掌控板上声音传感器的输入范围是0-4095,但是掌控板OLED显示屏Y轴最大坐标是63。所以可以用映射的方法,将声音检测器检测到的数值映射到0-60范围内(并且取整),取60是为了上下稍留出一些空白部分,显得比较好看。由于掌控板不断地读取声音数据,添加到列表中,会导致列表中的声音数据量太多,超出范围,而且掌控板OLED显示屏也画不下,所以我们给声音列表设定了一个长度128。当数据太多的时候,不断地移除最早的数据,让列表的数据进行移动,便可以实现基础的动态的效果。

接下来要让掌控板根据声音数值制出波形图,这就要用到坐标的知识。还要用循环将点与点连在一起:使用i从范围0到声音的长度减2。为什么要减2呢?因为第一次画起点,终点是第二个点;第二次画起点,终点是第三个点……最后一个画起点是n-1个点,终点是n个点。那么如果起点是0,终点就是声音的长度减2,每次间隔为1。

然后进行描点与绘制。点坐标的X值为变量i的值。Y的坐标为声音列表的第i项值。点确定了,线就比较简单,根据点的位置将线连接起来就可以了,但是要记住线是由两个点才能确定的。这里需要注意两点的坐标(i,声音列表第i项)和(i+1,声音列表的第i+1项)。

完成代码之后便可以进行调试了,连接掌控板,往红色箭头方向吹气或者发出声音,便会看到掌控板OLED屏幕上显示出波形图。当然本例是通过检测声音后画出波形图,掌控板还有光线传感器,我们也可以监控光的明暗变化用波形图展示出来。完成这个实例后也可以查阅相关资料尝试一下掌控板是否可以根据Excel列表中导入的值来进行数值的变化,期待聪明的你给一个优秀的回答。

猜你喜欢
监视器麦克风列表
扩列吧
列表法解分式方程问题探索
麦克风的艺术
讯飞输入法也能离线语音输入
让重力控制麦克风
深耕广电,时代奥视监视器“花香遍墙内外”
麦克风
列表画树状图各有所长
2011年《小说月刊》转载列表