Calin Crisan 出色的motionEyeOS是一个完整的 Linux 发行版,可将 Raspberry Pi Zero 变成功能强大的无线网络摄像头。他提供了安装和配置的详细说明;此处引用了一些。这些说明展示了如何使用我设计的名为Solar Pi Platter和 Pi Zero W 的小工具来扩展 motionEyeOS 的功能,包括备用电池、平移/倾斜伺服系统和状态信息显示。
使用 motionEyeOS 发行版内置的扩展功能,安装非常简单。平移/倾斜控件以及显示电池和充电状况的状态显示显示在网络界面中。
构建此网络摄像头包括本自述文件中描述的以下步骤。
我鼓励您阅读文档目录中的 Pi Platter 手册以及motionEyeOS wiki中的详尽文档。
我使用手头的组件构建了我的单元。您当然可以替换一些组件,例如备用电池和平移/倾斜组件。
我为此示例激光切割了一个两件式组件,但您可能需要不同类型的外壳,具体取决于您的应用。我的剪纸文件可以在这个故事的结尾找到。这两件作品都可以从一块 2 毫米厚的亚克力小片 (200 毫米 x 200 毫米) 上切割下来。
组装很简单。使用随附的安装硬件将 Pi Zero 安装在 Pi Platter 的顶部。该组件使用额外的支座以堆叠布置安装在外壳中。
我用一块双面胶带固定电池。
如下图所示连接到 Pi Platter。检查伺服连接以确保它们匹配。我见过的大多数伺服系统都使用棕色-红色-橙色电缆作为 GND-5V-PWM。错误地连接它们可能会损坏它们或 Pi Platter。
在安装过程中连接显示器和 USB 键盘可能会有所帮助。
平移/倾斜脚本具有常量,用于设置发送到舵机的最小和最大 PWM 值。这些是我发现适用于我的系统的值。但是,如果您发现您的舵机达到了其运动范围的末端,您可能最终需要修改它们(当电机试图将伺服器推过其极限时,它们会发出磨擦声并消耗大量电流)。这可能会损坏伺服系统,并且可能会消耗大量电流,以至于 Pi Platter 会关闭。
例如,left_1
脚本控制向左平移。它通过增加写入 Pi Platter 的 PWM 值来控制 PWM 1 上的平移伺服来实现此目的。PWM 值的范围为 0-255,但此脚本使用常数限制最大 PWM 值PWM_MAX
(在我的版本中为 250)。如果您发现舵机在向左平移时达到其范围的末端,则应减小此值。要将最大值更改为 240,请编辑left_1
脚本并更改常量。
# Maximum PWM value
PWM_MAX=240
同样,您可以减小PWM_MAX
常数 indown_1
并增加PWM_MIN
常数 inright_1
并up_1
进一步限制伺服行程。
我的系统在运行但不为电池充电时需要平均 430-450 毫安的 USB 电源。伺服系统移动时需要更多电流,为电池充电时需要额外的 750 毫安电流。USB 电源适配器应该能够提供至少 2A 的电流。
当 USB 电源适配器输入可用时,Pi Platter 通过 USB 电源适配器为系统供电。它使用大约 4.7 伏的电压阈值从 USB 电源切换到电池。当 USB 输入电压下降时,它还会降低电池的充电电流。由于许多 USB 适配器电缆使用细线并且系统消耗的电流可能超过 1 A,因此 Pi Platter 看到的电压可能明显低于 USB 适配器的输出。出于这个原因,我建议使用输出 5.1 至 5.25 伏特的适配器。
如果你看到AC PWR
状态显示闪烁,那么很可能是 Pi Platter 看到的 USB 电压太低,它不断地在 USB 和电池电源之间切换。
当使用电池运行时,系统将从电池中汲取超过 700 mA 的电流。2000-6000 mA 的电池容量非常适合该系统,具体取决于它应该能够单独使用电池电源运行的时间。
C7=1
在修改后的文件中执行的 Pi Platter 命令userinit.sh
将其配置为在因电池电量不足而关机后自动恢复供电。因此,如果您通过按住 Pi Platter 电源按钮几秒钟来关闭系统电源(因为电池电压高于重启阈值),系统也会立即重新开机并重新启动。要关闭电源,首先登录系统并执行以下命令以禁用自动重启功能,然后使用 Pi Platter 电源按钮关闭系统。
/data/etc/talkpp -c C7=0
motionEyeOS 软件可以配置为创建自己的网络,充当 WiFi 接入点。这对于位于没有 WiFi 区域的远程延时或安全系统很有用。必须在初始安装/启动后将系统配置为 WiFi 接入点。可以在WiFi-Access-Point找到详细说明。
出于某种原因,我不明白启用此模式会禁用 ssh 访问,因此在执行这些步骤之前完成附加安装很重要。
Pi Platter 包含一个电池供电的实时时钟,可用于在无法访问网络时间服务器的情况下设置 Pi 的系统时钟。
从 Pi 的系统时钟设置 Pi Platter RTC(假设它有正确的时间和日期):
/data/etc/talkpp -s
从 Pi Platter RTC 设置 Pi 的系统时钟:
date $(/data/etc/talkpp -t)
该命令可能包含在userinit.sh
文件中。
Pi Platter 包括两个带可配置 ADC 电压参考的模拟输入。这些可用于获取额外的状态信息,例如使用模拟温度传感器的温度。
例如,TMP36 芯片可在 5V 电压下工作,并在 −40°C 至 +125°C 范围内输出与温度成正比的电压。它在 0°C 时有 500 mV (0.5V) 偏移,每 °C 变化 10mV(该器件在 25°C 时读数为 750 mV)。将 Pi Platter ADC 参考配置为 1.024 伏允许在 −40°C 至 +52.4°C 范围内进行 10 位 ADC 测量,并使将 ADC 读数转换为温度非常容易。
Temp in °C = ([ADC reading] - 500) / 10
其中是可以使用ADC 通道 1 或ADC 通道 2[ADC reading]
命令从 Pi Platter 获得的 10 位。talkpp -c A1
talkpp -c A2
有关使用 ADC 输入的信息可以在 Pi Platter 用户手册中找到。可以对其进行修改以读取和显示来自模拟输入的温度。monitor_1
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !