Accelerometer¶
The MetaWear board comes with a builtin accelerometer. It’s configured via properties on the MBLAccelerometer class.
To meet specific needs, different MetaWear models have different accelerometer sensors, so the MBLAccelerometer
class is actually a generic abstraction of all accelerometers. You can up-cast to one of our derived accelerometer objects in order to access advanced features.
Raw Data¶
One thing common to all accelerometers is the ability to access raw x, y, and z axis data
device.accelerometer?.sampleFrequency = 100
device.accelerometer?.dataReadyEvent.startNotificationsAsync(handler: { (obj, error) in
if let obj = obj {
print("X = \(obj.x), Y = \(obj.y), Z = \(obj.z)")
}
})
Raw RMS Data¶
You can also access the root mean square (RMS) of the accelerometer data
device.accelerometer?.rmsDataReadyEvent.startNotificationsAsync(handler: { (obj, error) in
if let obj = obj {
print("RMS = \(obj.rms)")
}
})
Single Axis Data¶
You can also access a single axis of accelerometer data.
device.accelerometer?.xAxisReadyEvent.startNotificationsAsync(handler: { (obj, error) in
if let obj = obj {
print("x-axis = \(obj.value)")
}
})
Cast to Derived Class¶
To use advanced accelerometer features it’s necessary to figure out exactly what accelerometer your MetaWear has.
if let accelerometerMMA8452Q = device.accelerometer as? MBLAccelerometerMMA8452Q {
} else if let accelerometerBMI160 = device.accelerometer as? MBLAccelerometerBMI160 {
}