Skip to content

活动

掌声测量仪

中级 | MakeCode, Python | LED显示器, 麦克风 | 传感器, 变量, 测量, 算数运算符, 选择

第 1 步:制作

它是什么?

该计时器使用新版micro:bit上的麦克风测量掌声 -- 或者响亮的声音的持续时间。

介绍

编程指南

学习目标

  • 如何通过麦克风测量响亮或者轻微的声响,来触发事件
  • 如何使用micro:bit的内置计时器
  • 如何设置响亮和轻微声音的阈值

工作原理

  • 在程序开始时,设置了触发响亮声音事件的阈值。 数字越大,需要更响的声音才能触发事件;数字越小,则较小的声音便可。 你可以使用0到255之间的任何数字。
  • start变量设为0。 用于记录声响开始的时间。
  • 当麦克风感测到大的声响时,将start变量设置成micro:bit的当前运行时间,同时在LED显示屏上显示一个图标,这样就可以知道计时开始了。
  • 运行时间是衡量micro:bit开启运行程序的时间,以毫秒为单位(千分之一秒)。
  • 响亮声音停止时,会触发静音事件。
  • 如果已经有了一个响声时间,而且计时器已开始,那么start变量的值会大于0。 此时,另一个变量time的值被设置为新的当前运行时间减去start时间。 从而告知我们响声持续了多长时间。
  • 由于时间以毫秒为单位测量,因此程序将它除以1000,将其转换为秒,并在LED显示器上显示出来。

所需材料

  • 一个micro:bit
  • MakeCode或者Python编辑器
  • 电池盒(选配)

第 2 步:编程

1from microbit import *
2microphone.set_threshold(SoundEvent.LOUD, 150)
3start = 0
4
5while True:
6    if microphone.was_event(SoundEvent.LOUD):
7        start = running_time()
8        display.show(Image.TARGET)
9
10    if microphone.was_event(SoundEvent.QUIET):
11        if start > 0:
12            time = running_time() - start
13            start = 0
14            display.clear()
15            sleep(100)
16            display.scroll(time / 1000)

第 3 步:完善

  • 对响声和静音的声音事件进行不同阈值的实验,以找到最适合你的值。
  • 添加声音记录仪项目中的代码,还可以测量掌声有多响。