如何使用光传感器构建简单的物体探测器并使用PiZeroW收集数据

电子说

1.2w人已加入

描述

什么是物理计算?

物理计算(PC)处理可以使用软件和硬件感知和响应其环境的构建设备。与设备或对象的交互是PC的主要目标。 PC技术被艺术家和设计师用于创造互动艺术。

机电一体化是一个跨学科领域,使用电子电气,机械和嵌入式软件,使机械系统更加高效和智能化。电子传感器收集与机械部件或致动组件的定位有关的环境数据。嵌入式软件将处理此定位数据,并根据控制代码中嵌入的逻辑进行机械调整。因此,机电一体化系统的核心是PC。

此外,PC依靠电子传感器来获得物理刺激,如光,温度,压力和声音。电机和螺线管等执行器为PC设备提供旋转和线性运动。如果PC设备需要可视指示器,则使用LED,LCD,仪表和监视器等电子设备来提供效果。此外,可以使用扬声器和蜂鸣器实现声音指示器或警报。凭借您在PC中的新知识,您现在可以了解简单物体探测器传感器如何与Pi Zero W一起工作。

简单物体探测器传感器如何工作?

简单物体探测器是一种可以感应光线水平变化的PC设备。光敏电阻检测光照水平并将数据发送到Pi Zero W.Pi Zero W微控制器中嵌入的Python代码将在HDMI监视器上显示数值。

因为Pi Zero W没有没有内部模数转换器(ADC)读取变化的光级数据,使用电解电容。电解电容器通过光敏电阻产生的变化电流不断充电和放电。 HDMI上显示的数据是基于光敏电阻的变化电流的电解电容器的充电和放电电压电平。图1显示了简单物体探测器的电子电路原理图。

光传感器

图1.物体检测器电路图。

图2显示了物体探测器设备中使用的1μF电解电容(C1)的充电和放电曲线。

光传感器

图2. C1电解电容的充电和放电图。

对于图2所示的图,“x”轴是电压为“y”的时间轴。通过了解光传感器电路的工作原理,您就可以构建基于PC的物体探测器了。

构建简单物体探测器

正如您从前面的讨论中了解到的,物体探测器有两个主要部分:光传感器电路和微控制器。 PC设备的第三部分是声音输出警报。因此,简单物体探测器有三个主要部分:光传感器,微控制器和声音输出警报。图3显示了简单对象检测器的框图。

光传感器

图3.简单对象检测器框图。

您可以使用一些电子元件和PI Zero W构建一个简单的物体探测器。下面列出了构建光感项目所需的电子部件。

( 1)压电蜂鸣器(Buz1)

(1)10千欧(KΩ)微调器或线性电位器(R2)

(1)光敏电阻(R1)

(1)1microfarad(μF)电解电容器(C1)

(1)Raspberry Pi Zero W

(1)无焊面包板

跳线

注意: Adafruit销售Parts Pal套件(产品编号:2975),为该项目提供电子元件。

使用电子部件,您可以使用图4所示的电气接线图构建简单的物体探测器.1μF电解电容tor是极化电子元件。您将在图4中看到电解电容器的负极引线方向。如果电解电容器未正确放入电路中,则PC设备将无法工作。您将负极导线连接到接地导轨或行,如图4所示。

光传感器

图4.简单物体探测器的电气接线图。

您将使用3英寸母/母跨接线将Pi Zero W电气连接到无焊面包板,如图4所示。在为PC设备供电之前,请重新检查接线为了错误。完成电气布线后,您可以编写简单对象检测器的Python代码。图5显示了简单对象检测器的最终项目构建。

图5.完整的简单物体探测器设备。

为了改善PC设备的物体检测功能,一个由墨水笔夹持管制成的简易准直器是放在光敏电阻上。准直器将在操作时消除光敏电阻的环境光。恭喜,您已经成功构建了简单的物体探测器PC硬件。您现在可以使用Python编码语言编写PC检测功能。

图6.用于从光敏电阻中去除环境光的准直器。

对象检测器Python代码

随着物体检测器电线完成,您将进行编程(代码)Pi Zero W读取Python编码语言中的光级变化。此外,Python代码在检测到对象时会发出警报。要编写应用程序代码,请打开Python 3软件,如图7所示。

图7.从Pi Zero W桌面访问Python 3编码软件。

打开编码软件,您将单击文件》新文件。键入以下Python代码:

from gpiozero import LightSensor, Buzzer

from time import sleep, strftime, time

ldr = LightSensor(13)

buzzer = Buzzer(12)

with open(“/home/pi/ldr_data2.csv”, “a”) as log:

while True:

if ldr.value == 0:

buzzer.on()

sleep(1)

buzzer.off()

sleep(1)

else:

buzzer.off()

ldrsensor = ldr.value

log.write(“{0},{1} ”.format(strftime(“%S”),str(ldrsensor)))

print(ldr.value)

sleep(1)

代码清单由三部分组成:

导入库

分配变量

代码循环

ldr_data.py代码应用程序所需的库是 gpiozero 和时间。 gpiozero 允许您访问Pi Zero W的BCM2835微控制器通用输入输出(GPIO)引脚,定时器,计数器,中断,通信端口和脉冲宽度调制(PWM)资源。

time 库允许您访问ARM v7处理器的内部系统时钟功能。 ldr 和蜂鸣器是分配给GPIO引脚12和13的变量名。这些GPIO引脚的指定库名是 LightSensor 和蜂鸣器。打开/日志指令允许Pi Zero W的通信端口收集传感器数据。传感器数据被读入ldr_data.csv文件。

while 循环连续运行并且当 ldr 。值等于零。压电蜂鸣器切换ON和OFF 2秒输出报警持续时间周期。当光敏电阻检测到物体时,会发生这种报警情况。如果未检测到物体,则关闭压电蜂鸣器,收集传感器数据( ldr.value )并将其存储在 ldrsensor 变量中。数据按时间格式化(以秒[%S]为单位)并写入ldr_data.csv文件。传感器数据以1秒为间隔显示在HDMI监视器上[睡眠(1)]。

输入代码后,您可以通过按键盘上的 Ctrl S 然后按 F5 来运行监控检测应用程序。数据将显示在屏幕上,如图8所示。

光传感器

图8.在Pi Zero W上运行的Python ldr_data.py代码。

将手或物体放在准直器上会从压电蜂鸣器发出警报。可以使用10KΩ微调器或线性电位计(R2)组件调节警报响度。

就是这样!您已经使用PC技术成功构建了功能简单的物体探测器。您可以通过转到 home/pi 目录并使用LibreOffice或Notepad打开ldr_data.py文件来查看存储的数据。

作为一项探索活动,请查看您是否可以使用Excel软件包绘制数据。另外,参考本教程并通过尝试其他传感器设备(如热敏电阻)并在屏幕上观察数据来构建它。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分