0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STHS34PF80高灵敏度红外感应器(2)----InfraredPD存在感应检测

嵌入式单片机MCU开发 来源:嵌入式单片机MCU开发 作者:嵌入式单片机MCU开 2024-10-14 11:10 次阅读

概述

InfraredPD 主要作用是通过与 STHS34PF80 红外传感器配合,提供对存在感应和运动检测的支持,同时对传感器获取的物体温度数据进行环境温度变化补偿。InfraredPD库通过从 STHS34PF80 传感器采集红外数据,实时检测视野中的人或物体的存在和运动情况。它可以判断目标是否在移动,并提供一个精确的输出信号来标识存在或运动状态。 使用特定算法补偿环境温度的变化对物体温度测量的影响,确保在环境温度波动时,传感器输出的物体温度依然准确。补偿算法可以根据应用场景选择线性或非线性补偿。
InfraredPD 库中的算法可以替代 STHS34PF80 传感器内置的智能算法,特别是在传感器工作于低增益模式(宽温度范围)时。它增强了传感器的检测性能,尤其是在温度漂移和视野内物体移动的场景下。

最近在弄ST的课程,需要样片的可以加群申请:615061293 。

视频教学

[https://www.bilibili.com/video/BV16MtYe9Erx/]

样品申请

[https://www.wjx.top/vm/OhcKxJk.aspx#]

完整代码下载

[https://download.csdn.net/download/qq_24312945/89781469]

硬件准备

首先需要准备一个开发板,这里我准备的是自己绘制的开发板,需要的可以进行申请。

主控为STM32H503CB,TMOS为STHS34PF80。

开启CRC

串口设置

设置串口速率为2000000。

开启X-CUBE-MEMS1

InfraredPD文件

使用 InfraredPD 库对传感器数据的实时处理和存在检测的功能。
● MX_MEMS_Init() 和 MX_MEMS_Process() 是与 InfraredPD 库交互的核心函数。
○ MX_MEMS_Init() 负责初始化 InfraredPD 库的参数,并调用 InfraredPD_manager_init() 初始化库实例(main)。
○ MX_MEMS_Process() 调用了存在和运动检测算法,并输出相应的结果(main)。

InfraredPD算法库

传感器数据采样频率在 1 Hz 到 30 Hz 之间。 对于不同架构的 Cortex-M 微控制器,库的代码和数据内存需求略有不同 ,主流内核都是支持的。

库的三个主要部分:

  1. 物体温度的环境补偿:算法会对物体温度进行补偿,以减少环境温度变化对测量结果的影响。该补偿是基于传感器的环境温度数据。
  2. 运动检测:通过对补偿后的物体温度数据的变化率进行分析,检测视野中的物体是否移动。
  3. 存在检测:根据补偿后的物体温度数据来判断是否有物体存在。
    ● 独立运行的算法:这三个功能(温度补偿、运动检测、存在检测)是通过三个独立的算法在库的每次迭代中依次执行的。
    ● 宽模式支持:即使在传感器启用了增益减少模式(“宽模式”),导致嵌入式算法不能使用时,库仍然能够执行补偿和运动、存在检测。
    ● 库仅支持 STHS34PF80 传感器:该库专为 STHS34PF80 传感器设计,不能保证在其他传感器上有相同的性能或功能表现。

注意事项

在使用 InfraredPD 库进行存在检测时,开机后的10秒内视野内不能有人或物体。这是因为存在检测算法在初始化时默认视野是空的,也就是说它假定初始化时传感器前没有任何人或物体。如果在这段时间内有物体存在,算法可能会错误地检测到“存在”状态,并在后续检测中卡在这个状态,导致无法准确反映实际情况。

同时,该库允许在初始化后通过重置补偿算法来重新校准环境温度。因此,如果在开机时发生了温度变化,建议在温度稳定后重新初始化算法,以确保更准确的检测结果。

10分钟内传感器再次检测到运动,存在状态会被恢复;但如果超过10分钟没有任何运动检测到,传感器将保持在缺席状态,即使之后检测到运动也不会自动恢复存在状态。这一机制帮助系统处理长时间静止的情景,并避免误判。

对应DEMO

MX_MEMS_Init

在使用 InfraredPD 库进行存在检测时,开机后的10秒内视野内不能有人或物体。这是因为存在检测算法在初始化时默认视野是空的,也就是说它假定初始化时传感器前没有任何人或物体。如果在这段时间内有物体存在,算法可能会错误地检测到“存在”状态,并在后续检测中卡在这个状态,导致无法准确反映实际情况。
同时,该库允许在初始化后通过重置补偿算法来重新校准环境温度。因此,如果在开机时发生了温度变化,建议在温度稳定后重新初始化算法,以确保更准确的检测结果。
10分钟内传感器再次检测到运动,存在状态会被恢复;但如果超过10分钟没有任何运动检测到,传感器将保持在缺席状态,即使之后检测到运动也不会自动恢复存在状态。这一机制帮助系统处理长时间静止的情景,并避免误判。

MX_MEMS_Process

MX_MEMS_Process() 函数的核心是调用 MX_PresenceDetection_Process(),该函数负责从传感器获取数据,并通过 InfraredPD 库对这些数据进行处理和分析(app_mems)。

在 MX_PresenceDetection_Process() 中,调用了 PD_Data_Handler() 函数,这个函数负责处理传感器的温度数据(如环境温度和物体温度),并将这些数据输入到 InfraredPD 库中进行分析(app_mems)。

库的算法会根据输入数据,判断是否有物体存在(通过 pres_flag)以及是否有运动(通过 mot_flag),然后输出相应的检测结果(app_mems)。

t_obj_comp(补偿后的物体温度)

● 定义:t_obj_comp 表示经过环境温度补偿后的物体温度数据。
● 作用:由于环境温度变化可能影响物体温度的测量结果,t_obj_comp 是通过对原始物体温度 (t_obj) 进行补偿后得到的温度数据,能够更准确地反映真实的物体温度。补偿算法可以是线性或非线性的,取决于你选择的补偿类型(UM3169)。

t_obj_change(物体温度变化率)

● 定义:t_obj_change 是补偿后物体温度的变化率。

● 作用:t_obj_change 用于检测物体温度的变化情况,特别是在进行运动检测时,它可以帮助算法判断物体是否正在移动。一般情况下,快速的温度变化通常意味着有运动发生。通过这个数据,系统可以更精确地识别温度变化是否源于物体的移动(UM3169)。

测试结果

当开机时候,检测范围内尽量不要出现人体之类的热源。

当出现人体的时候,算法库可以很好的识别到热源。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mems
    +关注

    关注

    129

    文章

    3924

    浏览量

    190577
  • 红外感应器
    +关注

    关注

    0

    文章

    11

    浏览量

    8359
收藏 人收藏

    评论

    相关推荐

    基于STM32CUBEMX驱动TMOS模块STHS34PF80(1)----获取ID

    STHS34PF80 是一款非冷却、工厂校准的红外运动和存在检测传感,工作波长在 5 µm 至 20 µm 之间。
    的头像 发表于 12-01 15:28 8104次阅读
    基于STM32CUBEMX驱动TMOS模块<b class='flag-5'>STHS34PF80</b>(1)----获取ID

    基于STM32CUBEMX驱动TMOS模块STHS34PF80(2)----驱动STHS34PF80进行人体检测

    STHS34PF80 是一款非冷却、工厂校准的红外运动和存在检测传感,工作波长在 5 µm 至 20 µm 之间。
    的头像 发表于 12-01 15:29 753次阅读
    基于STM32CUBEMX驱动TMOS模块<b class='flag-5'>STHS34PF80</b>(<b class='flag-5'>2</b>)----驱动<b class='flag-5'>STHS34PF80</b>进行人体<b class='flag-5'>检测</b>

    基于STM32CUBEMX驱动TMOS模块STHS34PF80(3)----修改检测阈值

    用于配置和设置 STHS34PF80 传感的一些参数,以便进行存在检测和运动检测
    的头像 发表于 12-01 15:30 693次阅读
    基于STM32CUBEMX驱动TMOS模块<b class='flag-5'>STHS34PF80</b>(3)----修改<b class='flag-5'>检测</b>阈值

    基于STM32CUBEMX驱动TMOS模块STHS34PF80(5)----配置嵌入式函数

    STHS34PF80传感项目种修改 Arduino 脚本,重新移植到STM32的MCU中。
    的头像 发表于 12-01 15:33 772次阅读
    基于STM32CUBEMX驱动TMOS模块<b class='flag-5'>STHS34PF80</b>(5)----配置嵌入式函数

    基于STM32CUBEMX驱动TMOS模块STHS34PF80(6)----获取状态数据

    STHS34PF80传感项目种修改 Arduino 脚本,重新移植到STM32的MCU中。 该项目基于STHS34PF80 IR温度传感,能够
    的头像 发表于 12-01 15:39 627次阅读
    基于STM32CUBEMX驱动TMOS模块<b class='flag-5'>STHS34PF80</b>(6)----获取状态数据

    如何干扰红外感应器

    有一对感应器件,推测是红外感应器,一边发射另一边接收,当二者之间有东西阻挡的时候,会触发某种操作,很类似电梯两扇门之间的感应器,当发现有东西阻挡在感应器之间的时候,门会保持常开。现在的
    发表于 06-12 20:15

    影响红外感应器灵敏度的,是这些因素!

    ,也时常有人吐槽自家的红外感应开关反应迟钝、不够灵敏,甚至完全失灵。其实,有很多因素会影响红外感应器灵敏度,今天就来带大家一起排查一下这些常见的“低级错误”。●
    的头像 发表于 12-30 11:04 3253次阅读
    影响<b class='flag-5'>红外感应器</b><b class='flag-5'>灵敏度</b>的,是这些因素!

    方案 | ST最新一代高灵敏度 STHS34PF80人体感应检测方案

    法半导体推出基于红外信号的TMOS(温度感应半导体金属氧化物)人体存在检测传感,助力智能产品性能的进一步提升和功能的更加完善。优势1:能探
    的头像 发表于 09-07 10:09 1469次阅读
    方案 | ST最新一代<b class='flag-5'>高灵敏度</b> <b class='flag-5'>STHS34PF80</b>人体<b class='flag-5'>感应</b><b class='flag-5'>检测</b>方案

    意法半导发布了新型人体存在和移动检测芯片:STHS34PF80

    近期,意法半导发布了新型人体存在和移动检测芯片:STHS34PF80,它是一款带有微加工热敏晶体管(TMOS)的高集成、超低功耗的红外(I
    的头像 发表于 07-30 09:47 1719次阅读

    ST最新一代高灵敏度 STHS34PF80人体感应检测方案

    范围。TMOS传感内置一个精度0.5°C的温度传感,两个红外感应区(一个亮区,一个暗区),通过差动读数,消除自身温度的一个影响,更加准确的得到视角范围(FOV)内的目标物产生红外
    的头像 发表于 12-06 15:33 1257次阅读
    ST最新一代<b class='flag-5'>高灵敏度</b> <b class='flag-5'>STHS34PF80</b>人体<b class='flag-5'>感应</b><b class='flag-5'>检测</b>方案

    STHS34PF80人体存在传感(1)----获取人体存在状态

    STHS34PF80是一款高性能的红外(IR)传感,特别适用于检测存在感和运动。其主要特点是高灵敏度
    的头像 发表于 01-09 15:51 605次阅读
    <b class='flag-5'>STHS34PF80</b>人体<b class='flag-5'>存在</b>传感<b class='flag-5'>器</b>(1)----获取人体<b class='flag-5'>存在</b>状态

    e2studio开发STHS34PF80人体存在传感(1)----获取人体存在状态

    STHS34PF80是一款高性能的红外(IR)传感,特别适用于检测存在感和运动。其主要特点是高灵敏度
    的头像 发表于 01-09 16:00 602次阅读
    e<b class='flag-5'>2</b>studio开发<b class='flag-5'>STHS34PF80</b>人体<b class='flag-5'>存在</b>传感<b class='flag-5'>器</b>(1)----获取人体<b class='flag-5'>存在</b>状态

    基于ST 红外传感器STHS34PF80 搭配菲涅尔透镜针对投影机应用方案

    STHS34PF80 是一款红外线感测,可用于侦测静止和移动物体的存及超温条件。它采用独特的 TMOS 技术测量物体的红外线辐射,当物体位于视野内时
    的头像 发表于 01-30 14:16 947次阅读
    基于ST <b class='flag-5'>红外传感器</b><b class='flag-5'>STHS34PF80</b> 搭配菲涅尔透镜针对投影机应用方案

    STHS34PF80高灵敏度红外感应器(1)----获取人体存在状态

    STHS34PF80是一款高性能的红外(IR)传感,特别适用于检测存在感和运动。其主要特点是高灵敏度
    的头像 发表于 10-14 10:36 371次阅读
    <b class='flag-5'>STHS34PF80</b><b class='flag-5'>高灵敏度</b><b class='flag-5'>红外感应器</b>(1)----获取人体<b class='flag-5'>存在</b>状态

    电容感应器感应对高度的灵敏度有影响吗

    之间存在电场时,它们之间就形成了一个电容。当导体之间的距离、形状或介质发生变化时,电容的数值也会随之改变。电容感应器正是利用这一原理来检测物体的位置和特性。 电容感应器对高度的
    的头像 发表于 10-14 11:09 290次阅读