【问题标题】:How to scroll something through an LED matrix (Raspberry Pi / Python 3)如何在 LED 矩阵中滚动某些内容(Raspberry Pi / Python 3)
【发布时间】:2018-05-15 16:24:33
【问题描述】:

我安排了一个可单独寻址的 LED 矩阵 (12x12)。我还写下了当我想要显示某个字母时必须点亮哪些 LED 的模式,如下所示:

letter_a = ['00111100', '01000010', '01000010', '01111110', '01000010', '01000010', '01000010', '01000010']

我可以毫无问题地显示它。我想要完成的是让这些模式从右到左滚动矩阵,这样人们就可以在本质上是滚动的 144 像素显示器上阅读文本。

我的问题是我对编程还很陌生,不知道如何才能摆脱将每个像素寻址到某个 LED 而不仅仅是将图案视为一个整体——无论它应该在矩阵的哪个位置点亮向上 - 这样我就可以移动它了。

【问题讨论】:

  • 你好 Mojo,欢迎来到这个网站。正如您所写的那样,您的问题太宽泛,我们无法为您提供帮助,您能否将其缩小到更具体的问题?您还可以在此处查看有关如何提问的其他指南:stackoverflow.com/help/how-to-ask
  • 我想过如何缩小问题的范围,我会试一试! letter_a = ["00111100,01000010,01000010,01111110,01000010,01000010,01000010,01000010"] 这就是我想在我的 LED 面板上写信的方式。每个 1 或 0 代表一个 LED。我可以毫无问题地显示这个,但我想做的是把这个字母移到显示屏上,而不必写下每一个 LED。我想不出一种编程方法。
  • 如果是我,我可能会像你现在那样做——手动为每个字母制作 LED 阵列。您可以使用字典轻松查找手动 LED 列表。
  • 我已经为每个字母设置了一个数组,问题是我如何在面板上滚动字母,而不必为每一帧写下每个 LED。如果不滚动,我无法在 12x12 像素的大“显示器”上显示文本,一次只能显示一个字母。
  • 我注意到您的 A 示例是 8x8,而不是 12x12- 对吗?

标签: python-3.x matrix raspberry-pi led


【解决方案1】:

我建议您将 LED 的状态保持在一个“框架”中,该框架的结构类似于您的 letter_a。这将允许您轻松修改它并根据需要重新显示它。

之后,只需在每次移动时编辑框架即可。你可以这样做:

def nextFrame(current_frame, queue):
    for row in range(0, len(current_frame)):
        new_row = current_frame[row][1:] + queue[row][0]
        current_frame[row] = new_row
        queue[row] = queue[row][1:]
    return current_frame, queue

你可以使用这样的东西:

letter_a = ['00111100', '01000010', '01000010', '01111110', '01000010', '01000010', '01000010', '01000010']
current_frame = ['10000001', '01000010', '00100100', '00011000', '00011000', '00100100', '01000010', '10000001']
queue = ['00111100', '01000010', '01000010', '01111110', '01000010', '01000010', '01000010', '01000010']
while len(queue[0]):
    display(current_frame)
    current_frame, queue = nextFrame(current_frame, queue)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多