ESP32 MicroPython 蜂鸣器及传感器的使用⑦

ESP32 MicroPython 蜂鸣器及传感器的使用⑦

    • 1、蜂鸣器奏乐
    • 2、实验目的
    • 3、实验内容
    • 5、实验结果
    • 6、小车传感器应用
    • 7、实验目的
    • 8、实验内容
    • 9、参考代码
    • 10、实验结果

1、蜂鸣器奏乐

我们小车底板配置有蜂鸣器,下面我们来学习如何去利用蜂鸣器演奏乐曲

2、实验目的

学习使用使用定义函数关键字def,调用另一函数内的“使用方法”,6.3章节myCar.buzzer(freq)

3、实验内容

根据《两只老虎》简谱和myCar.buzzer(freq)函数
在这里插入图片描述
参考代码

from machine import UART
import time
import caruart1 = UART(1,115200,rx=18,tx=17) #构建小车控制串口
myCar=car.SERIAL_CAR(uart1)   #构建小车控制对象
time.sleep(1)                 #延时1s,等待模块稳定def JP():#定义函数JP(),方便统一修改时间间隔time.sleep_ms(450)def dao():#定义函数dao(),音符daomyCar.buzzer(1046)JP()
def re():#定义函数re(),音符remyCar.buzzer(1174)JP()
def mi():#定义函数mi(),音符mimyCar.buzzer(1318)JP()
def fa():#定义函数fa(),音符famyCar.buzzer(1396)JP()
def sao():#定义函数sao(),音符saomyCar.buzzer(1568)JP()
def la():#定义函数la(),音符lamyCar.buzzer(1760)JP()
def xi():#定义函数xi(),音符ximyCar.buzzer(1974)JP()while 1:#根据音乐简谱依次罗列出音符dao()re()mi()dao()dao()re()mi()dao()mi()fa()sao()time.sleep_ms(500)mi()fa()sao()time.sleep_ms(500)sao()la()dao()fa()mi()dao()sao()la()dao()fa()mi()dao()dao()sao()dao()time.sleep_ms(500)dao()sao()dao()myCar.buzzer(0)time.sleep_ms(4000)

5、实验结果

保存好参考代码后,执行运行程序可以听到蜂鸣器演奏《两只老虎》的乐谱。

6、小车传感器应用

我们小车顶板配置有温湿度、空气质量、火焰、光敏传感器,下面我们来学习如何去读取他们,方便我们后面做应用时方便使用。

7、实验目的

学习使用外部传感器数据

8、实验内容

读取小车顶板温湿度、空气质量、红外遥控解码、光照强度、火焰传感器数据。并且在显示屏上显示出来。
实验中实验到的构造函数:
构造函数 说明

s=ex_sensor.sensor()	
创建/构造传感器对象,返回传感器控制对象s.read_temp()
读取温度数据,返回温度放大10倍后的整数,最终结果除以10为真实温度,精度0.1摄氏度
s.read_hum()	
读取湿度数据,返回湿度放大10倍后的整数,最终结果除以10,单位为百分比,精度0.1%
s.read_aiq()	
读取空气质量,返回整数类型(0~1000),单位PPM
s.read_flam()	
读取火焰,越靠近火源值越大,反之越小,范围0~4095
s.read_ldr()	
读取光照,越亮值越大,反之越小,范围0~4095
s.read_ir()	
读取红外遥控解码,返回解码值

9、参考代码

参考代码文件可以在资料包文件夹“智能小车mpy例程\基础实验\12-顶板传感器实验-温湿度-空气质量”文件夹下的main.py 下面为完整代码内容:

import time               #导入时间控制模块
import ex_sensor          #导入外部传感器模块
from lcd import LCD20     #导入2.0寸LCD模块###############################################################
#颜色值定义,(R,G,B) 0~255代表颜色值
red = (255,0,0)  #红色
green = (0,255,0) #绿色
blue = (0,0,255)  #蓝色
white = (255,255,255) #白色
back = (0,0,0)    #黑色
###############################################################
#构建显示屏对象,并返回对象句柄ld
ld=LCD20(dir=1) #创建LCD对象 dir 显示方向为竖屏,1、3竖屏,2、4横盘ld.fill(back) # 整屏填充指定颜色#LCD显示信息
ld.dText("顶板传感器实验",25,10,color=white,size=2)
ld.dText("温度:",25,50,color=green,size=2)
ld.dText("湿度:",25,90,color=green,size=2)
ld.dText("空气质量:",25,130,color=green,size=2)
ld.dText("光照度:",25,170,color=green,size=2)
ld.dText("火焰值:",25,210,color=green,size=2)
ld.dText("红外遥控:",25,250,color=green,size=2)###############################################################
#定义读取传感器变量数据
tempf = 0.0      #温度数据
humf = 0.0       #湿度数据
irData = 0       #红外数据
aiqData = 0      #空气质量
ldrData = 0      #光照度
flamData = 0     #火焰
###############################################################
s = ex_sensor.sensor()            #构建传感器对象
while True:tempf = s.read_temp()         #读取温度humf = s.read_hum()           #读取温度irData = s.read_ir()          #读取红外遥控解码数据aiqData = s.read_aiq()        #读取空气质量数据ldrData = s.read_ldr()        #读取光照度数据flamData = s.read_flam()      #读取火焰数据#显示屏显示温度值ld.dText("{:.1f}".format(tempf/10)+" ℃",95,50,color=white,size=2)#显示湿度ld.dText("{:.1f}".format(humf)+" %",95,90,color=white,size=2)#显示红外遥控解码值ld.dText("{:3d}".format(irData),130,250,color=white,size=2)#显示空气质量ld.dText("{:4d}".format(aiqData)+"PPM",130,130,color=white,size=2) #显示光照度值ld.dText("{:4d}".format(ldrData),120,170,color=white,size=2)#显示火焰值ld.dText("{:4d}".format(flamData),120,210,color=white,size=2)time.sleep_ms(100)  #延时等待100mspass

10、实验结果

编写好代码,点击运行程序后,在显示屏显示了温度、湿度,我们向顶部传感器吹一口气可以看到温度和湿度都变化。使用红外遥控器对着小车按下任意按键,可以看到显示屏显示出解码出遥控值。
在这里插入图片描述

相关代码及固件:
https://download.csdn.net/download/lu330274924/88549191

智能小车购买链接
技术支持抖音:易驱达Easy Drive Coming
淘宝官方商城:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-18887194911.15.135014bdaKI6mV&id=715385110550

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于适应度相关算法优化概率神经网络PNN的分类预测 - 附代码

基于适应度相关算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于适应度相关算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于适应度相关优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针…

【机器学习12】集成学习

1 集成学习分类 1.1 Boosting 训练基分类器时采用串行的方式, 各个基分类器之间有依赖。每一层在训练的时候, 对前一层基分类器分错的样本, 给予更高的权重。 测试时, 根据各层分类器的结果的加权得到最终结果。 1.2 Bagging …

SQL INSERT INTO 语句详解:插入新记录、多行插入和自增字段

SQL INSERT INTO 语句用于在表中插入新记录。 INSERT INTO 语法 可以以两种方式编写INSERT INTO语句: 指定要插入的列名和值: INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);如果要为表的所有列添加值,则无需在SQL…

十七、Linux的组管理

1、Linux组基本介绍 在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件所有者、所在组、其它组的概念 1.所有者 2.所在组 3.其他组 4.改变用户所在的组 2、文件/目录 所有者 一般为文件的创建者,谁创建了该文件,就自…

Redis篇---第八篇

系列文章目录 文章目录 系列文章目录前言一、说说 Redis 哈希槽的概念?二、Redis 常见性能问题和解决方案有哪些?三、假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?前言 前些天发现了一个巨牛的人工智能学习网站…

局域网内Ubuntu上搭建Git服务器

1.在局域网内选定一台Ubuntu电脑作为Git服务端: (1).新建用户如为fbc,执行如下命令:需设置密码,此为fbc sudo adduser fbc (2).切换到fbc用户:需密码,此前设置为fbc su fbc (3).建一个空目录作为仓…

卷积、卷积图像操作和卷积神经网络

好多内容直接看书确实很难坚持,就比如这个卷积,书上的一大堆公式和图表直接把人劝退,我觉得一般的学习流程应该是自顶向下,先整体后局部,先把握大概再推敲细节的,上来就事无巨细地展示对初学者来说很痛苦。…

MatrixOne 实战系列回顾 | 建模与多租户

本次分享主要介绍MatrixOne建模与多租户相关内容。 1 建模 #1 与MySQL的区别 使用create table语句建表和MySQL建表语句基本相同,也有几点要注意。 MatrixOne暂不支持空间数据类型,其他数据类型在保持与 MySQL 命名一致的情况下,在精度与…

力扣 字母异位词分组 哈表 集合

👨‍🏫 力扣 字母异位词分组 ⭐ 思路 由于互为字母异位词的两个字符串包含的字母相同,因此对两个字符串分别进行排序之后得到的字符串一定是相同的,故可以将排序之后的字符串作为哈希表的键。 🍑 AC code class Solut…

Nginx的核心配置文件

Nginx的核心配置文件 学习Nginx首先需要对它的核心配置文件有一定的认识&#xff0c;这个文件位于Nginx的安装目录/usr/local/nginx/conf目录下&#xff0c;名字为nginx.conf 详细配置&#xff0c;可以参考resources目录下的<<nginx配置中文详解.conf>> Nginx的核…

泉盛UV-K5/K6全功能中文固件

https://github.com/wu58430/uv-k5-firmware-chinese/releases 主要功能&#xff1a; 中文菜单 许多来自 OneOfEleven 的模块&#xff1a; AM 修复&#xff0c;显著提高接收质量长按按钮执行 F 操作的功能复制快速扫描菜单中的频道名称编辑频道名称 频率显示选项扫描列表分配…

Actor对象的引用 怎么设置他的材质?或设置是否启用重力?

这个蓝图我是想当重叠触发,将另一个Target Actor(一个球体)设置他的z增加50,但是为什么在触发的时候会抽搐?而且我想要设置他的材质等等这些属性都不行