Как прокрутить что-то через светодиодную матрицу (Raspberry Pi / Python 3) - PullRequest
0 голосов
/ 15 мая 2018

Я расположил матрицу светодиодов (12х12), которые индивидуально адресуются. Я также записал схемы, по которым светодиоды должны гореть, когда я хочу, чтобы появилось определенное письмо, например:

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

И я могу отобразить это без проблем. Я хочу, чтобы эти шаблоны прокручивали матрицу справа налево, чтобы кто-то мог прочитать текст на 144-пиксельном дисплее с прокруткой.

Моя проблема в том, что я довольно новичок в программировании и не знаю, как я могу избежать адресации каждого пикселя к определенному светодиоду, а не просто обработать шаблон в целом - независимо от того, где на матрице он должен светиться вверх - так что я могу переместить его.

1 Ответ

0 голосов
/ 15 мая 2018

Я предлагаю вам сохранить состояние светодиодов в «рамке», структурированной как ваш 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)
...