Code Every Day 🚀
30 subscribers
687 photos
243 videos
22 files
174 links
Просто для развлечения
Download Telegram
Code Every Day 🚀
День 4: Заметка 1: Работа стоя 🛠🧍‍♂ 🤚Всем привет! 💊 В продолжении темы про здоровье и современные тренды офисной работы, хотел бы поделиться небольшим опытом в организации стоячего рабочего места. 👉 Современный человек, профессиональная деятельность которого…
День 4: Заметка 2: Фонарик для подсветки клавиатуры

💡 Работать по вечерам помогает специальный ночник

⚠️ Не хотелось ставить лампу на стойку, провода тянуть, купил светодиодный фонарик

📸 Получилось так как на фото.

⚠️ Жаль, что фонарик на батарейках (пока ни разу не менял, хотя вечером не часто работаю стоя, просто если захочется), если бы был на аккамуляторе, то был бы 🔥

#Life
👍1
День 4: Заметка 3: Иногда лучше один раз услышать🦻, чем сто раз увидеть 👓

👉Давно думал о том, чтобы завести подкаст, кажется, есть о чем можно было бы рассказать.

🤔За время работы познакомился со множеством талантливых людей, с которыми просто общался тет-а-тет, пора делать тоже самое, но на аудиторию, возможно, будет интересно.

Ссылка https://podster.fm/podcasts/CodeEveryDay

#Подкаст
#Каналы
👍3
День 5: Заметка 1: Таймер обратного отсчета на Arduino с выводом на RGB панель

🤚 Всем привет!

Давайте сегодня посмотрим, как можно создать счетчик обратного отсчета в Arduino с выводом на RBG панель.

👨‍💻 Для этого напишем небольшую программу, мы рассмотрим методы для работы с текстом экземпляра RGBmatrixPanel

👉 Пусть у нас перменная для хранения экземляра RGBmatrixPanel называется matrix.

Как мы разобрали в прошлом уроке:
👉 matrix.Color333(int r, int g, int b) - это функция, которая описывает цвет в формате RGB, она нам сегодня пригодиться, так как мы будем подкрашивать цифры счетчика в нужный нам цвет.

Для вывода текста на экран нам будет достаточно использовать следующие функции:

👉 matrix.setTextColor(matrix.Color333(r, g, b)); - указываем, какого цвета будет текст
👉 matrix.setCursor(int x, int y); - указывается начальная координата текста (верхний левый угол)
👉 matrix.print(string text); - выводим текст
👉 matrix.setTextSize(int size); - указывает размер текста, size изменяется [1, 8], причем символ размером 1 занимает 8 на 5 пикселей на матрице.

Вцелом этого будет достаточно.

В методе setup() подготавливаем матрицу

void setup() {
matrix.begin();
}

Заводим переменную, которая будет хранить текущее состояние счетчика

int count = 10;

В методе loop() уменьшаем значение на единицу с задержкой в 1 секунду

void loop() {
count = count - 1;
delay(1000);
}

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

void loop() {
//очистка экрана от текста, который был показан ранее
matrix.fillScreen(0);

//вывод на экран состояния счетчика
matrix.setTextColor(matrix.Color333(7, 0, 0));
matrix.setCursor(27, 13);
matrix.print(counter);
matrix.swapBuffers(false);

//уменьшение счетчика на единицу
count = count - 1;
delay(1000);
}

По идее на этом все, но есть одна проблема, если счетчик дойдет до нуля, он станет отрицательным в следующем цикле.
Давайте подправим это, то есть если таймер дошел до нуля, то пусть нуль и выводится.


void loop() {


//уменьшение счетчка на единицу
if (count > 0) {
count = count - 1;
}
delay(1000);
}

Можно немного улучшить код, выделив логику смены состояния счетчика и работы с текстом в отдельные методы:

void changeState() {
if (count > 0) {
count = count - 1;
}
}


void printCounter() {
printText(String(count));
}

void printText(string value) {
//очистка экрана от текста, который был показан ранее
matrix.fillScreen(0);

//вывод на экран состояния счетчика
matrix.setTextColor(matrix.Color333(7, 0, 0));
matrix.setCursor(27, 13);
matrix.print(value);
}

В итоге метод loop():

void loop() {
printCounter();
changeState();
}

📷 Пример работы на видео (в следующем сообщении)
📷 Также пример написания кода в отдельном видео(в следующем сообщении), в конце я забыл добавить метод matrix.swapBuffers(false), просто поторопился =).
В приложеном файле программы с видео он есть.

#Arduino
#RGBMatrix
#LifeCoding
👍2
День 5: Заметка 2: CodeEveryDay 🚀на RuTube💪

Завел канал на RuTube

Буду выкладывать большие видео life coding туда, а то здесь не очень удобно с этим работать.
Может быть, какие-то промо ролики тоже туда буду выкладывать. Интересно посмотреть вцелом на возможности площадки. Вроде бы у площадки идет активное развитие.

#Каналы
👍2
День 5: Заметка 4: 🍒 на торте - TikTok

🤟Говорят, что сейчас все в тиктоке, поэтому не будем его игнорировать TikTok

#Каналы
👍1
День 5: Заметка 5: сколько символов можно вывести на RGB панели

🎯Решил посмотреть, а сколько вообще символов можно разместить на RGB панели p4 32x64 256мм x128мм 1/16S

Получается, вот такая картина:
👉 при самом малом размере текста matrix.setTextSize(1); в строке всего помечается 10 символов
👉 всего панель может вместить 4 таких строки

Итого имеем 40 символов за раз можно вывести при самом малом шрифте.

Надо признать, что особо не разгуляешься, но жить можно с этим.

Библитека для работы с RGBmatrixPanel имеет метод matrix.setTextWrap(bool), который позволяет переносить текст на другую строку.

Пример программы, которая выводит результат как на фото

void setup() {
matrix.begin();
}

String text = "1234567890abcdefghiklmnopqrstuvwxyz1234567890";

void loop() {
matrix.fillScreen(0);

matrix.setTextColor(matrix.Color333(7, 0, 0));
matrix.setCursor(0, 0);
matrix.setTextSize(1);
matrix.setTextWrap(true);
matrix.print(text);

matrix.swapBuffers(false);
}


#Arduino
#RGBMatrix
👍2
Media is too big
VIEW IN TELEGRAM
День 6: Заметка 1: Эффект печати текста при выводе на RGB матрицу

Всем привет!

👉 Давайте сегодня рассмотрим код посимвольного вывода на матрицу текста,
будет выглядеть как эффект печати текста.

Фактически, все, что было разобрано в прошлых постах, будет переиспользовано здесь.
Мы будем также использовать функции RGBmatrixPanel:
👉 print(string text)
👉 swapBuffers(bool value)
Но уже для кажого символа строки в отдельности.
Символы будем перебирать в цикле for
Получилось так как на видео.

Попозже на канал Youtube и Rutube выложу life coding сессию.
Код проекта прикладываю в следующем сообщении.

#Arduino
#RGBMatrix
👍1🔥1
Media is too big
VIEW IN TELEGRAM
Все вместе собрал за последние дни и слепил видео для ТикТока
Но ТикТок не загружает, сваливается с какой-то ошибкой.

Зато на RuTube залилось
👍1🔥1
Media is too big
VIEW IN TELEGRAM
День 7: Заметка 1: Реализация работы инфо табло на Arduino

Всем привет!

Реализовал вывод информации как в инфо табло.

🎯 Хотелось достичь следующего эффекта: на инфо табло есть множество ячеек с разными буквами, в каждой ячейке подбирается нужная буква из слова, в результате, получилось интересно.

В качестве слова для вывода использовал 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