TR-mbed 1.0
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
BNO055 Class Reference

#include <BNO055.h>

Public Member Functions

 BNO055 (PinName p_sda, PinName p_scl, PinName p_reset, uint8_t addr, uint8_t mode)
 
 BNO055 (PinName p_sda, PinName p_scl, PinName p_reset)
 
 BNO055 (I2C &p_i2c, PinName p_reset, uint8_t addr, uint8_t mode)
 
 BNO055 (I2C &p_i2c, PinName p_reset, uint8_t mode)
 
void get_euler_angles (BNO055_EULER_TypeDef *el)
 
void get_quaternion (BNO055_QUATERNION_TypeDef *qua)
 
void get_angular_position_quat (BNO055_ANGULAR_POSITION_typedef *an_pos)
 
void get_linear_accel (BNO055_VECTOR_TypeDef *la)
 
void get_mag (BNO055_VECTOR_TypeDef *qua)
 
void get_accel (BNO055_VECTOR_TypeDef *la)
 
void get_gyro (BNO055_VECTOR_TypeDef *gr)
 
void get_gravity (BNO055_VECTOR_TypeDef *gr)
 
void get_chip_temperature (BNO055_TEMPERATURE_TypeDef *tmp)
 
void change_fusion_mode (uint8_t mode)
 
void set_mounting_position (uint8_t position)
 
void read_id_inf (BNO055_ID_INF_TypeDef *id)
 
uint8_t chip_ready (void)
 
void calibrate (void)
 
uint8_t read_calib_status (void)
 
uint8_t reset (void)
 
void frequency (int hz)
 
uint8_t read_reg0 (uint8_t addr)
 
uint8_t write_reg0 (uint8_t addr, uint8_t data)
 
uint8_t read_reg1 (uint8_t addr)
 
uint8_t write_reg1 (uint8_t addr, uint8_t data)
 
bool use_degrees ()
 
bool use_mss ()
 
bool use_dps ()
 
bool use_celsius ()
 

Public Attributes

int cantReadDataCount
 
double multiturnYaw
 

Protected Member Functions

void initialize (void)
 
void initialize_reset_pin (void)
 
void get_id (void)
 
void set_initial_dt_to_regs (void)
 
void unit_selection (void)
 
uint8_t get_operating_mode (void)
 
uint8_t select_page (uint8_t page)
 

Protected Attributes

I2C * _i2c_p
 
I2C & _i2c
 
DigitalOut _res
 

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_EULER_TypeDef euler_angles;
int main() {
pc.printf("Bosch Sensortec BNO055 test program on " __DATE__ "/" __TIME__ "\r\n");
if (imu.chip_ready() == 0){
pc.printf("Bosch BNO055 is NOT avirable!!\r\n");
}
pc.printf("CHIP:0x%02x, ACC:0x%02x, MAG:0x%02x, GYR:0x%02x, , SW:0x%04x, , BL:0x%02x\r\n",
while(1) {
imu.get_Euler_Angles(&euler_angles);
pc.printf("Heading:%+6.1f [deg], Roll:%+6.1f [deg], Pich:%+6.1f [deg]\r\n",
euler_angles.h, euler_angles.r, euler_angles.p);
wait(0.5);
}
}
int main()
Definition bench_move_semantics.cpp:51
Definition BNO055.h:141
uint8_t chip_ready(void)
Definition BNO055.cpp:451
void read_id_inf(BNO055_ID_INF_TypeDef *id)
Definition BNO055.cpp:440
BNO055 imu(i2c, PA_8, MODE_NDOF)
BNO055_ID_INF_TypeDef bno055_id_inf
Definition imuExampleAllData.cpp:20
I2C i2c(PB_9, PB_8)
int RealScalar int RealScalar int RealScalar * pc
Definition level1_cplx_impl.h:119
Definition BNO055.h:75
double h
Definition BNO055.h:76
double r
Definition BNO055.h:77
double p
Definition BNO055.h:78
Definition BNO055.h:66
uint8_t acc_id
Definition BNO055.h:68
uint8_t bootldr_rev_id
Definition BNO055.h:71
uint8_t chip_id
Definition BNO055.h:67
uint8_t mag_id
Definition BNO055.h:69
uint16_t sw_rev_id
Definition BNO055.h:72
uint8_t gyr_id
Definition BNO055.h:70

Constructor & Destructor Documentation

◆ BNO055() [1/4]

BNO055::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

◆ BNO055() [2/4]

BNO055::BNO055 ( PinName  p_sda,
PinName  p_scl,
PinName  p_reset 
)

Configure data pin

Parameters
dataSDA and SCL pins
Otherparameters are set default data

◆ BNO055() [3/4]

BNO055::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

◆ BNO055() [4/4]

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

Configure data pin (with other devices on I2C line)

Parameters
I2Cprevious definition
Otherparameters are set default data

Member Function Documentation

◆ calibrate()

void BNO055::calibrate ( void  )

Calibrate IMU

Parameters
none
Returns
none

◆ change_fusion_mode()

void BNO055::change_fusion_mode ( uint8_t  mode)

Change fusion mode

Parameters
fusionmode
Returns
none

◆ chip_ready()

uint8_t BNO055::chip_ready ( void  )

Check chip is avairable or not

Parameters
none
Returns
OK = 1, NG = 0;

◆ frequency()

void BNO055::frequency ( int  hz)

Set I2C clock frequency

Parameters
freq.
Returns
none

◆ get_accel()

void BNO055::get_accel ( BNO055_VECTOR_TypeDef la)

Get Accel data

Parameters
doubletype of 3D data address

◆ get_angular_position_quat()

void BNO055::get_angular_position_quat ( BNO055_ANGULAR_POSITION_typedef an_pos)

Get Angular position from quaternion

Parameters
doubletype of 3D data address

◆ get_chip_temperature()

void BNO055::get_chip_temperature ( BNO055_TEMPERATURE_TypeDef tmp)

Get Chip temperature data both Acc & Gyro

Parameters
int8_ttype of data address

◆ get_euler_angles()

void BNO055::get_euler_angles ( BNO055_EULER_TypeDef el)

Get Euler Angles

Parameters
doubletype of 3D data address

◆ get_gravity()

void BNO055::get_gravity ( BNO055_VECTOR_TypeDef gr)

Get Gravity data

Parameters
doubletype of 3D data address

◆ get_gyro()

void BNO055::get_gyro ( BNO055_VECTOR_TypeDef gr)

Get Gyro data

Parameters
doubletype of 3D data address

◆ get_id()

void BNO055::get_id ( void  )
protected

◆ get_linear_accel()

void BNO055::get_linear_accel ( BNO055_VECTOR_TypeDef la)

Get Linear accel data

Parameters
doubletype of 3D data address

◆ get_mag()

void BNO055::get_mag ( BNO055_VECTOR_TypeDef qua)

Get Mag data

Parameters
doubletype of 3D data address

◆ get_operating_mode()

uint8_t BNO055::get_operating_mode ( void  )
protected

◆ get_quaternion()

void BNO055::get_quaternion ( BNO055_QUATERNION_TypeDef qua)

Get Quaternion XYZ&W

Parameters
int16_ttype of 4D data address

◆ initialize()

void BNO055::initialize ( void  )
protected

◆ initialize_reset_pin()

void BNO055::initialize_reset_pin ( void  )
protected

◆ read_calib_status()

uint8_t BNO055::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

◆ read_id_inf()

void BNO055::read_id_inf ( BNO055_ID_INF_TypeDef id)

Read BNO055 ID information

Parameters
IDinformation address
Returns
none

◆ read_reg0()

uint8_t BNO055::read_reg0 ( uint8_t  addr)

Read page 0 register

Parameters
register'saddress
Returns
register data

◆ read_reg1()

uint8_t BNO055::read_reg1 ( uint8_t  addr)

Read page 1 register

Parameters
register'saddress
Returns
register data

◆ reset()

uint8_t BNO055::reset ( void  )

Reset

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

◆ select_page()

uint8_t BNO055::select_page ( uint8_t  page)
protected

◆ set_initial_dt_to_regs()

void BNO055::set_initial_dt_to_regs ( void  )
protected

◆ set_mounting_position()

void BNO055::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

◆ unit_selection()

void BNO055::unit_selection ( void  )
protected

◆ use_celsius()

bool BNO055::use_celsius ( )

Determine if celsius (instead of fahrenheit) is used.

Returns
true if celsius are used

◆ use_degrees()

bool BNO055::use_degrees ( )

Determine if degrees (instead of radians) are used.

Returns
true if degrees are used

◆ use_dps()

bool BNO055::use_dps ( )

Determine if dps (instead of rps) are used.

Returns
true if dps are used

◆ use_mss()

bool BNO055::use_mss ( )

Determine if m/s*s (instead of mg) is used.

Returns
true if m/s*s are used

◆ write_reg0()

uint8_t BNO055::write_reg0 ( uint8_t  addr,
uint8_t  data 
)

Write page 0 register

Parameters
register'saddress
data
Returns
register data

◆ write_reg1()

uint8_t BNO055::write_reg1 ( uint8_t  addr,
uint8_t  data 
)

Write page 1 register

Parameters
register'saddress
data
Returns
register data

Member Data Documentation

◆ _i2c

I2C& BNO055::_i2c
protected

◆ _i2c_p

I2C* BNO055::_i2c_p
protected

◆ _res

DigitalOut BNO055::_res
protected

◆ cantReadDataCount

int BNO055::cantReadDataCount

◆ multiturnYaw

double BNO055::multiturnYaw

The documentation for this class was generated from the following files: