基于树莓派的被动红外传感器运动检测
这个例子展示了如何使用树莓派™硬件连接到运动传感器和控制外部LED。
简介
在本例中,您将学习如何创建一个Simulink®模型,该模型读取运动传感器的输出,并基于检测到的运动活动执行一系列操作。在本例中,我们将使用来自Parallax®公司的无源红外(PIR)运动传感器。PIR传感器是一种热释电装置,可以测量周围物体发出的红外热水平的变化。当一个物体,比如一个人,经过PIR传感器前面时,在它的输出引脚上输出一个逻辑HIGH。如果没有检测到运动,传感器将输出引脚设置为逻辑低。
先决条件
我们建议填写开始使用树莓派硬件的Simulink支持包的例子。
所需的硬件
要运行这个示例,您需要以下硬件:
树莓派板
视差的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。