Датчики в смартфонах: какие бывают? Что такое датчик расстояния на телефоне

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

Что это?

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

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

В смартфонах он представлен микросхемой, которая на выходе создает информационный сигнал в двух состояниях:

  • единица (сигнал подается);
  • ноль (сигнал отсутствует).

Мобильный телефон его считывает и в зависимости от состояния сигнала выполняет то или иное действие.

Важно! Датчик можно устанавливать рядом с микроконтроллерами или логическими элементами – он не влияет на их работу.

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

Зачем нужен?

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

  • компактные размеры мобильного телефона;
  • сокращение потребления заряда аккумулятора;
  • нет необходимости.

В смартфонах датчик Холла используется в двух случаях:

  • в цифровом компасе и для улучшения геопозиционирования, обеспечивая быстрый «холодный» старт GPS-навигатора;
  • взаимодействие с магнитным чехлом для смартфона.

Принцип взаимодействия с магнитным чехлом

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

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

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

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

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

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

Датчик ориентации или ускорения – акселерометр. Это самый обыкновенный вид датчика, который наблюдается чуть ли не в каждой модели смартфонов или планшетов. Необходим он для того, чтобы регистрировать пространственные повороты девайса из портретного положения в положение ландшафтное. Зачастую, конкретно акселерометр называется G-sensor. Обычно, существуют три оси, по которым датчиком регистрируется разница между ускорением самого объекта и гравитационным ускорением.

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

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

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

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

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

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

Промежуточный вывод

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

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

Датчики, которые зачастую не встречаются в дешевых смартфонах

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

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

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

Гигрометр (или датчик влажности). Определяет уровень влажности. Как и предыдущий датчик, был представлен впервые в модели Galaxy S4, но теперь используется во многих смартфонах и прочих устройствах.

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

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

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

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

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

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

Ряд вспомогательных датчиков смартфонов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В заключение

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

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

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

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

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

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

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

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

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

Гироскоп

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

Магнитометр

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

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

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то