使用与树莓派接口的被动红外传感器检测运动
这个例子展示了如何使用树莓派™硬件连接到运动传感器并控制一个外部LED。
介绍
在本例中,您将学习如何创建一个Simulink®模型,该模型读取运动传感器的输出,并基于检测到的运动活动执行一系列动作。对于本例,我们将使用来自视差®公司的无源红外(PIR)运动传感器。PIR传感器是一种热释电装置,可以测量周围物体发出的红外热水平的变化。当一个物体(比如人)经过PIR传感器前面时,在其输出引脚上输出一个逻辑HIGH。如果没有检测到运动,传感器将输出引脚设置为逻辑LOW。
先决条件
我们建议完成开始使用树莓派硬件的Simulink支持包的例子。
所需的硬件
要运行这个例子,你需要以下硬件:
覆盆子π董事会
来自视差的PIR运动传感器
1.8毫米红了
270欧姆电阻
试验板连接(推荐)
小案板(推荐)
扬声器或耳机(任务3)
一个USB网络摄像头(任务4)
任务1 -将运动传感器和LED连接到树莓派硬件
在本任务中,您将把PIR运动传感器和一个红色LED连接到树莓派硬件。该传感器有三个引脚:VCC、GND和OUT。VCC引脚将连接到+3.3伏电压轨上,GND引脚连接到地面。OUT引脚是指示运动的逻辑信号。这个引脚将连接到树莓派硬件上的GPIO引脚,如下图所示:
在上面的电路原理图中,一个LED已经连接到一个GPIO引脚。当检测到运动时,这个LED就会打开。注意所用LED的正向电压必须小于3.3伏。我们建议使用1.8mm的红色LED。
1.PIR运动传感器与树莓派硬件的接口,如上图电路图所示。
2.如图所示,将红色LED连接到树莓派硬件的指示GPIO引脚上。
请注意如果没有可用的PIR运动传感器,可以用一个简单的按钮代替,如下图简化电路图所示。
任务2 -当检测到运动时打开LED
在本任务中,当PIR传感器检测到运动时,您将打开连接到板的LED。
1.打开运动传感器(打开LED)模型。
2.在模型中,
的GPIO读Block每0.1秒读取一次运动传感器的输出。从运动传感器读取的值被写回给LED供电的GPIO引脚。
的仪表板范围Block显示模拟过程中连接信号的行为。
Simulink显示一个记录信号指示器,指示信号连接GPIO读和GPIO写块被标记为日志记录。标记用于记录的信号使您能够在模拟过程中监视参数调优的效果。有关日志信号的信息,请参见为日志记录标记信号。
3.打开建模选项卡和新闻Ctrl + E打开“配置参数”对话框。
4.浏览到硬件实现>目标硬件资源>外部模式,并设置通信接口参数的XCP TCP / IP
。
5.在硬件选项卡,在模式部分中,选择机上运行然后点击监视和优化。在模拟过程中,仪表板范围Block显示运动传感器的输出。当新的仿真数据在仿真数据检查器(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 = raspberrypi;getFile(r,'/img .dat') img = load('img .dat');显示亮度图像(重塑(img, 120160)), colormap(灰色)
5.点击停止停止模型。
6.你可以部署这个Simulink模型的独立版本。在硬件选项卡,在模式部分中,选择机上运行然后点击构建,部署和启动。当你以这种方式运行模型时,运行在树莓派硬件上的Simulink模型会将图像记录到SD卡中。你应该在模型运行一段时间后停止它,并在稍后检索记录器图像,如上面的步骤4所示。要停止脱离Simulink运行的模型,在MATLAB命令行中执行以下命令:
r = raspberrypi;stopModel (r, raspberrypi_motion_sensor_camera)
其他可以尝试的事情
用树莓派和Simulink块库中的其他块进行实验。例如:
使用领导当检测到运动时,打开板上LED。
使用柜台有限block从Simulink库而不是计数器不同步的例如,将图像文件的数量限制为255个。