Комментарии 41
Красивое :)) и устройство и статья.
Интересно наблюдать развитие за последние 20 лет. Сначала было на к155ла3, потом на Attiny/PIC, затем …делаем на Atmega16, потом …на Arduino, а теперь на …ESP32.
Такие часики неплохо бы смотрелись на экране от смартфона. Но там с железом всё намного проще - нужен просто старый рабочий телефон https://habr.com/ru/articles/443052/
Есть разница в источниках точного времени. Либо руками выставлять, опираясь на сигналы точного времени, переданные радиостанцией "Маяк", либо по радиосигналу синхронизироваться с атомными часами, либо просто по NTP. В последнем случае ESP32 я вижу очень даже оправданным.
Отличная идея и реализация. Украшение интерьера =)
Жаль не могу поставить 5 плюсов ! Красота просто неземная !
Переход цифр только последовательный или из любой в любую?
Очень прикольный эффект получился
Ваши часы надо запретить - они превращают людей в котов с того мема ;-)
Вот таким и должны быть статьи- где есть и идея и исполнение и результат и описание. Порадовал, спасибо!"
Спасибо. Редки здесь статьи от эмбедеров. А такие качественные - тем более.
Вроде было где-то упоминание про часы с морфингом на МК, только там каждая цифра была векторной.
Есть подозрение, что то тоже мои были. Следующую статью про них напишу
Было видео в каком-то комментарии не помню к чему, ссылку не могу сходу найти.
Спойлер следующей статьи: Bezier Curves Clock with weather, там рядом есть мои видео и с тонкими линиями. Толстые кривые сложнее сделать.
Ссылка ведёт непонятно куда.
Извиняюсь, не проверил. Вы, должно быть видели одно из этих моих видео: Bezier Curves Clock with weather, Digital clock with handwritten numbers
Прямо как старые демосцены с морфигами
Немножко смущает такое наложение двух слоев графики, хотя на картинке более менее читаемо. Но можно вокруг каждой "точки" сделать еще окружающую маску черным цветом. и будет точно демосцена.
Такую штуку уже можно показывать в номинации wild, только музыку добавить надо
Вот ещё древняя темка, если интересно. Работает только с движущимся текстом. Замечали, как на табло прямой шрифт превращается в курсив, если низ запаздывает с обновлением?
Берём табло крайне паршивого разрешения (допустим, 6 строк высотой) и…

Вычертите пиксельный глиф таким, каким он будет эстетичен и легкочитаем.
Обведите пиксельный глиф более плавным и эстетичным векторным глифом так, чтобы при пикселизации он обращался именно в такой пиксельный глиф (т. е. не заходя за центры пикселов там, где не надо, и как минимум слегка заходя за них там, где надо).
Согласно векторному глифу, задайте данные для кернинга (двух-трёх высот достаточно).
Разбейте векторный глиф на отдельные вектора, проходящие через пикселы.
Не пытайтесь сначала строить векторный глиф, а потом пикселизовать его. Обычно он пикселизуется в какую-то дрянь.
Итак, теперь у нас получен векторно-растровый глиф с кернинговыми данными, который при нахождении в целой пиксельной позиции (т. е. при неподвижном тексте) даёт желаемое пиксельное отображение.
Если теперь начать скроллить текст горизонтально, включая и выключая СД сообразно началам и концам векторных интервалов, преимущество субпиксельного разрешения будет в полной мере реализовано, значительно сглаживая грубый глиф до полученного в п. 2 векторного глифа.В случае, если метод применяется для шахматного расположения СД, за один столбец считается полностью повторяемый по горизонтали паттерн. Так, на рисунке показано знакоместо не 8х5, а 4х10: ширина в 4 СД и высота в 10. Просто эти 10 в каждом столбце расположены не вертикально, а "змейкой".
Кернинг в целых столбцах уже даёт слишком большие ошибки округления и следует использовать дробные величины.Позиция следующего символа берётся с точностью до целого столбца такой, чтобы суммы левого и правого интервалов соответствующих символов на всех трёх высотах лежали в заданных пределах. Пороги могут быть заданы как для отдельных интервалов, так и для среднего (например, где-то можно допустить "почти сливающиеся" соседние символы на уровне, скажем, "ножки", если они значительно отстоят на других уровнях, т. е. визуально по-прежнему хорошо разделены).
Поскольку кернинг всё равно округляется до столбца, при бедном алфавите можно просто хранить сочетания кернингов между любой парой символов.
Кратко резюмируя это писево — просто храним шрифт не растром X x Y, а в виде дробных величин «начало свечения/конец свечения» для каждого Y. Когда надо показывать текст — зажигаем и гасим светодиоды сообразно началу и концу свечения в нужные моменты, не обрубая их до кратности целому пикселу.
Зрительный аппарат при слежении глазами за движущимся объектом прекрасно сам всё достраивает до полноценной «механической развёртки» (как минимум, за счёт саккад), в результате чего мы получаем по горизонтали разрешение практически в четверть светодиода, то есть виртуальное разрешение увеличивается вчетверо, а шрифт типа «сложено из кирпича» — в плавный и аккуратненький.
Совершенно бомбически!
Требую DIY инструкцию для реализации на старом планшете → чтобы настенные, это же арт-объект))) а то 1,5 дюйма только на стол.
для реалистичной анимации движения точек
Строго говоря, реалистичность для таких табло - это гаснущие и загорающиеся точки. С цифрами из оранжевых круглых точек получилась довольно странная анимация.
А вот смена погодной пиктограммы выглядит реально круто и действительно реалистично во всех смыслах. Именно так могла бы выглядеть анимация даже на механическом табло, у которого пиксели - поворачивающиеся пластины, желтые с одной стороны и черные с другой. Надо и цифры в таком же стиле попробовать сделать.
Прикольно вышло, в коде правда чорт ногу сломит :-)
Надо будет порефакторить и сдёрнуть к себе в плазменные часы :-)
С погодой я бы ещё подумал что-нибудь, чтобы точки перемещались не рандомно или в порядке отрисовки, а по близости координат. Т.е. чтобы в примере на видео, например, солнце хвосты "отращивало", а они не прилетали откуда-то снизу.
Вы первый, кто обратил внимание на код :) Есть такая проблема, согласен. В своё оправдание скажу, что идея развивалась итеративно, постоянно шли эксперименты что как и где показывать, как организовать структуры данных. И делалось это урывками по паре часов в неделю, когда надо какое-то время потратить на мысль "а на чём я остановился и что запланировано дальше". После нескольких месяцев такого режима хочется уже наконец просто дописать проект до результата и не париться о рефакторинге :) Программа работает стабильно, работает как надо - задача выполнена. Рефакторинг оставлен на следующий проект в котором потребуется этот код.
Идея чтобы у солнышка отрастали лучики или наоборот сворачивались у меня была. Планировал решить именно тем способом, что и с цифрами - лучики делать последними точками в списке, тогда все общие будут оставаться на своих местах, а убираться или появляться будут автоматически. Но надо правильный порядок. Потратил много времени на эти символы и на войну с редактором, в котором их делал. Простой символ облака порядка 70 точек, расставлять индексы у более чем 20 иконок так чтобы переходы получились "плавными" -- я быстро устал, поэтому оставил просто в порядке сканирования, эффект тоже прикольный.
На счёт по близости координат -- такая идеяу меня тоже была, но там слишком много вопросов по крайним случаям, отказался от реализации.
Надо будет порефакторить и сдёрнуть к себе в плазменные часы :-)
Я, кстати, читал эту статью, круто вышло!
Здравствуйте!
В качестве платы какую плату от WeAct Studio можно использовать?
у автора используется плата с процом ESP32S который уже не актуален, как бы не должно быть особых проблем с прочими ESP32, но для спокойствия ESP32 без букв или ESP32-S3. При сборке прошивки нужно будет указать правильный тип проца и скорее всего указать GPIO
Главное, чтобы было 2 свободных SPI, по одному на каждый дисплей. Если я правильно помню, то серия -C имеет всего один свободный. Я пользовался обычным ESP32, без -S, -C и прочих вариантов. Серия -S обычно более навороченная, но и более дорогая. Программа на флешке занимает чуть больше мегабайта. Сам удивился, но большая часть занятого места -- стандартные части от ESP-IDF. Для работы после загрузки OS остаётся примерно 300кБ свободной RAM, программа при нормальной работе оставляет в куче 65-75кБ свободными, так что RAM хотя бы 450кБ должно быть. Из представленных на сайте я вижу только ESP32-S3 и ESP32 удовлетворяют требованиям, хотя -S3, я считаю перебором.
Так судя по картинке на NodeMCU-P32S модуль с -S ?
И тут в любом случае есть такая штука что на git частенько есть How To Compile там же ведь нужно указать terget
Мой модуль называется NodeMCU-32S, но чип на нём ESP32
, без -S.
Красивый эффект, но резкое исчезновение двойки во втором видео - не айс. Может сделать движение всех пикселей в одну точку с исчезновением после достижения конечной точки?
Матричный шрифт с анимацией на микроконтроллере