- Собираем показания датчиков с Android смартфона
- Как включить, настроить и отключить датчик приближения на телефона Андроид
- Датчик приближения – что это и зачем он нужен
- Как включить датчик приближения
- Как отключить датчик приближения
- Как выполнить настройку (откалибровать) датчик приближения
- Возможности системы
- Инженерное меню
- Стороннее приложение
- Датчики современных смартфонов
- Владимир Нимин
- Вместо заключения
Собираем показания датчиков с Android смартфона
В своем первом посте на Хабре я бы хотел рассказать о том, как получать данные датчиков в ОС Android, а конкретно — угол наклона вашего аппарата во всех трех плоскостях. Заинтересовавшихся прошу под кат.
Датчики ОС Android делятся на три категории: движения, положения и окружающей среды. Датчики эти могут быть самыми разными:
- Акселерометр
- Гироскоп
- Датчик освещения
- Датчик магнитных полей
- Акселерометр
- Барометр
- Датчик поднесения телефона к голове
- Датчик температуры аппарата
- Датчик температуры окр. среды
- Измеритель относительной влажности
- И т.д.
Естественно, их набор зависит от «комплектации» аппарата, но есть и датчики, присутствующие в большинстве смартфонов на Android — акселерометр и гироскоп.
Посредством этих датчиков мы можем узнать положение телефона в пространстве, а именно углы наклона аппарата во всех трех плоскостях (XY, YZ, ZX). Этим мы и займемся!
Для начала создадим новый проект и накидаем простенькое отображение с тремя надписями для вывода показаний датчиков и соответствующими подписями к ним. У меня получилось что-то вроде этого:
В главной активити объявление класса приведем к виду:
Класс SensorEventListener поможет нам отследить события на датчиках.
У вас должно появиться четыре обязательных метода:
Как вы уже наверное догадались, нас вскоре заинтересует последний метод. А пока объявим необходимые нам переменные:
Первая переменная — менеджер сенсоров устройства. Именно она даст нам доступ к интересующему нас датчику. Для этого событие onCreate сделаем похожим на это:
Ну вот, почти закончили! Осталось только получить значения и вывести в текстовые поля. Вспомним про событие onSensorChanged. Если помните в него передается параметр SensorEvent event. Он-то и содержит значения углов наклона в градусах. Поэтому делаем финальный штрих и приводим событие к виду:
Все готово! Думаю, понятно, что виртуальный смартфон вы повертеть не сможете. Поэтому для тестирования вам понадобится реальный аппарат. Запускаем, вертим наш смартфон и следим за цифрами.
Если кому-то понадобится, то выкладываю apk сделаный по примеру.
Надеюсь, пост оказался полезным и понятным для вас!
UPD: Как оказалось, можно протестировать и в эмуляторе. Спасибо BlackStream за ссылку!
Источник
Как включить, настроить и отключить датчик приближения на телефона Андроид
При разговоре по телефону на базе Android пользователи нередко замечают, что блокировка дисплея, предотвращающая неосторожное прикосновение к экрану, не срабатывает. Чтобы исправить эту проблему, нужно понимать, как настроить датчик приближения на Андроид девайсе.
Датчик приближения – что это и зачем он нужен
Датчик приближения – это миниатюрный модуль, реагирующий, если экран мобильного устройства находится вблизи от какого-либо физического предмета. Благодаря его наличию дисплей во время звонка отключается, когда девайс находится вблизи от уха. Это помогает сберечь заряд батареи при звонке. Обычно этот модуль включён изначально, но иногда его необходимо активировать вручную.
Как включить датчик приближения
Перед тем, как включить датчик приближения на Андроид устройстве, важно найти эту опцию в настройках мобильного девайса. На технике разных брендов она размещена в различных местах.
Обычно нужно открыть «Системные приложения» и перейти к разделу «Телефон».
Здесь следует выбрать вкладку «Входящие вызовы» и сместить бегунок напротив строки с названием модуля в рабочее положение (или установить метку).
Как отключить датчик приближения
Для отключения датчика приближения на Android нужно выполнить противоположную последовательность действий. Для этого потребуется найти модуль в настройках смартфона и перевести бегунок в обратное положение либо снять метку напротив интересующей строки.
Как выполнить настройку (откалибровать) датчик приближения
В тех случаях, если модуль работает некорректно (дисплей не отключается при приближении к голове человека или же тухнет на удалении от неё), потребуется выполнить его регулировку. Для этого важно знать, как откалибровать датчик приближения на Андроид. Решить эту задачу можно встроенными системными средствами, через инженерное меню или через сторонние утилиты.
Перед тем, как приступить к калибровке, необходимо отыскать модуль на корпусе смартфона. Чаще всего он размещён в верхней части дисплея, поблизости от передней камеры. Чтобы найти его, следует при звонке отодвинуть мобильный девайс от уха, чтобы загорелся экран, а затем приблизить палец к селфи-камере и провести от неё влево или вправо. Если дисплей отключится, значит, в этом месте расположен необходимый узел.
В ряде случаев работоспособность модуля нарушается из-за попадания пыли. Чтобы исправить такую поломку, достаточно выключить гаджет и тщательно продуть и протереть область вокруг элемента. Далее следует перезапустить девайс и проверить работоспособность. Если проблема не устранена, следует приступить к калибровке.
Возможности системы
Встроенные службы – наиболее простая возможность выполнить калибровку. Для этого нужно перейти в настройки смартфона и в разделе «Экран» или «Специальные возможности» выбрать эту опцию. Далее потребуется следовать подсказкам системы в процессе выполнения операции.
Сначала необходимо убрать все предметы, расположенные перед датчиком, после чего активировать настройку. После этого напротив элемента в нескольких сантиметрах нужно поставить лист бумаги, а затем последовательно приближать его к модулю и удалять от него. Если экран на протяжении этих действий гаснет и снова загорается, значит, калибровка выполнена верно.
Инженерное меню
Провести диагностику модуля и, при необходимости, регулировку можно через инженерное меню. Для этого необходимо:
Выбрать ввод номера и ввести *#*#3646633#*#* или *#*#6484#*#*.
- Перейти к проверке комплектующих («Hardware Testing»), откройте раздел «Sensor», затем «Light/Proximity Sensor» (датчик света и приближения).
- Чтобы выполнить тестирование, провести сбор сведений модуля («PS Data Collection»).
- Кликнуть «Get One Data», когда на экране загорится «0», приблизить ладонь к элементу и повторно нажать «Get One Data».
- Если на экране высветится число «255», модуль исправен.
- Чтобы провести настройку, нужно выбрать «PS Calibration», затем «Calibration».
- Нажать «Calculate min value», при этом модуль должен быть открыт.
- Увидев на экране сообщение «Calculate succeed», приблизить на пару сантиметров к экрану бумажный лист и нажать «Calculate Max Value», а затем «Do Calibration».
После этих действий необходимо перезагрузить мобильный девайс.
Стороннее приложение
Ещё один удобный способ провести калибровку модуля – воспользоваться бесплатным сторонним приложением «Датчик приближения. Сброс». Загрузить его можно на Google Play.
После загрузки и инсталляции необходимо запустить утилиту и выполнить следующие действия:
- Кликнуть «Calibrate Sensor».
- Закрыть датчик и нажать «Next».
- Открыть модуль и перейти к следующему шагу.
- Кликнуть «Calibrate», затем — «Confirm».
- Нажать «Разрешить», чтобы приложение могло использовать рут-права на телефон.
- Дождаться перезагрузки устройства и проверить, как оно функционирует.
Для исправной работы датчика приближения, его необходимо включить в меню телефона и, если возникнет такая необходимость, сделать калибровку встроенными средствами системы, через инженерное меню или с помощью сторонних приложений. Если эти действия не принесли результатов, и модуль по-прежнему работает некорректно, это говорит о неисправности. Узнать, как исправить поломку, можно в статье, посвящённой этой теме.
Источник
Датчики современных смартфонов
Владимир Нимин
Продолжаем разбираться в устройстве смартфона. В прошлый раз смотрели экраны, а сегодня поговорим про датчики.
Акселерометр, также называют G-сенсор. Официальное определение гласит, что это устройство, измеряющее проекцию кажущегося ускорения. А если простым языком, то акселерометр помогает смартфону определить положение в пространстве, а также расстояние перемещения. Основные функции акселерометра:
- Автоповорот ориентации экрана;
- Также акселерометр можно настроить так, чтоб он реагировал на жесты и действия. Например, потрясти смартфон или перевернуть экраном вниз, чтоб заглушить вызов;
- Ещё акселерометр помогает считать шаги и помогает ориентироваться на картах (Google Maps и прочих)
Акселерометр – это громоздкое устройство, внутри которого находится инертная масса, реагирующая на все перемещения. Такой вариант для смартфона не подходил, поэтому придумали чип, имеющий кристаллическую структуру, пьезоэлектрический элемент и сенсор ёмкостного сопротивления. Когда смартфон перемещается/вращается, то пьезоэлектрический элемент выдаёт разряды, а сенсор их интерпретирует, таким образом определяя положение и скорость.
Акселерометр – базовый датчик, который есть в любом, даже самом дешевом, смартфоне. Хотя это на удивление технически сложный продукт. В смартфонах акселерометр понимает движения по 3 осям. Третья нужна для 3D позиционирования. К слову, акселерометр есть и во всех современных автомобилях, но там он обычно двухосевой (ибо автомобиль не крутится в воздухе).
Не все акселерометры одинаковые. Их делают из разных материалов. Соответственно, некоторые более чувствительные, некоторые менее.
Гироскоп – это один самых классных датчиков, о полезности которого для смартфонов долгое время никто не подозревал, пока на сцену не вышел Стив Джобс и не объяснил, как оно должно быть. Посмотрите презентацию этой шикарной функции, и как зал взорвался от восторга.
Не следует путать гироскоп и акселерометр. Эти датчики частично дублируют и дополняют друг друга. Гироскоп также служит для отслеживания положения устройства в пространстве, но он делает это путем определения собственного угла наклона относительно земной поверхности. Это очень важно, так как это означает, что в условиях нулевой гравитации, вы не сможете поиграть в Asphalt 9, используя в качестве управления наклоны устройства. Будьте внимательны!
Гироскоп (в отличие от акселерометра) не может измерять проделанное расстояние, зато гораздо точнее определяет положение в пространстве. Для понимания посмотрите, пожалуйста, видео со Стивом Джобсом выше. Начиная с времени 1:10 Джобс показывает, как определяет положение объекта в пространстве акселерометр и как гироскоп.
Обычно в современных смартфонах оба датчика работают в тандеме. Гироскоп важен для игр, дополненной реальности, а также ряда других приложений. Нередко в дешевых смартфонах производитель предпочитает экономить на гироскопе.
Датчик приближения (proximity sensor). Как видно из названия, это датчик, который помогает определить наличие перед ним объекта. Самый простой пример – это отключение экрана, когда смартфон подносят к уху. Также датчик приближения исключает фантомные включения экрана, когда смартфон находится в сумке или кармане. Такой датчик может сам или в комбинации с фронтальной камерой отслеживать движения рукой над экраном для выполнения каких-либо функций. Например, пролистывание странички в браузере и тому подобное. Существует множество технологий датчика приближения. Он может работать по типу радара, сонара, эффекта Доплера, есть инфракрасный датчик приближения, а иногда ставят и фотоэлемент.
Базовый датчик приближения, отключающий экран при поднесении к уху, есть, кажется, уже во всех смартфонах. Но продвинутость датчика можно оценить по наличию дополнительных функций.
Датчик освещения – здесь всё просто и понятно. Такой датчик помогает автоматически выставить яркость экрана. Датчик освещения уже считается базовым датчиком, но в дешевых смартфонах на нем могут сэкономить. И тогда придется каждый раз выставлять яркость вручную.
Современный датчик освещения обычно работает в комбинации с ИИ смартфона. Например, если датчик выставил определенную яркость, а вы его вручную поправили, то смартфон возьмёт на заметку и в следующий раз самостоятельно сделает экран поярче. Соответственно, всегда давайте датчику освещения освоится и подстроиться под ваши привычки прежде, чем осуждать его работу.
Датчик Холла – один из самых таинственных датчиков в смартфоне, ибо мало кто знает, зачем он нужен. Датчик, основанный на, так называемом, эффекте Холла, фиксирует магнитное поле и измеряет его напряженность. Говоря языком физики: электроны в проводнике всегда перпендекулярны (угол 90 градусов) направлению магнитного поля. Плотность электронов на разных сторонах проводника будет отличаться, возникает разность потенциалов, которую и фиксирует датчик Холла.
Но в смартфонах используется упрощенный датчик Холла, фиксирующий только наличие магнитного поля.
Обычно датчик Холла нужен для дополнительных аксессуаров. Например, именно он включает экран iPad, когда пользователь снимает магнитный чехол. Кстати, в этой функции датчик приближения вполне может подменить датчик Холла.
Также датчик Холла работает в паре с компасом, делая работу последнего более точной.
Компас (магнитомер) – это очень важный датчик, даже если вы не занимаетесь спортивным ориентированием. Именно компас отвечает за то, что на Google Maps пользователь видит не просто точку, а стрелочку, указывающую в какую-сторону вы смотрите.
Когда компас откалиброван, то отображение направления узкое. Чтобы откалибровать компас, откройте карты Google и крутите смартфон «восьмеркой»:
Барометр – обычно наличием подобного датчика могут похвастаться только флагманы. Барометр ассистирует GPS и помогает определить высоту. Наличие такого датчика полезно, так как на Google Maps уже появляются схемы зданий, и барометр определит на каком этаже вы находитесь. Также барометр используется в приложениях, определяющих физическую активность. Суть такая же: определить, сколько этажей вы прошли.
Датчик влажности – когда-то такой датчик был в Samsung Galaxy Note 4, а потом Samsung от него отказались. Роль очевидная. Датчик определяет уровень влажности.
Датчик сердцебиения/датчик кислорода в крови – ещё один фирменный датчик от Samsung, но он есть и во многих фитнес-браслетах. Работает совместно с LED-вспышкой. Прикладываете палец, LED светит вам свозь палец, а датчик измеряет, как отражаются световые волны. Волны отражаются по-разному в зависимости от пульса: кровеносные сосуды, то сужаются, то расширяются. По этому же принципу работает и функция определения кислорода в крови.
GPS – глобальная система позиционирования. По сути, это даже не датчик, а наличие у смартфона возможности коммуницировать со спутниками благодаря или отдельному, или мульти-чипу, поддерживающему сразу несколько систем. Сейчас у каждой развитой страны, есть своя система спутников. ГЛОНАСС в России, Galileo в Европе, BDS (или BeiDou) в Китае, QZSS (или Quasi-Zenith Satellite System) в Японии. Можно скачать программу GPS Test, которая покажет, какие спутники видит ваш смартфон. Например, на скриншоте ниже отображаются флаги GPS, ГЛОНАСС и Galileo.
GPS прекрасная технология, но медленная (пока там все спутники найдешь и опросишь) и потребляющая много энергии и хорошо работающая на открытой местности, поэтому была придумана ещё A-GPS (Assisted GPS). Принцип основан на том, что пока GPS ищет спутники, смартфон успевает опросить сотовые вышки, Wi-Fi сети, Bluetooth устройства на предмет местонахождения. Таким образом существенно увеличивается время «холодного» старта, а также снижается расход энергии.
Двухдиапазонный GPS. Поддержка этой опции появилась в устройствах начbfz с Android 7 и старше. iPhone так не умеет.
Обычно спутники посылают два сигнала: грубый и точный. Если говорить про GPS, то это каналы L1 и L5, а у Галилео это E1 и Е5. L1 – это грубый канал. В городе любой сигнал достигает до спутника не только напрямую, но и отражаясь от сторонних объектов (например, зданий), то есть к спутнику прилетает сразу несколько сигналов. Соответственно, и возвращается он также не один, и образуется примерная область нахождения, где все вернувшиеся сигналы пересекаются. Ещё есть точный канал L5. Этот канал гораздо меньше подвержен искажением, так как работает по принципу: Первый достигший спутника сигнал и есть верный (ведь он идет по самому короткому пути, а не через отражения), а остальные можно игнорировать.
Раньше L5 принадлежал только военным и спец объектам, но теперь спутников в небе стало много, и L5-спутников хватит на всех, поэтому было решено поделиться.
Вместо заключения
Счётчик Гейгера – самый неожиданный датчик, правда? Это японская тема. И насколько есть информация в интернете, такой датчик был только в телефоне Sharp Pantone 5, который вышел после аварии на атомной станции Фукусима-1.
Современный смартфон должен иметь на борту: акселерометр, гироскоп, датчик приближения и освещения. Также обязательно наличие компаса. Если без гироскопа можно обойтись, то точка на карте без направления раздражает. A-GPS уже есть во всех смартфонах. Отлично если GPS будет работать в двух диапазонах. Шикарно, если будет барометр.
Источник