habrahabr

Нехватка времени. Мои незавершенные проекты

  • четверг, 1 августа 2024 г. в 00:00:15
https://habr.com/ru/companies/selectel/articles/831172/

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

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

Проект 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, но руки так и не дошли. Как всегда, на все интересное для души не хватает времени.

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