问题标签 [dmx512]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1453 浏览

raspberry-pi - 树莓派扩展板上的 RS485 总线到 DMX 512 协议

对于我的论文,我需要更改 LED 灯条的亮度和颜色。在我的情况下,我必须使用带有树莓派扩展板的树莓派,因为该板支持 RS485 总线系统。我需要将 RS485 总线重新编程为 DMX512 协议。问题是我不知道该怎么做。有人可以帮帮我吗?

0 投票
1 回答
1472 浏览

c - 以字节数组的形式访问结构

我目前正在重写一个程序来处理使用RDM 协议通过串行连接接收到的数据,每个数据包都由 UART 接收,并且具有特定的结构,但长度可能会有所不同,下面是一个数据包结构示例,假设数据包中的字节数为n(这可能会根据数据包的内容而改变)

我想要做的是在我的 C 代码中定义一个结构,该结构定义了各种参数,但能够从 UART 读取和写入结构的字节,就好像结构只是 uint8_t 的数组一样。我的问题是我已经读过结构可能并不总是存储在连续的内存部分中,因此&RDMPacket1通过结构获取和递增可能最终导致数据不在正确的位置。

我的另一个问题是,如果我有一个数组来存储结构内最大可能长度(220 字节)的数据包数据,那么数据包末尾的校验和将被写入错误的位置。可以使用哪些方法来接收数据并将其放入结构中?

示例数据包定义(从标准缩短)

这是一个保存最大可能长度的数据包的结构示例:

0 投票
1 回答
954 浏览

c# - 基于 System.Drawing.Color 对象的颜色过渡

目前我正在为 C# .NET 开发 DMX 库。目前,我坚持基于“开始颜色”和“结束颜色”创建颜色过渡。

该函数有 3 个参数,第一个是 DMXController 对象(基本上是扩展的 SerialPort),第二个是 startColor,第三个是 endColor。

整个 trahsition 将在单独的线程中处理,因此应用程序不会挂起。

DMX 客户端只是一个 RGB LED 控制器,因此它接受字面意义上的 RGB 值(例如 Red = 255, 0, 0)

我见过一些固定颜色的例子,但对于这个项目,任何颜色都可以使用。

如果我是正确的,最大步数将是 255 步。

完成这项工作的最有效方法是什么?循环中的每一步都将发送到 DMXController,因此它必须是某种 for-next 或 while 循环,并且每一步都将被发送。

到目前为止,这是我的代码:

如果在开始转换之前从颜色对象中提取 r、g 和 b 值更快,我将实现它。

0 投票
1 回答
222 浏览

arduino - DMX Arduino - 关闭 Martin Exterior 600 灯具上的灯

我制作了一个基于网络的灯光控制器,一切都运行良好。但是我在关闭其中一个装置时遇到了问题。

要关闭灯,必须在通道 17 上发送值 250 至少 5 秒。这就是棘手的地方,我该怎么做?

我正在使用来自http://www.mathertel.de/Arduino/DMXSerial.aspx的 DMXSerial 库,但它缺少文档。

这是代码的一小部分。

欢迎任何帮助。

0 投票
1 回答
1227 浏览

c# - Enttec DMX USB PRO Mk2 - 发送单个 DMX 数据包

我目前正在作为一名工程实习生从事一个小型项目,我将继续开发 DMX 工具,以帮助在我的工作场所测试智能灯具。

该项目是用 C# 编写的,并使用Ftdichip 网站FTD2XX_NET.dll提供的托管包装器以及使用 Enttec DMX USB PRO Mk2 作为 PC 和灯具之间的接口。

DMX 工具的重点是能够发送具有不同参数的 DMX 数据包,例如发送具有用户可设置的起始代码或数据包大小的 DMX,以及可定制的端口设置(例如不同的波特率),以查看给定的灯具将如何出于测试目的使用非标准设置运行。

我已经部分成功地实现了上述功能,现在我已经碰壁了......

DMX 工具需要能够以两种不同的模式运行:

连续模式和单包模式。

如前所述,我能够成功发送给定的 DMX 数据包,但只能连续发送。我已经搜索了网络最深和最黑暗的角落,以找到有关 Enttec DMX USB PRO Mk2 内部实际工作原理以及如何停止这种看似连续的数据传输的解释,但无济于事。

这导致了真正的问题:

Enttec DMX USB PRO Mk2 如何处理 USB-RS232 串行连接?是否可以以编程方式绕过这种连续数据传输以发送单个DMX 数据包,如果可以,如何?

0 投票
0 回答
328 浏览

c# - 如何从平面图的 X 和 Y 获得 DMX 聚光灯的 PAN 和 TILT(摄像机视图)

语境

我将一些 DMX 聚光灯固定在离地面 12 米的圆形平台上。相机固定在这个平台的中心(大约)。相机应该拍摄地面以寻找和跟踪一些目标。这台相机是静态的,给我一个带有 X/Y 笛卡尔坐标系的 2D 平面图。当我找到一个目标时,我需要把焦点放在它上面。

插图

场景 俯视图 俯视图 http://img15.hostingpics.net/pics/635699691.png 场景 侧视图 侧视图 http://img15.hostingpics.net/pics/275272232.png

问题

要使用聚光灯照亮目标,我需要找到与该目标的 X/Y 位置相对应的平移和倾斜角度。这些聚光灯没有特定的方向,但我可以用相机找到它在地面上的 X/Y 投影点。

一些数据

我在网上找到了一些公式:

或者

但我不知道经过不确定的测试后是否正确..

我不知道我是否有相应的 x、y 和 z 值。

我可以在我的 2D 计划中找到您想要的一切:点、矢量、聚光灯的天顶点,我也可以将聚光灯定位在您想要的任何位置。我只是找不到特定 X/Y 点(相机视图中的目标)的相应平移和倾斜,我不知道如何找到它。

我用 C# 开发。

0 投票
3 回答
1937 浏览

c - RGB 转 RGB 加 AMBER

我想从更高的系统控制 DMX 灯。我只收到 0-255 的 RGB 值。DMX 灯有 RED、GREEN、BLUE 和 AMBER 灯 (0-255)。如何将 RGB 转换为 RGB + Amber?

我尝试手动调整灯光,但转换表不适合我,因为我的内存有限。谢谢。R

0 投票
1 回答
295 浏览

c# - 如何在 DMX 控制器中预缓冲 ArtNet3 数据包?

我正在创建一个库,旨在通过本地网络将 UDP 数据包发送到一串 100 个与 ArtNet3 兼容的 DMX 控制器。

我已成功发送和渲染 ArtDmx 数据包。现在我正在尝试预先缓冲 DMX 控制器中的数据以帮助解决网络延迟问题。文档说要发送一个 ArtSync 数据包来告诉控制器渲染以前收到的 ArtDmx 数据包,这就是我已经实现的。我还在 ArtDmx 数据包之前发送一个 ArtSync 数据包,以告诉控制器缓冲数据而不是渲染它们。这些 ArtDmx 数据包的序列属性填充了从 1 开始的每个 Universe/控制器的递增值。

我认为问题在于 OpCode 没有被识别。当我使用 Wireshark 查看流量时,ArtDmx 数据包的操作码被识别为“ArtDmx (0x5000)”。另一方面,ArtSync 数据包显示为“未知 (0x5200)”,即使该值与文档匹配。有什么我想念的吗?这是文档

0 投票
1 回答
1006 浏览

c - 使用 DMXSerial Arduino 库发送和接收 DMX-512

我目前正在使用为 arduino 编写的 DMXSerial 库。可以使用这个库,这取决于它是如何初始化为发送器或发送器的。

发射器应按如下方式初始化:DMXSerial.init(DMXController);

而接收器的初始化如下: DMXSerial.init(DMXReceiver);

我现在想创建一个接收和控制的实现。有没有人知道如何在不遗漏某些重要中断或时序约束的情况下做到这一点?

0 投票
1 回答
8156 浏览

parsing - Arduino Serial read and parse HEX

I'm trying to create an Arduino interface for the DMX software Freestyler, but struggling to parse the data received due to knowing the encoding of the data received.

The image bellow is a serial monitor I've attached to Freestyler to see the incoming data, the format is very simple 3 bytes per channel. 1st byte is the startOfMessage, 2nd byte is the channel number, 3rd byte is the channel value.

The serial monitor displays as hexadecimal and decimal.

For testing, I'm trying to switch on an led when the startOfmessage (which is a constant) is correctly parsed.

Could anyone set me in the right direction?

Serial Monitor Snap Shot