我们小车底板配置有蜂鸣器,下面我们来学习如何去利用蜂鸣器演奏乐曲
学习使用使用定义函数关键字def,调用另一函数内的“使用方法”,6.3章节myCar.buzzer(freq)
根据《两只老虎》简谱和myCar.buzzer(freq)函数
参考代码
from machine import UART
import time
import car
uart1 = 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(),音符dao
myCar.buzzer(1046)
JP()
def re():#定义函数re(),音符re
myCar.buzzer(1174)
JP()
def mi():#定义函数mi(),音符mi
myCar.buzzer(1318)
JP()
def fa():#定义函数fa(),音符fa
myCar.buzzer(1396)
JP()
def sao():#定义函数sao(),音符sao
myCar.buzzer(1568)
JP()
def la():#定义函数la(),音符la
myCar.buzzer(1760)
JP()
def xi():#定义函数xi(),音符xi
myCar.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)
保存好参考代码后,执行运行程序可以听到蜂鸣器演奏《两只老虎》的乐谱。
我们小车顶板配置有温湿度、空气质量、火焰、光敏传感器,下面我们来学习如何去读取他们,方便我们后面做应用时方便使用。
学习使用外部传感器数据
读取小车顶板温湿度、空气质量、红外遥控解码、光照强度、火焰传感器数据。并且在显示屏上显示出来。
实验中实验到的构造函数:
构造函数 说明
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()
读取红外遥控解码,返回解码值
参考代码文件可以在资料包文件夹“智能小车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) #延时等待100ms
pass
编写好代码,点击运行程序后,在显示屏显示了温度、湿度,我们向顶部传感器吹一口气可以看到温度和湿度都变化。使用红外遥控器对着小车按下任意按键,可以看到显示屏显示出解码出遥控值。
相关代码及固件:
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