Датчик движения в телефоне. Какие датчики устанавливают в смартфоны и зачем они нужны

Для чего нужны и как работают акселерометр, гироскоп, магнитометр и GPS.

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

Как телефон подсчитывает ваши шаги? Расходует ли GPS ваш трафик? На какие датчики нужно обратить внимание при выборе нового телефона? Вот все, что вам нужно знать о современном смартфоне.

Акселерометр

Один из наглядных примеров работы акселерометра - анимированные стикеры Snapchat

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

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

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

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

Гироскоп

Гироскоп дает точные данные о положении смартфона в пространстве, что бывает полезно в играх и при создании 360-градусных фотографий

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

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

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

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

Впервые МЭМС-гироскопы были использованы в iPhone 4 в 2010 году - и произвели фурор: никогда еще телефон не умел определять свою ориентацию в пространстве с такой точностью. Сегодня мы считаем это чем-то само собой разумеющимся.

Магнитометр

Именно благодаря магнитометру работает компас в вашем телефоне.

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

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

Магнитометры также можно найти в металлодетекторах - они могут обнаруживать магнитные металлы. Существуют даже приложения-металлодетекторы для смартфона!

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

Спутники GPS всегда знают, где находится ваш телефон.

Ах, GPS, где бы мы были без тебя? Вероятно, блуждали бы где-то в глуши, проклиная день, когда решили сменить бумажные карты, компас и секстант на электронные устройства.

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

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

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

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

Лучшие из остальных датчиков

Если хотите, ваш телефон будет регулировать яркость экрана в соответствии с окружающим освещением.

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

Что это за датчик?

Датчик Холла - датчик определения положения который основан на эффекте Эдвина Холла. Используется в смартфоне в роли магнитометра, как основа для работы электронного компаса и не только. Его задача - фиксировать наличие магнитного поля и определять его изменение.

Эффект Холла был открыт еще 1879 году в тонких пластинках золота, но использовать его в технике смогли только через 75 лет, когда наладили производство полупроводниковых пленок с нужными для него свойствами. Ему нашли применение в автомобилях - он помогал делать измерения угла положения распредвала/коленвала.

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

  • единица (1 - есть сигнал);
  • ноль (0 - сигнала нет).

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

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

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

Для чего он нужен в телефоне?

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

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

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

  1. Цифровой компас. Используется навигационными программами для ускорения позиционирования и более точного определения направления движения. При помощи датчика, GPS поиск происходит быстрее.
  2. Взаимодействие с аксессуарами. Приобретя магнитный чехол для смартфона, датчик позволит смартфону включать и отключать дисплей в зависимости от удаления/приближения магнита на аксессуаре.

Эффект "выключения дисплея" можно заметить при закрытой крышке в раскладных телефонах.

Взаимодействие датчика и магнитного чехла

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

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


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


Если вы переживаете, что магнит на флипе навредит смартфону, сбросте этот груз с плечь. Магнит не вредит смартфону! Чтобы в этом убедится, посмотрите видео.

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

Если вы думаете, что датчики вашего Android телефона не работают так, как надо, вы всегда можете проверить, если это действительно работает нормально или нет. Итак, как вы точно определить, что не так с датчиками вашего телефона?

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

Android платформа поддерживает следующие три широкие категории датчиков:

Датчики движения

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

Экологические датчики

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

Датчики положения

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

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

гироскоп Датчик

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

Акселерометр Датчик

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

Световой датчик

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

датчик ориентации

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

Датчик приближения

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

Датчик температуры

Датчик температуры проверяет температуру батареи вашего Android устройства. Если вы путешествуете в Интернете с помощью 3G или играть в HD игры вы будете испытывать повышение температуры батареи, в которой он становится достаточно горячим на ощупь.

датчик звука

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

Магнитный датчик поля

Магнитный датчик измеряет поле магнитных полей вдоль трех осей телефона. Он в основном используется для определения направления. Примерами могут служить приложение Google и приложение Compass. Просто двигаться с телефоном, чтобы проверить магнитный датчик.

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

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

CPU-Z

Приложение CPU-Z собирает всю необходимую информацию о телефоне и представляет его в одном окне. Каждая опция вкладки в верхней части окна отображаются соответствующие детали.

Вкладка SOC - отображает система на кристалле (SoC) Архитектура детали вашего смартфона Android , как показано на рисунке ниже.

Вкладка Устройство - отображает детали устройства, как модель, производитель, аппаратные средства, размер экрана, общей и используемой оперативной памяти, общей и используемой памяти и т.д.

Вкладка Система - отображает подробную информацию о вашем смартфоне, как модель, производитель, тип платы, разрешение дисплея, на Android версии, установленной и т.д.

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

Тепловое вкладка - отображает список показаний температуры. Так как нагрузка на центральный процессор заставляет ваш телефон нагреваться, это хорошо, чтобы проверить, что температура не пересекает 60 ° C, поскольку это указывает на неисправность устройства. Этот датчик может быть не доступен во всех моделях устройства. Если он отсутствует, то вкладка не будет отображать любые значения.

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

Датчик Кинетика

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

Испытание датчика

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

Sensor Box для Android

Sensor Box для Android приложение является хорошим ищет приложение с впечатляющим графическим представлением. Он обнаруживает все датчики, которые доступны на вашем Android устройстве. Приложение отображает все датчики и соответствующее сообщение появляется, если выбранный датчик не поддерживается вашим телефоном. Это приложение обнаруживает только изменения датчиков, если таковые имеются, и отображает значения. Он может не показывать правильные значения температуры, близость, света и давления, если не произойдет каких-либо изменений.

Телефон тестер

Телефон тестер приложение не только проверяет датчики на телефоне, но и проверяет состояние здоровья аппаратных устройств, Wi-Fi, телефония, GPS, сенсорный, батареи и системной информации. Он также проверяет, температуры окружающей среды, влажности, шаг детектора, монитор сердечного ритма и датчик отпечатков пальцев - при условии, что поддерживается Вашим устройством. A Pro версия приложения также доступна, который отображает дополнительную информацию, такую как память телефона, скорость процессора и памяти SD карты.

AndroSensor

AndroSensor поддерживает все датчики, что Android-устройство может иметь, но отображает в режиме реального времени детали датчик только те, поддерживаемых вашим устройством. Подробные сведения отображаются в графическом и текстовом формате. Это приложение также позволяет сохранить данные датчика в файл CSV.

Программы и опции Другие

Помимо упомянутых выше приложений, существует множество других приложений, доступных бесплатно с Google Play Store. Все эти приложения помогут вам в тестировании датчиков телефона. Некоторые из приложений, которые стоит упомянуть датчики Мультитул, датчик проверки и Advanced Sensor Checker. Вы можете установить и попробовать несколько приложений и посмотреть, если он предоставляет вам информацию, что вы искали.

Если вы используете телефон Samsung, наберите секретный код * # 0 * # , чтобы выполнить тест телефона без необходимости установки каких - либо дополнительных приложений. Выберите вкладку датчика с экрана, который отображается и следуйте инструкциям, чтобы проверить поддерживаемые датчики на телефоне.

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

Современный смартфон уже сложно назвать просто компьютером, ведь он умеет гораздо больше своего стационарного предка: и температуру может измерить, и высоту над уровнем моря подсказать, и влажность воздуха определить, а если вдруг забудешь свою ориентацию в пространстве или силу тяжести потеряешь - все исправит. А помогают ему в этом, как ты уже, наверное, догадался, датчики aka сенсоры. Сегодня мы познакомимся с ними поближе, а заодно и проверим, действительно ли мы находимся на Земле. 😉

Датчики всякие нужны!

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

SensorManager sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);

Чтобы начать работать с датчиком, нужно определить его тип. Удобнее всего это сделать с помощью класса 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).


Ищем датчики

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

List sensors = sensorManager.getSensorList(Sensor.TYPE_ALL);

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

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

List pressureList = sensorManager.getSensorList(Sensor.TYPE_PRESSURE);

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


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

Sensor defPressureSensor = sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE);

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

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

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

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

Sensor defPressureSensor = sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE); sensorManager.registerListener(workingSensorEventListener, defPressureSensor, SensorManager.SENSOR_DELAY_NORMAL);

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

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

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

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

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

Private final SensorEventListener workingSensorEventListener = new SensorEventListener() { public void onAccuracyChanged(Sensor sensor, int accuracy) { } public void onSensorChanged(SensorEvent event) { // Получаем атмосферное давление в миллибарах double pressure = event.values; } };

В метод 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 - данные недостоверны, нужна калибровка.

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

SensorManager.unregisterListener(workingSensorEventListener);

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

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

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

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

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

Распознавание приближения

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

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

Особенности использования функции в разной технике

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

Методы распознавания приближения

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

Обнаружение изменения емкости

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

Метод последовательного приближения

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

Достоинства и недостатки технологии распознавания

Датчик приближения Android, как и другие, обладает определенными особенностями. К числу преимуществ в данном случае можно отнести следующие:

Довольно большая зона обнаружения;

Высокая степень чувствительности;

Относительная доступность в плане цены, ведь производство датчиков осуществляется из довольно дешевых компонентов - меди, пленки оксидов олова, индия и печатной краски, внешнего проволочного датчика;

Малый размер;

Универсальность конструкции;

Температурная стабильность;

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

Долговечность и высокая надежность.

Имеются у данного метода и определенные недостатки:

Чувствительный элемент должен быть проводящим, тогда он сможет обнаружить приближение; однако руку, к примеру, в резиновой перчатке, он может и не обнаружить;

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

iPhone 4

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

Калибровка

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

В последних версиях Android 4 функция калибровки расположена непосредственно в меню. Для этого требуется войти в настройки, отыскать экран, а потом выбрать пункт Proximity Sensor Calibration. После закрытия датчика рукой необходимо в появившемся окне нажать ОК. Иногда калибровка допускается и без закрытия сенсора.




Top