BNO044 Demo

Dependencies:   BNO055 mbed

Fork of BNO055_HelloWorld by Dave Turner

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 // BNO055 Demo
00002 
00003 #include "mbed.h"
00004 #include "BNO055.h"
00005 
00006 //Serial pc(USBTX, USBRX);
00007 Serial pc(p9, p11);
00008 //BNO055 imu(I2C_SDA,I2C_SCL);
00009 BNO055 imu(p30, p7);
00010 
00011 void setup() {
00012     pc.baud(115200);
00013     
00014     pc.printf("\r\n------ BNO055 Demo -----------\r\n");
00015       
00016     // Reset the BNO055
00017     imu.reset();
00018     // Check that the BNO055 is connected and display info
00019     if (imu.check())
00020     {
00021         pc.printf("BNO055 found\r\n\r\n");
00022         pc.printf("Chip          ID: %d\r\n",imu.ID.id);
00023         pc.printf("Accelerometer ID: %d\r\n",imu.ID.accel);
00024         pc.printf("Gyroscope     ID: %d\r\n",imu.ID.gyro);
00025         pc.printf("Magnetometer  ID: %d\r\n\r\n",imu.ID.mag);
00026         pc.printf("Firmware version v%d.%0d\r\n",imu.ID.sw[0],imu.ID.sw[1]);
00027         pc.printf("Bootloader version v%d\r\n\r\n",imu.ID.bootload);
00028     }
00029     
00030     // Set power mode, POWER_MODE_NORMAL(default), POWER_MODE_LOWPOWER, or POWER_MODE_SUSPEND(sleep)
00031     // By default, I2C will pull high when bus is free(pg90 of datasheet)
00032     imu.setpowermode(POWER_MODE_SUSPEND);
00033 }
00034 
00035 int main() {
00036     setup();
00037     
00038     while (true) {
00039         imu.setmode(OPERATION_MODE_AMG);
00040         pc.printf("Temp:\r\n");
00041         imu.set_temp_units(CENTIGRADE);
00042         imu.get_temp();
00043         pc.printf("TC: %d\r\n", imu.temperature);
00044         imu.set_temp_units(FAHRENHEIT);
00045         imu.get_temp();
00046         pc.printf("TF: %d\r\n", imu.temperature);
00047         
00048         imu.get_accel();
00049         pc.printf("Accel:\r\n");
00050         pc.printf("AX: %2f\r\n", imu.accel.x);
00051         pc.printf("AY: %2f\r\n", imu.accel.y);
00052         pc.printf("AZ: %2f\r\n", imu.accel.z);
00053         
00054         imu.get_gyro();
00055         pc.printf("Gyro:\r\n");
00056         pc.printf("GX: %2f\r\n", imu.gyro.x);
00057         pc.printf("GY: %2f\r\n", imu.gyro.y);
00058         pc.printf("GZ: %2f\r\n", imu.gyro.z);
00059         
00060         imu.get_mag();
00061         pc.printf("Mag:\r\n");
00062         pc.printf("MX: %2f\r\n", imu.mag.x);
00063         pc.printf("MY: %2f\r\n", imu.mag.y);
00064         pc.printf("MZ: %2f\r\n\r\n", imu.mag.z);
00065         
00066         wait(1.0);
00067     }
00068 }