Extended and refactored library for BNO055, an intelligent 9-axis absolute orientation sensor by Bosch Sensortec. It includes ACC, MAG and GYRO sensors and Cortex-M0 processor.
Fork of BNO055_fusion by
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_VECTOR_TypeDef *la) |
Get Linear accel data. | |
void | get_mag (BNO055_VECTOR_TypeDef *qua) |
Get Mag data. | |
void | get_accel (BNO055_VECTOR_TypeDef *la) |
Get Accel data. | |
void | get_gyro (BNO055_VECTOR_TypeDef *gr) |
Get Gyro data. | |
void | get_gravity (BNO055_VECTOR_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. | |
bool | use_degrees () |
Determine if degrees (instead of radians) are used. | |
bool | use_mss () |
Determine if m/s*s (instead of mg) is used. | |
bool | use_dps () |
Determine if dps (instead of rps) are used. | |
bool | use_celsius () |
Determine if celsius (instead of fahrenheit) is used. |
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() { 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"); } imu.read_id_inf(&bno055_id_inf); pc.printf("CHIP:0x%02x, ACC:0x%02x, MAG:0x%02x, GYR:0x%02x, , SW:0x%04x, , BL:0x%02x\r\n", bno055_id_inf.chip_id, bno055_id_inf.acc_id, bno055_id_inf.mag_id, bno055_id_inf.gyr_id, bno055_id_inf.sw_rev_id, bno055_id_inf.bootldr_rev_id); 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); } }
Definition at line 128 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:
-
data SDA and SCL pins device address
Definition at line 25 of file BNO055.cpp.
BNO055 | ( | PinName | p_sda, |
PinName | p_scl, | ||
PinName | p_reset | ||
) |
Configure data pin.
- Parameters:
-
data SDA and SCL pins Other parameters are set default data
Definition at line 34 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:
-
I2C previous definition device address
Definition at line 43 of file BNO055.cpp.
BNO055 | ( | I2C & | p_i2c, |
PinName | p_reset | ||
) |
Configure data pin (with other devices on I2C line)
- Parameters:
-
I2C previous definition Other parameters are set default data
Definition at line 52 of file BNO055.cpp.
Member Function Documentation
void change_fusion_mode | ( | uint8_t | mode ) |
uint8_t chip_ready | ( | void | ) |
Check chip is avairable or not.
- Parameters:
-
none
- Returns:
- OK = 1, NG = 0;
Definition at line 414 of file BNO055.cpp.
void frequency | ( | int | hz ) |
void get_accel | ( | BNO055_VECTOR_TypeDef * | la ) |
Get Accel data.
- Parameters:
-
double type of 3D data address
Definition at line 167 of file BNO055.cpp.
void get_chip_temperature | ( | BNO055_TEMPERATURE_TypeDef * | tmp ) |
Get Chip temperature data both Acc & Gyro.
- Parameters:
-
int8_t type of data address
Definition at line 212 of file BNO055.cpp.
void get_euler_angles | ( | BNO055_EULER_TypeDef * | el ) |
Get Euler Angles.
- Parameters:
-
double type of 3D data address
Definition at line 62 of file BNO055.cpp.
void get_gravity | ( | BNO055_VECTOR_TypeDef * | gr ) |
Get Gravity data.
- Parameters:
-
double type of 3D data address
Definition at line 127 of file BNO055.cpp.
void get_gyro | ( | BNO055_VECTOR_TypeDef * | gr ) |
void get_linear_accel | ( | BNO055_VECTOR_TypeDef * | la ) |
Get Linear accel data.
- Parameters:
-
double type of 3D data address
Definition at line 104 of file BNO055.cpp.
void get_mag | ( | BNO055_VECTOR_TypeDef * | qua ) |
void get_quaternion | ( | BNO055_QUATERNION_TypeDef * | qua ) |
Get Quaternion XYZ&W.
- Parameters:
-
int16_t type 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 423 of file BNO055.cpp.
void read_id_inf | ( | BNO055_ID_INF_TypeDef * | id ) |
Read BNO055 ID information.
- Parameters:
-
ID information address
- Returns:
- none
Definition at line 403 of file BNO055.cpp.
uint8_t read_reg0 | ( | uint8_t | addr ) |
Read page 0 register.
- Parameters:
-
register's address
- Returns:
- register data
Definition at line 534 of file BNO055.cpp.
uint8_t read_reg1 | ( | uint8_t | addr ) |
Read page 1 register.
- Parameters:
-
register's address
- Returns:
- register data
Definition at line 558 of file BNO055.cpp.
uint8_t reset | ( | void | ) |
Reset.
- Parameters:
-
none
- Returns:
- 0 = sucess, 1 = Not available chip
Definition at line 343 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:
-
Set P0 to P7 mounting position data
- Returns:
- none
Definition at line 477 of file BNO055.cpp.
bool use_celsius | ( | ) |
Determine if celsius (instead of fahrenheit) is used.
- Returns:
- true if celsius are used
Definition at line 305 of file BNO055.cpp.
bool use_degrees | ( | ) |
Determine if degrees (instead of radians) are used.
- Returns:
- true if degrees are used
Definition at line 281 of file BNO055.cpp.
bool use_dps | ( | ) |
Determine if dps (instead of rps) are used.
- Returns:
- true if dps are used
Definition at line 297 of file BNO055.cpp.
bool use_mss | ( | ) |
Determine if m/s*s (instead of mg) is used.
- Returns:
- true if m/s*s are used
Definition at line 289 of file BNO055.cpp.
uint8_t write_reg0 | ( | uint8_t | addr, |
uint8_t | data | ||
) |
Write page 0 register.
- Parameters:
-
register's address data
- Returns:
- register data
Definition at line 543 of file BNO055.cpp.
uint8_t write_reg1 | ( | uint8_t | addr, |
uint8_t | data | ||
) |
Write page 1 register.
- Parameters:
-
register's address data
- Returns:
- register data
Definition at line 567 of file BNO055.cpp.
Generated on Wed Jul 13 2022 16:07:25 by 1.7.2