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

Идея
Сама тема совершенно не нова, мне давно попадались похожие проекты, но на их повторение не хватало ресурсов: времени, знаний, навыков, покаУже не вспомню, на каком ресурсе увидел подобное устройство, и засело очень сильно желание сделать что-то подобное.
До начала работы, у меня был нулевой практический опыт работы с векторной 2D и 3D графикой и ЧПУ, а Windows мне до сих пор лень устанавливать. Шёл 4й месяц безработицы на фоне сильного эмоционального выгорания.
Отправной точкой стал вот такой чертёж в CDR:

Folker Stange // thingiverse.com
Здесь предложено использовать 3мм акрил и ленту WS2812b 144 диода/метр, это ячейка с одним SMD диодом 12 x 6.9 мм от этих метрик отталкивается вся последующая геометрия при создании чертежа.
Вроде, всё просто!

X-фильм // Банкомат, Lave, верёвка.
Но не мог же я с этим идти к станку или к станочнику и сказать хочу вот так!, макет нужно было подготовить свой. После попыток изготовить конвертируемый чертёж, были отметены как неподходящие IncScape, LibreCAD, FreeCAD; AutoCAD и CorelDraw под Wine не вариант, и тут мне попался BricsCAD нативная DWG совместимая САПР, в которой и по сей день работаю.

Параллельно, нужно было найти сам станок и доступ к нему, а в столице деревень их не так-то много.
Знакомые предложили обратиться в ФабЛаб строительного университета, упомянув, что там мне могут помочь с разработкой механической части. Написал в несколько организаций, и охотнее всего пошли на контакт в ФабЛаб ТюмГУ, там и печтатался. В качестве материала выбрал фанеру, т.к. она дешёвая и достаточно прочная для такого изделия.

Контуры цифр взяты здесь из макетов ГРИ (т.к. ещё не очень хорошо владел КАД-ом).

А пока разбирался с чертежом и печатью, подъехали рулон ленты и модные болтики с Ali.

Когда резали оргстекло, зашёл техник из соседнего отдела:
Вы так много режете из оргстекла? Оно же дорогое!
Красота требует жертв...

В итоге, нулевая сборка изначально состояла из неуклюже стоящих на четырёх ножках платформ с качающимися на них стёклышками, норовящими выпасть. /* оргстекло 3мм как в инструкции */
Первое слабое место проушины для скрепления, они были слишком тонкие и ломались.
Второе вертикальная установка на базу. Я не нашёл иного способа быстро соединить одно с другим, кроме как штырьевой вилкой с шагом 2,54мм (DIP) благо такие есть в каждом радиомагазине. Башенки сильно шатались, и пришлось прикрутить их к базе намертво, так что конструкция стала электрически неразборной (с выпадающими стёклами).
Устройство было подарено старому другу в накануне его бракосочетания и наверно, продолжает радовать по сей день.
Сборка 1
Условием ФабЛаба к сотрудничеству было создание второго экземпляра в пользу университета. Учёл ошибки, переписал код, и в этой и последующих сборках установка ламп стала горизонтальной, а-ля салазки.

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

В сборе:


На фото видно подгоревшие линии: тогда ещё не знал, что такое поликарбонат, что он ядовит, и что его нельзя резать лазером, ибо при нагревании горит. Но результат был изготовлен и украшает коридор университетского ФЛ.
Цифры: если рез глубокий то передние контуры перекрывают свечение задних слоёв, и нужно технику в комментарии поставить жирный акцент на том, что это должна быть гравировка, а не рез.
Последующие итерации заказывал в лазерной мастерской, стёклышки из ПЭТ, бока и задняя стенка в последней редакции тоже стали из прозрачного материала (со светоотражающей плёнкой).




Железо

ESP8266 выбрана, потому что мне удобно собирать инструмент настройки в виде WEB-приложения. Ещё, под неё есть библиотека Ticker позволяющая выполнять функции по расписанию и отвязаться от loop();
Схема подключения на самом деле просто.

За каждыой 4-штырьковой розеткой лампа

Подобную схему соединения описывает AlexGyver в проекте пиксельного рюкзака, только здесь другая плотность.
ПО
Arduino IDE =)Хорошая базовая русская документация по ESP8266 Arduino Core есть на wikihandbk.com, в скетчах-примерах, и в исходниках на гитхабе
Back-end
HTTP и WebSocket сервер, FTP, ArduinoOTA (чтобы каждый раз не искать провод), mDNS для OTA и DNSServer для имитации CaptivePortal в режиме точки доступа, работа с FastLED и RTC модулем, NTP клиент, математика RGB эффектов и плавных переходовFront-end
HTML, JS (React, и немного jQueryUI), Bootstrap CSS.Всё, что более или менее статично вёрстку, стили, скрипты, настройки WiFi, сохранённые пресеты, ещё что-то через HTTP: статичные настройки и пресеты удобно упаковывать в JSON и заливать как файл на фронте, а на бэке перечитывать через ArduinoJSON
Динамические значения текущее время, а так-же оттенки, интервалы, переходы, и другие байтовые параметры, которые живут в объекте EEPROM, быстрые команды по вебсокету.
Страница настройки отображения и эффектов у меня выглядит так:

Здесь, Scheduler отдельный класс на front и back части, применяющий сохранённые настройки по расписанию.
Проекту примерно год =)
Новые фишки можно дописывать сколько хватит фантазии.
И это всё?
Фото и видео работы на разных этапах разработки есть в соцсетях vk и instagram
И, пока сидел на карантине, собрал Живые обои для Android (на моём самсунге не завелось).

Есть так-же веб-демо-версия на Vue.JS, которую можно выкачать, обернуть в WebView, и запускать, например, как экранную заставку (на любимой платформе), переписать на таймер обратного отсчёта, или использовать в любых других своих нуждах. Там та же вёрстка, с теми же ресурсами, что в андроид-приложении.
А исходники?
Примеры реализаций с четрежами и прошивками можно найти на thingiverse, hackaday.io, instructables, они частично пересекаются с тем, что наглядно и залипательно, и ищется на: Яндекс.Картинках, Pinterest, Youtube
Это мой первый
Спасибо за прочтение.
Всем добра, чистого, внятно комментированного и производительного кода ;)