BNO055 Module¶
This module contains the driver for BOSCH BNO055 9-axis Absolute Orientation Sensor. The BNO055 is a System in Package (SiP), integrating a triaxial 14-bit accelerometer, a triaxial 16-bit gyroscope with a range of ±2000 degrees per second, a triaxial geomagnetic sensor (datasheet).
-
class
BNO055
(i2cdrv, addr=0x28, clk=100000)¶ Creates an intance of a new BNO055.
Parameters: - i2cdrv – I2C Bus used ‘( I2C0, ... )’
- addr – Slave address, default 0x28
- clk – Clock speed, default 100kHz
Example:
from bosch.bno055 import bno055 ... bno = bno055.BNO055(I2C0) bno.start() bno.init() abs_orientation = bno.get_euler()
-
init
(mode=None)¶ Initialize the BNO055 setting the mode value.
Parameters: mode – Mode value selectable from Mode table (refer to page 20 of the BNO055 datasheet), default None
-
set_mode
(mode)¶ Sets the Mode value of the BNO055.
Parameters: mode – Mode value (refer to page 20 of the BNO055 datasheet)
Note
The BNO055 provides a variety of output signals, which can be chosen by selecting the appropriate operation mode. The table below lists the different modes and the available sensor signals.
Mode | Available Library Functions | ||||
---|---|---|---|---|---|
Value | Name | get_acc() | get_magn() | get_gyro() | get_euler() |
acc | ACCONLY | Yes | No | No | No |
magn | MAGONLY | No | Yes | No | No |
gyro | GYROONLY | No | No | Yes | No |
accmag | ACCMAG | Yes | Yes | No | No |
accgyro | ACCGYRO | Yes | No | Yes | No |
maggyro | MAGGYRO | No | Yes | Yes | No |
amg | AMG | No | Yes | Yes | No |
imu | IMU | Yes | No | Yes | Yes |
comp | COMPASS | Yes | Yes | No | Yes |
m4g | M4G | Yes | Yes | Yes | Yes |
ndof_off | NDOF_FMC_OFF | No | Yes | Yes | Yes |
ndof | NDOF | Yes | Yes | Yes | Yes |
-
get_calibration_status
()¶ Retrieves the current calibration status of the BNO055 main components:
- System
- Accelerometer
- Gyroscope
- Magnetometer
Note
Read: 3 indicates fully calibrated; 0 indicates not calibrated.
Returns [sys_cal_sts, acc_cal_sts, gyro_cal_sts, magn_cal_sts]
-
get_calibration
(raw=False)¶ Retrieves the calibration values of the BMO055 main components (list of 11 elements):
- Accelerometer Offset for X, Y, Z axes (values in m/s²) - list elements 0,1,2;
- Magnetometer Offset for X, Y, Z axes (values in uT) - list elements 3,4,5;
- Gyroscope Offset for X, Y, Z axes (values in Dps) - list elements 6,7,8;
- Accelerometer Radius - list element 9;
- Magnetometer Radius - list element 10.
Note
If raw parameter is set to True, returns a list of 22 raw bytes.
Returns [list of calibration values]
-
set_calibration
(data, raw=False)¶ Sets the calibration values of the BNO055 main components.
Parameters: data – List of values (11 elements) representing the sensors offsets and radius. data list must follow this order:
- Accelerometer Offset for X, Y, Z axes (values in m/s²) - list elements 0,1,2;
- Magnetometer Offset for X, Y, Z axes (values in uT) - list elements 3,4,5;
- Gyroscope Offset for X, Y, Z axes (values in Dps) - list elements 6,7,8;
- Accelerometer Radius - list element 9;
- Magnetometer Radius - list element 10.
Note
If raw parameter is set to True, following rules are required:
- data list must have 22 elements;
- each element must be a byte (value 0 to 255);
- data list must be a sequence of [lsb1, msb1, lsb2, msb2, ..., ...];
- data list order is the same described above (elem0 and elem1 of data list are respectively lsb and msb of accelerometer offset in x axis).
-
get_acc
()¶ Retrieves the current absolute acceleration as a list of X, Y, Z values in m/s²
Returns [acc_x, acc_y, acc_z]
-
get_gyro
()¶ Retrieves the current gyroscope data reading as a list of X, Y, Z values in degrees per second
Returns [gyro_x, gyro_y, gyro_z]
-
get_magn
()¶ Retrieves the current magnetometer reading as a list of X, Y, Z values in micro-Teslas.
Returns [value_magn_x, value_magn_y, value_magn_z]
-
get_euler
()¶ Retrieves the current orientation as a list of heading, roll, and pitch euler angles in degrees.
Returns [abs_or_h, abs_or_r, abs_or_p]
-
get_lin_acc
()¶ Retrieves the current linear acceleration (acceleration from movement, not from gravity) as a list of X, Y, Z values in m/s²
Returns [lin_acc_x, lin_acc_y, lin_acc_z]
-
get_grav
()¶ Retrieves the current gravity acceleration as a list of X, Y, Z values in m/s²
Returns [grav_x, grav_y, grav_z]
-
get_quaternion
()¶ Retrieves the current orientation as a list of X, Y, Z, W quaternion values.
Returns [w, x, y, z]
-
get_temp
()¶ Retrieves the current temperature in Celtius.
Returns temp