Skip to content

活动

声响级别测试仪

中级 | MakeCode, Python | LED显示器, 麦克风 | 变量, 数据处理, 算数运算符, 输入/输出

第 1 步:制作

它是什么?

制作一个声响级别测试仪,来监测你周围不同环境在不同时段的声响情况。

介绍

编程指南

学习目标

  • 如何使用新版micro:bit的内置麦克风传感器测量声音的响度
  • 收集真实世界的数据时,使用变量和运算符跟踪最大值

工作原理

  • 新版micro:bit的麦克风将检测到的声响程度用数字0至255来表示,就像在光线传感器项目中一样。
  • loop持续将当前的声响与变量maxSound中存储的最大声响值进行比较。 如果当前的声响比前一次大,则将重置maxSound为新的最大响度。
  • 在loop循环中,使用if语句来判断你是否按下了按键A。若是, 则会将当前的音量值显示在LED显示屏输出上。 你可以通过这种方式来检测周围环境在不同时段的声响情况。
  • 按micro:bit背面的重置按键可重置最大值。

所需材料

  • 新版含音频设备的micro:bit(或者MakeCode模拟器)
  • MakeCode或者Python编辑器
  • 电池盒(选配)

第 2 步:编程

1from microbit import *
2maxSound = 0
3lights = Image("11111:"
4              "11111:"
5              "11111:"
6              "11111:"
7              "11111")
8# ignore first sound level reading
9soundLevel = microphone.sound_level()
10sleep(200)
11
12while True:
13    if button_a.is_pressed():
14        display.scroll(maxSound)
15    else:
16        soundLevel = microphone.sound_level()
17        display.show(lights * soundLevel)
18        if soundLevel > maxSound:
19            maxSound = soundLevel
20            

第 3 步:完善

  • 修改项目,使其也记录最安静或最小的声音
  • 使用无线电将声响级别发送到另一个micro:bit,以便可以进行远程监测