Алгоритм создания координат светодиодных матриц (16x16) при подключении шлейфом

АндрейСекретов

✩✩✩✩✩✩✩
5 Янв 2024
10
0
Добрый день!
В прошивках Гайвера по лампам используется функция обращения по координатам (очень удобна при использовании). Но это все применимо для матриц четко идущий змейкой или зигзагом. А если ли алгоритм (может уже поднимался вопрос на форуме) , где можно определить координаты всех пикселей (по номеру к примеру) при соединении матриц в шлейф. Ведь подключение может быть абсолютно разным
1706161165058.png
 

rkit

★★★✩✩✩✩
5 Фев 2021
510
127
Делаешь таблицу соответствия входных координат выходным. Справится совершенно с чем угодно. Если уж так хочется усложнять себе жизнь этим всем, вместо нормального подключения.
 

АндрейСекретов

✩✩✩✩✩✩✩
5 Янв 2024
10
0
Видите ли, схема то уже собрана. У меня 12 матриц, будет электронное табло.
Топорным методом и написал все необходимое (ведение счета, время, таймер) но все это относительно пикселей (таблица номеров пикселей я делал), но кода ужасно много из-за этого... в общем сократить хочется, к тому же добавить новые функции в дальнейшем хотел бы, тот же текст или бегущая строка, но это делать попиксельно будет глупо.
Поэтому и подумал, что есть какой-то алгоритм, относительно схемы сборки матриц и направления "движения" ленты.
 

Сотнег

★★★★★★★
15 Янв 2020
4,455
1,523
@АндрейСекретов,
если бы вы не хотели усложнить себе жизнь, то собрали бы матрицы по-человечески друг за другом с одинаковым расположением начала и конца.
В таком случае, вашу сборку можно было бы рассматривать как 2 матрицы размером 64х16, стоящие рядом.

Осталось бы только пару цифр поменять тут:

Если же у вас всё вразнобой, то пересобрать будет быстрее, чем разобраться в адресации.
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,975
634
45
Андрей Секретов, Ну у вас же матрицы подключены по какому то правилу, вот по нему и рассчитываете. Или вы их подключали "как придётся"? Тогда проще таблицу соответствие использовать.
 

АндрейСекретов

✩✩✩✩✩✩✩
5 Янв 2024
10
0
@Сотнег,
Вы правы, что куплено, уже не успею приобрести другого, но пересобрать можно, все быстросъемное.
Но с другой стороны, возможно разбить на 3 горизонтальных сегмента, отдельно каждую управлять своим пином!

@Геннадий П,надо подумать, я программист еще тот). А если таблицу соответствия, то создать массив 3000х3000 цифр?
 

bort707

★★★★★★✩
21 Сен 2020
3,075
915
создать массив 3000х3000 цифр?
Зачем?
У вас же внутри каждой матрицы пиксели идут стандартно, разница только в подключении самих матриц, верно?
А это значит. что все можно описать математически через координаты внутри матрицы и смещение матриц - и никакие таблицы будут не нужны.

Вы лучше скажите, каким контроллером вы собрались адресовать 3000 пикселей? На стандартном подключении типа FastLED или Neopixel это будет очень медленно - порядка 100 мс на кадр. Бегущую строку вы с таким FPS на матрицу не выведете, или точнее выведете, но тормозить будет жестко
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
543
Saint-Petersburg, Russia
вам нужна таблица на 12 элементов. По ней сначала находите в какую матрицу попадает пиксель, потом стандартным алгоритмом транслируете пиксель внутри конкретной квадратной матрицы.