Питание от использования (виртуальных) датчиков Android

Просматривая возможности моего Nexus 4, я заметил, что датчики, кажется, сообщаются несколько раз.

Я раньше не работал с датчиками (или смартфонами в целом), поэтому я использовал несколько приложений, чтобы получить обзор: Device Analyzer с http://www.androidfragmentation.com/ и Sensors Explorer, в которых было 15 датчиков. Вы можете увидеть результаты здесь.

И хотя согласно iFixIt.com есть Invensense MPU-6050, встроенный как (только) гироскоп и акселерометр, Android сообщает:

  • 2 датчика LGE
    • "Датчик ускорения LGE"
    • "Датчик гироскопа LGE"
  • 2 от Qualcomm
    • "Линейное ускорение"
    • "Вектор вращения"
  • 4 от Google
    • "Датчик вектора вращения"
    • "Датчик линейного ускорения"
    • "Датчик ориентации"
    • "Исправленный датчик гироскопа"

Согласно списку датчиков в Samsung GT-I9300, некоторые из этих датчиков будут "виртуальными". Однако, что на самом деле мне интересно на данный момент, так это энергопотребление датчиков. И это тот момент, когда я действительно запутался.

В качестве примера возьмем акселерометр: "Датчик акселерометра LGE" выдает 0,5 мА, а "Линейное ускорение" (Qualcomm) - 4,1 мА, а "Датчик линейного ускорения" (Google) - 9,1 мА. Все три имеют одинаковое разрешение (0.0011901855 SU), LGE и Qualcomm имеют одинаковую максимальную дальность (39.226593 SU), а Google сообщает 19.6133 SU.

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

Теперь: сколько акселераторов на самом деле присутствует? Они действительно избыточны или это просто пути виртуального доступа к одному и тому же устройству? Если да, то почему потребление энергии так сильно отличается? А почему ассортимент?

Обновление в соответствии со спецификациями Гироскоп будет потреблять ток 3,6 мА (соответствует "Датчик гироскопа LGE", все остальные отчеты 9,1 мА), а акселерометр может варьироваться от 500 мкА в нормальном режиме работы и от 10 мкА при 1,25 Гц до 110 мкА при 40 Гц при низких режим питания.

При напряжении 3 В (типично в соответствии со спецификациями) это дает 10,8 мВт для гироскопа и от 10 до 1,5 мВт для акселерометра.

Датчики, которые сообщают "Google Inc." Похоже, что они виртуальные, которые выполняют объединение датчиков, чтобы обеспечить более высокую точность и удобство использования. Смотрите этот Google Tech Talk.

1 ответ

Обычно на устройстве присутствует только один датчик физического ускорения.

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

Очевидно, датчик линейного ускорения qualcomm использует акселерометр и гироскоп для вычисления значения, в то время как версия Google также учитывает магнитометр.

Разрешение привязано к физическому датчику. Для диапазона я не могу сказать наверняка, но, вероятно, это как-то связано с отношением:

Ускорение = линейное ускорение + гравитация

Физические датчики:

  • акселерометр
  • гироскоп
  • магнитометр

Датчик Fusion:

  • Линейное ускорение
  • Сила тяжести
  • Ориентация /Rotation
  • Исправленный гироскоп

Однако вы не можете точно сказать, присутствует ли датчик физически или просто является результатом слияния датчика.

Другие вопросы по тегам