运动检测器和线性执行器

运动探测器

顾名思义,运动探测器是用于感知运动的传感器。它们常见于安全警报和运动触发照明系统中,但可以与线性执行器结合使用,用于各种炫酷的应用。一种常见的应用 线性执行器 和运动探测器一起使用在鬼屋内以引起跳跃恐慌。但线性执行器和运动探测器一起也可用于各种家庭自动化项目。

运动探测器

当您想到运动探测器时,您通常会想到两种类型:

  • 被动红外 – 通过测量体温(红外能量)的变化来检测运动
  • 微波 – 使用微波测量物体的反射来检测运动

这两种类型的运动探测器是最常见的,因为它们经常用于安全系统等应用中。尽管如此,还有许多其他类型的运动检测器可用,包括使用推断光的区域反射传感器、振动传感器和超声波传感器[1]。对于业余爱好者和 DIY 项目的使用,最常用和最常用的运动检测器类型是被动红外 (PIR) 运动传感器。因此,本博客的其余部分将重点介绍如何将 PIR 运动检测器与线性执行器结合使用。虽然每种类型的传感器将具有不同的实现方式,但是下面描述的关于如何用运动检测器控制线性致动器的大部分内容对于所有类型的运动检测器来说都是相似的。

接近传感器怎么样?

接近传感器不是运动检测器,因为它们检测物体的接近度而不是运动。从功能上来说,一个 接近传感器 可以告诉您物体与传感器的距离,无论物体是否移动。而运动探测器则仅在有运动时才会触发,无论物体有多近。您可以利用接近传感器作为运动检测器,因为当物体或人在传感器前面移动时,接近传感器的输出会发生变化。虽然接近传感器仅检测最近的物体与传感器的距离,因此如果有物体在最近的物体后面移动,接近传感器将不会检测到该移动。虽然可以使用接近传感器作为运动检测器,但它可能不是您设计的最佳解决方案。

接近传感器

设置 PIR 运动探测器

如果您想为万圣节设计自己的跳跃惊吓机器人或考虑另一个运动敏感项目,您将需要利用 PIR 运动探测器作为输入开关来确定线性执行器何时应移动。为此,您需要使用微控制器,例如 Arduino,读取 PIR 运动探测器的输出并驱动线性执行器。 PIR 运动检测器的输出类似于简单的按钮,当有运动时,传感器将向微控制器发送高信号或电压,而当没有运动时,它将发送低信号或电压。您可能还想在将 PIR 传感器安装到您的设计中之前对其进行测试,因为某些 PIR 传感器允许您调整传感器的灵敏度以获得更好的性能。

连接到 Arduino 的 PIR 传感器 

由于您不知道何时有人会经过您的运动检测器,因此您需要在代码的主循环中不断读取 PIR 传感器的输出,或者可以利用外部中断。外部中断是 Arduino 的引脚,用于检测电压变化,在我们的例子中,可用于提醒 Arduino 我们的 PIR 传感器检测到运动。根据您的应用,读取 PIR 传感器输出的任何一种方法都是可行的,尽管后者被认为是最佳实践,因为它可以确保您的代码不会错过 PIR 传感器检测到的任何移动。如果您计划使用外部中断来检测运动检测器的变化,则需要查阅 Arduino 的数据表,以确保微控制器的哪些引脚可以用作中断引脚。如果没有,您只需将 PIR 传感器的输出连接到 Arduino 的任何数字输入引脚即可。 PIR 传感器还需要连接到适当的电源和公共接地。

运动控制线性执行器

在下面的两个示例中,Arduino 使用 电机驱动器。了解如何使用电机驱动器或其他中间组件驱动线性执行器,例如 继电器,您可以查看我们的帖子 如何使用 Arduino 控制线性执行器。另外,下面的例子都没有使用 反馈线性执行器 或者 外部限位开关 在他们的设计中,这将使您比没有时更好地控制执行器。如果您对如何提供反馈选项以及提供哪些反馈选项感兴趣,您可以查看我们关于该主题的帖子 这里.  

上面的代码示例展示了如何在 Arduino IDE 中设置中断,其中中断将在电压脉冲的上升沿触发。您可以将中断设置为在电压变化的不同点触发,并且应查阅微控制器的数据表以确定可用选项。一旦您确定并选择了合适的中断引脚,设置中断所需要做的最后一个方面就是编写中断服务例程。中断服务程序是一个简单的函数,每次触发中断时都会运行代码。在我们的例子中,当中断被触发时,我们的中断服务例程motionDetector只是将标志motionDetected设置为高。

一旦您的 Arduino 通过使用外部中断或简单地读取输出读取了 PIR 传感器的输出,您如何利用此反馈来控制线性执行器将取决于您的设计和应用。由于 PIR 传感器仅提供二进制反馈(如按钮),因此对线性致动器的控制水平将受到限制。利用这种反馈控制线性执行器的一种方法是,每当检测到运动时就告诉执行器移动,这在鬼屋中的机器人跳跃恐慌等应用中可能很有用。上面的代码展示了如何实现这个设计。一旦motionDetected标志设置为高,我们向前延伸线性执行器,10秒后,标志重置为低,执行器缩回以进行下一次跳跃惊吓。由于我们只使用运动检测器来告诉 Arduino 有人在那里,因此我们使用计时器来重置标志并等待下一个人走过。

另一种方法是每次检测到运动时在线性致动器的伸出位置和缩回位置之间切换,这在家庭自动化应用中可能有用。该方法的实现如上所示。在中断服务例程中,每次 PIR 传感器检测到运动时都会切换标志motionDetected。当标志设置为高时,线性致动器伸出,而当标志设置为低时,致动器缩回。我们还添加了另一个标志timerFlag,用于在触发PIR 运动检测器后添加时间延迟。当第一次触发中断时,该标志被设置为高电平,并且仅在设计的时间延迟(在本例中为一分钟)之后才被发送为低电平。它还用于确保标志motionDetected 的值在此时间延迟之后才切换。

参考:

  1. 特罗斯,K.(2019 年 10 月)。 运动传感器初学者指南。 从...获得: https://www.safewise.com/resources/motion-sensor-guide/
Share This Article
Tags:

Need Help Finding the Right Actuator?

We precision engineer and manufacture our products so you get direct manufacturers pricing. We offer same day shipping and knowledgeable customer support. Try using our Actuator Calculator to get help picking the right actuator for your application.