Сообщество - Инженериум DIY

Инженериум DIY

644 поста • 5 576 подписчиков

Популярные теги в сообществе:

14

Доработка модуля на INA3221⁠⁠

Я обещался написать, что делать, если вы купили то, что на фото, и тоже думали, что это трехканальный hi-end измеритель тока-напряжения. В чем проблема с этим модулем. На нем стоит чип INA3221, это неплохой трехканальный токоизмеритель. Открыв даташит, мы увидим, что у него есть 3 канала, обозначенные парами CH+ и CH-.

По описанию очевидно, что эти каналы цепляются по обоим сторонам шунта и, по сути, единственная их задача состоит в том, чтобы измерять разницу напряжения между каналами. Зная эту разницу и напряжение на CH+, микросхема может посчитать ток канала. Такой вот метод измерения называется hi-end, т. е. в разрыв некоего произвольного проводника сверху схемы питания. Взяв этот модуль в руки, я вообще вначале не понял, как его использовать, а потом до меня дошло, что за каким-то невиданным хреном из него сделали low-end. Т. е. один из его каналов всегда замкнут либо на VCC, либо на GND. Таким образом, это просто отрубает всю прелесть INA3221 и позволяет его использовать только либо на входе, либо на выходе тока с устройства. То есть, если попросту, либо сразу после батарейки, либо прямо перед. Мотивы такой схемотехники мне непонятны, буду благодарен за пояснения. Благо обратное его превращение в hi-end оказалось делом нескольких движений скальпелем. На фото сверху синим обозначена дорожка, которая замыкает все CH- на GND. Нужно отвязать ее от шунтов, перерезав в указанных красной линией местах, и паяться прямо к шунту. Левая сторона шунта просто замкнута на ближайшую дырку, а правая теперь никуда не ведет, поэтому к ней паяем второй провод. После этого модуль начинает мерять ток/напряжение в разрыве произвольного проводника на схеме. На практике это безобразией будет выглядеть вот так.

Надеюсь что эта информация кому-нибдь пригодится.

Показать полностью 3
10

Как я сенсорную сеть изобретал ч.4⁠⁠

Сделал макет тестового стенда для изучения энергопотребления. Схема, в общем-то, простейшая: есть устройство, которое изображает из себя автономный узел и всеми силами пытается прожить на аккумуляторе, подзаряжая его солнечной панелью и исполняя различные программные кульбиты вроде ухода в различные режимы сна, жонглированием периферией, радиоканалом и даже физическим отключением частей схемы. Между всем этим делом оно (прошивка) собирает информацию о параметрах электропитания и отправляет эти данные на второй узел, используя mesh Burelom. Второй узел находится на стационарном питании и работает в режиме шлюза. Зацеплен на Wi-Fi роутер и шлет телеметрию от первого узла на сервер. Там она агрегируется и выводится через UI для анализа.


Паразитные токи

Про макет я сказал не просто к слову, а потому что прототипы на девкитах и энергосбережение — это взаимоисключающие понятия. Причина в том, что на этих платах либо используются очень бюджетная периферия, либо они обвешены компонентами, которые не нужны в реализуемой задаче. К примеру, на девкитах ESP32 присутствуют оба их вида. Стабилизатор AMS1117 (и ему подобные) имеет ток собственного потребления 5–10 мА, USB-концентратор CH334 и RGB-светодиод WS2812B — по 1 мА. Каждый индикаторный светодиод — по 5–10 мА. Когда у вас помимо девкита ESP32 на пинборде еще GPS, StepUp, MPTT, INA, это всё накидывает нехилый оверхед на токопотребление, превращая устройство в печку. Текущий стенд в рабочем режиме имеет расход 200 мА/ч. Совершенно безумная цифра для автономного устройства. С одним АКБ 18650 жить ему дай бог сутки, и никакая 5 Вт солнечная панель и софт с режимами сна не выведут его на стабильный режим долговременной работы. Поэтому следующим этапом будет перенос всего этого зоопарка на свою плату, с выкидыванием всего ненужного и подбором правильных компонентов. В общем-то вот именно такую производительность имеют модули Мештастик T-Beam. Я помню, что после жонглирования всеми возможными параметрами прошивки мне удалось достичь ресурса модуля в 30 часов. И это очевидный предел без значительных аппаратных и программных оптимизаций, достижение коих и ставлю себе в задачи. Далее идет в некотором смысле отчет о проделанной работе, как и в прошлых статьях, инженерная графомания, фотографии пинбордов на предметах мебели и ссылки на код.


Узел 1

К железяке было прикручено:

  • Трехканальный инвалид INA3221 для измерения тока/напряжения (простите, по-другому не могу назвать это поделие).

  • MPTT контроллер CC3791

  • Солнечная панель 6v 5w с алика

Почему INA3221 — инвалид. Сам по себе чип — это отличный инструмент для измерения тока/напряжения в промежуточных точках устройства. Ситуация, когда такой измеритель ставится в разрыв произвольного провода, называется hi-end измеритель. Авторы же модуля решили почему-то, что это излишний функционал, и перемкнули все CH- линии на землю, таким образом ограничив модуль применением только в конечных точках (точка стока тока) устройства. Т. е. из отличного hi-end измерителя сделали кропнутый low-end. Пришлось его грубо доработать напильником. Как это сделать в деталях, я расскажу в отдельной статье.

MPTT-контроллер нужен для зарядки Li-Ion аккумуляторов прямиком от солнечной панели. Каналы INA были установлены в разрыв между солнечной панелью и MPTT, между MPTT и АКБ и между АКБ и устройством. Таким образом, устройство стало осведомлено о том, какой ток/напряжение дает солнечная панель, сколько от этого дела уходит на зарядку и сколько потребляет устройство в целом + уровень зарядки АКБ. Итоговое изделие имеет следующий вид:

Программно в нем был реализован простейший PowerManager, который читает INA3221 и преобразует полученные данные в удобочитаемый формат. Дальше они пакуются в proto-объект и выкидываются в меш-сеть к узлу 2.


Узел 2

Аппаратных изменений не приобрел. Программно для него был реализован MQTT-шлюз, реализующий контракт трейта Gateway меш-сети Burelom. Таким образом, всё, что приходит на этот узел, впихивается в соответствующий source-топик брокера. Сделать этот шлюз оказалось не самой простой задачей. Дело в том, что no_std-окружение Rust довольно ощутимо отстает по развитию от std. И если на std по запросу mqtt - крейты валятся как из рога изобилия, то вот для no_std их можно пересчитать по пальцам, да и, как оказалось, в удовлетворительном состоянии находится только один — rust-mqtt. Специально пилящийся для embedded применения. Все остальные либо как-то забагованы, либо реализуются только самый базовый функционал. Удивили клиенты, которые не умеют проводить даже basic-аутентификацию, зачем вообще такое позиционировать как законченную библиотеку? С rust-mqtt тоже, конечно, пришлось знатно повозиться из-за его супер-агностицизма к железу, у него не реализован внутренний цикл обработки mqtt-пакетов. В общем, логично, откуда автор знает, на какой системе это всё будет работать. Пришлось всё это дело написать, и заработало оно далеко не с первого раза. Но как результат, сейчас телеметрия стабильно уходит на сервер.

Второй интересный момент заключался с ESP-NOW. Я до этого уже упоминал, что этот протокол может работать параллельно с Wi-Fi. И вот сейчас открылась новая подробность о том, что, поскольку Wi-Fi ядро ESP32 не умеет мультиканальность, esp_now должен быть локнут на тот же канал, что и станция. А станция локается всегда на канал роутера, который может быть любым, если он жестко не залочен на самом роутере. Т. е. получается интересная картинка, что esp_now узла 2 знает, на каком канале ей сидеть, а узел 1 — нет. При этом канал этот может оказаться совершенно произвольным. Пришлось залочить канал на домашнем роутере, дабы вся сеть не рассыпалась просто оттого, что роутер решил, что ему комфортнее живется на другом канале.


Бекенд

Очень не хотелось тащить в телеметрию PostgreSQL просто по идеологическим соображениям. Но поднимать какой-нибудь Infux для того, чтобы просто поиграть с данными, тоже абсурд. Решил помучить дипсик на тему того, что вообще сейчас в индустрии СУБД для временных рядов. Выяснилось, там прямо золотой век, начиная от распределенного отечественно Clickhouse до локальных микрорешений вроде Chronix. Пораскинув мозгами, пришел к выводу взять tsink, который в зависимости от настроек может прикидываться от локальной файловой tsdb до серверного решения, умеющего в кластерную репликацию. Пока взял его локальную версию, работать с ним, конечно, одно удовольствие.


Фронтенд

Тут всё обычно для Rust экосистемы: мультиоконный Eframe и Tokio. Собственно, скриншот этого UI в шапке поста.


Что дальше?

  1. Я хочу закончить это микрокобесие с пинбордами и перейти на сквозное прототипирование на печатных платах. Девкиты и макетки сильно ускорили процесс начальной разработки, но далее я считаю их потенциал исчерпанным.

  2. Буду пробовать выполнять программные оптимизации, экспериментировать с режимами сна и работы с периферией.


Ссылки

Показать полностью 2

Как упростить работу с металлом в гараже? Делаю простейший листогиб своими руками!⁠⁠

Серия Самоделки своими руками: приспособления и станки
Листогиб ручной своими руками: как сделать станок для металла

Листогиб ручной своими руками: как сделать станок для металла

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

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

Что нужно знать перед сборкой:
• Конструкция создана из доступного металла (уголки).
• Станок в разы упрощает и ускоряет технологический процесс.
• Главное ограничение: максимальная толщина сгибаемого металла составляет 2 миллиметра.

Смотрите видео, оценивайте конструкцию и делитесь в комментариях своим опытом: делали подобные станки или предпочитаете покупать готовые? 👇

https://rutube.ru/video/172e3248e036a0f69ca789946d562bcb/

Показать полностью
44

Как я сенсорную сеть изобретал ч.3⁠⁠

Занялся синхронизацией узлов. Пока цель — просто добиться того, чтобы они имели одинаковое представление о времени. Для этого собрал такой стенд. Узел 1 получает время по GPS. Узел 2 получает время по NTP, узел 3 получает время через синхронизацию от узла 2 по ESP-NOW. Далее поток рассуждений об этом вопросе и весьма обескураживающие результаты практических испытаний.

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

При этом этот сплыв еще сильно зависит от температуры. Т. е. если у вас на улице, скажем, -20 или +40, дрейф будет еще выше. Очевидно, что со стандартными бюджетными кварцами 20-50 ppm уже за сутки вы получите критический рассинхрон даже для наивного хертибита сети. Через месяц он превратится в клюкву — дрейф пойдет уже на минуты. Даже если воткнуть сверхточный кварц, за сутки часы уедут на десятки мс. Для TDMA с микросекундной точностью это хана, уже через 30-40 часов устройство начнет промахиваться мимо слотов.

К чему всё это? Даже если устройства засинхронились, их часы тут же начинают плыть, и нужно делать эту синхронизацию постоянно, желательно несколькими возможными способами, чтобы, если один отвалится, можно было опираться на что-то еще.

Варианты получения времени можно разделить на два случая. В первом случае некоторое устройство назначается эталонным источником времени и рассылает пакеты синхронизации по сети. Получатели этих пакетов, соответственно, корректируют свои часы в соответствии с эталоном. Помним, что это так называемое монотонное время — количество X (подставить нс, мк, мс...) прошедших с момента старта эталона. Во втором случае сеть работает на основе глобального времени UTC. И получает это время устройство либо самостоятельно, либо через синхропакеты от устройств, которые его уже получили самостоятельно. Самостоятельно устройство может получить UTC может двумя способами: через GPS или через NTP.

Для получения времени по GPS очевидно нужно, чтобы устройство было снабжено GPS-приемником, в моем случае это ATGM336H. И устройство должно видеть спутники для установления фикса (устойчивого пространственного позиционирования). Приемник шлет пакеты ZDA, содержащие UTC-время и PPS-сигнал точного момента приема пакета, позволяя реконструировать UTC-время с точностью до микросекунд.

ATGM336H впаянный в один из макетов

ATGM336H впаянный в один из макетов

Для NTP требуется выход в интернет, благо ESP32 — это мастер подобных выкрутасов, для нее подключиться по Wi-Fi и в интернет сходить — тривиальная задача. Точность сомнительная, хотя драйвер NTP и пытается устранить джиттер (запрос до сервера — обработка — ответ от сервера), получается у него это хреновато из-за асимметричности маршрутов в интернете (запрос идет дольше, чем ответ, или наоборот). Каждый запрос будет давать ошибку в несколько мс. Насколько это критично? Ну чисто умозрительно не то чтобы очень, если грануляция слотов десятки... сотни мс. Для мк точности это, конечно, не проактит. Нужно будет выводить статическое среднее, но до этого мне пока дела нет, с хертбитом бы разобраться.

А что на практике? На практике получилась картина которая требует серьезных размышлений. Я реализовал небольшой планировщик, которые включает светодиод каждую десятую секунду UTC на две секунды. Вспоминаем схему из заголовка статьи и если лень ждать перематываем на 16 секунду, видео 240 fps:

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

  • 18:00 - Вспыхивает светодиод на плате 3

  • 18:07 - Вспыхивает светодиод на плате 2

  • 18:17 - Вспыхивает светодиод на плате 1

Устройство 1 получает время через GNSS, оно имеет крайне высокую точность. Устройство 2 идет в интернет на NTP-сервер по Wi-Fi, возникают ассиметрия и джиттер. Часы вперед на 0.100 / 8 (240f/30f) = 12.5 мс. Далее устройство два передает по тому же Wi-Fi sync-пакет, сеть локальная, пакет широковещательный, джиттера нет, но передача пакета по воздуху занимает 0.070 / 8 = 8.75 мс. Стало интересно, а сколько времени займет NTP на компе.

59 мс — немало, т. е. 12,5 мс — и есть та самая ассиметричность интернет-маршрутов, про которую я писал выше. Какие из этого выводы? Как будто бы то, что если в сети будет имеется несколько точек синхронизации с NTP UTC, это может приводить к довольно ощутимому рассинхрону на очень коротких слотах. Промах в 10–20 мс для TDMA — это ощутимо. В общем, исследование получилось весьма любопытным. Код, который всё это делал, можно изучить тут.

Показать полностью 4 1
9

Очередное обновление проекта Divergence meter⁠⁠

В последние месяцы я активно взялся за проект часов на 8 лампах с отсылкой на аниме Steins Gate, вот предыдущие посты: Divergence meter - обновлённая версия и Ещё одни часы - Divergence meter
А вот и новая версия:

Внешних изменений минимум: я только убрал две теперь уже не используемые кнопки для настройки, осталось три ("+", "ок" и "-",они подписаны на плате со стороны ламп).

Основные изменения - внутри:

В этой версии я избавился от одной пары 74НС595 + ULN2003, задействовав на одном из оставшихся сдвиговых регистров прежде не используемый восьмой канал и отключив точки в двух средних лампах, которые никогда не используются - таким образом 13 пар микросхем хватило на 92 катода.
Второе важное изменение - замена микросхемы часов реального времени DS1302 на DS1307. Последняя общается с микроконтроллером по стандартному интерфейсу I²C и гораздо доступнее за счёт более широкого распространения.

Корпус снова выполнен из дуба. Вот так он выглядел до покрытия маслом. Ниже на фото корпус для часов на Z566M, уже с покрытием:

И ещё раз расскажу основные моменты. При показе времени в 3 и 6 лампах каждую секунду "бегают" точки:

Раз в минуту происходит быстрый перебор всех цифр во всех лампах (красивая анимация и защита от "отравления" катодов), затем - показ числа из аниме (случайным образом выбранное одно из четырёх):

Затем - дата и номер дня недели:

На видео всё выглядит вот так. Это одна из прошлых версий, дата здесь не настроена - 1 января 2000 года, понедельник:

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

По вопросам можете писать на почту matvey6191@gmail.com

Показать полностью 12 1
6

Магический куб предсказаний⁠⁠

Серия THE ONE CUBE

Меня давно просили сделать такое мини приложение на кубе.

Можно не только получить ответ, но и выбрать разный цвет треугольника.

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

Показать полностью 8
13

Не выбрасывайте старую ступицу! Сделал из нее мощный пильный станок по металлу⁠⁠

Серия Самоделки своими руками: приспособления и станки

Всем привет! Сегодня покажу, что у меня получилось из одного безумного эксперимента в Мастерской Новатор24.

Валялась у меня в углу старая, убитая задняя ступица от «девятки» (ВАЗ-2109) и передний тормозной диск. Металлолом, казалось бы, пора на свалку. Но выкинуть рука не поднялась. Покрутил я её в руках и подумал: подшипник тут мощный, нагрузки держит дай дорогу — почему бы не сделать из неё возвратно-поступательного робота для пилы?

В итоге собрал отличный самодельный станок по металлу (механическую ножовку). Помните, Я как-то уже делал ленточную пилу из тормозных барабанов. Вот, теперь у неё появился крутой напарник, который сбережет кучу моих сил и нервов при раскрое толстого железа.

Шаг 1: Идея и гора автохлама

Размеры я не высчитывал, чертежей не строил — всё делал чисто «на глаз» и подгонял по ходу дела из того, что нашлось под верстаком. Вообще, собирать полезные штуки из хлама — моя любимая тема. По такому же принципу я когда-то сварил мощный гидравлический пресс из обычного домкрата. https://rutube.ru/video/4f44bced158b6732a0de48270777bbcc/

Исходный набор: ржавая ступица от ВАЗ и старый тормозной диск.

Исходный набор: ржавая ступица от ВАЗ и старый тормозной диск.

Ступица от переднеприводного авто хороша тем, что там стоит неубиваемый двухрядный подшипник. Я решил закрепить на тормозной диск эксцентрик — именно он крутится и толкает пильную раму взад-вперед.

Шаг 2: Сварка, болгарка и немного мата

Раму варил из кусков профильных труб. Кстати, если у вас в гараже тоже куча обрезков металла, посмотрите, как можно сделать мощные слесарные тиски из обычного швеллера. https://rutube.ru/video/c0899838ce66f318e7d386b8de7d6561/ Они мне, к слову, очень помогли при сборке этого станка — намертво зажимать тяжелые детали.

Подгоняю шатун к эксцентрику. Самое главное тут — поймать соосность, чтобы раму не клинило.

Подгоняю шатун к эксцентрику. Самое главное тут — поймать соосность, чтобы раму не клинило.

Пришлось попотеть с центровкой, чтобы всё ходило плавно и без перекосов. Но болгарка и сварка творят чудеса.

Шаг 3: Наводим марафет

Когда всё заработало, я зачистил швы и покрасил станок в ядреный желто-черный цвет. Люблю, когда самоделки выглядят аккуратно и по-заводскому. Вспомнить хотя бы мой бесшумный компрессор за 0 рублей https://rutube.ru/video/3a8b87acc8b3ac1a71f6ea003ff61d00/ работает тихо, а выглядит как покупной.

До и после. Из ржавой железяки получился серьезный инструмент.

До и после. Из ржавой железяки получился серьезный инструмент.

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

Шаг 4: Первый запуск и тест в деле

Самый кайф — это нажать кнопку СТАРТ. Станок уверенно вгрызается в толстую железяку, искры летят, а я просто стою рядом и курю. Маятник делает всю тяжелую работу за меня.

Первые тесты. Пилит толстый профиль сам, руки придерживать не надо.

Первые тесты. Пилит толстый профиль сам, руки придерживать не надо.

🎥 Видео: как это работает живьем

Если хотите увидеть весь процесс сборки своими руками, с искрами, шумом и точными размерами, я снял подробный ролик:

Честный отзыв: стоит ли делать?

Станок получился полностью рабочий, задачу свою выполняет. Но буду с вами честен: есть один косяк. При работе механизма идет небольшое биение. Сейчас я понимаю, что правильнее было бы сделать сам этот узел неподвижным, а подачу продумать по-другому. Но в целом — идея рабочая, имеет право на жизнь. Ей-богу, это лучше, чем махать ручной ножовкой.

Как вам такая задумка? Стоило ли возиться со ступицей или проще было пойти и купить готовую монтажную пилу в магазине? Пишите в комментариях, поболтаем!

Жду ваших комментариев! 😊

🔗 Присоединяйтесь к проекту: 📺 RUTUBE: https://rutube.ru/u/novator24/

Показать полностью 4 1
17

DXF торренты :D⁠⁠

попросили сделать (спиратить) по фотографиям с пикабы
dxf для всех желающих тут:
https://disk.yandex.ru/d/LhQ0jS49hwKKBw

DXF торренты :D
Показать полностью 6
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества