基于网络的移动应用程序,以便选择显示器中显示的视频或颜色

发布时间:2022-10-9 阅读量:586 来源: 我爱方案网整理 发布人: Aurora

这个项目使用的一个定制的天花板屏幕,能够使用 Raspberry Pi 和基于 Web GUI 播放视频、颜色选择器和色温。  

 

概述

 

该项目包括一个由 4,661 个由多个 5V 电源供电的 NeoPixel LED10 Fadecandy NeoPixel 驱动板和一个 Raspberry Pi 3 Model B+ 组成的天花板支架。这款 LED 吊装能够播放视频,并显示颜色选择器上选择的颜色。开发了一个基于网络的移动应用程序,以便用户可以选择要在天花板安装显示器中显示的视频或颜色。数据通过 WiFi 从用户浏览器发送到 LED 吊装支架,然后再发送到托管 ROSWWW 服务器的 Raspberry pi。我们在这个项目中使用了 ROS 框架来管理多个节点并在 Raspberry Pi Web 应用程序之间建立通信。  

 

技术规格

 

成分  

 

树莓派 3 型号 B+ - x 1

 

Fadecandy NeoPixel 驱动板 – x 10

 

NeoPixel LED 灯条 (WS2812b) - 160 米(约)

 

Multi TT USB 驱动程序 – x 4

 

5V 电源 – x 5

 

2芯线——1200米(电源线)

 

Cat-6 电缆 – 500 米(数据线)

 

胶合木底座 - 直径 2.9

 

电容器 – 1000µf 6.3V

 

终端连接器 – 85 个。

 

木板 – 6 块。

 

母线 – 36 个。

 

3 芯线 – 5

 

3 针插头 – 3 个。

 

电缆扎带 - 500

 

工具  

 

优质烙铁

 

焊锡铅(无铅)

 

焊芯

 

剥线机

 

钢丝钳

 

螺丝刀

 

测试仪

 

切割播放器

 

数控机床

 

电钻机

 

胶带

 

743单组份瞬间粘接胶

 

弹性胶水

 

真空吸尘器

 

木工工具(锯、锉)

 

弹簧线

 

外科口罩和手套

 

软件  

 

树莓派 stretch

 

ROS框架

 

Open CV

 

Fadecandy 服务器

 

GL服务器

 

计划

 

我们的项目包括一个胶合木框架,呈圆形,靠近框架底部有一个空心圆。框架的设计方式使其适合天花板上的巴黎石膏层。使用大型安装螺钉直接进入混凝土层进行安装。  

 

我们使用了 30 个 LED/m 的灵活 NeoPixel 灯条。由于框架的形状是圆形的,因此放置一整条 LED 并不是一个可行的选择。我们应用了一些简单的数学公式来生成一个文件,该文件将帮助我们确定每次切割条带所需的 LED 数量。  

 

最初的挑战  

 

映射 LED,在播放视频或运行颜色选择器时实现接近 85 x 85 的分辨率。圆直径为 2.9 m,因此我们最多可以容纳 85 LED

 

根据框架的设计,找出增加和减少条带长度的解决方案,并将数据线和电源线拉到正确的点。

 

将电源线分开到 LED 灯条,以便均匀分配电源,而不会造成过载或 LED 闪烁。

 

要找到这些问题的解决方案,了解框架的布局非常重要。  

 

考虑一个 85x85 的图形,圆的中心位于网格 (0, 42.5) 上。要将 LED 安装在框架的圆形图案中,我们必须在某些边缘添加和移除 LED,这是我们面临的第一个挑战。  

 

来解决这个问题。我们使用 python 设计了一个文本文件。该文本文件由 (x, y) 坐标组成,有助于放置 LED。为了映射 LED 以用于视频播放和颜色选择,我们使用相同的文本文件使用 (x, y) 坐标生成元组,并将这些值存储在 pickle 文件中。  

 

因为,我们使用 Fadecandy 驱动程序来完成这个项目。每个 Fadecandy 最多可支持 512 LED,这意味着在单个 Fadecandy 驱动器的每个端口上最多可支持 64 LED。但是,由于 raspberry pi 造成了每个通道全部 64 LED 的问题,我们只使用了 90% 的吞吐量,因此我们决定将每个端口的 LED 数量保持在 60 个左右。  

 

由于其独特的设计,LED灯带的起点在我们项目的不同地方有所不同。因此,我们生成了一个文件作为标记系统,以便我们跟踪我们将为 LED 拉电源线和数据线的点。  

 

代码将附在本文下方

 

我们在这个项目中使用了 4,661 个 LED。为它们供电尤其具有挑战性。在电源波动、低电压期间,LED 有可能劣化,因此我们在为 LED 供电时必须小心并采取预防措施。我们使用了 55V 60A 电源。我们的目标是让每个电源支持大约 950 LED。有关这方面的更多信息将在电源拓扑部分简要介绍。  

 

数据拓扑  

  

基于网络的移动应用程序,以便选择显示器中显示的视频或颜色

 

在我们的项目中,我们使用 2 个多 TT USB 10 Fadecandy 驱动程序连接到 Raspberry PI 3 B+。每个 Multi-TT 最多可支持 4 Fadecandy 驱动程序,另外 2 Fadecandy 驱动程序直接连接到 Raspberry PITurbo - 4 端口 USB 集线器专为多个设备之间的高效连接而设计。它使用 mtt(多事务翻译技术),保证每个端口 12 mbps 的速度。这使所有 4 个设备能够同时以 100% 的效率运行。Fadecandy 的每个端口传输 12mbps 至关重要,因为我们在 Fadecandy 中播放视频,高传输速率对我们来说很重要。  

 

在 Raspberry PI 中,我们使用 ROS 框架的 ROSWWWW 将服务器托管在本地网络中。我们创建了一个响应式 HTML 页面,为其提供移动 Web 应用程序 UX。我们使用网页中的 ROSJS 库与树莓派中的 ROS 服务器进行通信。因为,ROSJS 能够通过套接字协议发送消息。我们利用这个优势将消息从网页(浏览器)发送到 Raspberry pi。树莓派根据发送的socket消息发送Fadecandy指令来执行。下面将解释用于执行 Fadecandy 操作的代码片段。  


电源拓扑    

 

基于网络的移动应用程序,以便选择显示器中显示的视频或颜色

 

将功率均匀分配到多个 LED 灯条,包含 4,661 LED。我们使用了 5 个电源,每个电源包含大约 950 LED。每个电源由6个母线、3+Ve3-Ve组成。从我们小心地连接到母线的 LED 灯条上拉出的电源线。  

 

我们还创建了一个公共接地来连接 Fadecandy 和电源的接地。

    

基于网络的移动应用程序,以便选择显示器中显示的视频或颜色

 

视频功能.py:  

 

import opc

 

import cv2

 

import pickle

 

From PIL import Image

 

def video_function(video_name):

 

pix = list()

 

# Locate and add the video file

 

vidcap = cv2.VideoCapture(video_name)

 

success,image = vidcap.read()

 

success = True

 

client = opc.Client('127.0.0.1:7890')

 

#ADDED MAPPED PIXEL

 

mapped_pixel = list()

 

with open('mapped_pixel.pickle', 'rb') as handle:

 

mapped_pixel = pickle.load(handle)

 

Try:

 

while success:

 

success,image = vidcap.read()

image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB)

 

pix = []

 

im = Image.fromarray(image)

 

im = im.resize((85,85), Image.ANTIALIAS)

 

# Only want RGB, not RGBA

 

for i in range(0,4661):

 

pix.append(im.getpixel((mapped_pixel[i][0],mapped_pixel[i][1]))[:3]) 

 

client.put_pixels(pix)

 

time.sleep(1/60)         

 

except:

 

print "Video terminated unexpectedly!!"

 

关于我爱方案网

 

我爱方案网是一个电子方案开发供应链平台,提供从找方案到研发采购的全链条服务。找方案,上我爱方案网!在方案超市找到合适的方案就可以直接买,没有找到就到快包定制开发。我爱方案网积累了一大批方案商和企业开发资源,能提供标准的模块和核心板以及定制开发服务,按要求交付PCBA、整机产品、软件或IoT系统。更多信息,敬请访问http://www.52solution.com


相关资讯
无源晶振YSX321SL应用于高精度HUD平视显示系统YXC3225

在现代汽车行业中,HUD平视显示系统正日益成为驾驶员的得力助手,为驾驶员提供实时导航、车辆信息和警示等功能,使驾驶更加安全和便捷。在HUD平视显示系统中,高精度的晶振是确保系统稳定运行的关键要素。YSX321SL是一款优质的3225无源晶振,拥有多项卓越特性,使其成为HUD平视显示系统的首选。

拥有卓越性能的高精度超薄低功耗心电贴—YSX211SL

随着医疗技术的进步,心电监护设备在日常生活和医疗领域中起到了至关重要的作用。而无源晶振 YSX211SL 作为一种先进的心电贴产品,以其独特的优势在市场上备受瞩目。

可编程晶振选型应该注意事项

对于可编程晶振选型的话,需要根据企业的需求选择。在选择可编程晶振的时候注重晶振外观、晶振的频率、晶振的输出模式、晶振的型号等等,这些都是要注意的,尤其是晶振的频率和晶振输出模式以及晶振的型号都是需要注意的。

性能高的服务器—宽电压有源晶振YSO110TR 25MHZ,多种精度选择支持±10PPM—±30PPM

在现代科技发展中,服务器扮演着越来越重要的角色,为各种应用提供强大的计算和数据存储能力。而高品质的服务器组件是确保服务器稳定运行的关键。YSO110TR宽电压有源晶振,作为服务器的重要组成部分,具备多项优势,成为业界必备的可靠之选。

差分晶振怎么测量

其实对于差分晶振怎么测量方式有很多种,主要还是要看自己选择什么样的方式了,因为选择不同的测量方式步骤和操作方式是不同的。关于差分晶振怎么测量的方式,小扬给大家详细的分享一些吧!