Меню

Датчики силы нажатия всех

КНОПКА С ДАТЧИКОМ СИЛЫ НАЖАТИЯ

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

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

Принципиальная схема кнопки с датчиком давления

На клеммы разъема J1 подается напряжение питания 12 В. Конденсаторы C2 и C3 отвечают за развязку. Кроме того, формируется напряжение, равное половине напряжения питания (опорное напряжение), которое создается делителем, установленным на резисторах R1 и R2, и конденсатором C2, который фильтрует напряжение, поступающее с этого делителя. Усилитель US1A действует как повторитель напряжения, увеличивая выход по току такого источника напряжения.

Поскольку используемый усилитель TLC272 имеет входной каскад из полевых МОП-транзисторов, ток потребляемый входами почти равен нулю. Таким образом, нет необходимости компенсировать входные токи, что потребовало бы добавления резистора между выходом и инвертирующим входом. Максимальное рекомендуемое напряжение питания для этой микросхемы может составлять 16 В.

Основные параметры кнопки

  • бистабильное переключение после нажатия на датчик,
  • возможность установить порог активации в диапазоне от 20 граммов до примерно 2 кг,
  • небольшая толщина датчика давления: около 0,5 мм,
  • выход в виде нормально разомкнутых и нормально замкнутых контактов электромагнитного реле,
  • питание от 12 В постоянного тока.

Датчик давления FSR402

В качестве датчика, определяющего силу давления, использовался FSR402 фирмы Pololu. Круглая часть имеет диаметр 18 мм, а само поле чувствительное к давлению 13 мм. С другой стороны, длина фольги с выводами составляет 36 мм.

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

Датчик FSR402 был включен как нижняя ветвь резистивного делителя, а верхняя ветвь – R3. Делитель питается от опорного напряжения, поэтому максимальное напряжение, исходящее от этой цепи, не превышает половины напряжения питания. Это важно, потому что входы TLC272 поддерживают максимальное значение напряжения на 1,5 В ниже, чем их напряжение питания. Таким образом, когда схема запитана от 12 В, на ее вход будет подаваться не более 6 В.

Простой фильтр нижних частот, состоящий из резистора R4 и конденсатора C4, фильтрует полученное напряжение. Его частота среза составляет около 16 Гц, поэтому он блокирует наводки электросети, которые имеют частоту 50 Гц. Кроме того, он защищает чувствительный вход операционного усилителя от возможных электростатических разрядов.

Сам операционный усилитель US1B был подключен в качестве компаратора. Напряжение на делителе, содержащем датчик давления, сравнивается с напряжением установленным потенциометром P1. Резисторы R5 и R6 создают петлю положительной обратной связи, внося в схему небольшой гистерезис. Это предотвращает многократное переключение при медленном нажатии на датчик.

Когда датчик отпущен, потенциал неинвертирующего входа US1B ниже, чем инвертирующего, поэтому его выход логически низкий. Нажатие на датчик меняет ситуацию, и выходной сигнал сразу становится высоким. Это означает, что при достаточно сильном нажатии на датчик возникает нарастающий фронт напряжения. Переключение реле осуществляется микросхемой CD4013, которая имеет два синхронных триггера типа D. После того как отрицательный выход Q замыкается накоротко с входом D, создается асинхронный триггер T-типа, который меняет свое состояние после каждого нарастающего фронта, заданного его тактовому входу.

Была добавлена простая схема, гарантирующая, что реле не замыкается автоматически при включении питания. Триггер US2A управляется транзистором Т2 с нагрузкой в виде резистора R8. При включении питания этот транзистор закрывается, потому что конденсатор C6 между его затвором и истоком не заряжен. Резистор R8 устанавливает высокое логическое состояние на выводе 4 микросхемы US2, которое определяет его внутреннее состояние. Менее чем через секунду с помощью резистора R7 конденсатор C6 заряжается и транзистор T2 начинает проводить. Вход сброса US2A станет неактивен, и вся схема будет готова к работе.

Диод D2 ускоряет разряд C6 после отключения питания, благодаря чему схема быстрее становится готова к повторному включению. Транзистор T2 был добавлен для сокращения времени нарастания напряжения на входе сброса триггера. У него нет триггерного буфера Шмитта, поэтому необходимо было сократить время действия напряжения на нем в запрещенном диапазоне.

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

Монтаж и наладка схемы

Схема кнопки с определением давления собрана на двусторонней печатной плате размером 50 х 40 мм. Предлагаем начинать сборку с припаянных к поверхности элементов, которые находятся только на верхней стороне платы. После их пайки можно переходить к потенциометру P1, конденсатору C2, разъемам и реле, которые собираются через сквозные отверстия. Схема сборки и топология дорожек на печатной плате показаны далее.

Читайте также:  Тойота аурис датчик бензина

Датчик типа FSR402 следует подключать к разъему J2 или J3. У них одинаковая функция, отличается только тип. При пайке датчика непосредственно на плату лучше использовать разъем J3, имеющий тот же тип, что и контакты датчика. А при использовании проводов для соединения датчика с платой их можно вкрутить в клеммы разъема J2. Длина соединительных кабелей не имеет значения. Сопротивление датчика составляет примерно 1 кОм (или больше – в случае меньшего давления). Если соединение будет очень длинным (более 2 м) или будет находиться в сложной среде, лучше использовать двухжильный экранированный кабель. Тогда его экран следует подключить к массе только на печатной плате (например, на выводе GND разъема J1), а выводы датчика провести через провода.

Переключающие контакты реле выведены на клеммы разъема J4. Если ток протекающий через них будет превышать 5 А, рекомендуем утолщить пути, соединяющие реле с разъемом, с помощью медного провода.

Единственная операция наладки при запуске – это установка потенциометра P1 в положение, при котором схема будет срабатывать под влиянием определенного давления на поверхности датчика. Поворачивая его ползунок в сторону максимума, увеличиваем силу которая при приложении к датчику заставляет его переключаться. И наоборот, поворот в сторону минимума делает датчик более восприимчивым к включению.

Схема должна питаться постоянным напряжением около 12 В. Потребляемый ток составляет менее 2 мА при выключенном реле PK1 и увеличивается до 30 мА после включения.

Источник

Подключение датчиков силы нажатия к Arduino

Датчики силы (FSR) — это простые в использовании датчики, предназначенные для измерения присутствия и относительной величины локализованного физического давления.

Сопротивление FSR изменяется, когда давление на датчик увеличивается или уменьшается. Если к FSR не применяется давление, его сопротивление будет больше 1 МОм. Чем сильнее вы нажимаете на головку датчика, тем ниже сопротивление между двумя клеммами. Объединив FSR со статическим резистором, для создания делителя напряжения, можно создать переменное напряжение, которое может быть прочитано аналого-цифровым преобразователем микроконтроллера.

Материалы

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

Обзор различных FSR

Существует множество вариантов FSR и несколько ключевых характеристик для их дифференциации: размер, форма и диапазон чувствительности. Вот краткий обзор:

Форма и размер

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

Диапазон измерения

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

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

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

На данном графике можно ознакомиться с типичным соотношением силы и сопротивления.

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

Пример подключения

Один из самых сложных моментов – это выбор резистора. Самое главное – мы не должны превзойти максимальное сопротивление датчика.

Если вы используете FSR, который охватывает широкий диапазон (например 0,1-10 кг), то лучше всего взять резистор примерно на 3,3 кОм.

Резистор, выступающий как делитель напряжения, приведет к увеличению напряжения на А0 по мере уменьшения сопротивления сенсора. Когда на FSR отсутствует давление, цепь получается разомкнутой и напряжение на А0 равно 0. Но по мере увеличения давления на сенсор, будет увеличиваться и напряжение. И при максимальном давлении оно будет соответствовать 5V.

Вот простой пример кода для нашего проекта.

После загрузки необходимо установить скорость передачи 9600 бит/с.

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

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

Источник

Разработка hexapod с нуля (часть 10) — датчики касания

Всем привет! Был сделан очередной шаг к реализации алгоритма адаптации к ландшафту. До текущего момента я не мог придумать оптимальное решение для определения состояния ноги: наступила она на землю или нет. И вот спустя пол года я случайно наткнулся на интересный датчик, при помощи которого можно реализовать нужную конструкцию, позволяющую определить не только момент касания ногой земли, а так же усилие.

Что? Зачем? Почему?

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

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

Читайте также:  00778 датчик угла поворота рулевого колеса пассат б6

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

Датчики тока. Можно установить на силовые цепи сервоприводов шунты и микросхему для измерения падения напряжения на них. Довольно хорошее решение, которое позволит определять не только касание, но и нагрузку на ногу.
Плюсы: отсутствие какой-либо механики, возможность определения нагрузки и перегрузки приводов, да и в целом полезно знать потребление.
Минусы: глобальное потепление. На шунтах в 0.1Ом и токе 3А будет рассеиваться 0.9Вт, их будет 6 шт (на каждую ногу отдельная линия питания). Соответственно 5.4Вт уходят в никуда.

Можно использовать 0.01Ом, но достать их проблемно и стоимость доставки превышает стоимость резисторов. ЧипДип в моем городе просит меня оформить заказ на 4000шт минимум, что явно не подходит.

Места на плате питания не хватает для подобных решений, а если увеличить её размеры, то она не влезет в корпус и про дешевое производство в Китае можно забыть (там размеры прям в притык).

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

Резистивный датчик давления и одно из его применений

Думаю после нескольких хороших ударов резистивное покрытие начнет разрушаться. В моем случае на ногу действует сила порядка 2кг, и вот каждый раз будет удар по земле с такой силой — уверен помрут они быстро.

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

Тебе не угодишь, всё не нравится! Нет, не всё

Вот решение всех моих проблем — тензодатчик для весов. Мне нравится в нем всё: прочный, чувствительный, есть отверстия для крепежа и можно собрать на коленке MVP для тестов (ардуино и прочее). Набор из 7 тензодатчиков + плат с АЦП к ним обошелся в 1600р с доставкой при покупке в России.

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

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

Сами датчики растяжения и сжатия представляют собой тензорезисторы, которые изменяют свое сопротивление при деформации.

Так почему сила должна быть направлена именно в таких направлениях, как было показано ранее? Для примера возьмем упрощенный мост c 2 постоянными резисторами по 50 Ом и 2 тензорезисторами по 50 Ом. Напряжение питания моста возьмем 5В.

В состоянии покоя мост сбалансирован, убедимся в этом (разница между двумя делителями напряжения):

Предположим, что мы деформировали брусок так, что тензорезисторы изменили свое сопротивление на 25 Ом. При этом R1 растянулся (50 + 25 = 75), а R2 сжался (50 — 25 = 25). Погнали считать.

Мост разбалансирован и мы получили не только числовое значение деформации, но и её направление. Если деформировать в другом направлении, значение будет положительным.

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

Не всё так плохо

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

Почему нога спроектирована удачно? Все дело в расположениях точки крепления ноги к приводу и точки опоры\касания к земле — вектор силы (красный) не пересекает её. Это получилось случайно и без умысла 🙂

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

Диск для сервопривода

Есть возможность руками в конфигурации сдвигать логический ноль приводов и она используется, но на глаз это делать трудно. Помимо этого вносит свой вклад люфт редуктора привода, вот это компенсировать еще труднее.

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

Реализация

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

Читайте также:  Струбцина для датчика lowrance active imaging прямая

Сравнение старой и новой ноги

В ноге предусмотрено место, где будет располагаться АЦП для получения значений с тензодатчика. Закрывается всё это счастье крышкой и болтами М2.

Расположение АЦП в ноге необходимо для минимизации расстояния до датчика, т.к. там гуляют мВ, то возможно негативное влияние проводов. К тому же не хотелось кидать аналоговые цепи рядом с шестью силовых DC-DC преобразователей.

В качестве АЦП я выбрал HX711. Ну как выбрал, платки были в комплекте. 80Гц частота измерений и максимально простой цифровой интерфейс — самое то. Хотелось бы конечно I2C, а лучше SPI, но увы. Плата имеет на борту дифф. АЦП и всю необходимую обвязку.

С этих АЦП можно более менее синхронно вычитывать данные и начинать конверсию. Судя по даташиту линия SCK позиционируется как Digital Input, а значит их можно свести в одну и посылать по 25 тактов одновременно на все АЦП (используется канал А с усилением 128). Данные будут синхронно приходить на параллельные линии DOUT, что сэкономит временя передачи данных, при этом следующая конверсия будет начинаться одновременно.

О синхронности и почему её нет

Синхронность тут условная с допустимой погрешностью и старт конверсии АЦП на самом деле не будет одновременным, т.к. они работают от своих внутренних тактовых генераторов, отклонение частоты которых зависит от множества факторов (температура, фаза луны, количество снега на улице и прочее).

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

Именно по этой причине в процессорах тактирование блоков идет из центра (ЕМНИП), т.к. на высоких частотах начинают влиять законы физики и длина проводника (до дальних блоков импульс доходит позже, чем до близких).

Все упирается в требования — в нашем случае даже 5мс будет приемлемо.

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

Тесты

Наконец-то дошли до самого интересного — результаты. Я поставил ногу на гексапод и заставил его немного побегать. После нехитрых манипуляций в Excel получился красивый график.

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

Никакой магии, дай мне бины АЦП! Тут уже другой эксперимент и график соответственно отличается. И вот тут уже другое дело: вместо диапазона 0-500 мы получаем 0-100000, ну разве не прелесть? Как это сочно выглядит. На первой половине графика гексапод встал, на второй пошел.

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

Можно заметить, что первые 2 пика меньше, чем 4 последних. Это объясняется тем, что во время подъема гексапод упирается всеми 6 ногами и нагрузка распределяется на все ноги. Во время передвижения на земле всего 3 ноги, соответственно нагрузка на них выше, деформация датчика больше, пики выше.

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

Скорее всего будет 2 режима ходьбы: с адаптацией и без. С адаптацией гексапод будет ходить медленно и как бы прощупывать ландшафт под собой. По крайней мере для начала.

Планы

Вот так понемногу гексапод превратился из фанерного прототипа в технологического монстра с кучей различных датчиков и хитрых алгоритмов. Это радует. Иногда даже не верю, что я смог такое сделать в одиночку.

Для продолжения работы необходимо переделать плату управления. В частности нужно добавить еще один микроконтроллер (STM32F030) для сбора и обработки данных с шести таких датчиков. Дальше главный МК будет забирать из него данные при необходимости по I2C или SPI, я пока еще не определился.

Зачем отдельный МК? Да всё просто. У основного STM32F373 кончились ноги и он без этого хорошо загружен. Пусть там работает только ядро (коммуникация и передвижение), а сбором и обработкой вспомогательной инфы занимается другой МК.

Это уже будет четвертый МК на гексаподе: STM32F373 (основной), ESP32 (камера), Ralink (WIFI-UART мост) и STM32F030 (датчики). В три из них нужно заливать прошивку 🙂

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

Еще планирую запихнуть в гексапод полноценный терминал. Там все будет по взрослому: история команд и автозавершение. Сейчас этого сделать нельзя, т.к. нужна дополнительная линия DTR с USB-UART преобразователя для сброса состояния терминала, а нога МК под это не выделена. Конфигурируемых параметров много и ими нужно как-то рулить, желательно через что-нибудь нормальное (сейчас там CLI и это не очень удобно).

Немного фото и видео

Поколдовал над матаном и получилось увеличить скорость передвижения. На видео ДО и ПОСЛЕ.

Источник

Adblock
detector