| |||
|
|
«Двоичные часы» это перепост заметки, оригинал находится на моем сайте: 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 Добавить комментарий: |
|||||||||||||