Skip to content

活动

拍手声控灯

初学者 | MakeCode, Python | LED显示器, 麦克风 | 传感器, 布尔逻辑, 选择

第 1 步:制作

它是什么?

将你的micro:bit变成声控灯,你可以通过拍手或发出大的声响来打开或关闭它。

介绍

编程指南

学习目标

  • 如何根据传感器输入来切换输出
  • 如何使用布尔逻辑变量来切换开关的作用,对同一触发事件做出开或者关的反应。

工作原理

  • 此程序使用名为lightsOn的变量记录灯的状态:是处于打开还是关闭的状态。 我们使用的是一种特殊类型的变量——布尔变量。 布尔变量只能有两种值:True(开)或False(关)。
  • 当麦克风传感器感应到一声大的声响时,代码会将lightsOn的值切换为not lightsOn
  • 这意味着当你拍掌时,如果lightsOn的当前值为false(且当前灯为关闭状态),那它会被设成true,同时程序点亮LED灯。
  • 如果lightsOn的当前值为true(且当前灯为打开状态),那它会被设成false,同时程序清除屏幕并关闭LED灯。

所需材料

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

第 2 步:编程

1from microbit import *
2lightsOn = False
3
4while True:
5    if microphone.was_event(SoundEvent.LOUD):
6        lightsOn = not lightsOn
7        if lightsOn:
8            display.show(Image('99999:'
9                               '99999:'
10                               '99999:'
11                               '99999:'
12                               '99999'))
13        else:
14            display.clear()
15    sleep(100)

第 3 步:完善

  • 你可以通过在“on start”模块中添加“set loud sound threshold”模块来使“on loud sound”模块更灵敏或者相反。 对较小的声音使用小的数字,对响亮的声音使用较大的数字。 上面的编程视频向你展示了如何执行此操作。
  • 在Python中,要更改声音的阈值,请使用microphone.set_threshold(SoundEvent.LOUD, 128) -- 将数字128更改为0到255之间你想要的任何数。
  • 让灯光打开时也播放一首曲子。
  • 使用声音来控制其他项目,例如点亮LED灯或控制连接到micro:bit引脚的步进马达。