Nucleo + BNO055 test for class project
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Fri Jul 22 2022 23:12:35 by
1.7.2