upm
0.8.0
Sensor/Actuator repository for libmraa (v1.1.1)
|
UPM API for the BMI160 3-axis Accelerometer, Gyroscope and Magnetometer. More...
The Bosch BMI160 is a 3-axis Accelerometer and Gyroscope. Additionally it supports an external Magnetometer, accessed through the BMI160's register interface. This driver was developed with a BMI160 "Shuttle" board, which included a BMM150 Magnetometer.
The device is driven by either 1.8v or 3.3vdc. This driver incorporates the Bosch BMI160 driver code at https://github.com/BoschSensortec/BMI160_driver .
While not all of the functionality of this device is supported initially, the inclusion of the Bosch driver in the source code makes it possible to support whatever features are required that the driver can support.
Public Member Functions | |
BMI160 (int bus=BMI160_I2C_BUS, uint8_t address=BMI160_DEFAULT_I2C_ADDR) | |
~BMI160 () | |
void | update () |
void | setAccelerometerScale (ACCEL_RANGE_T scale) |
void | setGyroscopeScale (GYRO_RANGE_T scale) |
float * | getAccelerometer () |
void | getAccelerometer (float *x, float *y, float *z) |
float * | getGyroscope () |
void | getGyroscope (float *x, float *y, float *z) |
float * | getMagnetometer () |
void | getMagnetometer (float *x, float *y, float *z) |
void | enableMagnetometer (bool enable) |
unsigned int | getSensorTime () |
Protected Member Functions | |
virtual bool | init () |
BMI160 | ( | int | bus = BMI160_I2C_BUS , |
uint8_t | address = BMI160_DEFAULT_I2C_ADDR |
||
) |
bmi160 constructor
bus | i2c bus to use |
address | the address for this device |
void update | ( | void | ) |
Take a measurement and store the current sensor values internally. This function must be called prior to retrieving any sensor values, for example getAccelerometer().
void setAccelerometerScale | ( | ACCEL_RANGE_T | scale | ) |
set the scaling mode of the accelerometer
scale | one of the ACCEL_RANGE_T values |
void setGyroscopeScale | ( | GYRO_RANGE_T | scale | ) |
set the scaling mode of the gyroscope
scale | one of the GYRO_RANGE_T values |
float * getAccelerometer | ( | ) |
Get the Accelerometer values. This function returns a pointer to 3 floating point values: X, Y, and Z, in that order. The values returned are in gravities. update() must have been called prior to calling this method.
The caller is reponsible for freeing the returned pointer.
void getAccelerometer | ( | float * | x, |
float * | y, | ||
float * | z | ||
) |
Get the Accelerometer values. The values returned are in gravities. update() must have been called prior to calling this method.
x | A pointer into which the X value will be returned |
y | A pointer into which the Y value will be returned |
z | A pointer into which the Z value will be returned |
float * getGyroscope | ( | ) |
Get the Gyroscope values. This function returns a pointer to 3 floating point values: X, Y, and Z, in that order. The values values returned are in degrees per second. update() must have been called prior to calling this method.
The caller is reponsible for freeing the returned pointer.
void getGyroscope | ( | float * | x, |
float * | y, | ||
float * | z | ||
) |
Get the Gyroscope values. The values returned are in degrees per second. update() must have been called prior to calling this method.
x | A pointer into which the X value will be returned |
y | A pointer into which the Y value will be returned |
z | A pointer into which the Z value will be returned |
float * getMagnetometer | ( | ) |
Get the Magnetometer values. This function returns a pointer to 3 floating point values: X, Y, and Z, in that order. The values values returned are in micro Teslas. update() must have been called prior to calling this method. If the Magnetometer has been disabled, the return values will always be 0, 0, and 0.
The caller is reponsible for freeing the returned pointer.
void getMagnetometer | ( | float * | x, |
float * | y, | ||
float * | z | ||
) |
Get the Magnetometer values. The values returned are in micro Teslas. update() must have been called prior to calling this method.
x | A pointer into which the X value will be returned |
y | A pointer into which the Y value will be returned |
z | A pointer into which the Z value will be returned |
void enableMagnetometer | ( | bool | enable | ) |
Enable or disable the Magnetometer. By default, the magnetometer is enabled.
enable | true to enable the magnetometer, false to disable. |
unsigned int getSensorTime | ( | ) |
Return the sensor time. This is a 24bit value that increments every 39us. It will wrap around once the 24b resolution is exceeded.
|
protectedvirtual |
set up initial values and start operation