925浏览
查看: 925|回复: 2

【试用测评】FireBeetle ESP32-E扩展板——人体红外

[复制链接]

IMG_20210812_165454.jpg

人体红外


QQ截图20210813105956.jpg

红外热释电运动传感器能检测运动的人或动物身上发出的红外线,输出开关信号,可以应用于各种需要检测运动人体的场合。传统的热释电红外传感器需要人体热释电红外探头、专用芯片和复杂的外围电路来实现,体积略大,电路复杂,可靠性略低。我们新推出的这款红外热释电运动传感器,专为Arduino设计,采用数字一体化集****体热释电红外探头,具有体积小、可靠性高、功耗低、外围电路简单等特点。


【引脚】


LED接扩展板D11,人体红外接扩展板D2。
IMG_20210813_105539.jpg

20210309150523dp99y1.png

【人体感应灯】
uPyCraft 程序
  1. #硬件平台:FireBeetle-ESP32
  2. #实验效果:按钮按下led灯点亮,按钮松开led灯熄灭。
  3. #硬件连接:本实验需要在IO27外接一个按钮模块,IO25外接一个LED模块。
  4. #下面的信息显示,对于当前版本,digitalRead是可用的。
  5. # button:IO2  IO4  IO5  IO10  IO12~19  IO23  IO25~27  IO34~36  IO39
  6. # led:   IO0  IO4  IO10 IO12~19  IO21~23  IO25~27
  7. from machine import Pin
  8. import time
  9. button = Pin(25, Pin.IN)    #将IO25/D2引脚定义为输入
  10. led = Pin(16, Pin.OUT)      #将IO16/D11引脚定义为输出
  11. while True:
  12.   led.value(button.value()) #获取按钮状态并赋给led引脚
  13.   print(button.value())
  14.   time.sleep(0.1)
复制代码
QQ截图20210813110419.jpg
演示视频:





【人体感应音乐】

IMG_20210813_115115.jpg
增加“带功放喇叭模块”,接在扩展板D10引脚。
QQ截图20210813115837.jpg
带功放喇叭模块,基于高保真8002功放芯片制作,在输出音乐的同时,能够确保输出音频不失真。支持音量调节功能,可通过电位器调解输出音量大小。支持宽电压输入,模块可以工作在2~5.5V电压环境下,兼容3.3V和5V Arduino主控器。


uPyCraft程序代码:
  1. #硬件平台:FireBeetle-ESP32
  2. #实验效果:按钮按下led灯点亮,按钮松开led灯熄灭。
  3. #硬件连接:本实验需要在IO27外接一个按钮模块,IO25外接一个LED模块。
  4. #下面的信息显示,对于当前版本,digitalRead是可用的。
  5. # button:IO2  IO4  IO5  IO10  IO12~19  IO23  IO25~27  IO34~36  IO39
  6. # led:   IO0  IO4  IO10 IO12~19  IO21~23  IO25~27
  7. from machine import DAC, Pin, PWM
  8. import math
  9. import time
  10. button = Pin(26, Pin.IN)    #将IO26/D3引脚定义为输入
  11. led = Pin(16, Pin.OUT)      #将IO16/D11引脚定义为输出
  12. #创建音乐旋律列表
  13. melody = [
  14. 330, 330, 330, 262, 330, 392, 196, 262, 196, 165, 220, 247, 233, 220, 196, 330, 392,
  15. 440, 349, 392, 330, 262, 294, 247, 262, 196, 165, 220, 247, 233, 220, 196, 330, 392,
  16. 440, 349, 392, 330, 262, 294, 247, 392, 370, 330, 311, 330, 208, 220, 262, 220, 262,
  17. 294, 392, 370, 330, 311, 330, 523, 523, 523, 392, 370, 330, 311, 330, 208, 220, 262,
  18. 220, 262, 294, 311, 294, 262, 262, 262, 262, 262, 294, 330, 262, 220, 196, 262, 262,
  19. 262, 262, 294, 330, 262, 262, 262, 262, 294, 330, 262, 220, 196]
  20. #创建音调持续时间列表
  21. noteDurations = [
  22. 8,4,4,8,4,2,2,
  23. 3,3,3,4,4,8,4,8,8,8,4,8,4,3,8,8,3,
  24. 3,3,3,4,4,8,4,8,8,8,4,8,4,3,8,8,2,
  25. 8,8,8,4,4,8,8,4,8,8,3,8,8,8,4,4,4,8,2,
  26. 8,8,8,4,4,8,8,4,8,8,3,3,3,1,
  27. 8,4,4,8,4,8,4,8,2,8,4,4,8,4,1,
  28. 8,4,4,8,4,8,4,8,2
  29. ]
  30. def mario(melody,noteDurations):
  31.     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)      
  32.     music.duty(512)             #占空比   0 ≤ duty ≤ 0x03FF (十进制:0 ≤ duty ≤ 1023)
  33.     for i in range(len(melody)):              #计算melody列表元素的数量并执行循环
  34.          noteDuration = 800/noteDurations[i]
  35.          music.freq(melody[i]*2)  #频率
  36.          time.sleep_ms(int(noteDuration * 1.30)) #为每个音调设定时间
  37.     music.duty(0)  #占空比   
  38.     music.deinit()
  39. while True:
  40.   val=button.value()#获取按钮状态
  41.   if val:
  42.      led.value(1) #赋给led引脚
  43.      mario(melody,noteDurations)
  44.   else:
  45.     led.value(0) #赋给led引脚
  46.   time.sleep(0.1)
复制代码
演示视频:





Aaron.  学徒

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

希望像你学习
回复

使用道具 举报

Aaron.  学徒

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

厉害,希望也可以做出这么好玩的东西~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail