主要内容

基于树莓派的被动红外传感器运动检测

这个例子展示了如何使用树莓派™硬件连接到运动传感器和控制外部LED。

简介

在本例中,您将学习如何创建一个Simulink®模型,该模型读取运动传感器的输出,并基于检测到的运动活动执行一系列操作。在本例中,我们将使用来自Parallax®公司的无源红外(PIR)运动传感器。PIR传感器是一种热释电装置,可以测量周围物体发出的红外热水平的变化。当一个物体,比如一个人,经过PIR传感器前面时,在它的输出引脚上输出一个逻辑HIGH。如果没有检测到运动,传感器将输出引脚设置为逻辑低。

先决条件

所需的硬件

要运行这个示例,您需要以下硬件:

  • 树莓派板

  • 视差的PIR运动传感器

  • 1.8mm红色LED

  • 270欧姆电阻

  • 面包板电线(推荐)

  • 小面包板(推荐)

  • 扬声器或耳机(任务3)

  • USB网络摄像头(任务4)

任务1 -将运动传感器和LED连接到树莓派硬件上

在本任务中,您将把PIR运动传感器和一个红色LED连接到树莓派硬件。传感器有三个引脚:VCC, GND和OUT。VCC引脚将连接到+3.3伏电压轨上,GND引脚连接到地面。OUT引脚是指示运动的逻辑信号。该引脚将连接到树莓派硬件上的GPIO引脚,如下图所示:

在上面的电路原理图中,一个LED已经连接到一个GPIO引脚。当检测到运动时,这个LED就会亮起。注意所使用LED的正向电压必须小于3.3伏。我们建议使用1.8毫米的红色LED。

1.将PIR运动传感器与树莓派硬件连接,如图所示。

2.如图所示,将红色LED连接到树莓派硬件的指示GPIO引脚上。

请注意如果没有PIR运动传感器,可以用一个简单的按钮代替,如下图简化的电路图所示。

任务2 -当检测到运动时打开LED

在本任务中,当PIR传感器检测到运动时,您将打开连接到板的LED。

1.打开运动传感器(打开LED)模型。

2.在模型中,

  • GPIO读Block每0.1秒读取一次运动传感器的输出。从运动传感器读取的值被写回给LED供电的GPIO引脚。

  • 仪表板范围块在模拟过程中显示连接信号的行为。

  • Simulink显示一个记录信号指示器,指示信号连接GPIO读GPIO写块标记为日志记录。标记用于记录的信号使您能够在模拟过程中监视参数调优的效果。有关日志信号的信息,请参见标记一个记录信号

3.打开建模按TAB键Ctrl + E打开“配置参数”对话框。

4.浏览到硬件实现>目标硬件资源>外部模式,并设置通信接口参数TCP/IP上的XCP

5.硬件选项卡中的模式部分中,选择在船上奔跑然后点击监控与调优.在模拟过程中,仪表板范围块显示运动传感器的输出。当新的模拟数据在模拟数据检查器(SDI)中变为可用时,模拟数据检查器按钮将高亮显示。

6.(可选)您可以单击仿真数据检查器按钮,以检查和比较来自多个仿真的数据,以验证模型设计。有关SDI的更多信息,请参见分析仿真结果

7.点击停止停止模型。

任务3 -当传感器输出高时,说“运动检测到”

可用于树莓派硬件的固件包括eSpeak文本语音合成器。在本任务中,当传感器OUT引脚高时,您将使用eSpeak Linux包输出“运动检测到”。

1.如果您使用树莓派板的模拟音频输出,请将一对耳机或扬声器连接到模拟音频输出插孔。如果您将树莓派连接到HDMI显示器或电视,您将听到来自显示设备扬声器的音频。

2.打开运动传感器(文字转换语音)模型。

3.硬件选项卡中的模式部分中,选择在船上奔跑然后点击监控与调优在树莓派硬件上运行这个模型。

4.当模型开始运行时,当PIR传感器检测到运动时,你会听到树莓派硬件说“运动检测”。

5.点击停止停止模型。

任务4 -建立一个运动传感器相机

在本任务中,您将创建一个Simulink模型,该模型捕获一张图片,并在检测到运动时将其保存在船上。

1.连接一个兼容USB摄像头到树莓派硬件

2.打开运动传感器相机模型。

3.硬件选项卡中的模式部分中,选择在船上奔跑然后点击监控与调优在树莓派硬件上运行这个模型。

4.每当传感器运动引脚从低到高时,一个灰度图像将被捕获并保存在树莓派硬件上。当模型在外部模式下运行时,捕获的帧将显示在主机上。捕获的图像数据被保存到单板上用户主目录中的一个文件中。要检索第一个捕获的图像,在MATLAB®命令行中执行以下命令:

R =覆盆子;getFile(r,'/img .dat') img = load('img .dat');显示亮度图像(重塑(img, 120160)), colormap(灰色)

5.点击停止停止模型。

6.您可以部署这个Simulink模型的独立版本。在硬件选项卡中的模式部分中,选择在船上奔跑然后点击构建、部署和启动.当您以这种方式运行模型时,运行在树莓派硬件上的Simulink模型将把图像记录到SD卡中。您应该在模型运行一段时间后停止它,并稍后检索记录器图像,如上面的步骤4所示。要停止脱离Simulink运行的模型,在MATLAB命令行中执行以下命令:

R =覆盆子;stopModel (r, raspberrypi_motion_sensor_camera)

其他可以尝试的事情

使用树莓派和Simulink块库中的其他块进行实验。例如:

  • 使用领导当检测到运动时,块打开板上LED。

  • 使用柜台有限块从Simulink库代替计数器不同步的例如,将映像文件的数量限制为255。

Baidu
map