Рассчитать ускорение (вождение автомобиля) - PullRequest
2 голосов
/ 16 ноября 2011

Я пытаюсь повторить расчет ускорения, как приложение "Dynolicious", но я не уверен, куда идти, чтобы рассчитать это.Я использую Core Motion или я делаю вычисления, используя другие числа?

Я пытался использовать значение Core Motion *1004*, но оно совсем не похоже на то, что я ищу.

coreMotion = [[CMMotionManager alloc]init];
[coreMotion startDeviceMotionUpdates];

//then every second it updates my label...

NSString *accel = [NSString stringWithFormat:@"%f", [[coreMotion accelerometerData]acceleration].x];
accelerationLabel.text = accel;

т.е. я хочу свои значениявыйти как 0,4, -0,4 и т. д.

Ответы [ 2 ]

3 голосов
/ 17 ноября 2011

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

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

Вы также можете посмотреть раздел «Изоляция мгновенного движения от данных ускорения»

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

Далее дается простая реализация для достижения этой цели.

0 голосов
/ 16 ноября 2011

Apple получила хорошую документацию по сбору информации об ускорении на http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/MotionEvents/MotionEvents.html

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

...