【试用测评】FireBeetle ESP32-E扩展板——人体红外
【人体红外】
红外热释电运动传感器能检测运动的人或动物身上发出的红外线,输出开关信号,可以应用于各种需要检测运动人体的场合。传统的热释电红外传感器需要人体热释电红外探头、专用芯片和复杂的外围电路来实现,体积略大,电路复杂,可靠性略低。我们新推出的这款红外热释电运动传感器,专为Arduino设计,采用数字一体化集****体热释电红外探头,具有体积小、可靠性高、功耗低、外围电路简单等特点。
【引脚】
LED接扩展板D11,人体红外接扩展板D2。
【人体感应灯】
uPyCraft 程序
#硬件平台:FireBeetle-ESP32
#实验效果:按钮按下led灯点亮,按钮松开led灯熄灭。
#硬件连接:本实验需要在IO27外接一个按钮模块,IO25外接一个LED模块。
#下面的信息显示,对于当前版本,digitalRead是可用的。
# button:IO2IO4IO5IO10IO12~19IO23IO25~27IO34~36IO39
# led: IO0IO4IO10 IO12~19IO21~23IO25~27
from machine import Pin
import time
button = Pin(25, Pin.IN) #将IO25/D2引脚定义为输入
led = Pin(16, Pin.OUT) #将IO16/D11引脚定义为输出
while True:
led.value(button.value()) #获取按钮状态并赋给led引脚
print(button.value())
time.sleep(0.1)
演示视频:
https://www.bilibili.com/video/BV1Tq4y1M7oy?share_source=copy_web
【人体感应音乐】
增加“带功放喇叭模块”,接在扩展板D10引脚。
带功放喇叭模块,基于高保真8002功放芯片制作,在输出音乐的同时,能够确保输出音频不失真。支持音量调节功能,可通过电位器调解输出音量大小。支持宽电压输入,模块可以工作在2~5.5V电压环境下,兼容3.3V和5V Arduino主控器。
uPyCraft程序代码:
#硬件平台:FireBeetle-ESP32
#实验效果:按钮按下led灯点亮,按钮松开led灯熄灭。
#硬件连接:本实验需要在IO27外接一个按钮模块,IO25外接一个LED模块。
#下面的信息显示,对于当前版本,digitalRead是可用的。
# button:IO2IO4IO5IO10IO12~19IO23IO25~27IO34~36IO39
# led: IO0IO4IO10 IO12~19IO21~23IO25~27
from machine import DAC, Pin, PWM
import math
import time
button = Pin(26, Pin.IN) #将IO26/D3引脚定义为输入
led = Pin(16, Pin.OUT) #将IO16/D11引脚定义为输出
#创建音乐旋律列表
melody = [
330, 330, 330, 262, 330, 392, 196, 262, 196, 165, 220, 247, 233, 220, 196, 330, 392,
440, 349, 392, 330, 262, 294, 247, 262, 196, 165, 220, 247, 233, 220, 196, 330, 392,
440, 349, 392, 330, 262, 294, 247, 392, 370, 330, 311, 330, 208, 220, 262, 220, 262,
294, 392, 370, 330, 311, 330, 523, 523, 523, 392, 370, 330, 311, 330, 208, 220, 262,
220, 262, 294, 311, 294, 262, 262, 262, 262, 262, 294, 330, 262, 220, 196, 262, 262,
262, 262, 294, 330, 262, 262, 262, 262, 294, 330, 262, 220, 196]
#创建音调持续时间列表
noteDurations = [
8,4,4,8,4,2,2,
3,3,3,4,4,8,4,8,8,8,4,8,4,3,8,8,3,
3,3,3,4,4,8,4,8,8,8,4,8,4,3,8,8,2,
8,8,8,4,4,8,8,4,8,8,3,8,8,8,4,4,4,8,2,
8,8,8,4,4,8,8,4,8,8,3,3,3,1,
8,4,4,8,4,8,4,8,2,8,4,4,8,4,1,
8,4,4,8,4,8,4,8,2
]
def mario(melody,noteDurations):
music=PWM(Pin(17)) # 支持PWM的引脚 Pin(0)、Pin(2)、Pin(4)、Pin(5)、Pin(10)、Pin(12~19)、Pin(21)、Pin(22)、Pin(23)、Pin(25~27)
music.duty(512) #占空比 0 ≤ duty ≤ 0x03FF (十进制:0 ≤ duty ≤ 1023)
for i in range(len(melody)): #计算melody列表元素的数量并执行循环
noteDuration = 800/noteDurations
music.freq(melody*2)#频率
time.sleep_ms(int(noteDuration * 1.30)) #为每个音调设定时间
music.duty(0)#占空比
music.deinit()
while True:
val=button.value()#获取按钮状态
if val:
led.value(1) #赋给led引脚
mario(melody,noteDurations)
else:
led.value(0) #赋给led引脚
time.sleep(0.1)
演示视频:
https://www.bilibili.com/video/BV1z44y1y7jA?share_source=copy_web
希望像你学习 厉害,希望也可以做出这么好玩的东西~
页:
[1]