python-3.x - 如何在 LED 矩阵中滚动某些内容(Raspberry Pi / Python 3)
问题描述
我安排了一个可单独寻址的 LED(12x12)矩阵。我还写下了当我想要显示某个字母时必须点亮哪些 LED 的模式,如下所示:
letter_a = ['00111100', '01000010', '01000010', '01111110', '01000010', '01000010', '01000010', '01000010']
我可以毫无问题地显示它。我想要完成的是让这些模式从右到左滚动矩阵,以便有人可以阅读本质上是滚动 144 像素显示器的文本。
我的问题是我对编程还很陌生,不知道如何才能摆脱将每个像素寻址到某个 LED 而不仅仅是将图案视为一个整体——无论它应该在矩阵的哪个位置点亮——所以我可以移动它。
解决方案
我建议您将 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)
推荐阅读
- php - 如何访问具有可变变量的关联数组的特定深度
- javascript - 如何将 Angular 7 项目部署到 Google Cloud
- php - Sharedpreferences 不保存用户数据
- vb.net - 如何获得方程式的特定代码
- time - Unetstack模拟器中模拟脚本中模拟时间的默认单位
- python - 如何在 Gmail API 中正确设置“In-Reply-To”和“Reference”标头
- ssl - 如何保护 ELK 和 Filebeat?
- r - 为什么我在过滤数据集中的变量时只收到“NA”的结果?
- c# - 如何创建具有 http post 功能的 Web Api,该功能可以从正文中获取任何动态 json 内容并能够将其解析为字符串
- java - 事务提交后休眠线程未完成