Как работает сенсорный датчик
Перейти к содержимому

Как работает сенсорный датчик

  • автор:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сенсорная кнопка Сенсорная кнопка

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

Сенсорные датчики в Android: какие они бывают и как с ними работать

Для работы с аппаратными датчиками, доступными в устройствах под управлением Android, применяется класс SensorManager, ссылку на который можно получить с помощью стандартного метода getSystemService:

Чтобы начать работать с датчиком, нужно определить его тип. Удобнее всего это сделать с помощью класса Sensor, так как в нем уже определены все типы сенсоров в виде констант. Рассмотрим их подробнее:

  • Sensor.TYPE_ACCELEROMETER — трехосевой акселерометр, возвращающий ускорение по трем осям (в метрах в секунду в квадрате). Связанная система координат представлена на рис. 1.
  • Sensor.TYPE_LIGHT — датчик освещенности, возвращающий значение в люксах, обычно используется для динамического изменения яркости экрана. Также для удобства степень освещенности можно получить в виде характеристик — «темно», «облачно», «солнечно» (к этому мы еще вернемся).
  • Sensor.TYPE_AMBIENT_TEMPERATURE — термометр, возвращает температуру окружающей среды в градусах Цельсия.
  • Sensor.TYPE_PROXIMITY — датчик приближенности, который сигнализирует о расстоянии между устройством и пользователем (в сантиметрах). Когда в момент разговора гаснет экран — срабатывает именно этот датчик. На некоторых девайсах возвращается только два значения: «далеко» и «близко».
  • Sensor.TYPE_GYROSCOPE — трехосевой гироскоп, возвращающий скорость вращения устройства по трем осям (радиан в секунду).
  • Sensor.TYPE_MAGNETIC_FIELD — магнитометр, определяющий показания магнитного поля в микротеслах (мкТл) по трем осям (имеется в смартфонах с аппаратным компасом).
  • Sensor.TYPE_PRESSURE — датчик атмосферного давления (по-простому — барометр), который возвращает текущее атмосферное давление в миллибарах (мбар). Если немного вспомнить физику, то, используя значение этого датчика, можно легко вычислить высоту (а ежели вспоминать ну никак не хочется, можно воспользоваться готовым методом getAltitude из объекта SensorManager).
  • Sensor.TYPE_RELATIVE_HUMIDITY — датчик относительной влажности в процентах. Кстати, совместное применение датчиков относительной влажности и давления позволяет предсказывать погоду — конечно, если выйти на улицу. ��
  • Sensor.TYPE_STEP_COUNTER (с API 19) — счетчик шагов с момента включения устройства (обнуляется только после перезагрузки).
  • Sensor.TYPE_MOTION_DETECT (с API 24) — детектор движения смартфона. Если устройство находится в движении от пяти до десяти секунд, возвращает единицу (по всей видимости, задел для аппаратной функции «антивор»).
  • Sensor.TYPE_HEART_BEAT (с API 24) — детектор биения сердца.
  • Sensor.TYPE_HEART_RATE (с API 20) — датчик, возвращающий пульс (ударов в минуту). Этот датчик примечателен тем, что требует явного разрешения android.permission.BODY_SENSORS в манифесте.

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

Например, датчик Sensor.TYPE_GRAVITY пропускает показания акселерометра через низкочастотный фильтр и возвращает текущие направление и величину силы тяжести по трем осям, а Sensor.TYPE_LINEAR_ACCELERATION использует уже высокочастотный фильтр и получает показатели ускорения по трем осям (без учета силы тяжести).

Исчерпывающее описание всех датчиков доступно по ссылке.

При разработке приложения, эксплуатирующего показания сенсоров, вовсе не обязательно бегать по улице или прыгать в воду с высокой скалы, так как эмулятор, входящий в поставку Android SDK, умеет передавать приложению любые отладочные значения (рис. 2–3).

Рис. 2. Крутим и кидаем Рис. 2. Крутим и кидаем

Рис. 3. Нагреваем и сдавливаем Рис. 3. Нагреваем и сдавливаем

Ищем датчики

Чтобы узнать, какие сенсоры есть в смартфоне, следует использовать метод getSensorList объекта SensorManager:

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

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

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

Рис. 4. Датчики смартфона среднего ценового диапазона

Рис. 4. Датчики смартфона среднего ценового диапазона

Чтобы получить реализацию датчика по умолчанию (такие датчики хорошо подходят для стандартных задач и сбалансированы в плане энергопотребления), используется метод getDefaultSensor:

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

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

Снимаем показания

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

Здесь мы полученный ранее барометр по умолчанию регистрируем с помощью метода registerListener, передавая в качестве второго параметра сенсор, а в качестве третьего — частоту обновления данных.

В классе SensorManager определены четыре статические константы, определяющие частоту обновления:

  • SensorManager.SENSOR_DELAY_FASTEST — максимальная частота обновления данных;
  • SensorManager.SENSOR_DELAY_GAME — частота, обычно используемая в играх, поддерживающих гироскоп;
  • SensorManager.SENSOR_DELAY_NORMAL — частота обновления по умолчанию;
  • SensorManager.SENSOR_DELAY_UI — частота, подходящая для обновления пользовательского интерфейса.

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

Оставшийся нерассмотренным первый параметр представляет собой реализацию интерфейса SensorEventListener, где мы наконец-то получим конкретные цифры:

В метод onSensorChanged передается объект SensorEvent, описывающий все события, связанные с датчиком: event.sensor — ссылка на датчик, event.accuracy — точность значения датчика (см. ниже), event.timestamp — время возникновения события в наносекундах и, самое главное, массив значений event.values. Для датчика давления передается только один элемент, тогда как, например, для акселерометра предусмотрено сразу три элемента для каждой из осей. В следующих разделах мы рассмотрим примеры работы с различными датчиками.

Метод onAccuracyChanged позволяет отслеживать изменение точности передаваемых значений, определяемой одной из констант: SensorManager.SENSOR_STATUS_ACCURACY_LOW — низкая точность, SensorManager.SENSOR_STATUS_ACCURACY_MEDIUM — средняя точность, возможна калибровка, SensorManager.SENSOR_STATUS_ACCURACY_HIGH — высокая точность, SensorManager.SENSOR_STATUS_UNRELIABLE — данные недостоверны, нужна калибровка.

После того как отпадает необходимость работы с датчиком, следует отменить регистрацию:

Меряем давление и высоту

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

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Что такое сенсорный датчик? — определение из техопедии

Датчик касания — это тип оборудования, которое фиксирует и регистрирует физическое касание или охват устройства и / или объекта. Это позволяет устройству или объекту обнаруживать прикосновение, обычно пользователем или оператором.

Датчик касания также можно назвать датчиком касания.

Техопедия объясняет сенсорный датчик

Что такое сенсорный датчик? - определение из техопедии

Краудсорсинг: что это такое, почему это работает и почему оно не уходит

Краудсорсинг: что это такое, почему это работает и почему оно не уходит

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *