Проект электронного мультитула QUARK. Часть 2

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

    QUARK
    QUARK


    Для начала напомню, что собой представляет устройство. QUARK это электронный мультиинструмент, в первую очередь, ориентированный под разработку микроконтроллерных устройств, Arduino, ESP32, STM32, IoT, домашняя автоматизация и тому подобные девайсы.

    Че определяется такая ориентированность?  Во-первых, набором функций. И если первая часть стандартна для типичного мультиметра:

    ·         Вольтметр

    ·         Амперметр

    ·         Измерение сопротивления

    ·         Измерение емкости

    ·         Измерение индуктивности

    …то UART логгер и UART плоттер вещи необходимые ардуинщикам и иже с ними. Осциллограф конечно не блещет скоростью – 400 килосемплов, однако проверки ШИМ сигналов и сигналов с различных датчиков, его более чем достаточно.
    Во-вторых – идеологией работы с выводимыми значениями. Скажем, ардуинщику практически никогда не требуется знать напряжение с точностью в одну тысячную процента, зато значение логического уровня параметр всегда необходимый:

    Вольтметер
    Вольтметер

    Точно так же мгновенное потребление тока, при разработке IoT, параметр в себе. Гораздо удобнее проследить изменение в динамике при различных режимах работы устройства:

    Амперметер
    Амперметер

    Калькулятор цветовой и СМД маркировки компонентов вещь полезная и нужная, но, согласитесь, так удобнее:

    Сопротивление
    Сопротивление

    А сейчас опишу свой личный опыт работы с осциллографом. В свое время приобрел себе DS203. Вполне себе, по характеристикам, годный девайс, с жутко неудобным управлением:

    Стандартный сценарий работы примерно такой:
     Необходимо снять форму (частоту, амплитуду) сигнала с/на пина ноги устройства. Подключаешься к контактам, включаешь осциллограф, отключаешь не используемые входы, настраиваешь триггер, амплитуду, положение графика на экране. Да, я знаю, что прошивками это кое-как решается, но мой DS203 больше не шьется, да и возня с прошивками… Но поскольку свой девайс я делал в первую очередь для личного удобства, то и дефолтный режим, это полностью автоматическая настройка развертки сигнала на лету. «Тыкаю» в нужный пин и, практически сразу вижу сигнал:

    Осциллограф
    Осциллограф

    UART данные, конечно, удобнее смотреть на телефоне чем на дисплее устройства. Не скажу, что я прям мучаюсь при подключении UART-TTL моста к компу, но «в поле» не всегда имеется такая возможность:

    Теперь пару слов о схемотехнике. Вся система построена на ESP32 со всеми вытекающими из нее ништяками (bluetooth, Wi_fi). Для измерения напряжения и тока я использовал готовый чип INA219. Подключается по I2C шине, имеет малый размер и вполне достойные, для моих задач, параметры. Сопротивление измеряю стандартным делителем напряжения, но в качестве известного сопротивления  использую цифровой потенциометр AD5245, что освобождает пины контроллера, а учитывая тот факт, что AD5245 управляется по I2C, так и вообще нет нужды в дополнительных пинах. Тем же способом измеряю емкость конденсаторов по известному методу заряда до 63.2%. На больших емкостях AD5245, подключенное к питанию имеет низкое сопротивление, а при низких, заряд идет через 1 мегаомный резистор. Таким образом, минимальная измеряемая емкость определяется пикофарадами.
    Индуктивность меряю резонансным методом при известной ёмкости по срабатыванию компаратора.
    Тракт осциллографа реализован на Rail-to-Rail ОУ AD8541, усиление сигнала регулируется вторым AD5245. Соответственно, сигналы как с высоким, так и с низким размахом амплитуды, поступают на вход АЦП в максимальном разрешении. Для оцифровки использую аппаратный I2S, складываю весь буфер в DMA и вывожу на LCD и, при необходимости, отсылаю по bluetooth.

    UART вход реализован аппаратно. Предварительно определяется Baud rate, после чего происходит инициализация драйвера UART с определенными параметрами.
    На плате присутствует датчик ускорения LSM6DS3TR. Вообще я его планировал использовать для автовыключения, но ничто не мешает вывести с него данные на экран.


    А теперь хотелось бы сказать пару слов о тех нововведениях, которые были реализованы на основе предложений к предыдущей статье.

    Во-первых, универсальный прикручиваемый щуп:

    Такие будут как в корпусе, так и во втором щупе. Довольно универсальное решение на стандартной резьбе М2.
    Во-вторых, расширен функционал: поиск компонентов по заранее введенному значению и удержание значений с записью в лог.
    И в-третьих, вариант без корпуса, этакий кит-набор, но распаянный.

    Ну и самое главное. По-совету читателей я таки запустился на краудфандинговой платформе Crowdsupply. Некоторое время вел переговоры, совместно настраивали страницу и готовили описание.  Платформа ориентирована на «железные» open source проекты, а значит и мое устройство будет выложено в открытый доступ. Всех, кому проект интересен приглашаю поддержать старт и тут я снова сделаю упор на том, что это open source.

    Средняя зарплата в IT

    120 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 8 887 анкет, за 1-ое пол. 2021 года Узнать свою зарплату
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 10

      0
      это конечно фантазии и так далее. но было бы ещё прикольно. если тыкнул и эта штука. сказала — какого цвета, то во что она тыкнула
        0
        И это не фантазии, это можно реализовать через умный щуп. Второй провод втыкается в TYPE-C разъем и есть возможность передавать данные со щупа на устройство. То есть в качестве второго щупа можно реализовать фактически любой нужный измеритель.
      +2

      Стоит сделать немного редизайн устройства.

        0
        Скорее всего так и поступлю. Это утилитарный дизайн в рамках формфактора платы, от которого можно уже плясать в любую сторону
        +2
        «Тыкаю» в нужный пин и, практически сразу вижу сигнал:

        Только на таком маленьком дисплее все-таки лучше сокращать длинные цифры, например 10.0 KHz (ну или с другой точностью) и т.д. Потому как высматривать сколько там нулей порой очень сложно, а младшие разряды обычно постоянно плавают.
          0
          Все верно, это отдельной настройкой регулируется в приборе
            +1
            Можно еще сделать показ только устоявшихся разрядов за определенное время, например 2-3 сек.
            Например идет сигнал 123456 Гц, прибор измеряет и младший разряд плавает, он показывает 123.45 кГц. Если и второй разряд плавает, то показывает 123.4 кГц и т.д. до целого разряда.
              0
              Можно попробовать. В коде реализовать это просто, главное что бы не плавали показания по устоявшимся разрядам. Скажем устоялся второй разряд после запятой и показывает 123.45 кГц, но потом меняется первый и скачет на 123.4 кГц. Но это полезно
                0
                Можно сделать чтобы плавание ±1-2 и/или случайные редкие изменения игнорировалось.

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое