Python中如何使用Microbit Turnipbit制作孩子也能做的声光控开关
最近一直在研究 Turnipbit 这块板子,之前也做了几个小实验,研究了下针脚,发现光敏传感器和声音传感器针 脚能对的上,就做了下这个声光控小实验,顺便测试下这块板子的性能。不得不说熟悉 Microbit 的人都能熟练 操作,可视化拼插编程哪怕是孩子也能熟练操作。
需要器件 1.Turnipbit 以及 Turnipbit 扩展板个一块 2.pc 机一台 3.数据线一条 4.光敏传感器和声音传感器个一个 5.杜邦线若干
1.光敏传感器模块原理
光敏传感器是利用光敏元件将光信号转换为电信号的传感器,它的敏感波长在可见光波长附近,包括红外线波长 和紫外线波长。光传感器不只局限于对光的探测,它还可以作为探测元件组成其他传感器,对许多非电量进行 检测,只要将这些非电量转换为光信号的变化即可。
2.声音传感器模块原理
声音传感器的作用相当于一个话筒 (麦克风)。它用来接收声波,显示声音的振动图象,但不能对噪声的强度进行测量。 该传感器内置一个对声音敏感的电容式驻极体话筒。声波使话筒内的驻极体薄膜振动,导致电容的变化,而产 与之对应变化的微小电压。这一电压随后被转化成 0-5V 的电压,经过 A/D 转换被数据采集器接受,并传送给计 算机。
4.4.接线方法: Turnipbit 扩展板与发光二极管接口对应如下表:
Turnip 扩展板 光敏模块 3V3 VCC GND GND P5 DO Turnip 扩展板 声音模块
3V3 VCC
GND GND
P11 · OUT 4.5. 源代码:
代码编程还是分两种方式来实现
打开 Turnipbit 可视化编程地址 http://www.turnipbit.com/
代码编程:
from microbit import *
while True: if pin5.read_digital(): if not pin11.read_digital(): display.show(Image("09990:99999:99999:09990:00900")) sleep(5000) else: display.show(Image("09990:90009:90009:09990:00900"))
可视化编程图
地址:
https://wx1.sinaimg.cn/mw690/0067QUV8ly1fp6oposnejj30fi07ggo4.jpg
Python中如何使用Microbit Turnipbit制作孩子也能做的声光控开关
好的,哥们儿,这个问题挺有意思的。用Micro:bit或者它的国产兼容版Turnipbit做个声光控开关,确实是个不错的入门项目。核心思路就是让板子同时检测环境光线和声音强度,当两个条件都满足时(比如“光线暗”且“声音响”),就触发一个动作(比如点亮LED灯)。
下面我给你一个完整、可运行的代码示例。这个代码逻辑清晰,孩子跟着步骤也能做出来。
1. 硬件准备
- Micro:bit 或 Turnipbit 主板一块
- USB数据线
- 电脑(用于编程和烧录)
2. 编程环境
- 访问官方编程网站:https://python.microbit.org/v/3 (Micro:bit)或 Turnipbit 对应的图形化/Python在线编辑器。
- 我们将使用 Python 模式编写代码。
3. 完整代码与解释
# 导入必要的库
from microbit import *
import music
# 主循环
while True:
# 1. 读取当前光线强度 (0-255,值越小越暗)
light_level = display.read_light_level()
# 2. 读取当前声音强度(通过麦克风,值越大声音越响)
# 注意:micro:bit V2 或 Turnipbit 等带麦克风的版本才能用 sound_level
# 如果是老版V1,可以注释掉这行,用个固定值或按钮模拟
sound_level = microphone.sound_level()
# 打印到串口,方便调试(在编辑器里打开“串口”查看)
print("Light:", light_level, "Sound:", sound_level)
# 3. 判断条件:如果光线暗 (例如 < 50) 并且声音大 (例如 > 100)
if light_level < 50 and sound_level > 100:
# 条件满足,触发“开灯”动作
# 动作1:点亮板子上的所有LED,显示一个“笑脸”图案
display.show(Image.HAPPY)
# 动作2:让引脚P0输出高电平,可以外接一个LED灯或继电器模块
pin0.write_digital(1)
# 动作3(可选):播放一个提示音
music.play(music.BA_DING)
# 保持“开启”状态一段时间,避免频繁触发
sleep(3000) # 保持3秒
# 3秒后,自动“关灯”
display.clear()
pin0.write_digital(0)
# 每次循环后稍作延迟,减少CPU占用
sleep(100)
4. 代码要点说明
- 核心传感器:
display.read_light_level()用来测光(利用LED矩阵当光敏传感器)。microphone.sound_level()用来测声音(V2版及以上)。 - 阈值调整:
light_level < 50和sound_level > 100这两个阈值是关键。你需要根据实际环境测试调整。太敏感或太迟钝都可以改这两个数。 - 输出动作:这里用了三种方式同时反馈:屏幕显示笑脸、引脚P0输出高电平(外接设备)、播放声音。你可以只保留需要的部分。
- 防抖延时:
sleep(3000)很重要,防止一声响导致灯疯狂开关。也可以改用计时器实现更复杂的逻辑。
5. 硬件扩展(进阶) 如果想控制真正的电灯,绝对不能直接用Micro:bit接220V家用电!非常危险! 正确的做法是:
- 用Micro:bit的引脚(如P0)控制一个低电压的继电器模块。
- 继电器模块再接一个有安全认证的插座或灯座。
- 确保整个操作在家长或老师的监督下进行,只使用电池或USB供电的低压部分。
总结建议:先调通板载的声光检测和LED显示,再考虑安全地外接低压小设备。

