BMI160 Gyroscope¶
As previously mentioned, the BMI160 is a 6-axis IMU that has both an accelerometer and gyroscope. The gyro sensor on this device is represented by the GyroBmi160 interface and uses the Coriolis effect to measure angular velocity .
import com.mbientlab.metawear.module.GyroBmi160;
final GyroBmi160 gyroBmi160 = board.getModule(GyroBmi160.class);
Angular Velocity Data¶
To retrieve angular velocity data, add a data route to the async data producer returned by the angularVelocity function. Data values from that async producer are represented by the AngularVelocity class.
gyroBmi160.angularVelocity().addRouteAsync(new RouteBuilder() {
@Override
public void configure(RouteComponent source) {
source.stream(new Subscriber() {
@Override
public void apply(Data data, Object ... env) {
Log.i("MainActivity", data.value(AngularVelocity.class).toString());
}
});
}
}).continueWith(new Continuation<Route, Void>() {
@Override
public Void then(Task<Route> task) throws Exception {
gyroBmi160.angularVelocity();
gyroBmi160.start();
return null;
}
});