【雕爷学编程】MicroPython动手做(18)——掌控板之声光传感器2

知识点:什么是掌控板?
掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED显示屏、RGB灯、加速度计、麦克风、光线传感器、蜂鸣器、按键开关、触摸开关、金手指外部拓展接口,支持图形化及MicroPython代码编程,可实现智能机器人、创客智造作品等智能控制类应用。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

掌控板硬件特性:
ESP-32主控
处理器:Tensilica LX6双核处理器(一核处理高速连接;一核独立应用开发)
主频:高达240MHz的时钟频率
SRAM:520KB
Flash:8MB
Wi-Fi标准:FCC/CE/TELEC/KCC
Wi-Fi协议:802.11 b/g/n/d/e/i/k/r (802.11n,速度高达150 Mbps),A-MPDU和A-MSDU聚合,支持0.4us防护间隔
频率范围:2.4~2.5 GHz
蓝牙协议:符合蓝牙v4.2 BR/EDR和BLE标准
蓝牙音频:CVSD和SBC音频低功耗:10uA
供电方式:Micro USB供电
工作电压:3.3V
最大工作电流:200mA
最大负载电流:1000mA
掌控板载
三轴加速度计MSA300,测量范围:±2/4/8/16G
地磁传感器MMC5983MA,测量范围:±8 Gauss;精度0.4mGz,电子罗盘误差±0.5°
光线传感器
麦克风
3 颗全彩ws2812灯珠
1.3英寸OLED显示屏,支持16*16字符显示,分辨率128x64
无源蜂鸣器
支持2个物理按键(A/B)、6个触摸按键
支持1路鳄鱼夹接口,可方便接入各种阻性传感器
拓展接口
20通道数字I/O, (其中支持12路PWM,6路触摸输入)
5通道12bit模拟输入ADC,P0~P4
1路的外部输入鳄鱼夹接口:EXT/GND
支持I2C、UART、SPI通讯协议

在这里插入图片描述
在这里插入图片描述

6、噪音报警器

噪音
是一类引起人烦躁、或音量过强而危害人体健康的声音 。从环境保护的角度讲:凡是妨碍人们正常休息、学习和工作的声音,以及对人们要听的声音产生干扰的声音,都属于噪音 。从物理学的角度讲:噪音是发声体做无规则振动时发出的声音 。

在这里插入图片描述

音量等级(类比)
190分贝 导致死亡 ;
150分贝 火箭、导弹发射的声音 ;
140分贝 欧盟界定的导致听力完全损害的最高临界点 ;
140分贝 喷气式飞机起飞的声音 ;
139分贝 世界杯球迷的呐喊声 ;
130分贝 螺旋浆飞机起飞的声音、摇滚音乐会的声音 ;
120分贝 在这种环境下呆超过一分钟即会产生暂时性耳聋 ;
120分贝 球磨机工作的声音 ;
110分贝 电锯工作的声音 ;
105分贝 永久损害听觉 ;
100分贝 气压钻机声音、压缩铁锤捶打重物的声音 ;
100分贝 拖拉机开动的声音 ;
90分贝 嘈杂酒吧环境声音、电动锯锯木头的声音 ;
90分贝 嘈杂的办公室、高速公路上的声音 ;
85分贝及以下 不会破坏耳蜗内的毛细胞 ;
80分贝 街道环境的声音、一般车辆行驶的声音 ;
75分贝 人体耳朵舒适度上限 ;
70分贝 大声说话的声音 ;
60分贝 正常交谈的声音 ;
50分贝 办公室的声音 ;
40分贝 图书馆阅览室的声音 ;
30分贝 卧室的声音 ;
20分贝 窃窃私语的声音 ;
10分贝 风吹落叶的沙沙声 ;
0分贝 刚刚引起听觉的声音 。

#MicroPython动手做(18)——掌控板之声光传感器
#噪音报警器

from mpython import *

import time

myUI = UI(oled)
while True:
    oled.fill(0)
    i = ((100 - 0) / (2000 - 0)) * (sound.read() - 0) + 0
    oled.DispChar('麦克风', 30, 10, 1)
    oled.DispChar((str(sound.read())), 73, 10, 1)
    myUI.ProgressBar(10, 30, 105, 10, i)
    oled.show()
    if i > 20:
        if i >= 20:
            rgb[0] = (int(255), int(0), int(0))
            rgb.write()
            time.sleep_ms(1)
        if i >= 50:
            rgb[0] = (int(255), int(0), int(0))
            rgb.write()
            time.sleep_ms(1)
            rgb[1] = (int(255), int(0), int(0))
            rgb.write()
            time.sleep_ms(1)
        if i >= 80:
            rgb.fill((int(255), int(0), int(0)))
            rgb.write()
            time.sleep_ms(1)
    else:
        rgb.fill( (0, 0, 0) )
        rgb.write()
        time.sleep_ms(1)

mPython 图形编程

在这里插入图片描述
在这里插入图片描述

7、声光控制楼道灯

楼道灯的运作原理;当周围环境的光线值变暗,楼道灯附带的光线传感器探测到的光线值也随之降低,在此时如果有人经过发出声音,楼道灯上的声音传感器所探测到的值就会增大(光线值小于设定的值的同时,声音值大于设定的值,便会点亮灯泡,并持续一段时间),照亮楼梯供行人通过后,随之关闭。

这里设置光线值小于180和声音值大于500,为楼道灯开关的阕值。

#MicroPython动手做(18)——掌控板之声光传感器
#声光控制楼道灯

from mpython import *

import time
while True:
    if light.read() < 180 and sound.read() > 500:
        rgb.fill((int(255), int(255), int(0)))
        rgb.write()
        time.sleep_ms(1)
        oled.fill(0)
        oled.DispChar('楼道灯 开', 36, 25, 1)
        oled.show()
        time.sleep(10)
    else:
        rgb.fill( (0, 0, 0) )
        rgb.write()
        time.sleep_ms(1)
    oled.fill(0)
    oled.DispChar('光线——', 26, 10, 1)
    oled.DispChar((str(light.read())), 73, 10, 1)
    oled.DispChar('声音——', 26, 26, 1)
    oled.DispChar((str(sound.read())), 73, 26, 1)
    oled.show()

mPython 图形编程

在这里插入图片描述
在这里插入图片描述

8、实时测量声光强度(垂直柱状条)

#MicroPython动手做(18)——掌控板之声光传感器
#实时测量声光强度(垂直柱状条)

from mpython import *

import math

myUI = UI(oled)
while True:
    s = ((100 - 0) / (2500 - 0)) * (sound.read() - 0) + 0
    g = ((100 - 0) / (4059 - 0)) * (light.read() - 0) + 0
    oled.fill(0)
    oled.DispChar('声', 16, 1, 1)
    oled.DispChar('强', 16, 16, 1)
    oled.DispChar('度', 16, 32, 1)
    oled.DispChar((str(math.floor(((100 - 0) / (2500 - 0)) * (sound.read() - 0) + 0))), 16, 48, 1)
    myUI.stripBar(36, 4, 12, 56, s, 0, 1)
    oled.DispChar('光', 80, 1, 1)
    oled.DispChar('强', 80, 16, 1)
    oled.DispChar('度', 80, 32, 1)
    oled.DispChar((str(math.floor(((100 - 0) / (4059 - 0)) * (light.read() - 0) + 0))), 80, 48, 1)
    myUI.stripBar(100, 4, 12, 56, g, 0, 1)
    oled.show()

mPython 图形编程
在这里插入图片描述
在这里插入图片描述

9、A键声音波形,B键光线波形

#MicroPython动手做(18)——掌控板之声光传感器
#A键声音波形,B键光线波形

import time

from mpython import *
time.sleep_ms(50);print(('__TITLE', '声光波形'));time.sleep_ms(50)
while True:
    if button_a.value() == 0:
        print((sound.read(),))
    if button_b.value() == 0:
        print((light.read(),))
    oled.fill(0)
    oled.DispChar('声音', 35, 16, 1)
    oled.DispChar((str(sound.read())), 65, 16, 1)
    oled.DispChar('光线', 35, 32, 1)
    oled.DispChar((str(light.read())), 65, 32, 1)
    oled.show()

A键声音波形
在这里插入图片描述

B键光线波形
在这里插入图片描述

mPython 图形编程

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/52266.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[php-cos]ThinkPHP项目集成腾讯云储存对象COS

Cos技术文档 1、安装phpSdk 通过composer的方式安装。 1.1 在composer.json中添加 qcloud/cos-sdk-v5: >2.0 "require": {"php": ">7.2.5","topthink/framework": "^6.1.0","topthink/think-orm": "…

Oracle 19c 报ORA-704 ORA-01555故障处理---惜分飞

异常断电导致数据库无法启动,尝试对数据文件进行recover操作,报ORA-00283 ORA-00742 ORA-00312错误,由于redo写丢失无法正常应用 D:\check_db>sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on 星期日 7月 30 07:49:19 2023 Version 19.3.0.0.0 Copyrig…

NoSQL-Redis集群

NoSQL-Redis集群 一、集群&#xff1a;1.单点Redis带来的问题&#xff1a;2.解决&#xff1a;3.集群的介绍&#xff1a;4.集群的优势&#xff1a;5.集群的实现方式&#xff1a; 二、集群的模式&#xff1a;1.类型&#xff1a;2.主从复制&#xff1a; 三、搭建主从复制&#xff…

阿里云服务器全方位介绍_性能功能优势和租用费用

阿里云服务器全方位介绍包括云服务器ECS优势、云服务器租用价格、云服务器使用场景及限制说明&#xff0c;阿里云服务器网分享云服务器ECS介绍、个人和企业免费试用、云服务器活动、云服务器ECS规格、优势、功能及应用场景详细说明&#xff1a; 目录 什么是云服务器ECS&#…

细讲TCP三次握手四次挥手(三)

TCP/IP 协议族 在互联网使用的各种协议中最重要和最著名的就是 TCP/IP 两个协议。现在人们经常提到的 TCP/IP 并不一定是单指 TCP 和 IP 这两个具体的协议&#xff0c;而往往是表示互联网所使用的整个 TCP/IP 协议族。 互联网协议套件&#xff08;英语&#xff1a;Internet Pr…

29_互联网(The Internet)(IP数据包;UDP;TCP;DNS;OSI)

上篇介绍了计算机网络的基础知识&#xff0c;也提到互联网&#xff08;The Internet&#xff09;&#xff0c;本篇将会详细介绍互联网&#xff08;The Internet&#xff09;。 文章目录 1. 互联网&#xff08;The Internet&#xff09;组成及数据包传输过程2. IP 数据包的不足3…

【AGI】Copilot AI编程辅助工具安装教程

1. 基础激活教程 GitHub和OpenAI联合为程序员们送上了编程神器——GitHub Copilot。 但是&#xff0c;Copilot目前不提供公开使用&#xff0c;需要注册账号通过审核&#xff0c;我也提交了申请&#xff1a;这里第一期记录下&#xff0c;开启教程&#xff0c;欢迎大佬们来讨论…

6.3.tensorRT高级(1)-yolov5模型导出、编译到推理(无封装)

目录 前言1. YOLOv5导出2. YOLOv5推理3. 补充知识总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0c;之前有看过一遍&#xff0c;但是没有做笔记&#xff0c;很多东西也忘了。这次重新撸一遍&#xff0c;顺便记记笔记。 本次课程学习 tensorRT 高级-yolov5模…

医疗小程序:提升服务质量与效率的智能平台

在医疗行业&#xff0c;公司小程序成为提高服务质量、优化管理流程的重要工具。通过医疗小程序&#xff0c;可以方便医疗机构进行信息传播、企业展示等作用&#xff0c;医疗机构也可以医疗小程序提供更便捷的预约服务&#xff0c;优化患者体验。 医疗小程序的好处 提升服务质量…

【时频分析,非线性中频】非线性STFT在瞬时频率估计中的应用(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Cilium 系列-7-Cilium 的 NodePort 实现从 SNAT 改为 DSR

系列文章 Cilium 系列文章 前言 将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能。但是通过对 Cilium 不同模式的切换/功能的启用&#xff0c;可以进一步提升 Cilium 的网络性能。具体调优项包括不限于&#xff1a; 启用本地路由 (Native Rou…

Sip网络音频对讲广播模块, sip网络寻呼话筒音频模块

Sip网络音频对讲广播模块&#xff0c; sip网络寻呼话筒音频模块 一、模块介绍 SV-2101VP和 SV-2103VP网络音频对讲广播模块 是一款通用的独立SIP音频功能模块&#xff0c;可以轻松地嵌入到OEM产品中。该模块对来自网络的SIP协议及RTP音频流进行编解码。 该模块支持多种网络协议…

SpringBoot接手JSP项目--【JSB项目实战】

SpringBoot系列文章目录 SpringBoot知识范围-学习步骤【JSB系列之000】 文章目录 SpringBoot系列文章目录[TOC](文章目录) SpringBoot技术很多很多工作之初&#xff0c;面临JSP的老项目我要怎么办环境及工具&#xff1a;项目里可能要用到的技术JSPjstl其它的必要知识 上代码WE…

用Rust生成Ant-Design Table Columns | 京东云技术团队

经常开发表格&#xff0c;是不是已经被手写Ant-Design Table的Columns整烦了&#xff1f; 尤其是ToB项目&#xff0c;表格经常动不动就几十列。每次照着后端给的接口文档一个个配置&#xff0c;太头疼了&#xff0c;主要是有时还会粘错就尴尬了。 那有没有办法能自动生成colu…

Android 面试题 应用程序结构 十

&#x1f525; Intent 传递数据 &#x1f525; Activity、Service、BroadcastReceiver之间的通信载体 Intent 来传递数据。而ContentProvider则是共享文件。 Intent可传递的数据类型&#xff1a; a. 8种基本数据类型&#xff08;boolean byte char short int long float double…

防御第三天

1.总结当堂NAT与双机热备原理&#xff0c;形成思维导图 2.完成课堂NAT与双机热备实验 fw1: <USG6000V1>sy [USG6000V1]int g0/0/0 [USG6000V1-GigabitEthernet0/0/0]ip add 192.168.18.2 24 [USG6000V1-GigabitEthernet0/0/0]service-manage all permit (地址无所谓&…

SSIS对SQL Server向Mysql数据转发表数据 (二)

1、在SQL Server数据库创建一个数据库表&#xff1a;users USE [Test1] GO/****** Object: Table [dbo].[users] Script Date: 2023/7/27 16:25:11 ******/ SET ANSI_NULLS ON GOSET QUOTED_IDENTIFIER ON GOCREATE TABLE [dbo].[users]([id] [int] IDENTITY(1,1) NOT NUL…

C语言实现定时器,定时触发函数

最近想到使用C语言实现一个简单的定时器。使用操作系统windows.h提供的多线程API就能实现 首先定义一个定时器结构体&#xff0c;包含定时时间和触发的函数指针 typedef struct Stimer{int valid;//定时器有效long timingMS;//定时时间TriggerFunc tf;//触发函数 }Stimer;创建…

Sestra 实用教程(三)输入与输出

目 录 一、前言二、分析流程三、输入文件3.1 模型与荷载3.2 分析控制数据 四、输出文件五、参考文献 一、前言 SESAM &#xff08;Super Element Structure Analysis Module&#xff09;是由挪威船级社&#xff08;DNV-GL&#xff09;开发的一款有限元分析&#xff08;FEA&…

解读Spring-context的property-placeholder

在spring中&#xff0c;如果要给程序定义一些参数&#xff0c;可以放在application.properties中&#xff0c;通过<context:property-placeholder>加载这个属性文件&#xff0c;然后就可以通过value给我们的变量自动赋值&#xff0c;如果你们的程序可能运行在多个环境中&…