云天 发表于 2021-8-13 12:14:48

【试用测评】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




Aaron. 发表于 2021-8-13 19:26:25

希望像你学习

Aaron. 发表于 2021-8-13 19:27:59

厉害,希望也可以做出这么好玩的东西~
页: [1]
查看完整版本: 【试用测评】FireBeetle ESP32-E扩展板——人体红外