что делает датчик касания

Что делает датчик касания

Введение:

4.1. Изучаем первый датчик – датчик касания

Рис. 1

Первым датчиком, который мы изучим, будет датчик касания (Рис. 2).

Рис. 2

Этот датчик, по сути, представляет собой специальную кнопку, которая может находиться в двух состояниях: «Нажатие» (Рис. 3 поз. 1) или «Освобождение» (Рис. 3 поз. 2). Также, последовательный переход в состояние «Нажатие», а затем «Освобождение» называется: «Щелчок» (Рис. 3 поз. 3) и может обрабатываться программой. как самостоятельное событие.

Рис. 3

4.2. Оранжевая палитра – Управление операторами

Какие же инструменты представляет нам среда программирования для получения информации с датчиков и реагирования на эту информацию в программе? Давайте начнем знакомиться с программными блоками, расположенными в Оранжевой палитре, которая называется «Управление операторами». (Рис. 4)

Рис. 4

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

Программные блоки «Ожидание», «Цикл» и «Переключатель» имеют множество режимов и соответствующих настроек, знакомиться с которыми мы будем на практических примерах, последовательно и с наглядными пояснениями.

4.3. Оранжевая палитра, программный блок «Ожидание»

Перед тем, как приступить к решению практических задач, давайте закрепим датчик касания на нашем роботе, как показано на Рис. 5, и подключим его кабелем к порту «1» модуля EV3.

Рис. 5

Задача №6: необходимо написать программу, запускающую движение робота по щелчку кнопки.

Решение:

Рис. 6

Рис. 7

Итак: при такой настройке блока ожидания выполнение нашей программы будет остановлено до нажатия-отпускания кнопки датчика касания. Только после «Щелчка» выполнение будет передано следующему программному блоку. Установим после блока ожидания один программный блок «Рулевое управление», загрузим программу в робота и убедимся в правильности её выполнения! (Рис. 8)

Рис. 8

Задача №7: необходимо написать программу, останавливающую робота, столкнувшегося с препятствием.

Из датчика касания давайте соберем небольшой бампер, который будет нам сигнализировать о том, что наш робот столкнулся с препятствием. Ниже приведены подробные инструкции для сборки, как из домашней, так и из образовательной версии конструктора Lego mindstorms EV3. Можете поэкспериментировать и придумать собственный вариант конструкции.

Lego mindstorms EV3 home

Lego mindstorms EV3 education

Получившийся элемент закрепим на передней балке нашего робота и соединим датчик касания с портом «1» модуля EV3.

Lego mindstorms EV3 Home

Lego mindstorms EV3 Education

Конструкция готова! Приступим к созданию программы. По условию задачи: робот должен двигаться вперед, пока не наткнется на препятствие. В этом случае датчик касания будет нажат! Для решения снова воспользуемся программным блоком «Ожидание».

Решение:

Рис. 9

Для решения следующей задачи нам понадобится программный блок «Цикл» Оранжевой палитры.

Источник

Сенсорный датчик прикосновения. Схема и подробное описание

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

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

Описание работы сенсорного датчика прикосновения

Функционирование ниже приведенной схемы сенсора основывается на применении имеющегося в домах электромагнитного поля, которое создает размещенная в стенах электропроводка.

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

Данный сенсорный датчик прикосновения достаточно прост вследствие применения полевого транзистора КП501А (Б, В). Данный транзистор обеспечивает пропускание тока до180 мА при предельном напряжении исток-сток до 240В для буквы А и 200В для букв Б и В. Для защиты от статического электричества на его входе имеется диод.

Полевой транзистор обладает большим входным сопротивлением, и для того чтобы управлять им хватает статического напряжения, которое больше порогового значения. Для данного типа полевого транзистора номинальное пороговое напряжение составляет 1…3 В, а максимально допустимое равно 20 В.

При прикосновении рукой к датчику Е1, степень наведенного потенциала на затворе является достаточной для открывания транзистора. При этом на стоке VT1 будут электрические импульсы продолжительностью 35 мс, и имеющие частоту электрической сети 50 Гц. Для переключения большинства электромагнитных реле необходимо всего 3…25 мс. Для предотвращения дребезга контактов реле, в момент прикосновения, в схему включен конденсатор C2. За счет накопленного заряда на конденсаторе, реле будет включенным даже в тот полупериод сетевого напряжения, когда VT1 будет закрыт. Пока есть прикосновение к датчику сенсора, реле будет во включенном состоянии.

Конденсатор C1 увеличивает помехоустойчивость сенсора к высокочастотным радиопомехам. Менять чувствительность прикосновения к сенсору можно путем изменения емкости C1 и сопротивления R1. Группа контактов К1.1 осуществляет управление внешними электронными устройствами.

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

Источник

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

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

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

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

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

Читайте также:  что делать если в диспетчере задач память загружена на 100 на виндовс 10

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Реализация

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

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

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

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

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

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

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

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

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

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

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

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

Тесты

Наконец-то дошли до самого интересного — результаты. Я поставил ногу на гексапод и заставил его немного побегать. После нехитрых манипуляций в 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 и это не очень удобно).

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

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

Источник

Введение в емкостные датчики прикосновения

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

Конденсаторы могут быть сенсорными

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

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

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

Конденсатор на базе печатной платы

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

Читайте также:  раскол католиков и православных в каком году

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

Возможно, сейчас вы захотите узнать, какую емкость реально обеспечивает такая разводка печатной платы. Кроме того, как мы рассчитаем ее точно? Ответ на первый вопрос: емкость очень мала, может составлять около 10 пФ. Что касается второго вопроса: не беспокойтесь, если забыли электростатику, потому что точное значение емкости конденсатора не имеет никакого значения. Мы ищем только изменения в емкости, и мы можем обнаружить эти изменения без знания номинального значения емкости печатного конденсатора.

Влияние пальца

Так что же вызывает эти изменения емкости, которые контроллер датчика прикосновений собирается обнаружить? Ну, конечно же, человеческий палец.

Влияние пальца на сенсорную кнопку

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

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

Палец как диэлектрик

Обычно мы думаем о конденсаторе, как имеющем фиксированную величину, определяемую площадью двух проводящих пластин, расстоянием между ними и диэлектрической проницаемостью материала между пластинами. Мы, конечно, не можем изменить физические размеры конденсатора, просто прикоснувшись к нему, но мы можем изменить диэлектрическую проницаемость, так как палец человека обладает диэлектрическими характеристиками, отличающимися от материала (предположительно воздуха), который он вытесняет. Это правда, что палец не будет находиться в настоящей области диэлектрика, т.е. в изолирующем пространстве непосредственно между проводниками, но такое «вторжение» в конденсатор необязательно:

Влияние пальца на сенсорную кнопку в качестве диэлектрика

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

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

Палец как проводник

Влияние пальца на сенсорную кнопку в качестве проводника

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

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

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

Близкое расстояние или контакт

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

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

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

Заключение

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

Надеюсь, статья оказалась полезной. Оставляйте комментарии!

Источник

Сказочный портал