当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]在这个项目的第一个版本中,我创建了一个三脚架安装的立体3D相机,它通过HTTP传输立体视频流,这样它就可以在谷歌Cardboard这样的立体观看器上观看。在这个设置中,我使用了两台Raspberry Pi zero,每个都有自己的摄像头。

在这个项目的第一个版本中,我创建了一个三脚架安装的立体3D相机,它通过HTTP传输立体视频流,这样它就可以在谷歌Cardboard这样的立体观看器上观看。在这个设置中,我使用了两台Raspberry Pi zero,每个都有自己的摄像头。

在这个更新的项目中,我使用树莓派5,它有两个摄像头插槽,因此可以在单板上容纳两个摄像头。

代码也已更新,以利用新的PiCamera2 python库。版本1使用了PiCamera,因为最新的树莓派操作系统仍然没有python支持libcamera。更新后的代码支持两种设置-使用2板,2摄像头设置树莓派零或1板,2摄像头设置树莓派5。它还利用Javascript来防止屏幕自动锁定。

在这个项目中,我将主要关注Raspberry Pi 5的设置。您可以参考前面的项目了解Raspberry Pi Zero安装的具体细节,包括将它们安装在机箱上并共享电源轨,因此两者都可以通过单个电源适配器供电。

立体3D图像/视频试图复制我们亲眼所见的东西。你的双眼相距约2.5英寸或6厘米(60毫米)(也称为眼间距离)。因此,每只眼睛从略微不同的角度和角度看图像。大脑将这两个图像结合成一个无缝的图像,并利用这些信息来测量距离和深度。这也被称为双目视觉。

我们可以用一个3D立体摄像机来复制这个过程,用两个相距大致眼间距离的摄像机。这两幅图像(左图和右图)然后使用谷歌Cardboard等立体观看器分别呈现给每只眼睛。然后,大脑将这些图像结合起来,处理视角和角度的细微差异,从而产生深度感知,即3D图像!

在这个项目中,我用一个树莓派5和两个树莓派相机2s建立了一个立体3D相机,安置在树莓派3/4/5的ProtoStax外壳中。

我也使用ProtoStax立体3D相机套件树莓派相机- 60mm立体底座,它允许你安装两个Pi相机2坐落,你猜它相隔60mm -我们的眼间距离(也称为轴间距离或立体底座时,参考相机设置)!它还配备了一个三脚架安装件,使整个外壳三脚架安装。

我们将使用Python将来自两个摄像头的摄像头输出流式传输到基于左眼/右眼浏览器的复合视频流中。然后,您可以在手机上的浏览器上打开这个立体声视频流,并将其放置在谷歌Cardboard等立体观看器中,然后voilom !-我们有我们的3D立体流媒体相机和查看器!

现在,你可以给你的奶奶或奶奶带一个3D参观你的房子,而不必让他们爬楼梯或离开舒适的椅子,因为你去操作相机,让他们远程观看!

或者玩一些愚蠢的3D游戏,你可以让你的朋友或家人看到你通过谷歌Cardboard呈现的世界——转动相机,对准他们,看看他们在3D中看到自己时的反应!很迷糊了!

免责声明-晕动病患者在观看VR头显或立体相机时可能会感到有点恶心。如果你开始感到恶心,只要放松立体相机观看!

另一个免责声明-两个摄像机不是同步在这里,这个项目不是用于硬核立体视频使用。为此,您可以使用其他硬件,例如Arducam的同步立体相机HAT用于树莓派(或来自Arducam的其他类似产品)。ProtoStax外壳有足够的空间放置HAT,因此您可以升级项目以使用硬件同步摄像机。您还可以尝试使用软件技术来改进性能和同步。在“前进”一节中提到了如何改进这个项目。

好了,我们开始吧!

第一步:准备树莓派

如果您是从头开始,您需要首先为您的树莓派5配置SD卡和树莓派操作系统。Raspberry Pi Imager工具允许您在创建启动映像时提前进行一些配置。

由于我们将在无头设置中使用树莓派(未连接到显示器或电视),因此您需要在它们上启用SSH。我们还希望它们在启动时直接连接到无线网络。我们可以使用树莓派Imager工具设置提供WIFI网络名称和密码凭证。

一旦我们这样做了,我们可以做其余的设置稍后,在我们启动我们的立体流媒体相机硬件设置。我们可以SSH到Raspberry Pi,并完成其余的设置,包括获取源代码和运行程序。

步骤2:设置硬件

首先将树莓派5安装在树莓派5 / 4 / 3型号B/B+的ProtoStax机箱上。

接下来,安装树莓派相机的顶部板的ProtoStax立体3D相机套件树莓派相机。

将Pi相机安装到顶板上

连接相机线到树莓派5。或者,您可以在将相机安装到顶板之前将相机连接到树莓派5上!只要你觉得容易就行!

离以太网接口最近的摄像机槽位为camera 0。它旁边的插槽(靠近HDMI端口)是相机1。在我的设置中,我将右摄像头连接到槽0,将左摄像头连接到槽1。如果您交换了它们,只需适当地更新代码。

添加侧壁(包括一个/两个三脚架安装侧壁从ProtoStax立体3D相机套件树莓派相机),并关闭一切。

完成外壳与三脚架安装

这是最后完成立体相机设置,与附加的三脚架安装适配器板(这将完全取决于你有三脚架的类型!)。

步骤3:配置树莓派

使用最新的树莓派和树莓派操作系统,你不需要做很多额外的配置。之前,您需要使用raspi-config启用相机接口。现在,当摄像头连接到接口上时,它们会自动启用。

步骤4:配置软件

你可以从GitHub下载该软件。或者,您可以使用git安装它

该程序将通过一个简单的web服务器暴露相机的两个MJPG视频流,如:

(*将上面的raspberrypi5替换为您为pi选择的主机名)

该程序还有一个主页(index.html),将两个视频流显示为立体图像(并排),如

您可以打开手机浏览器上的链接(只需确保您的手机与树莓派在同一网络上),并将手机放在谷歌Cardboard(或类似的查看器)等3D立体查看器中,以便在您的查看器上获得3D立体流媒体相机。

因此,观众可以看到3D的一切。摄像机操作员可以四处移动,让观众从舒适的沙发上享受3D之旅!

第五步:调焦相机和其他技巧

为了获得最佳性能,您可以对焦树莓派相机2的镜头,以获得更清晰的图像。您可以使用树莓派相机的镜头调整工具来轻松调整焦点。

为了获得最佳的流媒体性能,请确保您的树莓派上没有运行太多其他程序或服务。如果您从SD卡图像开始,这应该不是问题。但是,如果您从已经配置的现有树莓派开始,请确保您已经停止并禁用了额外的服务,因此流媒体性能不会受到影响。

当您在手机上的浏览器上打开立体流链接时,最好隐藏工具栏,这样查看器中的无关元素就会最小化。您需要在查看器中横向调整手机,以便图像显示为单个平滑的3D图像(并且没有模糊的伪影)。

更新后的代码在这个项目也可以防止屏幕锁定踢在一段时间后,这将发生如果手机被放置在谷歌纸板查看器-只需点击“唤醒锁定被禁用”按钮启用它!当它被启用时,背景变为黑色。

代码

这个代码是基于Picamera库的Web视频流的高级配方,它开始将相机的视频流记录到缓冲区,然后通过http请求处理程序提供帧。它已经更新为在最新版本的树莓派操作系统上使用PiCamera2。web服务器在端口8000上启动。您可以使用raspberrypi5.local:8000/leftstream查看每个相机的每个单独的mjpg流。或raspberrypi5.local:8000/rightstream.mjpg

这个简单的web服务器将使用一些HTML和CSS将左右mjpg流配置为带有拆分视图的单个页面,并提供对主页请求的响应(raspberypi5)。本地:8000/或index.html页面(raspberrypi5.local:8000/index.html)。因此打开主页将提供一个立体视频流。

下面是用来格式化页面的HTML和CSS:

它利用了richtr的NoSleep.js javascript库来防止手机屏幕在一段时间不活动后自动锁定,这将发生在手机处于谷歌Cardboard Viewer中时。在版本1中,我建议你使用手机的设置关闭自动锁定功能。更新后的代码使其更方便,更易于使用。

代码也有另一个HTML/CSS设置为2摄像头,2 Pi零设置,结合流从左摄像头。本地和右凸轮。本地pi(更新名称以匹配您的设置)。

为了使代码在启动时自动运行,您需要将其作为服务运行。GitHub页面的README有关于如何做到这一点的说明,包括服务的配置文件。

展望未来:

和往常一样,我想在结束时谈谈如何用自己的补充来推进这个项目!一旦您熟悉了代码示例并理解了代码,尝试通过做更多的事情来扩展您的学习总是好的。以下是一些建议:

•在Pi上将python流程序作为服务运行,这样它就会在Pi启动时自动启动。GitHub链接有关于如何做到这一点的说明。

•我们目前使用MJPEG格式流媒体视频。使用MPEG1或其他可能提供更好性能的格式进行流式传输

•添加拍摄立体照片的功能——在树莓派的GPIO上添加一个按钮,并使用该按钮从两个相机中拍摄左右照片,并将它们拼接在一起,形成立体二人组

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭