将树莓派变成便携式流媒体摄像头

还没有读者喜欢这个。
open hardware

Opensource.com

上个月我决定开始一个新的 树莓派 项目,因为距离我上次的几个项目已经有一段时间了(参见:圣诞灯音乐盒)。

几个月以来,我一直想玩玩树莓派触摸屏,并且一直想买 Pi Camera。我继续从 Adafruit 订购了这两样东西。(我选择了 3.5 英寸 PiTFT 触摸屏。)

收到货后,我开始在网上阅读有关如何安装它们的资料。PiTFT 需要你稍微自定义你的 Raspbian 安装,但是 说明非常简单,我只遇到了几个问题。首先,我没有将屏幕充分地安装到 GPIO 引脚上,它没有打开。另一个问题有点复杂。如果我使用 lightdm 自动登录到 LXDE,屏幕会在启动屏幕后立即变黑。如果我只登录到控制台(即,禁用 lightdm),一切都会正常工作。

最终的解决方法是告诉 Xorg 使用 /dev/fb1 作为显示设备,要做到这一点,你应该执行以下操作

安装帧缓冲驱动程序

sudo apt-get install xserver-xorg-video-fbdev

创建文件:/usr/share/X11/xorg.conf.d/99-fbdev.conf

Section "Device"(设备部分)
Identifier "myfb"(标识符 "myfb")
Driver "fbdev"(驱动程序 "fbdev")
Option "fbdev" "/dev/fb1" EndSection(选项 "fbdev" "/dev/fb1" 结束部分)

(来源)

这应该允许 lightdm 启动并在你的树莓派上自动登录到 Xorg,如下图所示。

照片由 Anderson Silva 提供。 CC BY-SA 4.0

总的来说,PiTFT 对于这个价格来说已经足够好了,但我发现触摸屏的灵敏度不太理想。我还没有尝试看看是否有办法调整它,但我最终会这样做。

要安装 PiCam,我只是在 YouTube 上搜索了一个教程,并确保在 raspi-config CLI 程序上启用了它。和触摸屏一样,我觉得我第一次没有正确插入摄像头,所以我不得不稍微调整一下排线。我做的另一件事(我不记得是否在任何说明中提到过)是通过 raspi-config 启用 SPI

下图显示了 PiCam 正在运行。

照片由 Anderson Silva 提供。 CC BY-SA 4.0

树莓派配备了一些工具,允许你与摄像头互动。请在 RaspberryPi.org 上查看它们。

CLI 工具很好,但我想更进一步。我想能够带着 Pi 四处走动,并可能从 PiCam 实时流式传输视频。(注意:这不是我的原创想法,其他人以前也这样做过,我只是也想这样做。)

下一步是尝试找到一些比 CLI 命令更用户友好的东西,让我进行流式传输。目前,我选择了 Pi Cam Web Interface 项目。

同样,说明非常简单,尽管使用 Apache 作为 Web 服务器比 Ngnix 效果更好。考虑到内存有限,并且 Ngnix 以其小内存占用而闻名,我肯定想在不久的将来再次尝试使用 Ngnix 重新安装它。还值得提醒大家,在安装 Pi Cam Web Interface 后,你已将其设置为自动启动。你仍然必须通过 RPi_Cam_Web_Interface_Installer.sh 启动摄像头。我相信有一种方法也可以让摄像头自动启动,我只是还没有花时间去做。

在 Pi Cam Web Interface 工作的情况下,你可以通过在网络内的浏览器(或者如果是在 Pi 本地,则在本地主机上)访问树莓派的 IP/URL,轻松查看来自 Pi Cam 的实时流。

最后一块拼图是在 Pi 上设置一种方式,我可以通过触摸屏启动本地浏览器,以便我可以开始观看视频。我决定在 Pi 上安装 Chromium,并在 kiosk 模式下针对本地主机运行它。效果非常好。

照片由 Anderson Silva 提供。 CC BY-SA 4.0

最终产品。安装在树莓派 2 和 PiTFT 屏幕上的 PiCam 在电池供电下运行。

哦,当然还有电池。我正在使用 Anker 12000mah 外部电池,它非常大而且重。我认为为了演示目的,可能值得在未来某个时候购买一个更小的电池,以展示这个项目可以真正做到多么紧凑。你在我的照片中看到的盒子只是你用 Canakit 背包时树莓派 2 附带的标准盒子。

照片由 Anderson Silva 提供。 CC BY-SA 4.0

这就是到目前为止的项目!这非常有趣,并且我学到了更多关于树莓派功能的知识。关于这个特定项目,我仍然有很多想改进的地方,包括

  • 从 Pi Cam Web Interface 中隐藏“重启/关机”服务器,这样我就可以与朋友分享直播流,而无需担心他们会恶意破坏服务器。
  • 使摄像头在重启后在 Pi Cam Web Interface 下自动启动,而不是像我现在这样手动启动。
  • 自动在 Kiosk 模式下启动 Chromium。(现在你必须点击一个图标)。
  • 可能更短的电缆和更小的电池。
  • 一些内存调整:使用 Ngnix,使用 raspi-config 调整 RAM 使用量,可能杀死其他可能未使用的进程等。

照片由 Anderson Silva 提供。 CC BY-SA 4.0

最后一个有点不相关的想法:我对 PiTFT 产生兴趣是因为我想能够在没有网络连接或“普通”显示器的情况下启动和停止我的圣诞灯光秀。鉴于此 PiTFT 的连接器插在整个 GPIO 端口上,我将不得不弄清楚如何映射 PiTFT 工作所需的引脚,同时将其他引脚用于灯光秀,但这将是未来项目的主题。

标签
User profile image.
Anderson 在 1996 年由他的叔叔介绍接触了 Linux。在 2000 年代初期,他从开发人员转型为系统管理员。今天,Anderson 领导红帽信息安全事件响应团队。他也是 Fedora 软件包的活跃维护者。

7 条评论

不错!实际上我已经考虑过类似的东西很久了。我是“那些人”之一,不喜欢背对着任何人,所以当我搬到新大楼并被安排到一个小隔间时,我总是担心有人会走到我身后。我带了一面小镜子来帮助解决这个问题,但认为构建一个 RPi “镜子”会非常酷。感谢你的提示,最重要的是,感谢你的激励!

我已经扩展了这个项目,甚至在 Pi 上安装了扬声器,我可以留意我的狗,并且可以远程播放一个 ogg 文件,对它“喊”着让它从沙发上下来 :-) 我将在以后的文章中写到这一点。:-)

回复 作者 BC

看看你是否可以写一篇有趣的帖子,关于在 10 种不同的有趣方式中使用 Pi 之类的。可能是孩子们周日下午的好活动。:)

回复 作者 ansilva

很棒的项目。我正在做一个类似的项目,但不幸的是我没有时间完成它。你为什么不为你所做的事情添加流媒体功能呢?当在 PiTFT 上观看视频时,使用 UV4L,你可以选择性地将音频和视频流式传输到 Jitsi Meet Web 会议,例如,或者传输到另一个“开箱即用”的对等端。也支持双向音频,这意味着你可以通过连接到 Rpi 的耳机收听其他人。这会非常有趣。此外,这一切都是通过 WebRTC 完成的,因此无需配置。UV4L:http://linux-projects.org

© . All rights reserved.