Как работает автоповорот на iPhone (с точки зрения железа, а не софта)

Мне всегда было интересно, как аппаратное обеспечение ориентации/автоповорота работает внутри iPhone/iPad/iPod Touch.

Первоначально я думал, что это акселерометр, но я не думаю, что это так, поскольку акселерометр может измерять только движение, а iPhone знает свою текущую ориентацию без какого-либо движения.

До сих пор я предполагал, что внутри телефона есть небольшой переключатель наклона, а также акселерометр, и что он используется, но на самом деле я понятия не имею, и Google не очень помогает! ;)

Кто-нибудь знает, как это работает?

Ответы (4)

В старых устройствах iOS это акселерометр — он определяет постоянное ускорение под действием силы тяжести.

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

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

Вам придется разогнаться более чем на 1G, что практически невозможно для большинства автомобилей.
Справедливо; тогда лучше возьми машину F1 :)

Называется гироскоп . Взгляните на эту статью на iFixit , она довольно хорошо объясняет это (в iPhone 4).

+1: Я искал это, и ты опередил меня. Я всегда находил эту статью увлекательной.
Это увлекательная статья, но автоповорот работает иначе, поскольку гироскоп был новым в iPhone 4, а автоповорот поддерживается с первого поколения iPhone.
Ой, извини, ты прав, Дэйв.

Насколько мне известно, в iPhone (и iPod Touch) не было гироскопа до последней модели. Ребята, вы уверены, что это сделал не акселерометр, а теперь это гироскоп в самых последних моделях?

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

Не могли бы вы объяснить, что дает этот ответ, что другие ответы здесь не охватывают или расширяют ваш ответ, чтобы предоставить больше информации, чем другие?