Статьи и Лайфхаки
Многие пользователи мобильных устройств до сих пор не знают, для чего нужны те или иные специальные функции.
В частности, некоторые из них не представляют себе, что такое G-Sensor и для чего он используется.
И это неудивительно, ведь постоянные инновации и новшества способны поставить в тупик даже самых продвинутых представителей широкой общественности.
Существует датчик с таким же названием, о котором знают все автолюбители. Однако для чего он нужен в мобильном устройстве?
Иногда для того, чтобы разобраться во всех функциях своего аппарата, не хватит и нескольких дней. Попробуем немного облегчить сам процесс владельцу телефона с G-сенсором, рассказав об этом датчике более подробно.
По сути, это датчик движения, способный измерить ускорение, сопоставив 3 пространственные координаты одновременно.
Если объяснять, что такое G-Sensor, иными словами, получим особый прибор, который измеряет разницу между проекциями гравитационного и абсолютного ускорения.
Для повышения уровня сигнала в датчике используют особые его усилители, отличающиеся высоким уровнем линейности. Именно благодаря этому измерения являются более точными.
Некоторые приборы оснащены также встроенными системами, собирающими и обрабатывающими информацию. Это позволяет создать полноценную измерительную программу со всеми нужными компонентами.
Это означает, что при повороте мобильного телефона, к примеру, при съёмке, изображение будет повёрнуто так, как удобно самому пользователю.
Такой же будет реакция на удар, ну а при встряхивании во время проигрывания музыки трек должен измениться. Удобно будет использовать устройство и в качестве шагомера.
Ожидается, что со временем сфера использования таких сенсоров будет постоянно расширяться, ведь с ними работают самые различные .
На данный момент существует множество дополнительных программ для этого прибора, которые можно всячески использовать. Кроме того, их легко скачать, как сказали выше.
Таким образом, G-Sensor разработан специально для того, чтобы каждый смог сделать эксплуатацию своего мобильного устройства более комфортной.
Статьи и Лайфхаки
Итак, для чего нужен датчик расстояния на телефоне? Если приблизить телефон к уху, что происходит с экраном? Не видели? Если заглянуть, то видно что дисплей гаснет, но не только это, он еще и отключает сенсор экрана. Вот и первый ответ на поставленный вопрос.
Для чего это нужно? Со включенным дисплеем разговаривать по телефону не удобно. Любое неаккуратное движение, и случайное прикосновение уха к экрану сослужит нехорошую службу. Кроме того, экономится заряд батареи.
Если и после калибровки сенсор не работает некорректно, то самое лучшее решение – обращение в сервисный центр.
Статьи и Лайфхаки
Многие задаются вопросом, что же такое датчик расстояния на телефоне, датчик движения и присутствия и чем они отличаются друг от друга. В физике это три разных устройства.
Но что касается смартфонов, то правильней сказать, что все это один сенсор.
То есть «железка» одна, но выполняет много разных функций в зависимости от типа и того, какие задачи перед ним поставил производитель гаджета.
Наверно все знакомы с работой подобных приборов. Это и двери в супермаркете, открывающиеся при обнаружении движения, и водопроводный кран включающий воду при приближении рук.
В нашем случае, это - сенсор, фиксирующий приближение объекта. А дальше, в зависимости от требования ПО, совершает определенное действие.
А по окончании разговора включает его вновь. Не потому, что он узнает ухо, а потому что это объект, зафиксированный в радиусе его действия.
Для того, чтобы проверить его работу можно в режиме разговора или диктофона поднести любой предмет к месту расположения данного сенсора на вашем устройстве, (как правило, это рядом с динамиком).
На многих современных смартфонах и планшетах он выполняет и другие задачи:
Если калибровка не помогла решить проблему, то лучше посетить сервисный центр.
Современный смартфон уже сложно назвать просто компьютером, ведь он умеет гораздо больше своего стационарного предка: и температуру может измерить, и высоту над уровнем моря подсказать, и влажность воздуха определить, а если вдруг забудешь свою ориентацию в пространстве или силу тяжести потеряешь - все исправит. А помогают ему в этом, как ты уже, наверное, догадался, датчики aka сенсоры. Сегодня мы познакомимся с ними поближе, а заодно и проверим, действительно ли мы находимся на Земле. 😉
Для работы с аппаратными датчиками, доступными в устройствах под управлением Android, применяется класс SensorManager , ссылку на который можно получить с помощью стандартного метода getSystemService :
SensorManager sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
Чтобы начать работать с датчиком, нужно определить его тип. Удобнее всего это сделать с помощью класса Sensor , так как в нем уже определены все типы сенсоров в виде констант. Рассмотрим их подробнее:
Перечисленные датчики являются аппаратными и работают независимо друг от друга, часто без всякой фильтрации или нормализации значений. «Для облегчения жизни разработчиков»™ Google ввела несколько так называемых виртуальных сенсоров, которые предоставляют более упрощенные и точные результаты.
Например, датчик Sensor.TYPE_GRAVITY пропускает показания акселерометра через низкочастотный фильтр и возвращает текущие направление и величину силы тяжести по трем осям, а Sensor.TYPE_LINEAR_ACCELERATION использует уже высокочастотный фильтр и получает показатели ускорения по трем осям (без учета силы тяжести).
При разработке приложения, эксплуатирующего показания сенсоров, вовсе не обязательно бегать по улице или прыгать в воду с высокой скалы, так как эмулятор, входящий в поставку Android SDK, умеет передавать приложению любые отладочные значения (рис. 2–3).
Чтобы узнать, какие сенсоры есть в смартфоне, следует использовать метод getSensorList объекта SensorManager :
List
Полученный список будет включать все поддерживаемые датчики: как аппаратные, так и виртуальные (рис. 4). Более того, некоторые из них будут иметь различные независимые реализации, отличающиеся количеством потребляемой энергии, задержкой, рабочим диапазоном и точностью.
Для получения списка всех доступных датчиков конкретного типа необходимо указать соответствующую константу. Например, код
List
вернет все доступные барометрические датчики. Причем аппаратные реализации окажутся в начале списка, а виртуальные - в конце (правило действует для всех типов датчиков).
Чтобы получить реализацию датчика по умолчанию (такие датчики хорошо подходят для стандартных задач и сбалансированы в плане энергопотребления), используется метод 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 определены четыре статические константы, определяющие частоту обновления:
Нужно сказать, что, указывая частоту обновления, не стоит ожидать, что она будет строго соблюдаться. Как показывает практика, данные от сенсора могут приходить как быстрее, так и медленнее.
Оставшийся нерассмотренным первый параметр представляет собой реализацию интерфейса 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 вполне себе значение атмосферного давления в миллибарах.
Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов.
Многие удобные и даже необходимые функции смартфона были бы невозможны без специальных датчиков (сенсоров). Управление жестами, автоматическое изменение яркости, изменение ориентации экрана при повороте и его отключение при разговоре, контроль в игре без нажатий - это далеко не полный перечень возможностей. Также наличие некоторых датчиков может превратить смартфон в метеостанцию или быть очень полезным при занятии спортом, слежении за физическим состоянием.
Наличие датчиков в смартфонах и не только было бы не невозможно без развития микроэлектромеханических систем (МЭМС). Такие устройства соединяют в себе электрические и механические компоненты в микроисполнении. Размеры таких элементов не превышают 100 микрометров.
Готовые устройства МЭМС
Основным материалом для создания МЭМС служат кремний и полимеры. По данной технологии создаются все известные сенсоры, которые необходимо использовать в компактных устройствах, например, смартфонах. Совершенствование в технологическом плане смартфонов дало большой толчок для развития МЭМС. Давайте рассмотрим примеры таких датчиков.
Акселерометр - слово, соединяющее в себе два языка: акселеро - с латыни "ускоряю", метр - с греческого "измеряю". Такой датчик замеряет линейное ускорение движущегося тела по трем осям координат. Данные измерений собираются и обрабатываются посредством SoC или специально выделенного микроконтроллера. Далее, производится математический расчёт и фиксируется положения смартфона в пространстве в реальном времени.
Акселерометр внутри смартфона
Именно акселерометр позволяет менять ориентацию экрана с портретной на ландшафтную и наоборот в зависимости от положения устройства, переключать музыкальные треки при встряхивании, гонять автомобильные симуляторы, используя в качестве руля смартфон или планшет. Акселерометр является одним из самых популярных датчиков в смартфоне, и если раньше это была диковинка и прерогатива дорогих телефонов, то на сегодня таким сенсором может похвастаться любое бюджетное решение.
Гироскоп - состоит из двух древнегреческих слов «круг» и «смотрю». Как правило, работает в паре с акселерометром, дополняет его в некоторых случаях. Гироскоп необходим для фиксации углов наклона устройства. Делает это он с помощью измерения скорости углового вращения.
Также как акселерометр, гироскоп передает результаты замеров в устройство для дальнейших расчетов угла наклона и его направления. Погрешность откалиброванного гироскопа составляет не более 1-2 градусов. Широко применяется в мобильных играх, приложениях для фотосъемки, для оптической стабилизации в камерах, летающих дронах, управляемых смартфоном. Также как и акселерометр, гироскоп является очень популярным датчиком и присутствует во многих смартфонах.
Магнитометр - сенсор для измерения магнитного поля. По сути он собой представляет выполненный по технологии МЭМС миниатюрный датчик на основе эффекта Холла. Он регистрирует изменения силы магнитного поля по трем осям X, Y и Z. В этом случае он используется для навигационных и разных картографических приложениях, для повышения точности определения местоположения. Также без этого датчика не будет работать цифровой компас в смартфоне. Магнитометр иногда размещают в одном модуле с акселерометром, и они работают в паре, дополняя друг друга. Еще датчик Холла просто фиксирует изменения магнитного поля, без привязки к осям. Такие свойства используются в паре со специальными чехлами, в которые встроены магниты. При открытии крышки такого чехла экран смартфона автоматически включится и наоборот.
Датчик приближённости. Позволяет отключать экран телефона при разговоре. Такая функция позволяет экономить заряд устройства, а также предотвращает случайные нажатия. Работает такой датчик на основе IR детектора. Он обычно находится возле разговорного динамика и с помощью инфракрасного луча фиксирует нашу часть лица в непосредственной близости к телефону. На основе этого датчика реализуются еще одна интересная фича - распознавание жестов. Они позволяют управлять некоторыми функциями смартфоном не прикасаясь к экрану.
Датчик света - измеряет, насколько яркое освещение вокруг смартфона. На основании его данных ОС повышает или понижает яркость экрана. Экономя энергию смартфона и позволяя более комфортно пользоваться им. Продвинутые датчики могут анализировать составляющую RGB цвета и в соответствии с этим подстраивать цвета дисплея.
Описанные выше сенсоры характерны для соверменных смартфонов. Но ведь есть и редкие экземпляры:
Барометр - датчик для измерения атмосферного давления. Может использоваться в некоторых приложениях (навигационных, измерительных) для определения высоты над уровнем моря. Делает это он, высчитывая разницу атмосферного давления. Также повышает точность и скорость работы систем GPS. Например, фиксируя постоянно высоту объекта относительно уровня моря, можно отследить его перемещения не только в горизонтальной плоскости, но и в вертикальной.
Температурный датчик - как вы уже догадались, этот сенсор измеряет температуру. Бывают двух видов:
Датчик влажности воздуха - в паре с предыдущими двумя может выполнять функции продвинутой метеостанции. Поможет вам узнать, не пересушиваете ли вы воздух в квартире и насколько комфортная погода на улице (соотношение температуры и влажности).
Педометр - считает количество пройденных шагов и полезен для отслеживания активности. Главное, чтобы смартфон был всегда при вас.
Пульсометр - по запросу измеряет частоту сердцебиения. Как по мне, намного удобнее использовать этот датчик и шагомер во всевозможных фитнес-браслетах.
Сканер отпечатков пальцев - биометрический датчик, призван повысит безопасность устройства. Подробнее о них вы можете прочитать в одной из наших .
Наличие всех перечисленных выше датчиков является своеобразной фишкой смартфонов Samsung линейки Galaxy (начиная с S4).
И совсем уж диковинкой выглядит дозиметр - датчик измерения радиации. Им оснастила свой телефон компания Sharp, а причиной такого шага стала авария на атомной электростанции в Японии.
Проверить наличие и работоспособность того или инного датчика в вашем смартфоне можно с помощью специального программного обеспечения, например - AnTuTu Tester, Z - Device Test, Android Sensor Box и т.д.
Как мы убедились, в нашем смартфоне может быть много разнообразных датчиков и его работа уже практически невозможна без них. А ведь к этому списку можно добавить еще камеру со светочувствительным сенсором, микрофон - регистрация звука, тач - реакция на касание. В будущем же смартфоны могут обладать обонянием, улавливая, например, чадный газ, смогут диагностировать сердечные и другие заболевания и многое другое.
А как вы думаете, какие датчики реально полезны и востребованы в современном смартфоне?