在树莓派上扩展motionEyeOS,以支持云台伺服,备用电池和屏幕状态显示。
此项目需要材料:
硬件组成部分
· 树莓派相机模块
· Adafruit树莓派zero W相机电缆
· 8 GB MicroSD闪存卡
· Pimoroni Pan-Tilt帽子
· 太阳能π盘
· 2500 mA 3.7V锂电池
· 5.25V 3A USB电源适配器
· 3pin 2.54mm间距直角接头
· 4-40 6.35毫米尼龙公母对接
软件应用程序和在线服务
· Motioneyeos发行的树莓派zero版
· 其他脚本
· 用于树莓派盘上的通信工具
motionEyeOS是完整的Linux发行版,将树莓派零变成了功能强大的无线网络摄像头。他提供了详细的安装和配置说明,这里引用了一些。这些配置说明了如何使用我设计的带有树莓派的小工具太阳能π盘,通过备用电池,云台伺服器和状态信息显示来扩展motionEyeOS的功能。
使用motionEyeOS发行版中内置的扩展功能,安装很简单。旋转/倾斜控制以及状态显示可在Web界面中显示电池和充电状态。
构建此网络摄像头包括本自述文件中描述的以下步骤。
获取必要的硬件
组装相机
将motionEyeOS发行版加载到Micro SD卡上
为您的wifi配置motionEyeOS并开始运行
从我的github存储库添加文件以启用新功能
试用新摄像头
我鼓励您阅读位于文档目录中的树莓派磁盘手册以及motionEyeOS Wiki中的完整文档。
硬件组件
我使用手头上的组件来构建单元。您当然可以替换某些组件,例如备用电池和云台组件。
外壳
在此示例中,我用激光切割了两件式装配体,但是根据您的应用,您可能需要不同类型的外壳。这两块都可以切成2mm厚的丙烯酸小块(200mm x 200mm)。
硬件组装
组装很简单。树莓派Zero使用随附的硬件安装在树莓派磁盘的顶部。该组件使用附加的支脚以堆叠的方式安装在机柜中。
云台伺服和备用组成模块
我用一块双面胶带按住了电池。
下图显示了与树莓派磁盘的连接。检查伺服连接以确保它们匹配。我见过的大多数伺服器都使用棕红色橙色电缆作为GND-5V-PWM。错误连接它们可能会损坏它们或树莓派盘上。
在树莓派上为伺服器安装3pin头
motionEyeOS安装,在安装过程中连接显示器和USB键盘可能会有所帮助。
安装motionEyeOS
从github存储库下载适用于树莓派的motionEyeOS(A,B,A +,B +,计算模块,零和零W模型)。我使用的版本为20190427,并保留了副本。如果您遇到当前版本的问题,请与我联系,我可以安排将其转发给您
从存档中提取映像,然后按照Wiki中所述将OS映像写入micro SD卡。
在尝试引导之前,按照Wiki中所述配置系统以访问您的wifi。如果需要,您也可以在引导后从键盘/显示器执行此操作。
如果需要,请使用静态IP地址配置系统。否则,您将不得不使用键盘/显示器或Fing之类的外部应用程序来确定树莓派接收的DHCP提供的IP地址。
引导运动
卸下micro SD卡并放入树莓派。将树莓派磁盘连接到电池和USB电源。然后,按下树莓派磁盘上的电源按钮2秒钟,直到看到绿色电源LED指示灯亮起,为系统通电。初始启动可能需要几分钟,因为motionEyeOS会对其进行自我配置。如果您在树莓派上连接了显示器,则可以看到进度。系统启动并启动运动后,您应该可以通过将浏览器指向树莓派的IP地址来查看网络摄像头。
树莓派磁盘软件安装
motionEyeOS发行版创建一个分区/ data,用于存储持久性更改。它是在第一次启动时创建的。我们手动将其他文件放在此分区(/ data / etc)中。
在github脚本目录中找到的五个脚本使用motionEyeOS动作按钮功能来允许控制伺服器并在Web界面中显示来自树莓派磁盘的信息。
在我的github存储库中也找到了预构建的talkpp二进制文件,脚本使用它们来与树莓派磁盘通信。
安装文件
talkpp二进制文件和五个脚本文件可以使用scp或通过USB记忆棒轻松复制到/ data / etc目录。
使用scp
将文件下载到本地计算机,然后从包含文件的目录中的外壳程序执行以下命令。您将在Windows计算机上使用WinSCP之类的程序。将您树莓派的IP地址放在[IP地址]字段中。
请注意,默认情况下,motionEyeOS没有密码。您可以并且应该使用Web界面添加密码。
使用USB记忆棒
在计算机上将文件以FAT格式复制到USB记忆棒中。
弹出存储棒,然后将其插入树莓派磁盘USB端口之一。motionEyeOS将自动将其安装在/ data / media目录中。
通过ssh或使用键盘/显示器登录到树莓派,然后从bash shell提示符将文件从记忆棒复制到系统。
确保文件权限
确保文件具有正确的linux文件权限,以便motionEyeOS可以执行它们。在motionEyeOS Shell提示符下,键入以下内容。
重新启动并验证操作
从外壳程序提示符下键入reboot或使用Web界面重新启动系统。重新启动后,您应该能够通过motionEyeOS Web界面控制伺服器并查看树莓派磁盘的状态。单击从相机传输视频图像,应使motionEyeOS在图像上添加一个覆盖图,其中包含左下角的树莓派磁盘和右下角的四个平移/倾斜按钮的状态信息。
注意事项:
伺服范围
平移/倾斜脚本具有用于设置要发送到伺服器的最小和最大PWM值的常数。这些是我发现为系统工作的价值。但是,如果您发现伺服器达到了其运动范围的末端,则可能最终需要对其进行修改(当马达试图将伺服器推至极限位置时,它们会发出刺耳的声音并消耗大量电流)。这可能会损坏伺服器,并可能吸收太多电流,从而导致树莓派磁盘关闭。
例如,left_1脚本控制向左平移。它通过增加写入树莓派磁盘的PWM值来控制PWM 1上的声相伺服来实现此目的。PWM值的范围为0-255,但此脚本使用常数PWM_MAX(在我的版本中为250)限制了最大PWM值。如果在向左平移时发现伺服器达到其范围的末端,则应减小此值。要将最大值更改为240,请编辑left_1脚本并更改常数。
同样,您可以在down_1中减小PWM_MAX常数,而在right_1和up_1中增大PWM_MIN常数,以进一步限制伺服行程。
电源说明
我的系统在运行但不给电池充电时,平均需要USB电源提供430-450 mA的电流。随着伺服器的移动,它需要更多的电流,并且在给电池充电时需要额外的750 mA电流。USB电源适配器应能够提供至少2A的电流。
当输入电源可用时,树莓派磁盘会通过USB电源适配器为系统供电。它使用大约4.7伏的电压阈值从USB电源切换到电池。当USB输入电压下降时,它还减少了流向电池的充电电流。由于许多USB适配器电缆使用细线,并且系统消耗的电流可能超过1 A,因此树莓派磁盘看到的电压可能大大低于USB适配器的输出。因此,我建议使用输出5.1到5.25伏的适配器。
如果您看到AC PWR状态显示闪烁,则树莓派磁盘看到的USB电压可能太低,并且不断在USB和电池电源之间切换。
用电池操作时,系统将从电池中汲取700 mA以上的电流。2000-6000 mA的电池容量与该系统非常匹配,这取决于该系统仅依靠电池电源即可运行的时间。
关断电源
在修改后的userinit.sh文件中执行的树莓派磁盘命令C7 = 1将其配置为在由于电池电量不足而关闭后自动恢复电源系统中。因此,如果您通过按住树莓派磁盘电源按钮几秒钟来关闭系统电源(因为电池电压高于重新启动阈值),系统也将立即重新启动并重新启动。要关闭电源,请先登录系统并执行以下命令以禁用自动重启功能,然后再使用树莓派磁盘电源按钮关闭系统电源。
可选功能
使树莓派充当WiFi接入点
motionEyeOS软件可以配置为创建自己的网络,充当WiFi接入点。这对于没有WiFi的区域中的远程延时摄影或安全系统很有用。初始安装/启动后,必须将系统配置为WiFi接入点。可以在WiFi接入点找到详细说明。
由于某些原因,我不了解启用此模式会禁用ssh访问,因此在执行这些步骤之前完成附加安装非常重要。
树莓派磁盘RTC
树莓派磁盘包含一个由电池供电的实时时钟,可用于在无法访问网络时间服务器的情况下设置Pi的系统时钟。
要从树莓派的系统时钟设置树莓派磁盘RTC(假设它具有正确的时间和日期):
要通过树莓派磁盘RTC设置树莓派的系统时钟,请执行以下操作:
此命令可能包含在userinit.sh文件中。
使用树莓派磁盘模拟输入进行温度测量
树莓派磁盘包括两个带可配置ADC参考电压的模拟输入。这些可用于获取其他状态信息,例如使用模拟温度传感器的温度。
例如,TMP36芯片可在5V的电压下工作,并输出与-40°C至+ 125°C范围内的温度成正比的电压。它在0°C时具有500 mV(0.5V)的偏移量,每°C的变化量为10mV(该器件在25°C时的读数为750 mV)。通过将树莓派磁盘ADC参考电压配置为1.024伏,可以在−40°C至+ 52.4°C的温度范围内进行10位ADC测量,从而非常轻松地将ADC读数转换为温度。
温度(°C)=([ADC读数]-500)/ 10
其中[ADC读数]是可以通过使用树莓派通道针对ADC通道1的talkpp -c A1或ADC通道2的talkpp -c A2从树莓派磁盘获得的10位。
有关使用ADC输入的信息,请参见树莓派磁盘用户手册。可以修改monitor_1以读取和显示来自模拟输入的温度。