【雕爷学编程】 MicroPython动手做(34)——通用传感器的综合运用2

news2024/11/26 12:51:25

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1、什么是传感器?
传感器(英文名称:transducer/sensor)是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。

国家标准GB7665-87对传感器下的定义是:“能感受规定的被测量并按照一定的规律(数学函数法则)转换成可用信号的器件或装置,通常由敏感元件和转换元件组成”。

中国物联网校企联盟认为,传感器的存在和发展,让物体有了触觉、味觉和嗅觉等感官,让物体慢慢变得活了起来。”

“传感器”在新韦式大词典中定义为:“从一个系统接受功率,通常以另一种形式将功率送到第二个系统中的器件”。

物联网设备中那些常见的传感器见下图

在这里插入图片描述
2、在物联网架构中——各种传感器组成了基础的感知层

感知层包括了与环境交互的传感器,执行器和边缘设备等。感知层是物联网的皮肤和五官,用于识别物体、感知物体、采集信息、自动控制,比如装在空调上的温度传感器识别到了室内温度高于30度,把这个信息收集后,自动打开了空调进行制冷;这个层面涉及到的是各种识别技术、信息采集技术、控制技术。而且这些技术是交叉使用的的,各种感知有些是单一的,有些则是综合的,比如机器人就是整合了各种感知系统。 这一层最常见的就是各种传感器,用于替代或者延展人类的感官完成对物理世界的感知,也包括企业信息化过程中用到的RFID以及二维码技术。

在这里插入图片描述
3、传感器的特点与作用

传感器的特点
微型化、数字化、智能化、多功能化、系统化、网络化。它是实现自动检测和自动控制的首要环节。传感器的存在和发展,让物体有了触觉、味觉和嗅觉等感官,让物体慢慢变得活了起来。通常根据其基本感知功能分为热敏元件、光敏元件、气敏元件、力敏元件、磁敏元件、湿敏元件、声敏元件、放射线敏感元件、色敏元件和味敏元件等十大类。微型化是建立在微电子机械系统(MEMS)技术基础上的,已成功应用在硅器件上做成硅压力传感器(芯片级应用)。传感器不仅促进了传统产业的改造和更新换代,而且还可能建立新型工业,从而成为21世纪新的经济增长点。

传感器的作用
人们为了从外界获取信息,必须借助于感觉器官。而单靠人们自身的感觉器官,在研究自然现象和规律以及生产活动中它们的功能就远远不够了。为适应这种情况,就需要传感器。因此可以说,传感器是人类五官的延长,又称之为电五官。新技术革命的到来,世界开始进入信息时代。在利用信息的过程中,首先要解决的就是要获取准确可靠的信息,而传感器是获取自然和生产领域中信息的主要途径与手段。

在现代工业生产尤其是自动化生产过程中,要用各种传感器来监视和控制生产过程中的各个参数,使设备工作在正常状态或最佳状态,并使产品达到最好的质量。因此可以说,没有众多的优良的传感器,现代化生产也就失去了基础。

在基础学科研究中,传感器更具有突出的地位。现代科学技术的发展,进入了许多新领域:例如在宏观上要观察上千光年的茫茫宇宙,微观上要观察小到fm的粒子世界,纵向上要观察长达数十万年的天体演化,短到 s的瞬间反应。此外,还出现了对深化物质认识、开拓新能源、新材料等具有重要作用的各种极端技术研究,如超高温、超低温、超高压、超高真空、超强磁场、超弱磁场等等。显然,要获取大量人类感官无法直接获取的信息,没有相适应的传感器是不可能的。许多基础科学研究的障碍,首先就在于对象信息的获取存在困难,而一些新机理和高灵敏度的检测传感器的出现,往往会导致该领域内的突破。一些传感器的发展,往往是一些边缘学科开发的先驱。

传感器早已渗透到诸如工业生产、宇宙开发、海洋探测、环境保护、资源调查、医学诊断、生物工程、甚至文物保护等等极其之泛的领域。可以毫不夸张地说,从茫茫的太空,到浩瀚的海洋,以至各种复杂的工程系统,几乎每一个现代化项目,都离不开各种各样的传感器。由此可见,传感器技术在发展经济、推动社会进步方面的重要作用,是十分明显的。世界各国都十分重视这一领域的发展。相信不久的将来,传感器技术将会出现一个飞跃,达到与其重要地位相称的新水平。

在这里插入图片描述

6、 HC-SR04超声波测距传感器模块

HC-SR04

超声波测距模块是用来测量距离的一种产品,通过发送和收超声波,利用时间差和声音传播速度,计算出模块到前方障碍物的距离。超声波测距模块具有测距距离精确,能和SRF05,SRF02等超声波测距相媲美,测量距离 ** 2cm~450cm (实测:10cm~300cm)。

超声波测距模块有好多种类型,比较常用的有URM37超声波传感器默认是232接口,可以调为TTL接口,URM05大功率超声波传感器测试距离能到10米,算是测试距离比较远的一款了,另外还有比较常用的国外的几款SRF系列的超声波模块,超声波模块精度能到1cm。

在这里插入图片描述
超声波模块工作原理——
1)采用IO触发测距,给至少10us的高电平信号。
2)模块自动发送8个40KHz的方波,自动检测是否有信号返回。
3)有信号返回,通过IO输出一高电平,高电平持续时间就是超声波从发射到返回的时间。只需要提供一个10uS以上脉冲触发信号,该模块内部将发出8个40kHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。

公式: uS/58=厘米或者uS/148=英寸;或是:距离=高电平时间*声速(340M/S) /2;建议测量周期为60ms以上,以防止发射信号对回响信号的影响。

在这里插入图片描述
在这里插入图片描述
超声波模块主要技术参数
1:使用电压:DC—5V
2:静态电流:小于2mA
3:电平输出:高5V
4:电平输出:底0V
5:感应角度:不大于15度
6:探测距离:2cm-450cm
7: 高精度 可达0.2cm
8: 接线方式:VCC、trig(控制端)、
echo(接收端)、 GND

使用说明:
1、此模块不宜带电连接,若要带电连接,则先让模块的GND端先连接,否则会影响模块的正常工作。
2、测距时,被测物体的面积不少于05平方米且平面尽量要求平整,否则影响测量的结果。

在这里插入图片描述
#MicroPython动手做(34)——通用传感器的综合运用
#HC-SR04超声波传感器测距实验

#MicroPython动手做(34)——通用传感器的综合运用
#HC-SR04超声波传感器测距实验

from hcsr04 import HCSR04
from mpython import *
import music
import time

hcsr04 = HCSR04(trigger_pin=Pin.P13, echo_pin=Pin.P14)



music.play('D5:1')
rgb[1] = (int(0), int(102), int(0))
rgb.write()
time.sleep_ms(1)
while True:
    oled.fill(0)
    oled.DispChar("超声波测距仪", 25, 10, 1)
    oled.DispChar((''.join([str(x) for x in ["测量距离:", str(hcsr04.distance_mm()), "mm"]])), 10, 28, 1)
    oled.show()
    time.sleep_ms(1000)

HC-SR04超声波传感器测距实验

在这里插入图片描述

mPython X 实验图形编程

在这里插入图片描述

7、超声波传感器的入侵报警器

#MicroPython动手做(34)——通用传感器的综合运用
#超声波传感器的入侵报警器

from hcsr04 import HCSR04
from mpython import *
import time
import music

hcsr04 = HCSR04(trigger_pin=Pin.P13, echo_pin=Pin.P14)



while True:
    oled.fill(0)
    oled.DispChar(" 超声波传感器入侵报警器", 0, 0, 1)
    oled.DispChar((''.join([str(x) for x in ["检测的距离:", str(hcsr04.distance_mm()), "mm"]])), 0, 16, 1)
    oled.show()
    rgb[1] = (int(0), int(102), int(0))
    rgb.write()
    time.sleep_ms(1)
    if hcsr04.distance_mm() < 200:
        oled.DispChar("     有人入侵!报警!", 0, 32, 1)
        oled.show()
        for count in range(3):
            rgb.fill((int(102), int(0), int(0)))
            rgb.write()
            time.sleep_ms(1)
            music.pitch(392, 500)
            time.sleep_ms(300)
            rgb.fill( (0, 0, 0) )
            rgb.write()
            time.sleep_ms(1)
            music.pitch(784, 500)
            time.sleep_ms(300)
    else:
        oled.fill_rect(0, 32, 128, 16, 0)
        oled.show()
        rgb.fill( (0, 0, 0) )
        rgb.write()
        time.sleep_ms(1)

mPython X 实验图形编程

在这里插入图片描述

#MicroPython动手做(34)——通用传感器的综合运用
#超声波传感器的入侵报警器(实验视频)

https://v.youku.com/v_show/id_XNDcyNTYwMjgyNA==.html?spm=a2h0c.8166622.PhoneSokuUgc_1.dtitle

添加链接描述在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

@ControllerAdvice注解使用及原理探究 | 京东物流技术团队

最近在新项目的开发过程中&#xff0c;遇到了个问题&#xff0c;需要将一些异常的业务流程返回给前端&#xff0c;需要提供给前端不同的响应码&#xff0c;前端再在次基础上做提示语言的国际化适配。这些异常流程涉及业务层和控制层的各个地方&#xff0c;如果每个地方都写一些…

【云原生】Docker中容器管理常用所有命令

1.docker 容器创建流程 2.容器运行本质 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 创建容器基本选项&#xff1a;--name&#xff1a;为容器命名 -i&#xff1a;交互式创建容器 -d&#xff1a;后台创建容器 -t&#xff1a;为容器分配伪终端 Docker 容器存在的意义就是为…

Demystifying Prompts in Language Models via Perplexity Estimation

Demystifying Prompts in Language Models via Perplexity Estimation 原文链接 Gonen H, Iyer S, Blevins T, et al. Demystifying prompts in language models via perplexity estimation[J]. arXiv preprint arXiv:2212.04037, 2022. 简单来说就是作者通过在不同LLM和不同…

如何提升自信更好地面对挑战

简而言之&#xff1a;扬长避短&#xff0c;做自己。 动态 - CSDN AI话痨&#xff1a; 提升自信是面对挑战的关键之一。以下是一些方法可以帮助你提升自信&#xff0c;更好地面对挑战&#xff1a; 自我认知&#xff1a;了解自己的优点和缺点&#xff0c;认识到自己的强项和弱…

无涯教程-Perl - Subroutines(子例程)

定义子程序 Perl编程语言中 Subroutine子程序定义的一般形式如下: sub subroutine_name {body of the subroutine } 调用该Perl Subroutine的典型方式如下- subroutine_name( list of arguments ); 在Perl 5.0之前的版本中&#xff0c;调用 Subroutine的语法略有不同&…

【LeetCode】相同的树、 翻转二叉树 、对称二叉树

100.相同的树 两棵树相同的条件就是根节点及他们的左右子树的值val相同&#xff0c;结构相同&#xff0c;就是一模一样&#xff0c;那这道题最终还是要同时遍历两个树的&#xff0c;并且还得遍历完&#xff0c;那如果我们在遍历的过程中&#xff0c;通过设置一些不满足相同的树…

【知识图谱】图数据库Neo4jDesktop的安装图文详解(小白适用)

neo4j 的安装需要有jdk环境的支持。因此在安装Neo4j之前&#xff0c;需要安装Java JDK。 一.安装JDK 参考文章https://blog.csdn.net/weixin_41824534/article/details/104147067?spm1001.2014.3001.5502 二.Neo4j下载 进入Neo4j官网 选择下载中心 下滑选择Neo4j Deskto…

Python渗透测试编程——AES与DES算法

一、AES简介 AES&#xff08;Advanced Encryption Standard&#xff0c;高级加密标准&#xff09;的出现&#xff0c;是因为以前使用的DES算法密钥长度较短&#xff0c;已经不适应当今数据加密安 全性的要求&#xff0c;因此2000年10月2日&#xff0c;美国政府宣布将比利时密码…

多雷达协同探测技术研究进展:认知跟踪与资源调度算法

源自&#xff1a;雷达学报 作者&#xff1a;易伟 袁野 刘光宏 葛建军 孔令讲 杨建宇 1. 引 言 雷达是信息感知的千里眼&#xff0c;具有极高的军用和民用价值&#xff0c;广泛应用在防空预警、遥感测绘、反恐维稳等领域[1–5]。雷达信息获取与探测技术也一直是大国竞相抢占…

window中,关闭java占用端口的进程

查看端口被占用的情况 netstat -ano|findstr "端口号"使用Tasklist查看对于 PID 的进程名 tasklist|findstr "PID号"通过 taskkill 命令方式结束进程 taskkill /f /t /im Pid

更新k8s环境支付系统支付证书

目录 一、背景 二、更新支付系统银行证书 三、备份旧的secret信息 四、更新支付应用的证书信息 五、重启支付系统的应用 六、验证应用实例挂载的秘钥已更新 一、背景 支付系统是基于k8s容器化部署的微服务&#xff0c;支付系统使用的支付证书以及和银行有关的证书都是保存…

SpringBoot中事务失效的原因

SpringBoot中事务失效的原因 文章目录 SpringBoot中事务失效的原因一、事务方法非public修饰二、非事务方法调用事务方法三、事务方法的异常被捕获四、事务异常类型不对五、事务传播行为不对六、没有被Spring管理6.1、暴漏代理对象6.2、使用代理对象 常见的事务失效原因包括如下…

《Flask Web 开发指南 pt.2》

在编写 Flask 程序的时候&#xff0c;你需要注意你的程序文件不要命名为 flask.py&#xff0c;建议命名为 app.py 或者 wsgi.py 但如果你的程序不是叫 app.py 或者 wsgi.py&#xff0c;那么你就需要设置环境变量 FLASK_APP 的值为程序名字 设置环境变量有两种方法&#xff0c;在…

聚观早报 | 腾讯字节等企业驰援防汛救灾;新能源车7月销量单出炉

【聚观365】8月4日消息 腾讯字节等企业驰援防汛救灾新能源车7月销量成绩单出炉Model Y等车型低温续航衰减严重华为Mate60系列猜想图曝光支付宝做短视频引来羊毛党 腾讯字节等企业驰援防汛救灾 近日&#xff0c;京津冀地区遭遇极端降雨天气&#xff0c;引发洪涝和地质灾害&…

智能仪表板DevExpress Dashboard v23.1亮点 - 增强对自定义导出的支持

DevExpress Dashboard v23.1版本增强了自定义导出到Excel的功能等&#xff0c;欢迎下载最新版本体验&#xff01; DevExpress Dashboard v23.1正式版下载(Q技术交流&#xff1a;523159565&#xff09; 所有平台 导出自定义仪表板项目到Excel 用户现在可以在WinForms和Web应…

吴新宙「跳槽」背后,是英伟达全栈智能汽车方案的「野心」

8月2号晚&#xff0c;小鹏汽车CEO何小鹏发文&#xff1a;因家庭和多方面的原因&#xff0c;小鹏汽车自动驾驶副总裁吴新宙将离开公司。同时也确定了吴新宙下一站&#xff1a;知名公司&#xff08;英伟达&#xff09;最高等级华人高管。 事实上&#xff0c;在过去的五年时间里&a…

科技引领,教育革新|EasyV助力数字孪生智慧教育建设!

数字孪生校园是以物联网、大数据、云计算、人工智能、三维可视化等新型数字化技术为基础&#xff0c;构建的数智校园的“大脑”。对校园的人、车、资产设施、各业务系统进行全联接&#xff0c;实现数据全融合、状态全可视、业务全可管、事件全可控&#xff0c;使校园更安全、更…

微信认证申请流程(媒体类型)

第一步&#xff1a;登录微信公众平台->设置->微信认证->开通 第二步&#xff1a;同意协议&#xff1a;签署《微信公众平台认证服务协议》 第三步&#xff1a;验证管理员 第四步&#xff1a;选择认证类型及填写认证资料 选择认证类型及上传申请公函 媒体资质信息 对公…

Gradle-02:问题Plugin with id ‘maven‘ not found

1. 背景 在一次使用 Gradle 构建自己项目&#xff0c;完事&#xff0c;需要上传到本地 Maven 仓库&#xff0c;因为事先并不清楚 apply plugin: maven 插件已经被 Gradle 移除&#xff0c;找了一圈&#xff0c;才找到解决方案。 2. 原因 apply plugin: maven def localRepo f…

Docker实战-关于Docker镜像的相关操作(一)

导语   镜像&#xff0c;Docker中三大核心概念之一&#xff0c;并且在运行Docker容器之前需要本地存储对应的镜像。那么下面我们就来介绍一下在Docker中如何使用镜像。 如何获取镜像&#xff1f; 镜像作为容器运行的前提条件&#xff0c;在Docker Hub上提供了各种各样的开放的…