Что такое барометр в смартфоне. Геомагнитный датчик в смартфоне. Зачем он нужен

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

Этот датчик определяет наличие магнитного поля.

Зачем нужен датчик Холла? Если магнитное поле есть, прибор показывает цифру — его величину. Причем аналоговый показывает его полярность, помимо значения. А цифровой при отсутствии поля выдает «ноль», в присутствии — некоторую цифру.

Области применения датчиков Холла

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

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

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

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

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

Принцип действия датчика

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

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

Датчик Холла в устройствах мобильной связи: планшетах, смартфонах, телефонах

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

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

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

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

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

Эдвин Холл – американский учёный-физик. Своё знаменитое открытие он сделал ещё в 19-м веке. Холл обнаружил, что если проводник (например, металлическую пластину), подключенный к источнику постоянного тока, поместить в магнитное поле, то на движущиеся электроны начнёт воздействовать сила Лоренца. Как следствие, электроны станут двигаться по дуге и тяготеть к одной из граней пластины. У этой грани электроны будут накапливать отрицательный заряд, а у противоположной – положительный. Разность потенциалов на 2-х краях пластины именуется холловским напряжением .

Кратко и ёмко об эффекте Холла рассказывает этот ролик:

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

Для чего нужен датчик Холла в смартфоне?

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

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

Как правило, использование датчика Холла на телефоне сводится к решению всего 2-х задач – вот зачем этот датчик нужен гаджету:

  • Сенсор ускоряет старт GPS-навигатора и улучшает геопозирование.
  • Датчик Холла обеспечивает возможность взаимодействия смартфона с магнитными чехлами.

Кроме того, благодаря открытию американского учёного стало возможным управление жестами – «фишка», которую пользователи впервые встретили на Samsung Galaxy S3 .

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

Принцип взаимодействия датчика Холла с мобильными аксессуарами

Благодаря датчику Холла мобильные устройства могут взаимодействовать с так называемыми «умными» чехлами (Smart Case ). В крышку подобного флипа вмонтирован магнит. Как только пользователь прикрывает крышку чехла, возникает эффект Холла, датчик передаёт сигнал об этом системе смартфона – и экран гаджета автоматически блокируется. Естественно, всё это происходит за считанные доли секунды. Когда владелец смартфона открывает крышку чехла, холловское напряжение «сходит на нет». Датчик даёт команду разблокировать дисплей.

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

Переживать по поводу того, что магнит «умного» чехла нанесёт вред начинке смартфона, точно ни к чему. Магнитное поле не портит гаджет – это было доказано многочисленными профессиональными и любительскими тестами .

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

Какие смартфоны имеют датчик Холла?

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

Вот лишь некоторые из современных моделей, которые имеют датчики Холла:

Заключение

К сожалению, «лучшие умы» отрасли мобильной электроники так и не сумели придумать (пока?), как применить открытие Холла, чтобы реализовать его потенциал полностью. Автоматическое отключение / переключение дисплея – «детский лепет» по сравнению с тем, что можно было бы сделать, если бы удалось преодолеть технические ограничения. Однако поиски способов реализации холловского наблюдения ведутся – и прогресс не стоит на месте. Об этом может свидетельствовать, например, появление очков виртуальной реальности Google Card Board , управление которыми базируется на взаимодействии магнита и датчика Холла.

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

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

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

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

Зачем нужен датчик Холла?

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

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

Датчик Холла в смартфонах

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

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

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

Другое применение

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

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

Итак, какие сенсоры, датчики и другие хитрые измерительные микро-девайсы можно найти в современных смартфонах?

  • Датчик приближения : умеет с помощью инфракрасного луча определять, что вы поднесли смартфон к уху для разговора и дает команду на отключение экрана, чтобы вы ненароком не задели ухом или щекой какую-нибудь сенсорную кнопку на дисплее во время разговора.
  • Датчик жестов : отслеживает движения, главным образом – глаз или руки, и отдает смартфона заранее запрограммированные команды (допустим, пролистать страничку в браузере или вывести на экран последние уведомления).
  • Гироскоп : определяет вращение смартфона в пространстве по трем осям (часто работает вместе с акселерометром).
  • Акселерометр : определяет положение смартфона в пространстве по трем осям (часто используется и в других портативных устройствах).
  • Геомагнитный датчик (компас): использует магнитное поле Земли для ориентации по сторонам света (активно используется в навигационных сервисах).
  • Датчик температуры/влажности : измеряет температуру окружающей среды и влажность воздуха
  • Барометр : благодаря этому датчику смартфон может измерить атмосферное давление
  • Датчик Холла : благодаря этому датчику смартфон определяет, закрыт или открыт чехол
  • Датчик движения : определяет движение iPhone (используется в мобильных играх и для разблокировки iPhone).
  • Датчик освещенности : автоматически настраивает яркость экрана в зависимости от освещенности
  • Датчик гравитации : как правило, это акселерометр, содержащий небольшой грузик или трубочку. Перемещение грузика помогает смартфону определить, наклоняют ли его вправо или влево, вперед или назад. Работает в основном в мобильных играх.
  • Сканер отпечатков пальцев : используется в смартфонах (iPhone 5s, Galaxy S5) для идентификации пользователя по отпечатку палцев.
  • Датчик сердцебиения : умеет измерять пульс владельца смартфона (Galaxy S5)

Вот сколько датчиков может содержать современный смартфон. Скажем спасибо трудолюбивым китайцам, благодаря которым стоимость всех этих датчиков не превышает и сотни рублей. В будущем можно ожидать появления в мобильных девайсах новых датчиков и сенсоров для измерения (шагомер? микрометр? толщиномер?). Но и без внедрения в смартфоны новых датчиков ваш верный мобильный девайс знает достаточно, чтобы через API передавать собранные данные для работы множества приложений и сервисов: управление «умным» домом, геофенсинг, отслеживание состояние вашего здоровья и физической активности, коммуникации с «умным» автомобилем и смарт-часами и так далее. Будущее – уже на горизонте.