首页 > 解决方案 > 将 LED 灯带映射到灯带长度和高度不同的矩阵

问题描述

我正在尝试解决 36 x 48 LED 矩阵,但 LED 灯条的长度为 64 LED。所以,我必须在矩阵周围缠绕 LED。然后我必须逐个处理每个条带。我想不出一种方法(除了手动映射数组)在 Python 中对这个数组进行建模。我没有很好地解释它,所以这里有一些视觉效果。

example data (where strip = height)
pixel_vals=
{strip_1:[[1] [2] [3] [4] ]   1 2 3 4
strip_2:[[1] [2] [3] [4] ]  = 1 2 3 4
strip_3:[[1] [2] [3] [4] ]}   1 2 3 4

vs how its actually setup (where strip != height) ▼▲◄►■
1 1 2 2   strip_1:[[1] [2] [3] [4] [5]]   ▼ ► ▼ ■
2 5 3 1 = strip_2:[[1] [2] [3] [4] [5]] = ▼ ■ ▼ ▲ (block represent end of a strip)
3 4 4 5   strip_3:[[1] [2]]               ► ▲ ► ■

标签: pythonalgorithmmatrixled

解决方案


提示:

从您神秘的描述中,我似乎推断您用三个条带(总共 192 个 LED)填充四列(高度 48),曲折。更具体地说,使用基于 0 的索引,条带填充以下段:

  • (0, 0) 到 (0, 47),然后 (1, 47) 到 (1, 31);

  • (1, 32) 到 (1, 0),然后 (2, 0) 到 (2, 31);

  • (2, 32) 到 (2, 47),然后是 (3, 47) 到 (3, 0)。

此块重复九次。

如果您通过替换每隔一列翻转,事情就会变得简单得多if X & 1: Y= 47 - Y。现在您必须将 36 x 48 数组映射到 27 x 64。这可以通过将 X、Y 转换为单个数字 N = 48 * X + Y 并使用 S = N // 64、L = N 分解来完成% 64. 你可以很容易地算出逆向变换。


推荐阅读