玩转硬件之Micro:bit的玩法(四)——声控灯

智能家居的普及在近几年来呈现出了爆发式的增长。随着科技的不断进步和人们对便利生活的追求,越来越多的家庭开始采用智能家居系统,使生活更加智能化、便捷化。

智能家居的普及不仅改变了人们的生活方式,也为家庭带来了更多的便利和舒适。现在,人们可以通过智能手机或者语音助手来控制家中的电器设备,如灯光、空调、电视等,而不需要亲自去操作。这不仅提高了生活的便利性,还节省了能源和时间。而声控灯就是其中之一。

声控灯是一种通过声音控制开关灯光的装置。它通常包含一个麦克风或传感器,可以感应到声音,并根据声音的强弱来控制灯光的开关。当有声音时,声控灯会自动打开灯光;当没有声音时,声控灯会自动关闭灯光。声控灯可以提供更加便捷和智能的灯光控制方式,使用户无需手动开关灯光,只需通过声音就能实现灯光的开关。它在家庭、办公室、酒店等场所中得到广泛应用,提升了生活和工作的舒适度和便利性。

那如果我说Micro:bit也可以实现声控灯,你会信吗?

因为Micro:bit拥有Sound Sensor (声音传感器)可以进行声音探测。

Sound Sensor模块采用了音频处理芯片LM386,可对音频信号进行200倍放大,可用于检测环境声音的有无或判断声音强度的大小(不能测量具体的分贝数)。

本文介绍的声控灯,因为要接入灯,故此我们要将Microb:bit插入到小车扩展模块中,如下图所示,如何操作小车扩展模块,可以参考官方教程。

Step 1 在声音的模块下,定义一个变量用于存储开关

Step 2 如果开关打开,则小车灯亮,并暂停5s后,小车灯灭

Step 3 如果开关关闭,则小车灯灭

执行的效果如下:

附上Javascript代码:

input.onSound(DetectedSound.Loud, function () {
    lighton = !(lighton)
    if (lighton) {
        mbit_小车类.RGB_Car_Big2(mbit_小车类.enColor.White)
        basic.pause(5000)
        mbit_小车类.RGB_Car_Big2(mbit_小车类.enColor.OFF)
    } else {
        mbit_小车类.RGB_Car_Big2(mbit_小车类.enColor.OFF)
    }
})
let lighton = false
input.setSoundThreshold(SoundThreshold.Loud, 150)

附上Python的代码:

def on_sound_loud():
    global lighton
    lighton = not (lighton)
    if lighton:
        mbit_小车类.RGB_Car_Big2(mbit_小车类.enColor.WHITE)
        basic.pause(5000)
        mbit_小车类.RGB_Car_Big2(mbit_小车类.enColor.OFF)
    else:
        mbit_小车类.RGB_Car_Big2(mbit_小车类.enColor.OFF)
input.on_sound(DetectedSound.LOUD, on_sound_loud)

lighton = False
input.set_sound_threshold(SoundThreshold.LOUD, 150)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我很乐意为您解答关于Micro:bit做交通信号灯的问题。 首先,您需要准备以下材料: - 1个Micro:bit主板 - 1个Micro:bit扩展板 - 1个交通信号灯LED灯组 - 杜邦线若干 接下来,您可以按照以下步骤进行操作: 1. 连接电路: 将Micro:bit主板与扩展板通过插口连接起来,然后将LED灯组的红、黄、绿三根线分别连接到扩展板的P0、P1、P2口。 2. 编写代码: 使用Micro:bit的编程软件MakeCode,编写以下代码实现交通信号灯的控制: ``` let red = 0 let yellow = 0 let green = 0 basic.forever(function () { red = 1 yellow = 0 green = 0 pins.digitalWritePin(DigitalPin.P0, red) pins.digitalWritePin(DigitalPin.P1, yellow) pins.digitalWritePin(DigitalPin.P2, green) basic.pause(5000) red = 1 yellow = 1 green = 0 pins.digitalWritePin(DigitalPin.P0, red) pins.digitalWritePin(DigitalPin.P1, yellow) pins.digitalWritePin(DigitalPin.P2, green) basic.pause(2000) red = 0 yellow = 0 green = 1 pins.digitalWritePin(DigitalPin.P0, red) pins.digitalWritePin(DigitalPin.P1, yellow) pins.digitalWritePin(DigitalPin.P2, green) basic.pause(5000) red = 0 yellow = 1 green = 0 pins.digitalWritePin(DigitalPin.P0, red) pins.digitalWritePin(DigitalPin.P1, yellow) pins.digitalWritePin(DigitalPin.P2, green) basic.pause(2000) }) ``` 3. 上传代码: 将编写好的代码通过USB数据线上传到Micro:bit主板上即可。 4. 测试: 将Micro:bit主板连接到电脑或者使用电池供电,观察LED灯组的状态是否符合交通信号灯的工作规律。 希望本次回答能够帮助您,如有疑问请随时提出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂的豆包

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值