玩转硬件之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 lightonlighton = 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)
相关文章:
玩转硬件之Micro:bit的玩法(四)——声控灯
智能家居的普及在近几年来呈现出了爆发式的增长。随着科技的不断进步和人们对便利生活的追求,越来越多的家庭开始采用智能家居系统,使生活更加智能化、便捷化。 智能家居的普及不仅改变了人们的生活方式,也为家庭带来了更多的便利和舒适。现…...
STM32-创建项目流程
一、基于STM官网得库进行开发 准备工作:下载STM库文件 1、创建项目文件夹 2、在keil 中new uVision project,然后选择刚刚创建得文件夹,在文件夹里面创建一个文件,用来存放这个项目,然后在文件夹里面,写个文件名&am…...
软件测试 —— 移动端测试
1. 移动端 指移动设备(如智能手机、平板电脑、智能手表等)上的操作系统和应用程序。移动设备具有便携性和多功能性,可以随时随地连接互联网,提供丰富的应用和服务。 2. 移动端应用分类 (1) 原生应用(Native App&…...
PCL 计算一个平面与一个三角形的交线
文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 这里实现一个很有趣的功能,就是获取一个平面与一个三角形的交线,具体的思路很简单,就是借助之前的博客中的思路:Matlab 计算一个平面与一条线段的交点,我们只需要遍历三角形中的所有边即可获取我们想要的交线,…...
Redis 应用问题
1-缓存穿透 1.1-问题描述 Key 对应的数据在数据源并不存在,每次针对此 Key 的请求从缓存获取不到,请求都会压到数据源,从而可能压垮数据源。 比如:用一个不存在的用户ID 获取用户信息,不论缓存还是数据库都没有&…...
Java 谈谈你对OOM的认识
文章目录 前言一、基础架构二、常见OOM1、栈内存溢出java.lang.StackOverflowError2、堆内存溢出java.lang.OutOfMemoryError:Java heap space3、GC回收时间过长java.lang.OutOfMemoryError: GC overhead limit exceeded4、NIO程序堆外内存溢出java.lang.OutOfMemor…...
JavaScript中BOM与DOM
BOM window对象 所有的浏览器都支持window对象,他表示浏览器窗口, 所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。 全局变量是 window 对象的属性。全局函数是 window 对象的方法。 接下来要讲的HTML DOM 的 document 也是…...
Nginx域名重定向(如何访问的域名和实际的数据请求路径不同,可解决前端跨域)
感情需要被抑制,不能泛滥… 当需要将一个域名重定向到另一个域名并且用户仍然看到原始域名时,Nginx是一个强大的工具。这种场景通常涉及到反向代理或重写URL的技巧。在本篇博客中,我们将详细介绍如何使用Nginx来实现这个目标,以及…...
2023年11月2日历史上的今天大事件早读
1082年11月02日宋徽宗出生 1861年11月02日辛酉政变 1910年11月02日中国社会学家和人类学家费孝通诞生 1910年11月02日畜生态学科的创始人汤逸人诞生 1917年11月02日《贝尔福宣言》和犹太复国主义 1917年11月02日美日订立“兰辛—石井协定”损害中国利益 1937年11月02日忻…...
红帽Redhat--Ansible实战1
在运行Windows操作系统的主机LAPTOP-OUR52V78上安装有VMware Workstation Player软件。因为Windows自带的虚拟机平台软件"Hyper-V"使用难度较大,而且关于在"Hyper-V"上运行虚拟机,修改虚拟机错误的相关技术博客和文章的数量稀少&…...
213. 打家劫舍 II
你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一…...
Spring 与 Spring Boot
什么是 Spring 可以理解 Spring 是一个框架。这个框架最早来源于在差不多的 20 年前的 2002 年。 在那个时候 Java 世界的开发还是以 EJB 为主,因为在这之前的大部分应用都会使用服务器客户端的应用模式。 其实这个模式在现在还是在使用的,例如 IBM 系统…...
Flutter 04 按钮Button和事件处理、弹框Dialog、Toast
一、按钮组件 1、按钮类型: 2、按钮实现效果: import package:flutter/material.dart;void main() {runApp(const MyApp()); }class MyApp extends StatelessWidget {const MyApp({Key? key}) : super(key: key);overrideWidget build(BuildContext co…...
thinkphp6多用用模式下缩短路由隐藏index应用名
thinkphp6多用用模式下缩短路由隐藏index应用名方法: 找到入口文件,一般public目录下index.php 找到 $response $http->run(); 替换为如下代码即可 // 关键在此处 $_amain index; $_aother admin|common; // 匹配此条件,就按照tp默…...
AM@二阶常系数非齐次线性微分方程@待定系数法可解决的经典类型1
文章目录 abstract二阶常系数非齐次线性微分方程待定系数法可解类型类型1小结例 abstract 二阶常系数非齐次线性微分方程待定系数法可解决的经典类型1及其解法总结与应用 本文给出类型1为什么可以通过待定求出特解,并且待定函数要设成什么形式推理过程有一定工作量,而在应用中…...
大数据技术笔记
1. 大数据技术简介 大数据技术是一系列的工具和方法,它们可以帮助我们收集、存储和分析大量的数据,并将结果呈现给我们。 2. 大数据计算模式 我们需要一些方法来处理这些数据,就像我们需要各种各样的厨具来处理食材一样。这些方法被称为大…...
Vue 3 中的 Composition API
✨理解 Vue 3 中的 Composition API 🎃 Vue 3 引入了全新的 Composition API,相较于传统的 Options API,它具备许多优势和适用场景。下面将介绍 Composition API 的优势和使用场景,并为你带来更好的开发体验。 🎁 Co…...
《TCP/IP详解 卷一:协议》第5章的IPv4数据报的总长度字段出现“不需要大于576字节的IPv4数据报“相关内容的解释
《TCP/IP详解 卷一:协议》第5章的IPv4数据报的总长度字段的一些解释,出现以下内容(有省略): ....另外,主机不需要接收大于576字节的IPv4数据报.....以避免576字节的IPv4限制。 英文原文的内容(有…...
PO-java客户端连接错误can not connect to server
问题描述: 换电脑或者网络环境改变了,PO下载EST ID的jnlp提示can not connect to server*** ;**message server***这类错误 原因分析: 基本上都是PO消息服务器连接不上导致的错误,原理有均衡负载对应的IP转接后端口不…...
PM2 vs Kubernetes:在部署 Node.js 服务时使用哪个?
Node.js 已成为 Web 开发中的热门技术之一,但如果我们想成功地将 Node.js 应用程序交付给用户,我们需要考虑部署和管理这些应用程序。两个常见的选项是 PM2 和 Kubernetes。PM2 是一个用于运行和管理 Node.js 应用程序的进程管理器,它能够创建…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
抽象类和接口(全)
一、抽象类 1.概念:如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象,这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法,包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中,⼀个类如果被 abs…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...
