Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BNO055_fusion mbed
Fork of Bosch_BNO055_Fusion_example by
Revision 6:58bb66439a03, committed 2017-04-27
- Comitter:
- EmbeddedSam
- Date:
- Thu Apr 27 09:41:19 2017 +0000
- Parent:
- 5:9594519c9462
- Commit message:
- Example from online, working before Croatia;
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
| mbed.bld | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Thu Apr 16 11:25:47 2015 +0000
+++ b/main.cpp Thu Apr 27 09:41:19 2017 +0000
@@ -25,25 +25,11 @@
// Object ----------------------------------------------------------------------------------------
Serial pc(USBTX,USBRX);
-#if defined(TARGET_LPC1114)
-DigitalOut pwr_onoff(dp17);
-I2C i2c(dp5, dp27); // SDA, SCL
-BNO055 imu(i2c, dp18); // Reset =D7, addr = BNO055_G_CHIP_ADDR, mode = MODE_NDOF <- as default
-#elif defined(TARGET_LPC1768)
-DigitalOut pwr_onoff(p30);
-I2C i2c(p28, p27); // SDA, SCL
-BNO055 imu(i2c, p29); // Reset =D7, addr = BNO055_G_CHIP_ADDR, mode = MODE_NDOF <- as default
-#elif defined(TARGET_STM32L152RE) || defined(TARGET_STM32F401RE) || defined(TARGET_STM32F411RE)
+
DigitalOut pwr_onoff(PB_10);
-I2C i2c(PB_9, PB_8); // SDA, SCL
-BNO055 imu(i2c, PA_8); // Reset =D7, addr = BNO055_G_CHIP_ADDR, mode = MODE_NDOF <- as default
-#elif defined(TARGET_RZ_A1H)
-DigitalOut pwr_onoff(P8_11);
-I2C i2c(P1_3, P1_2); // SDA, SCL
-BNO055 imu(i2c, P8_13); // Reset =D7, addr = BNO055_G_CHIP_ADDR, mode = MODE_NDOF <- as default
-#else
-#error "Not cheched yet"
-#endif
+I2C i2c(D14, D15); // SDA, SCL
+BNO055 imu(i2c, D5); // Reset =D5, addr = BNO055_G_CHIP_ADDR, mode = MODE_NDOF <- as default
+
Timer t;
// RAM -------------------------------------------------------------------------------------------
@@ -65,7 +51,7 @@
// Please refer BNO055 Data sheet 3.10 Calibration & 3.6.4 Sensor calibration data
void bno055_calbration(void){
uint8_t d;
-
+
pc.printf("------ Enter BNO055 Manual Calibration Mode ------\r\n");
//---------- Gyroscope Caliblation ------------------------------------------------------------
// (a) Place the device in a single stable position for a period of few seconds to allow the
@@ -127,10 +113,11 @@
}
int main(){
+ pc.baud(921600);
imu.set_mounting_position(MT_P6);
pwr_onoff = 0;
- pc.printf("\r\n\r\nIf pc terminal soft is ready, please hit any key!\r\n");
- char c = pc.getc();
+ //pc.printf("\r\n\r\nIf pc terminal soft is ready, please hit any key!\r\n");
+ //char c = pc.getc();
pc.printf("Bosch Sensortec BNO055 test program on " __DATE__ "/" __TIME__ "\r\n");
// Is BNO055 avairable?
if (imu.chip_ready() == 0){
@@ -151,10 +138,10 @@
pc.printf("SW REV:0x%04x, BL REV:0x%02x\r\n",
bno055_id_inf.sw_rev_id, bno055_id_inf.bootldr_rev_id);
pc.printf("If you would like to calibrate the BNO055, please hit 'y' (No: any other key)\r\n");
- c = pc.getc();
- if (c == 'y'){
- bno055_calbration();
- }
+ //c = pc.getc();
+// if (c == 'y'){
+// bno055_calbration();
+// }
pc.printf("[E]:Euler Angles[deg],[Q]:Quaternion[],[L]:Linear accel[m/s*s],");
pc.printf("[G]:Gravity vector[m/s*s],[T]:Chip temperature,Acc,Gyr[degC],[S]:Status,[M]:time[mS]\r\n");
t.start();
@@ -180,66 +167,3 @@
}
-// Diffrent output format as for your reference
-#if 0
-int main() {
- uint8_t i;
-
- pwr_onoff = 0;
- pc.printf("Bosch Sensortec BNO055 test program on " __DATE__ "/" __TIME__ "\r\n");
- // Is BNO055 avairable?
- if (imu.chip_ready() == 0){
- do {
- pc.printf("Bosch BNO055 is NOT avirable!!\r\n");
- pwr_onoff = 1; // Power off
- wait(0.1);
- pwr_onoff = 0; // Power on
- wait(0.02);
- } while(imu.reset());
- }
- imu.set_mounting_position(MT_P6);
- pc.printf("AXIS_REMAP_CONFIG:0x%02x, AXIS_REMAP_SIGN:0x%02x\r\n",
- imu.read_reg0(BNO055_AXIS_MAP_CONFIG), imu.read_reg0(BNO055_AXIS_MAP_SIGN));
- 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) {
- pc.printf("Euler Angles data\r\n");
- for (i = 0; i < NUM_LOOP; i++){
- imu.get_Euler_Angles(&euler_angles);
- pc.printf("Heading:%+6.1f [deg], Roll:%+6.1f [deg], Pich:%+6.1f [deg], #%02d\r\n",
- euler_angles.h, euler_angles.r, euler_angles.p, i);
- wait(0.5);
- }
- pc.printf("Quaternion data\r\n");
- for (i = 0; i < NUM_LOOP; i++){
- imu.get_quaternion(&quaternion);
- pc.printf("W:%d, X:%d, Y:%d, Z:%d, #%02d\r\n",
- quaternion.w, quaternion.x, quaternion.y, quaternion.z, i);
- wait(0.5);
- }
- pc.printf("Linear accel data\r\n");
- for (i = 0; i < NUM_LOOP; i++){
- imu.get_linear_accel(&linear_acc);
- pc.printf("X:%+6.1f [m/s*s], Y:%+6.1f [m/s*s], Z:%+6.1f [m/s*s], #%02d\r\n",
- linear_acc.x, linear_acc.y, linear_acc.z, i);
- wait(0.5);
- }
- pc.printf("Gravity vector data\r\n");
- for (i = 0; i < NUM_LOOP; i++){
- imu.get_gravity(&gravity);
- pc.printf("X:%+6.1f [m/s*s], Y:%+6.1f [m/s*s], Z:%+6.1f [m/s*s], #%02d\r\n",
- gravity.x, gravity.y, gravity.z, i);
- wait(0.5);
- }
- pc.printf("Chip temperature data\r\n");
- for (i = 0; i < (NUM_LOOP / 4); i++){
- imu.get_chip_temperature(&chip_temp);
- pc.printf("Acc chip:%+d [degC], Gyr chip:%+d [degC], #%02d\r\n",
- chip_temp.acc_chip, chip_temp.gyr_chip, i);
- wait(0.5);
- }
- }
-}
-#endif
--- a/mbed.bld Thu Apr 16 11:25:47 2015 +0000 +++ b/mbed.bld Thu Apr 27 09:41:19 2017 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed/builds/433970e64889 \ No newline at end of file +http://mbed.org/users/mbed_official/code/mbed/builds/082adc85693f \ No newline at end of file
