2010-11-12 3 views
2

J'essaie d'attraper l'accélération de l'appareil en utilisant CoreMotion. J'ai ce code:iphone - Accélération Coremotion toujours zéro!

pour la mise en

if (motionManager == nil) 
     motionManager = [[CMMotionManager alloc] init]; 

motionManager.deviceMotionUpdateInterval = framesPorKeyframes/60.0; //60 Hz 
motionManager.accelerometerUpdateInterval = framesPorKeyframes/60.0; //60 Hz 

[motionManager startDeviceMotionUpdates]; 
referenceAttitude = nil; 

pour la lecture

vec3f_t translation = {0.0f, 0.0f, 0.0f}; 
CMRotationMatrix rotation; 
CMAcceleration userAcceleration; 


CMDeviceMotion *deviceMotion = motionManager.deviceMotion;  
attitude = deviceMotion.attitude; 

rotation = attitude.rotationMatrix; 

userAcceleration = deviceMotion.userAcceleration; 
[userAccelerationLpf addAcceleration:userAcceleration withTimestamp:deviceMotion.timestamp]; 

// The user acceleration we want to use is the one computed by userAccelerationLpf 
userAcceleration.x = userAccelerationLpf.x; 
userAcceleration.y = userAccelerationLpf.y; 
userAcceleration.z = userAccelerationLpf.z; 

NSLog(@"acc = %f, %f, %f", userAcceleration.x, userAcceleration.y, userAcceleration.z); 

Tout ce que j'ai ici sont des zéros !!!!!!!!

La méthode de lecture se répète à 30 Hz.

ceci est pris de l'échantillon d'Apple et ne devrait pas me donner des zéros! des indices?

merci.

+0

Juste pour vérifier, utilisez-vous ceci sur l'appareil et non sur le simulateur? –

+0

Je cours sur l'appareil. – SpaceDog

+0

J'ai des données de rotation mais pas d'accélération ... – SpaceDog

Répondre

3

Que voyez-vous si vous supprimez le filtre passe-bas et consignez simplement l'accélération brute? (Je parie que je connais la réponse :)

Questions connexes