Приветствую, Хабр!

Как бы ни было печально признавать, но не все мои личные проекты превращаются в готовые изделия. Это происходит по нескольким причинам. Основная — нехватка времени. Второстепенная — безумство идеи. Эти причины возникают одна из другой. Появляется безумная идея, на которую нужно много времени. Хочу немного рассказать о своих незавершенных проектах, может кому-то окажется полезным, познавательным, а главное — «решабельным». Проектов, конечно, больше, но в статье собрал самые интересные.

Проект NFC-термометра


Шел далекий ковидный 2020 год (кажется, уже прошло много лет). Так как наша компания (не Selectel) непосредственно связана с разработкой, у нас мгновенно появилось пара проектов по этой тематике. К нам обращались по поводу очистителей воздуха, УФ-фильтров, ионизаторов и т. д.

Я стал усиленно думать на эту тему и меня осенило. Что чаще всего использовали в школах, садах, магазинах, торговых комплексах и на различных мероприятиях? Правильно — термометры для определения температуры тела. Это был первый признак болезни.

Идея родилась мгновенно. Разработать беспроводной датчик температуры с NFC. Я не забываю о том, что все метрологические средства должны иметь соответствующие сертификаты, но речь не об этом. Идея была проста. На гибкой подложке размещается NFC приемо-передатчик, микроконтроллер и датчик температуры. Вся конструкция приклеивается на предплечье (например). Прикладываем телефон — определяем температуру. Если перейти на RFID, то можно читать на расстоянии более метра. Плюс (а точнее минус) там другие габариты антенны.


Рис 1. NFC датчик температуры.

Устройство построено на основе микросхемы NFC Tag – NT3H2111W0FHKH, датчика температуры SI7051-A20-IMR и микроконтроллера. Суть была проста, Tag позволяет записывать в свою память, которую далее можно считать ридером NFC. У меня это даже получилось. При питании устройства от отладчика я свободно писал данные температуры с SI7051 и читал телефоном.

Ошибка была на этапе выбора тэга. Как известно, запитывание и обмен данными по NFC происходит по одной антенне (она разведена на плате). Микросхема отвечает достаточно быстро, соответственно первый раз я читал пустые (старые) поля, а второй раз — уже записанную ранее температуру. Я делал еще пару итераций платы с различными ухищрениями вплоть до коммутации антенны к tag после записи температуры в ячейки, но все было тщетно.

До сих пор разглядываю плату, смотрю код и думаю, можно ли что-то доработать. Но момент, как говорится, упущен.

Проект управления емкостным сенсором


Пока не столкнулся с подобной задачей, даже не представлял, насколько она сложна в реализации. Как можно тапать по емкостному тачу? Правильно — пальцем. А если мы хотим немного автоматизировать процесс? Ставим сервопривод, который тапает специальным стилусом по экрану. А если нужно покрыть весь экран? Тогда добавляем несколько шаговых двигателей и делаем подобие 3D-принтера с необходимым алгоритмом.

Есть другая реализация. Не буду углубляться в подробности, но, оказывается, уже существуют геймпады на основе этого метода. Яркий пример — Flydigi WASP 2.



Рис 2. Геймпад Flydigi WASP 2.

Думаю, что вы уже уловили суть. Устройство позволяет нажимать несколько кнопок на экране и «елозить» в небольшой области джойстиком. Как видно из картинки, покрытие маленькое и для текущей задачи не подходит.


Рис 3. Контактные площадки для управления тачем.

Для начала нужно вообще понять, будет ли работать данная система для всего экрана. Было решено раздвинуть контакты (Рис 3.) так, чтобы покрыть ½ экрана и использовать два устройства.

Джойстик имеет внутри переменное сопротивление, а точнее два. На его вход подается напряжение порядка 2,5 В, а на двух выходах снимается. 1,25В по обоим напряжениям — это точка с нулевыми координатами. Так как механику необходимо было исключить, джойстик заменил двумя электронными потенциометрами AD5241BRZ10, в которые писались нужные сопротивления по I2C. Кратковременное включение этой микросхемы позволяло выдать нужное сопротивление, тем самым установить положение джойстика на некоторый момент, затем — снять его.

Забегая вперед, скажу, что идея вполне годная, если разрабатывать с нуля плату (слева на рисунке 3). Моих познаний в программировании точно не хватило бы для решения задачи. Я сделал стенд, в который помещается телефон. Принимая команды, например, по UART, Arduino nano меняет сопротивления резисторов, эмулируя джойстик. Тем самым — тапает по экрану.


Рис 4. Стенд для тестирования.

Это работает. Область покрытия экрана расширилась, область работы джойстика стала больше. Единственный минус именно этого решения — это немного «рваные» нажатия на тач. Но это не критично, зато можно делать «свайп» без проблем.

На оригинальном геймпаде установлен микроконтроллер и пачка мультиплексоров, то есть аппаратная часть не очень сложная. Таким образом, если переписать ПО (либо разработать целиком плату управления), можно данную задачу решить.

Проект «Beam-on-Floor»


Этот проект я еще не до конца забросил, но отложил в долгий ящик. Почему-то пропало не только время, но и желание. Может, идея кому-то покажется интересной. У посудомоечных машин есть некая функция, которая называется Beam-on-Floor, что дословно переводится как «луч на полу». Служит она для отображения работы посудомойки — это бывает необходимо, так как, например, сушка, нагрев воды и т.д. протекают бесшумно.

Обычный таймер стирки почти всегда скрыт и виден только в момент установки программы (до закрытия дверцы). Так вот функция луча есть далеко не на всех моделях. Можно пойти простым путем: взять сигнал от индикатора/светодиода на панели и через транзистор управлять лазерной указкой (или светодиодом), направив ее (его) в пол. Я захотел разработать устройство, которое бы не требовало вмешательств в устройство машины.

Если посудомойка работает, она потребляет энергию. Основные потребители — это мотор, нагреватель, клапаны, сама плата управления и т. д. Но что будет, если измерять ток потребления и на основе данной информации зажигать/гасить луч?

Существуют так называемые трансформаторы тока, которые позволяют бесконтактно измерять мощность на нагрузке, которая проходит через провод. По сути, это является почти обычным трансформатором.


Рис 5. Суть метода (картинка из интернета).

Сделал плату, спаял, написал прошивку и понял, что через трансформатор нужно пропускать только один провод из двух. Бывает, можно подлезть к нужному проводу внутри корпуса машинки (снизу есть доступ), но это сложно, особенно когда она уже установлена. Для фото, к сожалению, нашел только плату без компонентов, разведена была в корпус от Ethernet-розетки. Справа — «разъемный» трансформатор тока, который можно просто защелкнуть на кабеле.


Рис 6. Плата измерителя тока в корпусе.

Думаю, буду все переделывать: уберу токовой трансформатор и поставлю микросхему измерения тока типа ACS712, а само устройство помещу в удлинитель (вроде пилота на одну розетку), к которому и будет подключаться посудомойка.

В устройстве, кстати, используется AC/DC-преобразователь LNK306PN. Очень хорошо себя показал в различных устройствах.

Идея Ambilight


К сожалению, так и осталась на уровне идеи. Если кто-то не знает, что такое Ambilight, то ниже картинка.


Рис 7. Ambilight.

Это технология фоновой подсветки для телевизора, которая была изобретена и запатентована компанией Philips. На данный момент есть несколько похожих реализаций данной функции с помощью адресной светодиодной ленты на задней стенке корпуса ТВ. Я знаю несколько решений.

  1. Анализ изображения по HDMI. Существуют приставки, которые подключаются в разрыв по HDMI, анализируют сигнал, а дальше управляют светодиодами. Отличное решение, но есть и минус: одно устройство — одна приставка. Не работает с эфирным ТВ и USB по понятным причинам.
  2. Приставка для ПК. Тоже адресная светодиодная лента, но приставка подключается по USB к ПК. Специализированное программное обеспечение анализирует картинку и подсвечивает экран. Такие же варианты есть для Android-телевизоров, но там множество ограничений.
  3. Анализ изображения камерой. Мне кажется, тут единственный минус — это кронштейн камеры. Все остальное — замечательно. Нет зависимости от интерфейсов и источника сигнала.



Рис 8. Система «Nanoleaf 4D Screen Mirror»

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


Рис 9. Анализ изображения с помощью ПЛИС.

В одном из проектов мне нужно было вывести на две LVDS-матрицы одинаковое изображение. Так вот, можно просто соединить матрицы (при условии, что они очень похожи) параллельно, и они будут замечательно работать. Появилась идея разветвить LVDS и встроить в телевизор плату, которая будет анализировать сигналы с MAIN и управлять все теми же адресными светодиодами. Думаю, тут не обойтись без ПЛИС. Начал разбираться с софтом и понял, что для меня это непосильная задача.

Немного позже пришла идея, что можно конвертировать сигнал LVDS в HDMI аппаратно, используя, например IT6263 или что-то похожее. После — подключить к имеющейся в продаже приставке с HDMI, но руки так и не дошли. Как всегда, на все интересное для души не хватает времени.

Спасибо за внимание и успехов! Пусть все ваши идеи воплощаются! Делитесь в комментариях, какие проекты не удалось довести до конца, — будет интересно почитать.

Комментарии (29)


  1. questfulcat
    30.07.2024 08:57
    +10

    Мне кажется, куда драматичнее ситуация, когда есть проекты функционально завершённые, и которыми сам регулярно пользуешься, но публиковать их в том виде, в каком они есть, как-то рука не поднимается. А долго вылизывать код и приводить к должному виду, чтобы не стыдно было выложить на всеобщее обозрение - не хватает какого-то бескорыстного трудолюбивого порыва.


    1. pechkinkorp
      30.07.2024 08:57

      я свои личные проекты, чтобы не пропали просто выложил у себя в канале.

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

      (я не прогер, я конструктор)


      1. the_bat Автор
        30.07.2024 08:57
        +1

        Согласен, может кто-то воспользуется Вашим проектом для реализации своего. Бывает натыкаешься на интересные реализации чего-либо, а потом используешь у себя.


    1. the_bat Автор
      30.07.2024 08:57

      Мне кажется, что многим будут интересны проекты даже в таком виде.


    1. MaFrance351
      30.07.2024 08:57
      +1

      А ещё вариант - когда есть что-то и полностью рабочее, и даже то, чего не стесняешься, а выложить всё равно не хочется. Потому что думаешь, что ничего в этом особенного (хотя не всегда это так), что все уже такое делали, ну и прочее такое.


      1. NickDoom
        30.07.2024 08:57
        +2

        …и в результате

        «блокнот» в несколько гигабайт(!) выкладывают совершенно бесстыдно, а
        нормальный — не выкладывают, потому что «закритикуют за недостаточный
        уровень пафоса в проекте». Не надо так.


    1. NickDoom
      30.07.2024 08:57
      +3

      Ужасная парадигма. Поэтому «блокнот» в несколько гигабайт(!) выкладывают совершенно бесстыдно, а нормальный — не выкладывают, потому что «закритикуют за недостаточный уровень пафоса в проекте». Не надо так.

      Вот на меня посмотрите — ни стыда, ни совести, есть идея — сделал пост, есть попытка — сделал статью, кому надо — подберут, кому не надо — критикуйте сколько влезет, я в состоянии «на глаз» отличить дельную критику, улучшающую проект, от придирок. За хорошее указание на свой недочёт не грех и карму поднять — человек старался, помог ведь…

      И пофиг мне замечания к качеству кода в той же «четвертинке Октодона», всё равно если кто-то возьмётся продолжать — ему всё с нуля писать на GLSL, так что в коде должно быть понятно, где руки, где ноги и где функция ошибки, а работать этому коду не придётся — GLSL-версия за пять минут сделает больше, чем моё писево могло бы потенциально сделать за когда-нибудь, поэтому смысл переживать за код? Да, он говно. Я могу что-то переписать или вычленить ради героического героя, готового писать GLSL-версию и запросившего «чистовик», но «на всякий случай, чтобы пальцами не показывали» — да тогда вообще никогда статья не родится и проект тихо сдохнет, а дохнуть надо громко и публично :-D как тот же Октодон :-D


      1. questfulcat
        30.07.2024 08:57

        Вы хотите сказать, что наличие совести у разработчика перед его аудиторией - это ужасная парадигма?


        1. dv0ich
          30.07.2024 08:57
          +2

          Я думаю, хорошо бы уметь отличать добросовестность от зажатости и самоедства. Первое норм, второе делает хуже и тебе и другим.

          У меня до сих пор не всегда получается.


          1. NickDoom
            30.07.2024 08:57

            Именно так. Весь первый абзац после дисклеймера.

            Ну или «я боюсь осрамиться» vs «я боюсь навредить».

            Хотя в силу отсутствия совести как личного качества (не на уровне парадигмы) я сначала пост оставил, а потом и вовсе выложил те наработки как есть :)


          1. questfulcat
            30.07.2024 08:57

            А как можно их отличить? Если добросовестность и есть форма зажатости, ограничения себя. По сути добросовестность - взятие на себя неких обязательств и выполнение их, в данном случае - перед потребителями твоего продукта, пусть и бесплатного.

            Вот, к примеру, представьте, есть у человека одна полезная утилита, но сложная настолько, что он и сам порой забывает некоторые аспекты её работы, и приходится лезть в код разбираться. Будет ли добросовестным выкатить её релиз для общественности, в котором кроме него вряд ли кто-то что-то поймёт, а скорее, только время потеряет? В таком случае автор берет на себя обязательство не публиковать его до поры, пока не сделает удобным для неподготовленного пользователя. Что это - добросовестность? Зажатость? Самоедство? Или всё это и есть одно?


  1. Javian
    30.07.2024 08:57
    +1

    Проект «Beam-on-Floor»

    У меня в 2003 году появилась стиральная машина BOSH, которая никак не сообщала об окончании стирки, кроме как зажигания светодиода. Я придумал поставить напротив него фотодиод, запускавший генератор сигнала (пищалку) на транзисторах.


    1. the_bat Автор
      30.07.2024 08:57
      +1

      Да, отличное решение! Я тоже думал встроить в столешницу фотодиод/транзистор и как-нибудь реализовать мониторинг.


    1. questfulcat
      30.07.2024 08:57
      +1

      а не проще было расковырять панель машинки и попробовать припаять зуммер параллельно светодиоду? Или гарантия мешала?


      1. Javian
        30.07.2024 08:57
        +1

        Ожидал ,что там всего там SMD под слоем лака и это не стоило потраченного время на вскрытие, демонтаж, очистку контактов и пайку.


    1. MaFrance351
      30.07.2024 08:57
      +1

      Напомнило какой-то девайс для машинистов, который так же контролировал фотодиодом зажигание лампы бдительности и начинал пищать, давая лишние несколько секунд, чтобы чуть более спокойно жмякнуть кнопку бдительности (и тем самым сберечь нервы и премию).


  1. MaFrance351
    30.07.2024 08:57
    +1

    Прекрасно.

    Как по мне, проекты, когда что-то не получилось, тоже иногда стоят публикации. Это убережёт желающих повторить от тех же самых ошибок.

    Ну и очередное напоминание, что не всегда железки собираются шутя и работают с первого раза, иногда это долгие вечера с паяльником и отладчиком, которые зачастую потом описываются просто как "После некоторых разбирательств стало понятно...".


    1. the_bat Автор
      30.07.2024 08:57
      +1

      Совершенно верно. Бывает для того кто публикует что-то вполне очевидно, но на деле это не так.


  1. sepulkary
    30.07.2024 08:57
    +2

    Я тоже когда-то развлеклся всякими-разными железячными проектами на базе микроконтроллеров: игрушечный сотовый телефон, твердотельный датчик радиации на Arduino, радиоуправляемый указатель поворотов для велосипедистов, GPS-трекеры, охранные сигнализации с голосовым меню и прочее.

    К сожалению, бизнес-подход Adafruit (продажа железок с опенсорсными исходниками) у нас не развит, а Kickstarter не доступен...


    1. the_bat Автор
      30.07.2024 08:57
      +3

      Эх, у меня вот тоже идея сделать сотовый до сих пор есть. Потом подумаешь, а для чего? Ваша версия с дозиметром интересная.


      1. sepulkary
        30.07.2024 08:57
        +1

        Потом подумаешь, а для чего?

        Можно просто так, прикрыть гештальт :)

        Еще можно попробовать заработать, сделав что-то интересное и востребованное, если у вас есть возможность самостоятельно или через посредника обнародовать свой проект на Kickstarter или Indiegogo; там довольно много относительно несложных разработок, людям нравится.


      1. NickDoom
        30.07.2024 08:57

        Надо и мне свои наработки по сотовому выложить. У меня там была темка впихнуть ось в килобайты, а защиту для простоты реализовать по принципу «каждому исполнимому коду доступна его директория и её поддиректории». То есть, грубо говоря, c:\ — только для root :) А чтобы делать какие-то исключения — из-под рута создаём симлинки на другие директории.

        Всё это должно было крутиться на сигнальном процессоре, который умеет складывать две пары регистров за один такт и делать прочие вещи, изначально предназначенные для ЦСП, но работающие для какого-нибудь наложения полупрозрачных текстур в игрушках ничуть не хуже…


      1. MaFrance351
        30.07.2024 08:57
        +1

        У меня так же есть идея сделать MP3-плеер. Не то чтобы он был мне так сильно нужен, просто давнее желание со времён начала увлечения МК.

        А телефон - это само собой... Возможно, даже когда-нибудь соберу его.


      1. NutsUnderline
        30.07.2024 08:57
        +1

        когда я мечтал сделать свой телефон то уровень телефонов (бюджетных) не позволял получить что я хочу (например, внезапно, нормальную синхронизацию контактов) . ну и со встроенным счетчиком гейгера кстати. сделал кое какие наброски софта, научился рабоать с outlook. купил SDK для модемов в которые можно было свои скрипты заливать. купил cog дисплей от melt. и забил.

        спустя лет 10 купил набор для сборки телефона xiadow. в нем можно уже на Си компилировать,, сделать оболочку свою. это почти не разработка, так, уровня Ардуино. Но прогресс улетел далеко вперед, объективной причины заняться - нет.


  1. zabanen2
    30.07.2024 08:57

    звучит как неплохая тема для конкурса статей. но плохая потому, что для этого есть кикстартер, патенты ...


    1. the_bat Автор
      30.07.2024 08:57
      +1

      Не понял Ваш посыл. Для чего есть кикстартер? А для чего тогда Хабр?


  1. NutsUnderline
    30.07.2024 08:57

    мне особо обидно за датчик nfc, это что особенное, а проблема выглядит чисто софтовой.

    ambilight уже вроде сделали и и на плис. Но это уже точно тот случай когда проще выбрать такой телек и наслаждаться. в случае пк есть проект hyperion который организует софтовый видеозахват с экрана. ну и аппаратные видеозахваты в таких случаях используют, раньше были с аналоговым по rca, сейчас и hdmi полно недорогих

    у меня изначально использовалась штука под названием ambix с управлением под usb., и можно писать свои софты, но не взлетело


  1. Anton1906
    30.07.2024 08:57

    А для датчика температуры нельзя было сделать приложение на телефон, которое бы считывало данные несколько раз, а на экран выводило бы только температуру, полученную во время последнего считывания?


    1. the_bat Автор
      30.07.2024 08:57

      Была такая идея, но я подумал об этом слишком поздно. Долго мучился, чтобы работало с первого чтения. Упустил момент.