2022-07-29
Пара новостей по блогу. Некоторое время назад истек срок аренды моего домена soup.rocks. Домен я арендовал у Namecheap, который в связи с известными событиями заблокировал российским клиентам возможность продлевать домены. Так как у меня не оказалось возможности оплатить домен у любого другого зарубежного регистратора, блогу временно пришёл конец.
К тому же, я был не очень доволен выбранной темой для Hugo, и хотел либо написать свою с нуля, чтобы полностью контролировать отображение постов, либо вообще уйти с Hugo и написать что-нибудь своё в качестве практики. Впрочем, за всё это время руки у меня так и не добрались.
Тем не менее, я хотел иметь возможность вести какие-то записи, как для себя, так и возможно для кого-то, кому они покажутся полезными. Основная идея блога – записывать сюда что-то, что пришлось искать дольше первых пяти результатов выдачи гугла.
Поэтому я решил переместить все записи в отдельную репу и поднять просто бложик через GitHub Pages. Самое простое временное решение.
Я давно мечтаю сделать свою реализацию WordClock. Весной друзья подарили мне детали для сборки такого проекта, что сильно приблизило меня к тому, чтобы начать. Итак, у меня имеется:
Роскошный подарок устроили мне друзья, как видите.
Я начал продумывать реализацию. Мне надо подумать о трех вопросах: функционал, подключение компонентов, сборка. Необходимо определить, какие функции я хочу заложить в часы, как ими пользоваться, как управлять; какие компоненты мне нужны, как соединить их вместе; как собрать это всё в единый корпус. Все эти вопросы тесно взаимосвязаны друг с другом.
Для начала, мне нужно откуда-то брать время. ESP32 удобна тем, что имеет встроенный Wi-Fi модуль, через который можно выходить в интернет и забирать время с NTP-серверов. С другой стороны, я не знаю, где будут эксплуатироваться часы, будет ли там вайфай, не будет ли задержек до NTP-сервера, поэтому надежнее положиться на RTC-модуль, подключённый к плате. Также надо будет понять, нужна ли будет подстройка точности времени, если да – нужно будет предусмотреть способ управления для этого.
С управлением вообще отдельная тема. На ESP32 можно поднять свой микроскопический web-сервер, и через него посылать команды управления часами – например, менять цвет, интенсивность подсветки, устанавливать время, и т.д. Но опять-таки, если собирать часы не для себя, то непонятно, будет ли этим кто-то пользоваться. Возможно стоит предусмотреть физические органы управления часами.
Вопрос подключения компонентов в общих чертах понятен. Фасад, который друзья напечатали для меня, выглядит следующим образом (взято отсюда):
Сетка 11х10 букв, плюс четыре диода для обозначения “промежуточных” минут. Диодную ленту необходимо будет разрезать на 10 полос по 11 диодов, плюс четыре отдельных диода. Все они будут подключены по цепочке. Контроллел и весь блок плат разумнее расположить в нижней части часов, поэтому цепочка начнется от левого нижнего угла (буква “П”) слева направо, затем второй ряд справа налево и так далее до левого верхнего угла (буквы “С”), затем к левому верхнему диоду и против часовой стрелки вниз.
При использовании драйвера AMP-B114 лента подключается к питанию и контроллеру не совсем очевидным способом (питание подводится как бы к хвосту ленты), но в принципе он укладывается в план расположения компонентов внутри:
Теперь вопрос сборки, он самый сложный. В интернете есть несколько вариантов самодельных WordClock, например очень подробный разбор вот здесь. Во всех вариантах присутствуют схожие элементы – фасад с вырезанными буквами; подложка, рассеивающая свет от диодов; решетка, разделяющая диоды, направляющая свечение на буквы через подложку и препятствующая засветке букв соседними диодами; собственная, сами диоды, приклееные на доску в том или ином виде. Далее возможны варианты – в некоторых случаях все эелементы упаковываются в фоторамку большой толщины. В примере по ссылке выше используются элементы из МДФ-доски одинакового размера – для решетки и для панели с диодами – которые склеиваются в такой “сендвич”. Этот подход прост, но не нравится мне тем, что разобрать такие часы будет уже невозможно. Пока что мне больше нравится идея упаковать все компоненты в ящик по типу фоторамки. Скрепить, вероятно, придавив заднюю стенку зажимами, тоже по примеру фоторамки. Так я смогу, в случае необходимости, открепить зажимы и вытащить все внутренние детали часов. Недостаток такого подхода в том, что все размеры должны быть точно подобраны, чтобы детали внутри коробки не “ходили”.
В любом случае, ближайшими задачами будут прошить ESP32, подключить к ней диодную ленту и научиться управлять диодами.