BNO055 Intelligent 9-axis absolute orientation sensor by Bosch Sensortec. It includes ACC, MAG and GYRO sensors and Cortex-M0+ processor.

Dependents:   BNO055_test BNO055-ELEC3810 1BNO055 DEMO3 ... more

Embed: (wiki syntax)

« Back to documentation index

BNO055 Class Reference

BNO055 Class Reference

Interface for Bosch Sensortec Intelligent 9-axis absolute orientation sensor Chip: BNO055. More...

#include <BNO055.h>

Public Member Functions

 BNO055 (PinName p_sda, PinName p_scl, PinName p_reset, uint8_t addr, uint8_t mode)
 Configure data pin.
 BNO055 (PinName p_sda, PinName p_scl, PinName p_reset)
 Configure data pin.
 BNO055 (I2C &p_i2c, PinName p_reset, uint8_t addr, uint8_t mode)
 Configure data pin (with other devices on I2C line)
 BNO055 (I2C &p_i2c, PinName p_reset)
 Configure data pin (with other devices on I2C line)
void get_Euler_Angles (BNO055_EULER_TypeDef *el)
 Get Euler Angles.
void get_quaternion (BNO055_QUATERNION_TypeDef *qua)
 Get Quaternion XYZ&W.
void get_linear_accel (BNO055_LIN_ACC_TypeDef *la)
 Get Linear accel data.
void get_gravity (BNO055_GRAVITY_TypeDef *gr)
 Get Gravity data.
void get_chip_temperature (BNO055_TEMPERATURE_TypeDef *tmp)
 Get Chip temperature data both Acc & Gyro.
void change_fusion_mode (uint8_t mode)
 Change fusion mode.
void set_mounting_position (uint8_t position)
 Set Mouting position Please make sure your mounting direction of BNO055 chip refrence: BNO055 data sheet BST-BNO055-DS000-12 3.4 Axis remap.
void read_id_inf (BNO055_ID_INF_TypeDef *id)
 Read BNO055 ID information.
uint8_t chip_ready (void)
 Check chip is avairable or not.
uint8_t read_calib_status (void)
 Read calibration status.
uint8_t reset (void)
 Reset.
void frequency (int hz)
 Set I2C clock frequency.
uint8_t read_reg0 (uint8_t addr)
 Read page 0 register.
uint8_t write_reg0 (uint8_t addr, uint8_t data)
 Write page 0 register.
uint8_t read_reg1 (uint8_t addr)
 Read page 1 register.
uint8_t write_reg1 (uint8_t addr, uint8_t data)
 Write page 1 register.

Detailed Description

Interface for Bosch Sensortec Intelligent 9-axis absolute orientation sensor Chip: BNO055.

 #include    "mbed.h"
 #include    "BNO055.h"

 Serial pc(USBTX,USBRX);
 I2C    i2c(PB_9, PB_8);         // SDA, SCL
 BNO055 imu(i2c, PA_8);          // Reset

 BNO055_ID_INF_TypeDef bno055_id_inf;
 BNO055_EULER_TypeDef  euler_angles;

 int main() {
     if (imu.chip_ready() == 0){
         printf("Bosch BNO055 is NOT avirable!!\r\n");
     }
     imu.read_id_inf(&bno055_id_inf);
     printf(
      "CHIP:0x%02x, ACC:0x%02x, MAG:0x%02x, GYR:0x%02x,",
      bno055_id_inf.chip_id, bno055_id_inf.acc_id,
      bno055_id_inf.mag_id, bno055_id_inf.gyr_id);
     printf(" , SW:0x%04x, , BL:0x%02x\r\n",
            bno055_id_inf.sw_rev_id, bno055_id_inf.bootldr_rev_id)
     while(1) {
         imu.get_Euler_Angles(&euler_angles);
         printf(
           "Heading:%+6.1f [deg], Roll:%+6.1f [deg], Pich:%+6.1f [deg]\r\n",
           euler_angles.h, euler_angles.r, euler_angles.p);
         ThisThread::sleep_for(500ms);
     }
 }

Definition at line 141 of file BNO055.h.


Constructor & Destructor Documentation

BNO055 ( PinName  p_sda,
PinName  p_scl,
PinName  p_reset,
uint8_t  addr,
uint8_t  mode 
)

Configure data pin.

Parameters:
dataSDA and SCL pins
deviceaddress

Definition at line 16 of file BNO055.cpp.

BNO055 ( PinName  p_sda,
PinName  p_scl,
PinName  p_reset 
)

Configure data pin.

Parameters:
dataSDA and SCL pins
Otherparameters are set default data

Definition at line 29 of file BNO055.cpp.

BNO055 ( I2C &  p_i2c,
PinName  p_reset,
uint8_t  addr,
uint8_t  mode 
)

Configure data pin (with other devices on I2C line)

Parameters:
I2Cprevious definition
deviceaddress

Definition at line 37 of file BNO055.cpp.

BNO055 ( I2C &  p_i2c,
PinName  p_reset 
)

Configure data pin (with other devices on I2C line)

Parameters:
I2Cprevious definition
Otherparameters are set default data

Definition at line 45 of file BNO055.cpp.


Member Function Documentation

void change_fusion_mode ( uint8_t  mode )

Change fusion mode.

Parameters:
fusionmode
Returns:
none

Definition at line 335 of file BNO055.cpp.

uint8_t chip_ready ( void   )

Check chip is avairable or not.

Parameters:
none
Returns:
OK = 1, NG = 0;

Definition at line 316 of file BNO055.cpp.

void frequency ( int  hz )

Set I2C clock frequency.

Parameters:
freq.
Returns:
none

Definition at line 431 of file BNO055.cpp.

void get_chip_temperature ( BNO055_TEMPERATURE_TypeDef *  tmp )

Get Chip temperature data both Acc & Gyro.

Parameters:
int8_ttype of data address

Definition at line 159 of file BNO055.cpp.

void get_Euler_Angles ( BNO055_EULER_TypeDef *  el )

Get Euler Angles.

Parameters:
doubletype of 3D data address

Definition at line 54 of file BNO055.cpp.

void get_gravity ( BNO055_GRAVITY_TypeDef *  gr )

Get Gravity data.

Parameters:
doubletype of 3D data address

Definition at line 128 of file BNO055.cpp.

void get_linear_accel ( BNO055_LIN_ACC_TypeDef *  la )

Get Linear accel data.

Parameters:
doubletype of 3D data address

Definition at line 97 of file BNO055.cpp.

void get_quaternion ( BNO055_QUATERNION_TypeDef *  qua )

Get Quaternion XYZ&W.

Parameters:
int16_ttype of 4D data address

Definition at line 85 of file BNO055.cpp.

uint8_t read_calib_status ( void   )

Read calibration status.

Parameters:
none
Returns:
SYS(7:6),GYR(5:4),ACC(3:2),MAG(1:0) 3 = Calibrated, 0= not yet

Definition at line 325 of file BNO055.cpp.

void read_id_inf ( BNO055_ID_INF_TypeDef *  id )

Read BNO055 ID information.

Parameters:
IDinformation address
Returns:
none

Definition at line 305 of file BNO055.cpp.

uint8_t read_reg0 ( uint8_t  addr )

Read page 0 register.

Parameters:
register'saddress
Returns:
register data

Definition at line 437 of file BNO055.cpp.

uint8_t read_reg1 ( uint8_t  addr )

Read page 1 register.

Parameters:
register'saddress
Returns:
register data

Definition at line 461 of file BNO055.cpp.

uint8_t reset ( void   )

Reset.

Parameters:
none
Returns:
0 = sucess, 1 = Not available chip

Definition at line 245 of file BNO055.cpp.

void set_mounting_position ( uint8_t  position )

Set Mouting position Please make sure your mounting direction of BNO055 chip refrence: BNO055 data sheet BST-BNO055-DS000-12 3.4 Axis remap.

Parameters:
SetP0 to P7 mounting position data
Returns:
none

Definition at line 380 of file BNO055.cpp.

uint8_t write_reg0 ( uint8_t  addr,
uint8_t  data 
)

Write page 0 register.

Parameters:
register'saddress
data
Returns:
register data

Definition at line 446 of file BNO055.cpp.

uint8_t write_reg1 ( uint8_t  addr,
uint8_t  data 
)

Write page 1 register.

Parameters:
register'saddress
data
Returns:
register data

Definition at line 470 of file BNO055.cpp.