lleo_kaganov (lleo_kaganov) wrote,
lleo_kaganov
lleo_kaganov

Categories:

«Двоичные часы»

это перепост заметки, оригинал находится на моем сайте: https://lleo.me/dnevnik/2020/02/17_clock

Расскажу вам про «Двоичные часы».

Давно хотел рассказать, да как-то... чуть было не сказал «времени не было». Итак про время. Перед вам часы. Которые показывают время. Но не для всех, а только для настоящих программистов. Часы мигают и светятся, но время здесь закодировано:


На фото выше, например, часы показывают 17 часов, 52 минуты и 34 секунды. Что это значит и как можно было догадаться? Код здесь двоично-цветовой. Синие огоньки, прыгающие по позициям — это секунды. В каких позициях они горят, столько и секунд. Шестибитное пространство для огней, как мы понимаем, вполне подходит для описания от 0 до 59 секунд, и даже имеет некоторый запас :) В том же шестибитном пространстве зеленые огни изображают минуты, а красные — часы. Все было бы понятней, если б у каждой шкалы были свои биты. Но секунды, минуты и часы прыгают по одним и тем же шести битам. Ну ладно, часы — только по пяти битам. Как же они могут что-то показать одновременно? За счет смешения цветов. Тут надо догадаться по оттенку лампы, какие биты в нем сейчас горят. После тренировки это становится возможным.

Лампы здесь — чисто декоративные, винтаж и радиопанк. Как-то даже жалко становится, что они новенькие, исправные, но не подключены, а только выполняют функцию стекляшек. С другой стороны — да слава богу, что не подключены, с детсва мечтал, что настанет далекое будущее, счастливый 21 век, когда все радиолампы разобьют кочергой, весь проявитель и фиксаж выльют в унитаз, и будет время новых технологий. В этих часах управляет всем микросхемка STM и подключенные к ней RGB-светодиоды:

Смотрится все конечно смешно и фантастически. Каждый из цветов по отдельности:

Из минусов — блок питания. В смысле, блок норм, он в комлекте, но с ним же шнуры, которые тянутся от стола к розетке... Я понимаю, что питать от батареи такую непрерывно светящуюся конструкцию невозможно. Но от часов почему-то ждешь мобильности. Шнур-то еще ничего, но на борту устройства нет RTC (real time clock). Поэтому если ты выдернул шнур из розетки или в доме выключилось электричество (секунд 15-20 перебоя схема еще выдержит за счет конденсатора, но дальше уже нет) — то будь готов выставлять время вручную заново, щелкая по двум маленьким кнопкам...

Не знаю, как у вас, но у меня от этих часов сразу прут в голову идеи. Вообще тема синхронизации часов — она богатейшая. Конечно, есть GPS, но он требует дорогого и сложного чипа. И не в любом помещении будет ловить. Есть длинноволновый стандарт точного времени DCF77, говорят, даже до России из германии добивает. Сам Игорь (разработчик часов) вообще как-то предлагал запустить пару спутников длинноволнового вещания специально для синхронизацции часов... А я бы навскидку посоветовал чуть доработать схему с мизерными затратами по железу — 4 рубля. То есть — припаять фоторезистор на вход АЦП, все равно входы на чипе простаивают без дела, да и процессору основную часть времени тоже нечем заняться. С помощью фоторезистора можно, как мне кажется, читать окружающий свет и выделять из него полезные сигналы. Например — ловить команду установки времени. Сделать мобильное приложение, которое бы выставляло часам время, мигая фонариком. А лучше без приложения, задолбали эти бесконечные приложения по каждой херне. Просто сделать отдельную страничку сайта на JavaScript чтоб мигала экраном, передавая сигналы точного времени. Открыл страницу, поднес экран мобильника — установил время. Конечно не Li-Fi, но фигли там, горстку бит отмигать экраном в браузере, мы подождем:


<input ... > <input ... >

Я вообще сейчас интересуюсь темой фоторезистора, потому что работаю с esp8266, там всего один аналоговый вход, и в устройствах полива цветов он занят — контролирует ток насосика, определяя, не закончилась ли в баке вода. А вот в умных розетках или, скажем, вот на прошлой неделе я спаял термометр и отправил одному хорошему человеку в Екатеринбург термометр, так там нога АЦП пропадала зря, и я от нечего делать впаял фоторезистор и стал наблюдать графики, которые он показывает... И в этот момент до меня дошло, что фоторезистор — это вообще, пацаны, тема. С ним ведь можно делать управление жестами. Делаешь волшебные пассы руками над девайсом: дважды махнул рукой — одна команда, трижды — другая... Но лучше конечно сразу передавать данные. Скажем, ты хочешь сделать первоначальную настройку девайса — подключить к своему вайфаю хотя бы. Это ж, блин, морока отдельная! Кто хоть раз в жизни настраивал какие-нибудь покупные домашние девайсы и прочие мелкие коробочки от Сяоми до Хреноми, тому знаком этот унылый квест: приложение установи, блютуз включи, поиск устройств задай, а то — и сетку вайфай, созданную девайсом, найди и попробуй туда залогиниться, потеряв для этой цели собственный интернет... Не XXI век, а трэш какой-то. А тут — открыл «настроечную страницу» на сайте производителя, поднес экран мобильного, оно тебе помигало — и всё, что надо, девайс прочел и прописал. Ильин, кстати, давно предлагал управление светом для своих девайсиков, но как-то не дошло до реализации. Теперь думаю, надо сделать.

Есть идеи, как реализовать на C современный помехоустойчивый алгоритм получения крошечных посылок данных с фоторезистора? Поделитесь. Я бы — чисто навскидку — брал за основу формат посылки IR, но переписывал irremote.h с учетом отсутствия внешнего прерывания по пину. У фоторезистора же нету несущей частоты, не нагорожено компаратора и цифрового выхода, данные прут аналоговые, надо их мерять своим таймером и какую-то фильтрацию наверно делать, интересно какую... Или есть готовое решение для медленной аналоговой передачи? В общем, мне кажется, тема интересная.

А что касается часов, с которых мы начали разговор, штука конечно удивительная. Не только своим принципом работы, но и просто как шикарное украшение интерьера — мигает, светится, и радует даже тех домашних, которые не умеют читать двоично цветовой код. Котов, женщин, детей... ;)



это перепост заметки, оригинал находится на моем сайте: https://lleo.me/dnevnik/2020/02/17_clock
Tags: обзор
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 1 comment