Voici mon code CM:Swift: dispositif de CoreMotion ne se déplace pas, mais l'enregistrement des accélérations
func checkMotion(_ myMotionManager:CMMotionManager) -> Bool {
//check to see if core motion is available
var isCoreMotionAvailable = myMotionManager.isAccelerometerAvailable
isCoreMotionAvailable = myMotionManager.isGyroAvailable
isCoreMotionAvailable = myMotionManager.isMagnetometerAvailable
isCoreMotionAvailable = myMotionManager.isDeviceMotionAvailable
if isCoreMotionAvailable {
myMotionManager.deviceMotionUpdateInterval = 0.25
myMotionManager.startDeviceMotionUpdates(to: OperationQueue.current!, withHandler: checkMotionUpdate)
}
return false
}
et de vérifier les données:
func checkMotionUpdate(data: CMDeviceMotion?, error:Error?) {
if error != nil {
print(error!.localizedDescription)
} else {
if let motionData = data {
//check to see if we have a base point and if not store one
if !bHasBasePoint {
basePoint = motionData
bHasBasePoint = true
print("Basepoint:\(basePoint!)")
}
print("Acceleration X: \(motionData.userAcceleration.x)")
print("Acceleration Y: \(motionData.userAcceleration.y)")
print("Acceleration Z: \(motionData.userAcceleration.z)")
print()
}
}
}
et des résultats:
Basepoint:
Basepoint:QuaternionX 0.011783 QuaternionY -0.461725 QuaternionZ 0.000044 QuaternionW 0.886945 UserAccelX 0.006458 UserAccelY 0.000324 UserAccelZ 0.002740 RotationRateX 0.000997 RotationRateY -0.001316 RotationRateZ -0.001370 MagneticFieldX 0.000000 MagneticFieldY 0.000000 MagneticFieldZ 0.000000 MagneticFieldAccuracy -1 Heading -1.000000 @ 73807.821537
Certains accelera vérifie tion:
Acceleration X: 0.00645828247070312
Acceleration Y: 0.0003238245844841
Acceleration Z: 0.00274038314819336
Acceleration X: 0.00522691011428833
Acceleration Y: 0.000595645979046822
Acceleration Z: 0.00370562076568604
Acceleration X: 0.00506830215454102
Acceleration Y: 0.000180358067154884
Acceleration Z: 0.0017169713973999
Acceleration X: 0.00555837154388428
Acceleration Y: -0.00128581002354622
Acceleration Z: 0.00320953130722046
Acceleration X: 0.00509798526763916
Acceleration Y: -4.2034313082695e-05
Acceleration Z: 0.00197714567184448
donc je suis très nouveau au codage CM (jour 2) et je suis un peu confus pourquoi je vois des changements d'accélération pour x, y et z lorsque l'iPhone est assis paysage dans un droit de berceau à présent? Ce comportement est-il attendu et existe-t-il une plage d'accélération que je devrais ignorer comme un faux positif?
Merci