Акселерометр у айфон что это

Где расположен акселерометр у iPhone?

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

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

Ключом к эксперименту будет являться круговое движение. Когда объект движется по окружности с постоянной скоростью, он будет иметь ускорение:

Кроме того, ускорение движущегося по кругу объекта будет направлено к центру круга:

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

Для записи ускорения на iPhone можно воспольоваться каким-либо подходящим приложением, например, Mobile Science Acceleration.

Оно полностью бесплатное, и данные можно экспортировать в CVS-файл или получить их по email.

Используем вращающуюся метровую палку, на одной конце которой расположен iPhone. Для контроля скорости электромотора можно применить конструктор LEGO Mindstorms.

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

Запись значений с акселератора в приложении установим с частотой 10 раз в секунду. Сохраненные данные (их можно импортировать в Vernier’s Logger Pro) выглядят примерно так:

Здесь показано ускорение, данные немного разные, но можно видеть постоянные значения (выделенные синим), которые можно взять за основу для вычисления местоположения акселератора.

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

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

Теперь нужно построить данные, чтобы получить отношение между ускорением, радиусом и угловой скоростью. Итак, вот построение ускорения для iPhone в обоих ориентациях корпуса:

По оси у получается примерно 0,44 м и по оси х – примерно 0,43 метра.

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

Вот что получается:

В этой точке, если все данные верны, и расположен акселерометр у iPhone.

Поставьте 5 звезд внизу статьи, если нравится эта тема. Подписывайтесь на нас Telegram , ВКонтакте , Instagram , Facebook , Twitter , YouTube .

Источник

Акселерометр: что это, как работает и зачем нужен в фитнес-браслете, часах и смартфоне

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

Акселерометр: что это и зачем нужен?

Простым языком, акселерометр – это прибор, измеряющий ускорение (величину изменения скорости). Название прибора происходит от латинского «accelero», что дословно переводится, как «ускоряю» и греческого «metreō», что в переводе означает «измеряю».

Измерение величины динамического ускорения позволяет определить, насколько быстро и в каком направлении движется устройство с акселерометром. По конструктивному исполнению акселерометры подразделяются на однокомпонентные, двухкомпонентные, трёхкомпонентные (одноосевые, двух осевые и трехосевые). Например, 3-осевой датчик ускорения может определять величину и направление ускорения как векторную величину во всех трех осях.

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

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

Где применяется акселерометр?

Датчик ускорения применяется в самых различных сферах:

  • Навигационные устройства летательных аппаратов. Без приборов на основе гироскопов и акселерометров не может обойтись ни один самолет, вертолет и даже квадрокоптер. Так, например, для работы квадрокоптера необходимо минимум три гироскопа.
  • Автомобили. В автомобилях акселерометр интегрируется в системы безопасности и стабилизации. Прибор определяет экстренное торможение или дорожно-транспортное происшествие и запускает электрическую цепь, которая заставляет подушки безопасности срабатывать.
  • Промышленность. Датчики активно используются в различных станках, агрегатах и производственных линиях в системах защиты для отключения питания в случае поломок или при достижении критических значений.
  • Электроника. В компьютерах и ноутбуках акселерометр применяется для защиты жестких дисков от ударов и падений. В случае обнаружения падения прибор отдает команду считывающим головкам принять безопасное положение для избегания повреждения диска и потери данных.
  • В смартфонах и планшетах акселерометр отвечает за смену ориентации экрана при повороте корпуса, а также за управление игровым процессом при наклонах гаджета. В фитнес-браслетах и часах акселерометр применяется для подсчета шагов, отслеживания сна и активации экрана поднятием запястья.
  • Бытовая техника. Да, акселерометрами могут оснащаться даже стиральные машины, утюги и тепловентиляторы. Например, в утюгах акселерометр, обнаружив его падение, отключает питание, чтобы не допустить возникновения пожара.
Читайте также:  Как сменить профиль для айфона

Как работает акселерометр?

Большинство устройств оснащается емкостными, пьезорезистивными и пьезоэлектрическими приборами. Часто акселерометр представляет собой микроэлектромеханическую систему (MEMS), содержащую несколько компонентов, каждый размером от 1 до 100 микрометров. Размер же прибора обычно не превышает габариты спичечной головки.

Механический акселерометр

Объяснить принцип работы акселерометра проще на механическом приборе. Он состоит из пружины, прикрепленной к корпусу, подвижной массы и демпфера. Масса или, проще сказать, грузик, крепится к пружине. С обратной стороны грузик поддерживает демпфер, гасящий вибрации грузика. Во время ускорения корпуса пружина деформируется (растягивается или сжимается) по противоположным осям под воздействием грузика, стремящегося сохранить свое первоначальное положение, то есть отстать или опередить корпус. На величине деформации и основываются вычисления прибора.

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

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

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

Внутренняя работа акселерометра

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

Также понять как работает акселерометр поможет короткое видео ниже:

Чем отличается акселерометр от гироскопа?

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

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

Поэтому в большинстве устройств эти два прибора устанавливаются совместно для достижения наибольшей эффективности.

Акселерометр в фитнес-браслете и смарт-часах

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

Акселерометр в телефоне

Первый акселерометр появился в телефоне Nokia 5500. Там он использовался для подсчета пройденных шагов. Такое решение многим понравилось и с тех пор компания Apple стала оснащать таким датчиком все модели своих iPhone. А начиная с iPhone, если не ошибаюсь, четвертого поколения, в дополнение к акселерометру компания стала оснащать свои смартфоны гироскопом. После этого наличие этой пары датчиков стало стандартом для большинства производителей мобильных устройств.

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

Читайте также:  Перепрошить айфон с китайского

Как откалибровать акселерометр?

В некоторых случаях может потребоваться настройка или калибровка акселерометра. Например, если телефон не реагирует на поворот корпуса или не точно считаются шаги. Для смартфонов под управлением операционной системы ANDROID для этих целей есть несколько сторонних приложений, например GPS Status & Toolbox. Для iPhone таких приложений нет, поэтому в случае сбоев придется ограничиться перезагрузкой устройства. Обычно это помогает.

Некоторые производители фитнес-браслетов и смарт-часов также позволяют откалибровать акселерометр. Точнее, не откалибровать, а «обучить» с помощью «Меток поведения», то есть помогая датчику более точно понимать, какое именно действие владелец гаджета выполняет в тот или иной момент. Такая возможность есть у владельцев популярной линейки Xiaomi Mi Band и ряда других моделей.

Сергей Васильев

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

Источник

Принципы разработки ПО для iPhone с использованием акселерометра

В статье рассмотрено принципы работы iPhone акселерометра, показаны примеры приложений, использующие акселерометр в качестве главного компонента, наведены рекомендации по использованию акселерометра. Также показано, как использовать акселерометр в веб-приложениях. Часть материалов была взята из статьи «Скроллинг при помощи акселерометра».

Что такое акселерометр?

Акселерометр (от лат. accelero — ускоряю и μετρέω — измеряю) — прибор, измеряющий проекцию кажущегося ускорения. Кажущееся ускорение есть равнодействующая сил не гравитационной природы, действующая на массу и отнесённая к величине этой массы. Акселерометр может применяться как для измерения проекций абсолютного линейного ускорения, так и для косвенных измерений проекции гравитационного ускорения. Последнее свойство используется для создания инклинометров. Акселерометры входят в состав инерциальных навигационных систем, где полученные с их помощью измерения интегрируют, получая инерциальную скорость и координаты носителя. Электронные акселерометры часто встраиваются в мобильные устройства (в частности, в телефоны) и применяются в качестве шагомеров, датчиков для определения положения в пространстве, автоматического поворота дисплея и других целей. В игровых приставках акселерометры используются для управления без использования кнопок — путем поворотов в пространстве, встряхиваний и т. д.

Apple — не первая компания, которая внедрила акселерометр в мобильный телефон, но первая, у которой это получилось хорошо.

Как можно использовать акселерометр?

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

Несколько базовых примеров:

C помощью iBeer можно попить виртуальное пиво:

iBoobs — программа, которая не прошла отдел цензуры в Apple.

Обзор других программ можно посмотреть по ссылкам внизу.

Немного теории

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

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

Заметьте, это именно ускорение, а не скорость движения устройства. То есть, если ваш iPhone начнет падать на землю, то проекции величины ускорения примут значение 0 по всем осям — ваш iPhone будет в невесомости 🙂 А если вы поднимаетесь с должным ускорением на лифте вверх, то значение силы тяжести на время ускорения увеличится.

Интерфейс акселерометра

Несколько фактов:
  • является частью UIKit фреймворка
  • предоставляет информацию по трем осям
  • можно настроить частоту обновления данных (приблизительно 10-100 Гц)

Классы:
  • UIAccelerometer
  • UIAcceleration

Протокол:

Координатные оси

Сразу хочу заметить, что координаты X, Y, Z не показывают координаты (положение) устройства в пространстве, как это можно было бы предположить. На самом деле они означают следующее:

  • координата X (Roll) показывает информацию о повороте устройства влево или вправо;
  • координата Y (Pitch) дает нам следующую информацию: iPhone находится в вертикальном
    положении (-1), лежит в горизонтальной плоскости (0) или находится в
    вертикальном положении, только вверх ногами (+1);
  • координата Z (Face up/face down) показывает, в каком положении находится устройство: лицом вверх (-1,
    при нулевых значениях по другим осям), в вертикальном положении (0) или
    лицом вниз (+1).


Координатные оси iPhone акселерометра

Для случая произвольной ориентации iPhone данные о величине ускорения распределяются по осям согласно проекции вектора ускорения.

Читайте также:  Айфон функция по всей россии


Расчет вектора при произвольном положении iPhone

Подключаем акселерометр в проект

Всю необходимую информацию аккумулирует объект класса UIAcceleration, возвращающий данные по всем осям, а также временной маркер, позволяющий определить относительное время замера указанных
величин. Напрямую подступиться к данным этого класса нельзя, эту информацию можно получить только через делегат UIAccelerometerDelegate, предоставляющего для реализации один единственный метод
accelerometer:didAccelerate:, в который возвращается объект класса UIAcceleration. Назначение делегата и инициализация вызовов метода accelerometer:didAccelerate: происходит при помощи класса UIAccelerometer.

Для того, чтобы подключить акселерометр, необходимо в методе applicationDidFinishLaunching написать следующий код:

Метод setUpdateInterval устанавливать частоту обновления данных, kUpdateFrequency — коэффициент, который показывает, как часто нужно получать данные.

Например, в случае #define kUpdateFrequency 60.0 получим 60 «опросов» в секунду.

Кроме того, в заголовочном файле класса вашего делегата нужно указать протокол UIAccelerometerDelegate:

Логику обработки данных акселерометра нужно добавить в метод didAccelerate в классе делегата:

Замечания:

  • можно объявлять лишь один делегат для приложения
  • данные приходят асинхронно к основному потоку

Настройка акселерометра:

  • Диапазон частоты — 10 -100 Гц.
  • Рекомендуемая частота для игр: 30-60 Гц, для определения ориентации — 10-30 Гц.

Для остановки получения значений необходимо вызвать следующий код:

Угол наклона

Геометрически можно показать работу акселерометра следующим образом:

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

float angle = atan2(y, -x);

Положения акселерометра можно посмотреть на рисунке:


С помощью информации об угле поворота можно менять ориентацию экрана:

Скачать пример приложения можно здесь.

Пример 1. Прокрутка с помощью акселерометра

Возьмем за точку отсчета положение нашего устройства в пространстве, при котором угол между задней стенкой и землей составляет 45 градусов. В этом случае проекции силы тяжести на ось Y будет составлять -0.7. Если мы отклоняем аппарат чуть ближе к вертикальному положению, то примем, что при достижении угла в 30 градусов от вертикали мы должны перелистнуть список к концу. И наоборот, при достижении угла в 30 и менее градусов от горизонтального положения, мы должны перелистнуть список к началу.
В первом случае абсолютная величина проекции силы тяжести на ось Y, направленная вдоль аппарата, станет равна 0.86. Те, кто не понял откуда взялось это значение, вспоминаем геометрию и вычисление проекции на ось координат вектора единичной длины. Во втором случае это же значение равно 0.5. Для реализации прокрутки мы воспользуемся методом scrollToRowAtIndexPath:atScrollPosition:animated: класса UITableView.

Фильтры

В основном, используются два фильтра — высокочастотный (high-pass) и низкочастотный (low-pass). Эти фильтры можно использовать для отсеивания эффектов «дрожания»,
медленных поворотов и т.д.

Низкочастотный фильтр используется для нахождения ориентации устройства, высокочастотный — для определения тряски.

Самый простой низкочастотный фильтр реализует следующий код:

Самый простой высокочастотный фильтр реализует следующий код:

Пример 2. AccelerometrGraph

Отличная программа для исследования работы акселерометра — показывает изменение значений по трем координатам. Можно скачать с официального сайта Apple.

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

Пример 3. iBells


iBells (ссылка на appstore) — это развлекательная программа, которая реагирует на дейсвия пользователя и проигрывает звуки колокольчиков.

Являясь разработчиков этой программы, нам нужно было решить такие задачи:

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

Корректное реагирование на тряску можно добиться используя высокочастотный фильтр:

kFilteringFactor — коэффициент «заглушения» реакции на случайные колебания. Этот параметр нужно подбирать индивидуально в зависимости от требований.

Интервал измеряется просто:

Переменная lastPlayedTime фиксирует время последнего проигрывания, minTimeDelta — минимальный промежуток, по истечению которого можно проигрывать музыкальный файл.

Недавно я нашел еще один способ определить тряску:

Использование акселерометра в веб-приложениях

В Safari был добавлен новый метод onorientationchange, который срабатывает при изменении положения на 90%. Ниже приведен javascript код, с помощью которого можно менять положение (orientation) веб-страницы.

Примеры веб-страницы можно посмотреть здесь и здесь.

Акселерометр и симулятор

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

По ссылке можно посмотреть (а здесь скачать), как все таки можно передавать данные в симулятор. Но, так как там все равно используется реальное устройство, практической
пользы в этом нет. Just for fun.

Ссылки и дополнительные материалы

P. S. Автор статьи Александр Краковецкий (sashaeve), пожалуйста дайте ему инвайт спасибо Speakus за инвайт.

Источник

Оцените статью