第 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 步:完善
- 对响声和静音的声音事件进行不同阈值的实验,以找到最适合你的值。
- 添加声音记录仪项目中的代码,还可以测量掌声有多响。
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.