采用被动式红外传感器做运动检测 有没有简捷实现的方案?

作者: Jacob Beningo 来源:得捷电子DigiKey

摘要

本文首先讨论运动检测的基本原理,然后展示开发者如何使用与MicrochipDM080104ATtiny 1627 Curiosity Nano 连接的 PIR 进行运动检测。最后,介绍一种可替代复杂算法开发的运动检测方法。这种方法充分发挥了机器学习 (ML) 技术的优势。其中包括入门所需的技巧和窍门。

在许多工业、商业、家居和嵌入式应用中,对运动检测的需求在持续增长。问题是运动检测可能需要价格高昂且难以连接的数字传感器。此外,在收到数据后仍然需要开发算法来检测运动,这是一项极为重要的工作。
有多种解决方案可用来检测运动,其中红外 (IR) 解决方案最受欢迎。开发人员可以选择一种在许多独立数字传感器中常见的主动式解决方案,但实施成本会更高、实施过程更复杂。另一种方法是发挥被动式红外传感器 (PIR) 的优势,这种传感器成本较低,连接更简单。PIR 具有大多数微控制器都可以连接的模拟接口。
运动检测的基本原理
目前有多种运动检测技术,其中以红外技术应用最为广泛。IR 传感器分为主动和被动式。主动式传感器包括一个红外 LED 发射器和一个光电二极管接收器。主动式传感器可检测到物体上反射的红外线,然后使用接收到的红外线来探测物体是否已发生移动。根据不同的应用,主动式传感器可能采用了多个光电二极管来查看运动方向。例如,通过探测哪些红外信号滞后或超前,四个光电二极管可用于检测左、右、前、后、上、下等指示性运动。

被动式红外传感器不能发射红外线,只能接收红外线。PIR 传感器使用被探测物体发射的红外线来探测其存在以及与之相关的任何运动。例如,家居安防系统中通常会有运动传感器,用于探测人或动物发出的红外线,并确定其是否在检测范围内移动。图 1 所示为模拟 PIR 传感器在不同条件下可能探测到的对象或物体状态,如无红外线、红外线存在、稳定不变和离开(切断)。

图 1:PIR 传感器使用对象或物体发出的红外线来探测其运动和存在状态.png

图 1:PIR 传感器使用对象或物体发出的红外线来探测其运动和存在状态。如图所示,不同的探测阶段包括:无红外线、存在红外线、稳定不变和离开(切断)。(图片来源:Microchip Technology)

当为某个应用选择正确的红外传感器类型时,开发者需要仔细考虑相对于以下参数的权衡:
  • 传感器成本

  • 包装

  • 微控制器接口

  • 探测算法和计算能力

  • 传感器系列和能耗

让我们以使用 ATtiny1627 的 PIR运动探测系统为例进行研究。

ATtiny1627 Curiosity Nano 简介

Microchip Technology 的 ATtiny1627 是一个值得关注的运动检测微控制器 (MCU) 解决方案。这款 8 位MCU 内置了 12 位模数转换器 (ADC),最多可进行 17 位超采样。该器件包含用来调节灵敏度的可编程增益放大器 (PGA)。将这两个特性组合在一起,可以实现一个适合许多应用的低成本运动探测系统。

最好的低成本入门方案是使用 DM080104 ATtiny1627 Curiosity Nano 开发板(图 2)。该开发板包含一个运行速度高达 20 MHz 的 AVR MCU,这款 MCU 具有16 KB 闪存、2KB SRAM 和 256 B EEPROM。该板包括编程器、LED 和用户开关。也许最让人感兴趣的是,该板可以轻松的通过针座连接,可用于快速原型开发,或者直接焊接到原型或生产板上。

图 2:ATtiny1627 Curiosity Nano.png

图 2:ATtiny1627 Curiosity Nano 内置 8 位可编程 AVR MCU,其运行速度高达 20 MHz,拥有 16KB 闪存、2KB SRAM 和 256 B EEPROM。该开发板可以很容易地焊接到一块更大的底板上或者通过跳线与该底板连接,以方便原型设计和生产系统。(图片来源:Microchip)

该板还有一些对开发有益的功能。首先,该板有两个逻辑分析器通道: DGI和 GPIO。这些通道可以用来调试和管理微控制器。第二,开发者可以利用板载虚拟 COM 端口 (CDC) 进行调试或记录信息。最后,可以使用多种工具编写和部署软件。例如,开发者可以使用 Microchip Studio 7.0、GCC 编译器;或者使用 MPLAB X,它使用 GCC 或 XC8 编译器

此外,Microchip 支持大约十几个 代码库, 包括了各种不同的 ATtiny1627 示例。这些代码库中包含了 PIR 运动探测、温度测量、模拟转换等大量示例。

构建运动探测测试台

构建并运行运动探测测试台很简单,成本也不太高。构建测试台的必要组件包括:

我们已经了解 ATtiny1627 Curiosity Nano的基本功能。Curiosity Nano 适配器为 ATtiny1627 Curiosity Nano 提供一块载板,可用于快速原型开发(图 3)。此外,该适配器还为 MIKROE click boards 扩展板提供了三个扩展插槽以及针座,用于评估信号或添加自定义硬件。

图 3:Curiosity Nano 适配器.png

图 3:Curiosity Nano 适配器还为 MIKROE click board 扩展板提供了三个扩展插槽以及针座,用于访问信号或添加自定义硬件。(图片来源:Microchip)

最后是如图 4 所示的 MIKROE-3339 PIR 传感器,该器件提供了样式简单、可扩展的KEMETPL-N823-01被动式红外传感器,可以直接与 Curiosity Nano 适配器连接。需要指出的是,MIKROE-3339 与 Microchip 的运动探测示例一起使用时,需要进行一些修改。关于这些修改请参阅Microchip 的 AN3641 应用说明《使用 tinyAVR® 2 系列实现低功耗、高性价比 PIR 运动探测》的第10 页。

图 4:MIKROE-3339 click board 扩展板易于制作原型.png

图 4:MIKROE-3339 click board 扩展板易于制作原型,提供了一个 KEMET PL-N823-01 PIR 传感器。(图片来源:MikroElektronika)

PIR运动探测软件

在软件方面开发者有多种选择,可以用来创建运动探测软件解决方案。第一个解决方案是使用Microchip 在 AN3641 中提供的示例材料。示例运动探测软件的代码库可以在 Github中查找。

该应用分为多个阶段。首先,应用初始化并预热 PIR 传感器。其次,使用 ADC 中断服务例程定期对 PIR 传感器进行采样。第三,ADC 数据进行平均化处理。最后,通过探测算法发出是否探测到运动的信号。如果探测到活动,板载 LED 闪烁并通过串行端口发送探测信号。完整的程序流程参见图 5。

图 5:该图表展示了 Microchip 运动探测应用的软件流程.png

图 5:该图表展示了 Microchip 运动探测应用的软件流程。(图片来源:Microchip)
运动探测的第二个选择是利用 Microchip 示例中的初始化和 ADC 中断例程,但不使用其探测算法,而使用 ML。可以收集 PIR 数据,然后用于训练神经网络。然后,ML 模型可以通过 TensorFlow Lite for Microcontrollers切换至微控制器运行,使用 8 位权重的定点数学。
以这种方式使用 ML 的吸引人的地方是,开发者无需再为其特定需求设计算法。相反,开发者只需在预期条件及其应用所需的用例下对传感器进行采样。此外,ML 还允许开发者在新数据出现时快速扩展并调整其模型。

使用 ATtiny1627 进行运动检测的技巧和窍门

对于那些有兴趣使用运动探测的开发者来说,他们有许多选择。为了简化开发、加快开发速度,开发者应牢记的“技巧和窍门”包括:
  • 使用现成零件构建一个低成本原型开发平台。
  • 充分利用 Microchip 运动探测示例。这些示例可以在 GitHub 上查找。
  • 使用 ATtiny1627 Curiosity Nano 封装设计原型硬件,并直接将电路板焊接到硬件上,以简化初始原型。
  • 如需获得更少、更有效的优化代码,请使用 Microchip XC8 编译器。
  • 在开始构建运动探测应用前,请阅读 Microchip 的 AN3641 的文档:使用 tinyAVR® 2 系列的低功耗、高性价比 PIR 运动探测器。
  • 认真考虑将 ML 用于运动探测算法。

遵循这些“技巧和窍门”的开发者会发现,他们在对应用进行原型开发时可以节省更多的时间,减少更多的麻烦。

总结

运动探测正在成为许多应用的常见功能,特别是在非触摸场景下。开发者可以通过使用 PIR 传感器和低成本 MCU,最大限度地减少 BOM 成本,简化设计。如图所示,ATtiny1627 是一个很好的起点,Microchip 提供了大量的工具和应用说明,帮助开发者启动其项目。此外,为了尽可能简化运动探测算法开发,可以使用 ML。

Baidu
map