Сайт о телевидении

Сайт о телевидении

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

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

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

Воплощение фантастики в реальность

Акселерометр в телефоне — что это и для чего он нужен? Именно об этой необходимой функции и пойдет речь в рамках данной статьи. Сегодня никого не удивишь компактными размерами ультратонкого ноутбука или сотового телефона, корпус которого имеет всего лишь несколько миллиметров толщины. Для большинства из нас невероятные технические возможности отдельно взятых электронных устройств - очевидный факт. Сегодня мы, люди, оперируем поистине фантастическими объемами данных, а скорость передачи информации давно преодолела “световую” отметку. Но за этими способностями скрываются вполне объяснимой природы устройства, свойства и функциональность которых зависит только от и уровня примененной технологии. Довольно сложный механизм, измеряющий гравитационное ускорение — акселерометр, нашел свое предназначение в электронных аппаратах. Одним из таких девайсов как раз и стал современный мобильный телефон.

Магия движения

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

Акселерометр в телефоне — что это за устройство и в чем его преимущества?

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

Обзор "полезностей" пространственного контроллера

Давайте рассмотрим несколько благоприятных моментов при использовании основных функциональных способностей акселерометра:

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

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

3. Когда вам необходимо занять удобную позу, скажем, прилечь на бок, а телефон все также необходим для использования, датчик пространственного положения аппарата перевернет интерфейс девайса, облегчая комфортность восприятия визуально отображаемой информации. Игры с акселерометром, на телефон установленные, сегодня завоевали тотальную популярность не только среди тинейджеров… Замечено, что в кругах более старшего поколения также стала прослеживаться некая тенденция увлеченности приложениями, которые используют пространственную технологию позиционирования.

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

Вопрос надежности устройства

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

А что, если?..

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

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

Причем второй вариант - прерогатива специалистов-электронщиков.

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

Универсал востребован всегда

Используя специальное приложение “уровень”, можно с легкостью определить ровность стен и откосов или правильность установки карниза. Стоит отметить, что наличие акселерометра в мобильном устройстве позволяет значительно упростить поиск требуемого объекта в пределах населенного пункта, а также окажет неоценимую помощь в походе, когда использование компаса становится жизненно необходимым средством ориентации. Любопытные моменты использования датчика ускорения будут полностью удовлетворены, когда пользователь захочет узнать фактические параметры разгона автотранспортного средства. Опять же, захватывающие гонки, на телефон с акселерометром загруженные из сети Интернет, способны привнести разнообразие и развеять скуку в непредвиденные моменты ожидания. Многогранность использования и широта невероятных возможностей пространственного устройства не могут быть отражены в полном объеме в рамках данной статьи. Поэтому вам еще не раз предстоит почувствовать захватывающее удивление и увлекательный процесс познания масштабного предназначения электронного “вестибуляра”.

В заключение

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

Современный смартфон уже сложно назвать просто компьютером, ведь он умеет гораздо больше своего стационарного предка: и температуру может измерить, и высоту над уровнем моря подсказать, и влажность воздуха определить, а если вдруг забудешь свою ориентацию в пространстве или силу тяжести потеряешь - все исправит. А помогают ему в этом, как ты уже, наверное, догадался, датчики 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 4.0.
  • Необходимо положить смартфон на ровную поверхность,
  • открыть «настройки», далее «Экран» и выбрать «ALS PS calibration»,
  • поднести к датчику приближения ладонь, лист бумаги или другой предмет.
  • Удерживая его неподвижно на расстоянии 1-5 см от экрана, выбрать «Calibrate».
Если в меню настроек вашего устройства нет такой функции, нужно скачать приложение для калибровки с официального сайта производителя.

Если калибровка не помогла решить проблему, то лучше посетить сервисный центр.

Статьи и Лайфхаки

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

Функции датчика расстояния в телефоне

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

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

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

Часто встречающиеся трудности использования датчика расстояния

  • Вероятнее всего, сенсор «не видит» приближающиеся объекты из-за грязи. В таком случае его можно просто почистить щеточкой и он будет работать, как новенький. Эта процедура намного проще, чем кажется, ее можно выполнить и самому.
  • Если сенсор чист и все равно не работает или работает некорректно. Можно попробовать его откалибровать.

Калибровка датчика приближения

  • Положить устройство на стол.
  • Открыть настройки.
  • Выбрать «ALS PS calibration».
  • Поднести к датчику любой непрозрачный предмет, до нужного расстояния.
  • Выбрать «Calibrate».
В разных устройствах меню может выглядеть по разному и названия функций также могут отличаться. Может быть, что в меню телефона вообще не найдется подобной функции. Тогда нужно скачать необходимое приложение с официального сайта.

Если и после калибровки сенсор не работает некорректно, то самое лучшее решение – обращение в сервисный центр.

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

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

Гироскоп

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

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

Магнитометр

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

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

Магнитометр действует в тандеме с акселерометром и GPS для определения географического положения и навигации.

GPS

Где бы мы были без технологии GPS (Global Positioning System)? Смартфон соединяется с несколькими спутниками и высчитывает своё положение на основании углов пересечения. Бывает, что спутники недоступны: например, при большой облачности или внутри помещений.

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

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

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

Барометр

Многие смартфоны, в том числе iPhone, имеют этот сенсор, измеряющий атмосферное давление. Он нужен для регистрации изменения погоды и определения высоты над уровнем моря.

Бесконтактный выключатель

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

Датчик освещённости

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

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