Мини матрица 16х16 ws2812b

Спасибо за ссылку, придется работать с фастлед.

Было бы интересно на это посмотреть, но тока цвет чтобы был у всех пикселей одинаковый (например, цвет неба), а вот яркость пикселя определялась расстоянием от центра матрицы: чем дальше от центра, тем тусклее

Причем, поправить его просто.

Там проблема с размером буфера. Они его на стеке размещают, а когда >70 пикселей, то там нужно 6кб памяти (ну вот так написали, ничо не поделаешь, адов фрукт же)

Соственно, обойти эту багу можно и без исправления кода вовсе: нужно просто запустить отдельную задачу, с размером стека в 10кб. И уже все делать из нее. А loop() грохнуть, он не нужен уже будет: vTaskDelete(loopTaskHandle);

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

Непонятно зачем вообще нужен этот класс матрицы, там в коде кроме элементарного преобразования координат и нет ничего.

Адафрут пишет плохой код. Реально плохой

Пишите, посмотрим…на вихрь одного цвета. Только на малых яркостях, чтоб с аккума тянула платка.

Да, с точки зрения пользователя это какое-то мелкое вредительство, непонятное ему. То есть мне :slight_smile:

Фотки выкладывайте красивые, а то сразу 5 матриц по тыщи штука я не видел ещё.

Я думал на гифке - это ваше.Писать пока не могу, не заказал еще матрицу.

Моё, уже на полке пылится.

И в чем проблема? Выразите цвет в HSV и задача упростится до одного цикла ФОР

Нет проблемы, Лилик вишь чо говорит - Сами, говорит, возитесь паяйте, пишите код, и сами смотрите. А евойное изделие пылевой тест проходит :frowning:

ну вот… а я надеялся блеснуть в чужой для меня области компьютерной графики :slight_smile:

Пишите, я загружу и покажу, что получилось :slight_smile:
Схема вот:

Там и в RGB один цикл “ФОР”. Упрощать нечего.

В RGB яркость регулировать геморно

Регулировка яркости - это домножение на коэффициент. Причем, коэффициент один и тот же для всех компонент.
Алгоритм регулировки яркости через HSV:

  1. Преобразуем компоненты из RGB в HSV.
  2. Вычисляем масштабный коэффициент для данной точки пространства.
  3. Домножаем на этот коэффициент компоненту V.
  4. Преобразуем из HSV обратно в RGB.

Алгоритм регулировки яркости непосредственно в RGB:

  1. Вычисляем масштабный коэффициент для данной точки пространства.
  2. Домножаем на этот коэффициент все три компоненты R, G и B.

:roll_eyes: Вроде наоборот: С верхнего левого и вниз, не? А от вдруг и правда напишуть, а переделать не захотять. :slightly_smiling_face:

  1. Преобразуем цвет из RGB в HSV.
  2. Вычисляем яркость для текущего пикселя.
  3. Устанавливаем яркость для текущего пикселя.

Зачем там обратное преобразование?

Патамушта светодиоды обычно rgb три штуки.

Там, как-бы, и первый то пункт не нужен.