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

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

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

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

Современные гаджеты кроме всего необходимого оснащены множеством разнообразных датчиков.

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

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

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

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

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

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

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

Гироскоп

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

Магнитометр

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

Барометр

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

Температурный датчики

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

Пульсометр

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

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

Гигрометр

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

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

Сканер радужной оболочки

Данный сенсор впервые использовала компания Samsung на флагмане Galaxy Note 7. Он работает почти такой же быстро, как сканер отпечатков пальцев, но данная технология пока не так безопасна и надежна.

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

Современный смартфон уже сложно назвать просто компьютером, ведь он умеет гораздо больше своего стационарного предка: и температуру может измерить, и высоту над уровнем моря подсказать, и влажность воздуха определить, а если вдруг забудешь свою ориентацию в пространстве или силу тяжести потеряешь - все исправит. А помогают ему в этом, как ты уже, наверное, догадался, датчики 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. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

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

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

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

Гироскоп

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

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

Магнитометр

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

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

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

GPS

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

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

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

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

Барометр

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

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

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

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

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

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

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

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

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

Гироскоп

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

Магнитометр

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

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

Датчик света

Самостоятельно изменять яркость дисплея – то еще занятие, верно? То ли дело функция автояркости, которая меняет уровень яркости экрана в зависимости от окружающего излучения. Возможно это, как вы уже наверняка догадались, благодаря датчику света.
Стоит отметить, что некоторые представители линейки Galaxy от южнокорейского производителя Samsung используют обновлённый датчик света. Главной его особенностью является умение измерять долю белого, красного, зелёного и синего света для дальнейшей настройки картинки на экране.

Барометр

Нет, это не ошибка. Некоторые смартфоны действительно оснащены встроенным барометром для измерения уровня атмосферного давления. Среди первых девайсов с данной особенностью были XOOM и Samsung Galaxy Nexus.
Барометр также используется для измерения высоты над уровнем моря, что увеличивает точность работы GPS-навигатора.

Термометр

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

Датчик влажности воздуха

В этом, к слову, также преуспел четвёртый представитель линейки Galaxy S. Благодаря этому датчику четвёртая «Галактика» сообщала об уровне комфорта – соотношении температуры и влажности.

Педометр

Несмотря на довольно не очевидное название, задачей педометра является определение количества пройденных пользователем шагов. Да, совсем как в большинстве умных часов и фитнес-браслетов. Одним из первых устройств с настоящим педометром стал Nexus 5.

Сканер отпечатков пальцев

Об этом вы, конечно же, слышали. Благодаря сканеру отпечатков пальцев можно не только сократить время разблокировки смартфона, но и надёжно защитить свои данные. Среди наиболее популярных девайсов с пресловутым сканером – , HTC One Max и Samsung Galaxy S5.

Датчик сердцебиения

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

Датчик вредного излучения

Поверить довольно непросто, однако в этом мире действительно есть смартфон со встроенным датчиком вредного излучения. Прихвастнуть его наличием может японский Sharp Pantone 5. После запуска специального приложения последний демонстрирует окружающий уровень радиации. Неожиданно, не так ли?

В итоге получилось целых 12 датчиков. Какие из них чаще всего используете вы?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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