1 个稳定版本
1.0.0 | 2024年5月30日 |
---|
#504 在 硬件支持
15KB
199 行
Prusacam
这是一个简单的守护程序,会定期从本地网络摄像头抓取图像并将其上传到Prusa Connect。
如果在Raspberry PI上运行,它支持连接开关/切换和LED,可以通过开关(LED在上传图像时点亮,关闭时熄灭)启用摄像头上传。
功能
支持从多个网络摄像头定期抓取图像并上传到Prusa Connect。
支持将开关或切换连接到Raspberry Pi GPIO以控制摄像头上传的启用/禁用。
支持将LED连接到Raspberry Pi GPIO作为图像上传状态的指示器。
支持通过信号开关摄像头。
目前仅支持Linux。
入门
构建
安装rust并运行
cargo build --bin prusacam
要为旧款Raspberry Pi构建二进制文件,使用以下命令安装"cross":
cargo install cross
然后使用以下命令构建:
cross build --target arm-unknown-linux-gnueabihf -r --bin prusacam
GPIO设置
GPIO引脚是可配置的,但对我来说GPIO17和GPIO18是有效的。
警告:乱搞GPIO引脚可能会损坏您的pi,对此我不负责。
开关
将一个开关或切换连接到GPIO17,另一个连接到地。
GPIO17将被设置为上拉,所以当它与地短路时,prusacam将抓取并上传图像。
LED
将LED的正极连接到GPIO18,将负极连接到330欧姆电阻,然后将电阻连接到地。
配置
必须在当前工作目录中存在config.yml文件,prusacam才能启动。此配置文件控制所有摄像头和密钥。
config.yml应该看起来像这样
interval: 30 # Number of seconds between uploading.
gpio_switch: 17 # GPIO input pin for the switch/toggle.
gpio_led: 18 # GPIO output pin for the LED.
cameras: # An array of all the cameras, any number are supported and they'll be processed one at a time.
-
name: "My camera 0" # Camera name (what will appear in Prusa Connect)
device: /dev/video0 # Camera device
token: Camera 0's token # Camera's prusa connect token
fingerprint: Fingerprint - between 16 and 64 characters # Camera's fingerprint, just set it to some random characters (but at least 16 of them)
resolutionx: 1920 # The width of the image you want to capture (must be supported by the camera)
resolutiony: 1080 # The height of the image you want to capture (must be supported by the camera)
安装
prusacam二进制文件可以直接执行。
执行程序
nohup ./prusacam &
从命令行切换摄像头开关
prusacam
会监听信号USR1作为摄像头切换。
只需运行:killall prusacam -USR1
或kill $PID -USR1
当物理开关连接并设置后,两个开关都像三刀开关一样工作。
作者
David Pascoe-Deslauriers @spotzero
许可
本软件根据Apache License 2.0许可,请参阅LICENSE.txt
依赖项
~11MB
~201K SLoC