Nucleo + BNO055 test for class project

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "BNO055.h"
00003 
00004 Serial pc(USBTX, USBRX);
00005 BNO055 imu(I2C_SDA,I2C_SCL);
00006 DigitalOut led(LED1);
00007 
00008 int main() {
00009     pc.baud(115200);
00010     pc.printf("BNO055 Hello World\r\n\r\n");
00011     led = 1;
00012     // Reset the BNO055
00013     imu.reset();
00014     // Check that the BNO055 is connected and flash LED if not
00015     if (!imu.check())
00016         while (true){
00017             led = !led;
00018             wait(0.1);
00019         }
00020     // Display sensor information
00021     pc.printf("BNO055 found\r\n\r\n");
00022     pc.printf("Chip          ID: %u\r\n",imu.ID.id);
00023     pc.printf("Accelerometer ID: %u\r\n",imu.ID.accel);
00024     pc.printf("Gyroscope     ID: %u\r\n",imu.ID.gyro);
00025     pc.printf("Magnetometer  ID: %u\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     // Display chip serial number
00029     for (int i = 0; i<4; i++){
00030         pc.printf("%u.%u.%u.%u\r\n",imu.ID.serial[i*4],imu.ID.serial[i*4+1],imu.ID.serial[i*4+2],imu.ID.serial[i*4+3]);
00031     }
00032     pc.printf("\r\n");
00033 
00034     while (true) {
00035         imu.setmode(OPERATION_MODE_NDOF);
00036         imu.get_calib();
00037         imu.get_angles();
00038         imu.get_temp();
00039         imu.get_quat();
00040         pc.printf("Temperature\t%d\n", imu.temperature);
00041         pc.printf("Quaternion: w:%f\tx:%f\ty:%f\tz:%f\n", imu.quat.w, imu.quat.x, imu.quat.y, imu.quat.z);
00042         //pc.printf("%u\t\t%5.1d\t\t%5.1d\t\t%5.1d\r\n",imu.calib,imu.euler.roll,imu.euler.pitch,imu.euler.yaw);
00043         wait(0.5);
00044     }
00045 }