Media is too big
VIEW IN TELEGRAM
День 6: Заметка 1: Эффект печати текста при выводе на RGB матрицу
Всем привет!
👉 Давайте сегодня рассмотрим код посимвольного вывода на матрицу текста,
будет выглядеть как эффект печати текста.
Фактически, все, что было разобрано в прошлых постах, будет переиспользовано здесь.
Мы будем также использовать функции
👉
👉
Но уже для кажого символа строки в отдельности.
Символы будем перебирать в цикле
Получилось так как на видео.
Попозже на канал
Код проекта прикладываю в следующем сообщении.
#Arduino
#RGBMatrix
Всем привет!
👉 Давайте сегодня рассмотрим код посимвольного вывода на матрицу текста,
будет выглядеть как эффект печати текста.
Фактически, все, что было разобрано в прошлых постах, будет переиспользовано здесь.
Мы будем также использовать функции
RGBmatrixPanel:👉
print(string text)👉
swapBuffers(bool value)Но уже для кажого символа строки в отдельности.
Символы будем перебирать в цикле
forПолучилось так как на видео.
Попозже на канал
Youtube и Rutube выложу life coding сессию.Код проекта прикладываю в следующем сообщении.
#Arduino
#RGBMatrix
👍1🔥1
Code Every Day 🚀
День 6: Заметка 1: Эффект печати текста при выводе на RGB матрицу Всем привет! 👉 Давайте сегодня рассмотрим код посимвольного вывода на матрицу текста, будет выглядеть как эффект печати текста. Фактически, все, что было разобрано в прошлых постах, будет…
sketch_jul29a_print_by_symbols.zip
1.8 KB
👉 Код проекта для эффекта печати при выводе на RGB матрицу
👍1
Media is too big
VIEW IN TELEGRAM
Все вместе собрал за последние дни и слепил видео для ТикТока
Но ТикТок не загружает, сваливается с какой-то ошибкой.
Зато на RuTube залилось
Но ТикТок не загружает, сваливается с какой-то ошибкой.
Зато на RuTube залилось
👍1🔥1
Media is too big
VIEW IN TELEGRAM
День 7: Заметка 1: Реализация работы инфо табло на Arduino
Всем привет!
Реализовал вывод информации как в инфо табло.
🎯 Хотелось достичь следующего эффекта: на инфо табло есть множество ячеек с разными буквами, в каждой ячейке подбирается нужная буква из слова, в результате, получилось интересно.
В качестве слова для вывода использовал
Алгоритм разработал простой:
👉 в каждой ячейке в случайном порядке подбирается символ
👉 каждый случайный символ отрисовывается с пониженной яркостью и насыщенностью
👉 считается количество циклов отрисовки
👉 после достижения определенного порога по циклам отрисовки на нужном месте появляются буквы из выводимой фразы, причем у каждой буквы свой порог появления
👉 когда слово/фраза целиком собрана, у ее символов меняем насыщенность и яркость, чтобы они выделялись красочно на общем табло
👉 после достижения последнего порога по циклам подкрашиваем фразу в брендированный цвет.
#Arduino
#RGBMatrix
Всем привет!
Реализовал вывод информации как в инфо табло.
🎯 Хотелось достичь следующего эффекта: на инфо табло есть множество ячеек с разными буквами, в каждой ячейке подбирается нужная буква из слова, в результате, получилось интересно.
В качестве слова для вывода использовал
K45P3R5KY, оно как раз подходило под вывод в рамках одной строки.Алгоритм разработал простой:
👉 в каждой ячейке в случайном порядке подбирается символ
👉 каждый случайный символ отрисовывается с пониженной яркостью и насыщенностью
👉 считается количество циклов отрисовки
👉 после достижения определенного порога по циклам отрисовки на нужном месте появляются буквы из выводимой фразы, причем у каждой буквы свой порог появления
👉 когда слово/фраза целиком собрана, у ее символов меняем насыщенность и яркость, чтобы они выделялись красочно на общем табло
👉 после достижения последнего порога по циклам подкрашиваем фразу в брендированный цвет.
#Arduino
#RGBMatrix
👍2🔥1
Code Every Day 🚀
День 7: Заметка 1: Реализация работы инфо табло на Arduino Всем привет! Реализовал вывод информации как в инфо табло. 🎯 Хотелось достичь следующего эффекта: на инфо табло есть множество ячеек с разными буквами, в каждой ячейке подбирается нужная буква…
👉 Можно сделать более инетересный алгоритм, когда буква будет появляться и фиксироваться на своей позиции тогда, когда перебор случайный дойдет до нее, правда, это может дольше работать или быстрее, то есть будет недетерменированно.
💪 Можно совместить два подхода: построить работу на подборе символа из случайного перебора, если будет слишком быстро или слишком медленно, то это контролировать еще подсчетом времени на подбор символа и управлять этим.
💪 Можно совместить два подхода: построить работу на подборе символа из случайного перебора, если будет слишком быстро или слишком медленно, то это контролировать еще подсчетом времени на подбор символа и управлять этим.
👍2
coffee2code1.png
137.3 KB
День 7: Заметка 2: Drink Coffee To Make Code
Какими свойствами обладают разработчики:
👉 Почти все пьют кофе
👉 Почти все пишут код
🤔 Исходя из этого, получается, что разработчик как черный ящик, на вход которого подают кофе, а на выходе получем код.
Так так так... размышлял об этой абстрации и решил сделать прототип такого логотипа.
К посту приложены некоторые варианты, которые нарисовал.
Кажется, если выпускать кружки с такими логотипами, то можно стать как минимум долларовым миллиардером 💰. Хотя.. 🤔
#ШуткиНесмешные
Какими свойствами обладают разработчики:
👉 Почти все пьют кофе
👉 Почти все пишут код
🤔 Исходя из этого, получается, что разработчик как черный ящик, на вход которого подают кофе, а на выходе получем код.
Так так так... размышлял об этой абстрации и решил сделать прототип такого логотипа.
К посту приложены некоторые варианты, которые нарисовал.
Кажется, если выпускать кружки с такими логотипами, то можно стать как минимум долларовым миллиардером 💰. Хотя.. 🤔
#ШуткиНесмешные
🔥1
День 8: Заметка 1: Выводим изображения на RDB матрицу с помощью Arduino
Всем привет!
Двигаемся дальше в работе с
🎯 Давайте сегодня попробуем вывести на панели изображение.
🤔 На самом деле задача не совсем простая, при работе с другими
👉 В данном случае просто так передать файл изображения не получится, такой абстракции нет в рамках контроллера. Контроллер понимает примитивные штуки. Поэтому надо изображение представить ввиде массива для отрисовки каждого пикселя.
👉 Хранить в оперативной памяти массив - идея так себе, дело в том, что у контроллера обычно опертивной памяти немного, лучше будет если содержимое массива будем хранить константой во флеш памяти, то есть в памяти программ, ее обычно в разы больше. Ну в любом случае можно изучить спецификацию контроллера, чтобы понять, какой памяти больше.
👉 В библиотеке для работы с матрицей
В прошлом сообщении я рисовал прототипы для логотипа идеи лейблов для кружек
👉 Лучше всего будет если пропорции изображения будут совпадать с пропорциями панели.
👉 Кстати, массивы, описывающие изображения, имеют внушительный размер, чтобы не загромождать код, я их вынес в отдельный файл, который затем подключил к основному файлу программы.
📷 На видео собрал рабочий прототип (в следубщем сообщении).
#Arduino
#RGBMatrix
Всем привет!
Двигаемся дальше в работе с
Arduino и RGB матрицей.🎯 Давайте сегодня попробуем вывести на панели изображение.
🤔 На самом деле задача не совсем простая, при работе с другими
SDK на любых языках зачастую у нас есть метод, которому на вход передаем файл изображения, всю логику по отображению делает sdk и методы отрисовки предусмотренные в ОС платформы.👉 В данном случае просто так передать файл изображения не получится, такой абстракции нет в рамках контроллера. Контроллер понимает примитивные штуки. Поэтому надо изображение представить ввиде массива для отрисовки каждого пикселя.
👉 Хранить в оперативной памяти массив - идея так себе, дело в том, что у контроллера обычно опертивной памяти немного, лучше будет если содержимое массива будем хранить константой во флеш памяти, то есть в памяти программ, ее обычно в разы больше. Ну в любом случае можно изучить спецификацию контроллера, чтобы понять, какой памяти больше.
👉 В библиотеке для работы с матрицей
RGBmatrixPanel уже есть встроенный метод для вывода изображения как массива байтов, его и будем использовать:drawRGBBitmap(0, 0, (const uint16_t *)<array name>, 64, 32);В прошлом сообщении я рисовал прототипы для логотипа идеи лейблов для кружек
Coffee To Code. Это было неслучайно, это была подготовка к сегодняшнему коду, то есть эти изображения я и буду выводить на RGB матрицу. 👉 Лучше всего будет если пропорции изображения будут совпадать с пропорциями панели.
👉 Кстати, массивы, описывающие изображения, имеют внушительный размер, чтобы не загромождать код, я их вынес в отдельный файл, который затем подключил к основному файлу программы.
📷 На видео собрал рабочий прототип (в следубщем сообщении).
#Arduino
#RGBMatrix
👍1
Code Every Day 🚀
День 8: Заметка 1: Выводим изображения на RDB матрицу с помощью Arduino Всем привет! Двигаемся дальше в работе с Arduino и RGB матрицей. 🎯 Давайте сегодня попробуем вывести на панели изображение. 🤔 На самом деле задача не совсем простая, при работе с…
Media is too big
VIEW IN TELEGRAM
Вот так выглядит рабочее приложение
🔥1
Code Every Day 🚀
День 8: Заметка 1: Выводим изображения на RDB матрицу с помощью Arduino Всем привет! Двигаемся дальше в работе с Arduino и RGB матрицей. 🎯 Давайте сегодня попробуем вывести на панели изображение. 🤔 На самом деле задача не совсем простая, при работе с…
Вот так выглядит изображение в виде массива
👍1
День 9: Заметка 1: Анимация загрузки на RGB матрице с Arduino
🤚Всем привет!
В прошлом сообщении я описал процесс работы с изображениями, соответственно, теперь можно легко делать различные анимации.
🎯 В любом проекте можно встретить задачу отображения прогресса выполнения длительной операции, например, загрузка данных.
На момент загрузки обычно показывают прогресс бар, который может быть круговым (обычно это крутилка в центре экрана) или линейным.
✏️ Вчера я отрисовал всю необходимую графику, чтобы реализовать линейный прогресс бар.
🤟 Получилось как и все на
Алгорим следующий:
👉 готовим графические изображения для анимации, конвертируем их в Си массивы данных;
👉 графические изображения должны собой представлять набор последовательно изменяющихся картинок, мы их будем отрисовывать друг за другом, чтобы визуально добавить некоторую динамику;
👉 в коде приложения для Arduino пишем метод, который будет в цикле пробегать по этому массиву изображений и выводить каждую из картинок на экран.
По расходованию памяти этот вариант накладный. Все-таки во флеш памяти приходится держать все изображения. Есть ли варианты избежать этого? Да, но об этом в другой раз.
📷 Пример на видео (в следующем сообщении).
#Arduino
#RGBMatrix
🤚Всем привет!
В прошлом сообщении я описал процесс работы с изображениями, соответственно, теперь можно легко делать различные анимации.
🎯 В любом проекте можно встретить задачу отображения прогресса выполнения длительной операции, например, загрузка данных.
На момент загрузки обычно показывают прогресс бар, который может быть круговым (обычно это крутилка в центре экрана) или линейным.
✏️ Вчера я отрисовал всю необходимую графику, чтобы реализовать линейный прогресс бар.
🤟 Получилось как и все на
RGB матрице oldschool -но, но в этом есть свой шарм. Лично мне нравится.Алгорим следующий:
👉 готовим графические изображения для анимации, конвертируем их в Си массивы данных;
👉 графические изображения должны собой представлять набор последовательно изменяющихся картинок, мы их будем отрисовывать друг за другом, чтобы визуально добавить некоторую динамику;
👉 в коде приложения для Arduino пишем метод, который будет в цикле пробегать по этому массиву изображений и выводить каждую из картинок на экран.
По расходованию памяти этот вариант накладный. Все-таки во флеш памяти приходится держать все изображения. Есть ли варианты избежать этого? Да, но об этом в другой раз.
📷 Пример на видео (в следующем сообщении).
#Arduino
#RGBMatrix
👍1
Code Every Day 🚀
День 9: Заметка 1: Анимация загрузки на RGB матрице с Arduino 🤚Всем привет! В прошлом сообщении я описал процесс работы с изображениями, соответственно, теперь можно легко делать различные анимации. 🎯 В любом проекте можно встретить задачу отображения прогресса…
Media is too big
VIEW IN TELEGRAM
Пример работы анимации прогресс бара
🔥1
Code Every Day 🚀
День 9: Заметка 1: Анимация загрузки на RGB матрице с Arduino 🤚Всем привет! В прошлом сообщении я описал процесс работы с изображениями, соответственно, теперь можно легко делать различные анимации. 🎯 В любом проекте можно встретить задачу отображения прогресса…
sketch_aug1a_animations.zip
6.9 KB
Код примера
👍1
Media is too big
VIEW IN TELEGRAM
День 10: Заметка 1: reveal circular анимация для RGB матрицы
🤟 Хай, Кодерс!
👉 Сегодня хотел показать пример реализации
Реализовать данный вид анимации не составляет труда.
👉 В основе реализации лежит использование метода отрисовки и заливки круга из библиотеки для работы с
По-моему, выглядит симпатично.
📷 Пример на видео.
#Arduino
#RGBMatrix
🤟 Хай, Кодерс!
👉 Сегодня хотел показать пример реализации
reveal circular анимации заливки.Реализовать данный вид анимации не составляет труда.
👉 В основе реализации лежит использование метода отрисовки и заливки круга из библиотеки для работы с
RGB матрицей RGBmatrixPanel drawCircle(int x, int y, int r, uint16_t color);.По-моему, выглядит симпатично.
📷 Пример на видео.
#Arduino
#RGBMatrix
🔥1
Code Every Day 🚀
День 10: Заметка 1: reveal circular анимация для RGB матрицы 🤟 Хай, Кодерс! 👉 Сегодня хотел показать пример реализации reveal circular анимации заливки. Реализовать данный вид анимации не составляет труда. 👉 В основе реализации лежит использование метода…
День 11: Заметка 1: Код примера reveal circular анимации
👨💻Код примера
#Arduino
#RGBMatrix
👨💻Код примера
// тип анимации
class Direction {
public:
static const int TYPE_OUT = 0;
static const int TYPE_IN = 1;
static bool isTypeIn(int value) {
return value == Direction::TYPE_IN;
}
static bool isTypeOut(int value) {
return value == Direction::TYPE_OUT;
}
};
// логика анимации
void revealCircular(
int x, int y, // координаты центар
int r, // радиус заливки круга
int direction, // 0 - расширение, 1 - сужение
uint16_t color
) {
if (Direction::isTypeOut(direction)) {
for (int i = 0; i < r; ++i) {
drawCircle(x, y, i, color);
}
} else if (Direction::isTypeIn(direction)) {
for (int i = r; i > 0; --i) {
drawCircle(x, y, i, color);
}
}
}
// вывод на матрицу круга
void drawCircle(
int x, int y,
int r,
uint16_t color
) {
matrix->drawCircle(x, y, r, color);
matrix->swapBuffers(true);
}
#Arduino
#RGBMatrix
❤1
Media is too big
VIEW IN TELEGRAM
День 11: Заметка 2: Перемещение объектов на RGB матрице, интерполяторы
🤟 Хай, Кодерс!
👉 Сегодня утром проснулся и подумал, что сегодня отличный день, чтобы рисовать точки.
😎 Сказано-сделано!
🎯 Для будущих проектов потребуется перемещать объекты на
👉
Описывается формулой
👉
Описывается формулой
👉
Описывается формулой
👉
Эмулирует скачки, как будто мяч скачет
Размера матрицы не хватило, чтобы наглядно продемонстрировать динамику изменения положения точек.
🤔 Поработаю еще над этим.
#Arduino
#RGBMatrix
🤟 Хай, Кодерс!
👉 Сегодня утром проснулся и подумал, что сегодня отличный день, чтобы рисовать точки.
😎 Сказано-сделано!
🎯 Для будущих проектов потребуется перемещать объекты на
RGB панели, например, в играх. Нужно набросать прототип перемещения точек. Помимо этого для реалистичности движения решил реализовать интерполяторы, хотя бы самые распространные.👉
LinearInterpolatorОписывается формулой
x = t, t - время👉
AccelerateInterpolatorОписывается формулой
x = t^(2f), добавляет ускорение перемещению👉
DecelerateInterpolatorОписывается формулой
x = 1 – (1 – t)^(2f), добавляет замедление перемещению👉
BounceInterpolatorЭмулирует скачки, как будто мяч скачет
Размера матрицы не хватило, чтобы наглядно продемонстрировать динамику изменения положения точек.
🤔 Поработаю еще над этим.
#Arduino
#RGBMatrix
👍2
Code Every Day 🚀
День 11: Заметка 2: Перемещение объектов на RGB матрице, интерполяторы 🤟 Хай, Кодерс! 👉 Сегодня утром проснулся и подумал, что сегодня отличный день, чтобы рисовать точки. 😎 Сказано-сделано! 🎯 Для будущих проектов потребуется перемещать объекты на RGB панели…
👉 Примечание
Размера матрицы не хватило, чтобы наглядно продемонстрировать динамику изменения положения точек. Для
Размера матрицы не хватило, чтобы наглядно продемонстрировать динамику изменения положения точек. Для
2, 3, 4 точек сделал возможность цикла движения в несколько полетов от края до края панели, потом все сбрасывается и точка снова начинает движение слевого края панели.