RGB_matrix_panel (Цветная рекламная матрица)

Создаем свой блок. Вопросы, помощь знатоков.
aidar_i
Полковник
Сообщения: 3125
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

RGB_matrix_panel (Цветная рекламная матрица)

#41

Сообщение aidar_i » 18.12.2022{, 09:23}

Sio писал(а):
18.12.2022{, 01:15}
Может это я что-то не так делал пытался сделать свои картинки, пробывал уже готовые брал тут:
https://wiki.iarduino.ru/page/rgb-matrix/ Пример с картинкой: static const uint8_t PROGMEM img[] = { код }; "iA" Просто код картинки очень похож на твой пример в блоке.
Такое впечатление что изображение не сохраняется в массиве. Может я и ошибаюсь.
Сам пример оттуда работает? Я по нему делал блок. Попробуйте пример 1 к 1 запустить.
Посмотрел, код массива немного отличается от примера. В начале там нет нуля, может это влияет? Попробуйте массив с примера вставить. Или нули убрать.

Аватара пользователя
Sio
Сержант
Сообщения: 108
Зарегистрирован: 28.06.2021{, 19:26}
Репутация: 0
Откуда: из дома, к вам
Имя: Александр

RGB_matrix_panel (Цветная рекламная матрица)

#42

Сообщение Sio » 18.12.2022{, 12:15}

Пример с сылкой выше не работал.
Немного изменив сам пример с эой сылки https://wiki.iarduino.ru/page/rgb-matrix/
добавил верхнюю часть с этой сылки http://wiki.amperka.ru/projects:rgb-led-matrix-arduino
получил рабочий пример "iA" ещё "сверкание" очень красиво смотрелось.
iA.jpg
iA.jpg (21.34 КБ) 1440 просмотров
Вложения
Sverkanie.rar
(859 байт) 30 скачиваний
iA.rar
(884 байт) 27 скачиваний

aidar_i
Полковник
Сообщения: 3125
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

RGB_matrix_panel (Цветная рекламная матрица)

#43

Сообщение aidar_i » 18.12.2022{, 17:43}

Sio писал(а):
18.12.2022{, 12:15}
Пример с сылкой выше не работал.
Скетчи примера и Ваше одинаковы. Отличие только в пине 8 (для Ардуино)или 11(для Мега2560).
Попробуйте массив с первой ссылки поставить не в параметрах блока , а в скетче после компиляции проекта.

Аватара пользователя
Sio
Сержант
Сообщения: 108
Зарегистрирован: 28.06.2021{, 19:26}
Репутация: 0
Откуда: из дома, к вам
Имя: Александр

RGB_matrix_panel (Цветная рекламная матрица)

#44

Сообщение Sio » 18.12.2022{, 23:01}

ОТЛИЧНО. Айдар всё заработало как надо.
Ошибка была не в вашем блоке а в том что я не переключил 8 пин на 11(для Мега2560). Сделал как вы порекомендовали с массивом, всё получилось.

aidar_i
Полковник
Сообщения: 3125
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

RGB_matrix_panel (Цветная рекламная матрица)

#45

Сообщение aidar_i » 20.12.2022{, 18:21}

Sio писал(а):
18.12.2022{, 23:01}
ОТЛИЧНО. Айдар всё заработало как надо.
Ошибка была не в вашем блоке а в том что я не переключил 8 пин на 11(для Мега2560). Сделал как вы порекомендовали с массивом, всё получилось.
Будьте повнимательней!:)

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

RGB_matrix_panel (Цветная рекламная матрица)

#46

Сообщение KulibinOrsk » 08.04.2023{, 14:45}

MihailK, а Вы можете дать ссылку на готовый контроллер для такой матрицы ? И как им управлять ?

Отправлено спустя 2 минуты 55 секунд:
Готовый контроллер наверное с компьютера управляется.

Аватара пользователя
Sio
Сержант
Сообщения: 108
Зарегистрирован: 28.06.2021{, 19:26}
Репутация: 0
Откуда: из дома, к вам
Имя: Александр

RGB_matrix_panel (Цветная рекламная матрица)

#47

Сообщение Sio » 08.04.2023{, 18:14}

Попробуйте просто Arduino Mega 2560. Подкючение посмотрите на сайте амперки.

Dmitrybcr
Рядовой
Сообщения: 26
Зарегистрирован: 10.01.2023{, 18:17}
Репутация: 2
Имя: Дмитрий

RGB_matrix_panel (Цветная рекламная матрица)

#48

Сообщение Dmitrybcr » 29.04.2023{, 15:49}

Добрый день . Может кто-нибудь сделать блок с настройками ??
СпойлерПоказать
// настройки ленты
#define NUM_LEDS 100 // количество светодиодов
#define LED_PIN 13 // пин ленты

// настройки зон
#define ZONE_AMOUNT 4 // количество зон
#define ZONE_K 0.08 // плавность движения зон
#define ZONE_MAX_SHIFT 10

// настройки пламени
#define HUE_START 5 // начальный цвет огня (0 красный, 80 зелёный, 140 молния, 190 розовый)
#define HUE_COEF 0.7 // коэффициент цвета огня (чем больше - тем дальше заброс по цвету)
#define SMOOTH_K 0.15 // коэффициент плавности огня
#define MIN_BRIGHT 90 // мин. яркость огня
#define MAX_BRIGHT 255 // макс. яркость огня
#define MIN_SAT 200 // мин. насыщенность
#define MAX_SAT 255 // макс. насыщенность

// для разработчиков
#include <FastLED.h>
#define ORDER_GRB // порядок цветов ORDER_GRB / ORDER_RGB / ORDER_BRG
#define COLOR_DEBTH 3 // цветовая глубина: 1, 2, 3 (в байтах)
// на меньшем цветовом разрешении скетч будет занимать в разы меньше места,
// но уменьшится и количество оттенков и уровней яркости!

// ВНИМАНИЕ! define настройки (ORDER_GRB и COLOR_DEBTH) делаются до подключения библиотеки!
#include <microLED.h>
LEDdata leds[NUM_LEDS]; // буфер ленты типа LEDdata (размер зависит от COLOR_DEBTH)
microLED strip(leds, NUM_LEDS, LED_PIN); // объект лента

#define ZONE_SIZE NUM_LEDS / ZONE_AMOUNT
float zoneValues[ZONE_AMOUNT];
byte zoneRndValues[ZONE_AMOUNT];
float zoneShift[ZONE_AMOUNT - 1];
int8_t zoneRND[ZONE_AMOUNT - 1];

// ленивая жопа
#define FOR_i(from, to) for(int i = (from); i < (to); i++)
#define FOR_j(from, to) for(int j = (from); j < (to); j++)

void setup() {
strip.setBrightness(255);
}

void loop() {
fireTick();
randomizeZones();
}

void randomizeZones() {
static uint32_t prevTime, prevTime2;

// задаёт направление движения зон
if (millis() - prevTime >= 800) {
prevTime = millis();
FOR_i(0, ZONE_AMOUNT - 1) {
if (abs(zoneShift - zoneRND) < 2)
zoneRND = random(-ZONE_MAX_SHIFT, ZONE_MAX_SHIFT);
}
}

// движение зон
if (millis() - prevTime2 >= 50) {
prevTime2 = millis();
FOR_i(0, ZONE_AMOUNT - 1) {
zoneShift += (zoneRND - zoneShift) * ZONE_K;
}
}
}

void fireTick() {
static uint32_t prevTime, prevTime2;

// задаём направление движения огня
if (millis() - prevTime > 100) {
prevTime = millis();
FOR_i(0, ZONE_AMOUNT) {
zoneRndValues = random(0, 10);
}
}

// двигаем пламя
if (millis() - prevTime2 > 20) {
prevTime2 = millis();
int thisPos = 0, lastPos = 0;
FOR_i(0, ZONE_AMOUNT) {
zoneValues = (float)zoneValues * (1 - SMOOTH_K) + (float)zoneRndValues * 10 * SMOOTH_K;
//zoneValues[i] = (zoneRndValues[i] * 10 - zoneValues[i]) * SMOOTH_K;
if (i < ZONE_AMOUNT - 1) thisPos += ZONE_SIZE + zoneShift[i];
else thisPos = NUM_LEDS;
if (thisPos > NUM_LEDS) break;

// вывести огонь
byte zoneHalf = (thisPos - lastPos) / 2;
float valStep = (float)1 / zoneHalf;
byte counter = 0;
FOR_j(lastPos, lastPos + zoneHalf) {
counter++;
if (j > NUM_LEDS) break;
leds
= getFireColor((float)zoneValues[i] * counter * valStep);
}
counter = 0;
FOR_j(lastPos + zoneHalf, thisPos) {
counter++;
if (j > NUM_LEDS) break;
leds
= getFireColor((float)zoneValues[i] * (zoneHalf - counter) * valStep);
}

// вывести цветные полосы
//FOR_j(lastPos, thisPos) leds
= mHSV(i * 70, 255, 150);

lastPos = thisPos;
}
strip.show();
}
}

// возвращает цвет огня для одного пикселя
LEDdata getFireColor(int val) {
// чем больше val, тем сильнее сдвигается цвет, падает насыщеность и растёт яркость
return mHSV(
HUE_START + val * HUE_COEF, // H
constrain(map(val, 20, 60, MAX_SAT, MIN_SAT), 0, 255), // S
constrain(map(val, 20, 60, MIN_BRIGHT, MAX_BRIGHT), 0, 255) // V
);
}

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

RGB_matrix_panel (Цветная рекламная матрица)

#49

Сообщение KulibinOrsk » 03.05.2023{, 14:24}

Привет всем.
Думаю не только у меня такая проблема - не могу найти библиотеку для первой строки:
#include <Fonts/FreeSans9pt7b.h>
Хотя панель запустил с кода на сайте амперки.
aidar_i, прошу помощи с библиотекой.

hallozin1
Рядовой
Сообщения: 31
Зарегистрирован: 02.08.2021{, 12:43}
Репутация: 5
Имя: Алексей

RGB_matrix_panel (Цветная рекламная матрица)

#50

Сообщение hallozin1 » 03.05.2023{, 20:41}

Вот держи
Вложения
FreeSans9pt7b.h
(11.61 КБ) 22 скачивания

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

RGB_matrix_panel (Цветная рекламная матрица)

#51

Сообщение KulibinOrsk » 03.05.2023{, 20:50}

hallozin1, этот файл я видел внутри библиотеки. Лучше скажи - как его теперь "скормить" IDE ... чтобы не запрашивало

hallozin1
Рядовой
Сообщения: 31
Зарегистрирован: 02.08.2021{, 12:43}
Репутация: 5
Имя: Алексей

RGB_matrix_panel (Цветная рекламная матрица)

#52

Сообщение hallozin1 » 04.05.2023{, 22:42}

скопируй файл в корень библиотеки и измени строку
#include <FreeSans9pt7b.h>

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

RGB_matrix_panel (Цветная рекламная матрица)

#53

Сообщение KulibinOrsk » 05.05.2023{, 08:43}

hallozin1, попробую.
Я вчера просто удалил блок шрифтов. Работало.
ВОПРОС: кто-нибудь запускал на ардуино НАНО панель ? мне для упрощенного вывода, без плавающей строки.
Я не могу найти где изменять назначения входов R1 B1 G1 R2 B2 G2

aidar_i
Полковник
Сообщения: 3125
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

RGB_matrix_panel (Цветная рекламная матрица)

#54

Сообщение aidar_i » 05.05.2023{, 09:48}

KulibinOrsk писал(а):
03.05.2023{, 14:24}
Думаю не только у меня такая проблема - не могу найти библиотеку для первой строки:
#include <Fonts/FreeSans9pt7b.h>
Хотя панель запустил с кода на сайте амперки.
aidar_i, прошу помощи с библиотекой.
Это проблема старого редактора, нужно строку подключение библиотеки шрифта поставить ниже библиотеки RGBmatrixPanel.

Код: Выделить всё

#include <RGBmatrixPanel.h>
#include <Fonts/FreeSans9pt7b.h>
Компилируется наоборот.
KulibinOrsk писал(а):
05.05.2023{, 08:43}
Я не могу найти где изменять назначения входов R1 B1 G1 R2 B2 G2
В первом сообщении я выложил ссылки , там есть таблица подключений для разных МК. Здесь.
В библиотеке

Код: Выделить всё

#if defined(ARDUINO_ARCH_SAMD)
// R1, G1, B1, R2, G2, B2 pins
  static const uint8_t defaultrgbpins[] = {2, 3, 4, 5, 6, 7};
#endif  
В примере отключите R триггер блока шрифтов от генератора, шрифт назначается при старте один раз, если применить несколько шрифтов, то можно их переключать через этот вход.

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

RGB_matrix_panel (Цветная рекламная матрица)

#55

Сообщение KulibinOrsk » 05.05.2023{, 13:56}

aidar_i, поменял местами, теперь другая ошибка:
подсвечивает строку : RGBmatrixPanel matrix(A0, A1, A2, A3, 8, 10, 9, true, 64);
ошибка: redefinition of 'RGBmatrixPanel matrix'

Насчет указания R1, G1, B1, R2, G2, B2 pins - а в какой библиотеке и как её корректировать то ? Не все же программисты и каждый день корректируют код )))

Если не сложно сможете выложить скорректированный под NANO блок ?

aidar_i
Полковник
Сообщения: 3125
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

RGB_matrix_panel (Цветная рекламная матрица)

#56

Сообщение aidar_i » 05.05.2023{, 19:49}

KulibinOrsk писал(а):
05.05.2023{, 13:56}
aidar_i, поменял местами, теперь другая ошибка:
подсвечивает строку : RGBmatrixPanel matrix(A0, A1, A2, A3, 8, 10, 9, true, 64);
ошибка: redefinition of 'RGBmatrixPanel matrix'

Насчет указания R1, G1, B1, R2, G2, B2 pins - а в какой библиотеке и как её корректировать то ? Не все же программисты и каждый день корректируют код )))

Если не сложно сможете выложить скорректированный под NANO блок ?
Меняете библиотеки в скетче местами и все, прекрасно компилируется. Вы строку, который подсвечивается, ещё раз вставили похоже.
Я не писал, что библиотеку нужно корректировать для Нано. Ничего не нужно там менять и в блоке тоже. Подключаете и все.

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

RGB_matrix_panel (Цветная рекламная матрица)

#57

Сообщение KulibinOrsk » 07.05.2023{, 13:23}

aidar_i,
жесть... ничего не получается )))
Библиотеку в корень положил, местами поменял - ничего не изменилось. Работает только когда удаляю блок выбора шрифтов. Хотя при этом не понятно какой шрифт работает.
Насчет НАНО - не получается вообще запустит. Прочитал что будет работать макс 32*32, у меня 32*64
ХЗ может у меня только так мутно.

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

RGB_matrix_panel (Цветная рекламная матрица)

#58

Сообщение KulibinOrsk » 09.05.2023{, 18:41}

aidar_i, забросил я с НАНО. Не хочет работать. Остановился на МЕГА.
Один текст на дисплее отображается нормально, но когда 2 текста: один мелкий, второй крупный то идет мерцание 25Гц.
Проект прилагаю.
По возможности посмотрите что не так.
Вложения
RGB_04052023.flp
(371.64 КБ) 11 скачиваний

aidar_i
Полковник
Сообщения: 3125
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

RGB_matrix_panel (Цветная рекламная матрица)

#59

Сообщение aidar_i » 10.05.2023{, 18:45}

KulibinOrsk писал(а):
09.05.2023{, 18:41}
aidar_i
Один текст на дисплее отображается нормально, но когда 2 текста: один мелкий, второй крупный то идет мерцание 25Гц.
Проект прилагаю.
По возможности посмотрите что не так.
Попробуйте так
RGB_04052023_1.flp
(409.14 КБ) 19 скачиваний
А Нано должен работать подключаете 2, 3, 4, 5, 6, 7 // R1, G1, B1, R2, G2, B2 , остальное как в параметрах блоков.
Я не могу проверить, тк нет такой панели.

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

RGB_matrix_panel (Цветная рекламная матрица)

#60

Сообщение KulibinOrsk » 11.05.2023{, 07:45}

aidar_i, при включении текст с 1 блока промаргивает и гаснет, затем светится текст со второго блока.
По вопросам:
1. NANO - именно так и подключал - не работает.
2. MEGA - насчет 2-х строк отписал выше
+ так и не работают шрифты (ошибку при компиляции не выдает т.к. строку ниже опускал, как и говорили)
+ не работает русский шрифт.
Если у Вас есть время/возможность можем "поотлаживать", многим может понадобиться.

Ответить

Вернуться в «Разработка пользовательских блоков»