Sherry Yang
/
BNO055_Demo
BNO044 Demo
Fork of BNO055_HelloWorld by
main.cpp@1:aa7766849e5d, 2016-06-17 (annotated)
- Committer:
- 5hel2l2y
- Date:
- Fri Jun 17 17:29:08 2016 +0000
- Revision:
- 1:aa7766849e5d
- Parent:
- 0:a8e6e26ebe0f
Initial commit for BNO055 demo
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
5hel2l2y | 1:aa7766849e5d | 1 | // BNO055 Demo |
5hel2l2y | 1:aa7766849e5d | 2 | |
StressedDave | 0:a8e6e26ebe0f | 3 | #include "mbed.h" |
StressedDave | 0:a8e6e26ebe0f | 4 | #include "BNO055.h" |
StressedDave | 0:a8e6e26ebe0f | 5 | |
5hel2l2y | 1:aa7766849e5d | 6 | //Serial pc(USBTX, USBRX); |
5hel2l2y | 1:aa7766849e5d | 7 | Serial pc(p9, p11); |
5hel2l2y | 1:aa7766849e5d | 8 | //BNO055 imu(I2C_SDA,I2C_SCL); |
5hel2l2y | 1:aa7766849e5d | 9 | BNO055 imu(p30, p7); |
5hel2l2y | 1:aa7766849e5d | 10 | |
5hel2l2y | 1:aa7766849e5d | 11 | void setup() { |
5hel2l2y | 1:aa7766849e5d | 12 | pc.baud(115200); |
5hel2l2y | 1:aa7766849e5d | 13 | |
5hel2l2y | 1:aa7766849e5d | 14 | pc.printf("\r\n------ BNO055 Demo -----------\r\n"); |
5hel2l2y | 1:aa7766849e5d | 15 | |
5hel2l2y | 1:aa7766849e5d | 16 | // Reset the BNO055 |
5hel2l2y | 1:aa7766849e5d | 17 | imu.reset(); |
5hel2l2y | 1:aa7766849e5d | 18 | // Check that the BNO055 is connected and display info |
5hel2l2y | 1:aa7766849e5d | 19 | if (imu.check()) |
5hel2l2y | 1:aa7766849e5d | 20 | { |
5hel2l2y | 1:aa7766849e5d | 21 | pc.printf("BNO055 found\r\n\r\n"); |
5hel2l2y | 1:aa7766849e5d | 22 | pc.printf("Chip ID: %d\r\n",imu.ID.id); |
5hel2l2y | 1:aa7766849e5d | 23 | pc.printf("Accelerometer ID: %d\r\n",imu.ID.accel); |
5hel2l2y | 1:aa7766849e5d | 24 | pc.printf("Gyroscope ID: %d\r\n",imu.ID.gyro); |
5hel2l2y | 1:aa7766849e5d | 25 | pc.printf("Magnetometer ID: %d\r\n\r\n",imu.ID.mag); |
5hel2l2y | 1:aa7766849e5d | 26 | pc.printf("Firmware version v%d.%0d\r\n",imu.ID.sw[0],imu.ID.sw[1]); |
5hel2l2y | 1:aa7766849e5d | 27 | pc.printf("Bootloader version v%d\r\n\r\n",imu.ID.bootload); |
5hel2l2y | 1:aa7766849e5d | 28 | } |
5hel2l2y | 1:aa7766849e5d | 29 | |
5hel2l2y | 1:aa7766849e5d | 30 | // Set power mode, POWER_MODE_NORMAL(default), POWER_MODE_LOWPOWER, or POWER_MODE_SUSPEND(sleep) |
5hel2l2y | 1:aa7766849e5d | 31 | // By default, I2C will pull high when bus is free(pg90 of datasheet) |
5hel2l2y | 1:aa7766849e5d | 32 | imu.setpowermode(POWER_MODE_SUSPEND); |
5hel2l2y | 1:aa7766849e5d | 33 | } |
StressedDave | 0:a8e6e26ebe0f | 34 | |
StressedDave | 0:a8e6e26ebe0f | 35 | int main() { |
5hel2l2y | 1:aa7766849e5d | 36 | setup(); |
5hel2l2y | 1:aa7766849e5d | 37 | |
StressedDave | 0:a8e6e26ebe0f | 38 | while (true) { |
5hel2l2y | 1:aa7766849e5d | 39 | imu.setmode(OPERATION_MODE_AMG); |
5hel2l2y | 1:aa7766849e5d | 40 | pc.printf("Temp:\r\n"); |
5hel2l2y | 1:aa7766849e5d | 41 | imu.set_temp_units(CENTIGRADE); |
5hel2l2y | 1:aa7766849e5d | 42 | imu.get_temp(); |
5hel2l2y | 1:aa7766849e5d | 43 | pc.printf("TC: %d\r\n", imu.temperature); |
5hel2l2y | 1:aa7766849e5d | 44 | imu.set_temp_units(FAHRENHEIT); |
5hel2l2y | 1:aa7766849e5d | 45 | imu.get_temp(); |
5hel2l2y | 1:aa7766849e5d | 46 | pc.printf("TF: %d\r\n", imu.temperature); |
5hel2l2y | 1:aa7766849e5d | 47 | |
5hel2l2y | 1:aa7766849e5d | 48 | imu.get_accel(); |
5hel2l2y | 1:aa7766849e5d | 49 | pc.printf("Accel:\r\n"); |
5hel2l2y | 1:aa7766849e5d | 50 | pc.printf("AX: %2f\r\n", imu.accel.x); |
5hel2l2y | 1:aa7766849e5d | 51 | pc.printf("AY: %2f\r\n", imu.accel.y); |
5hel2l2y | 1:aa7766849e5d | 52 | pc.printf("AZ: %2f\r\n", imu.accel.z); |
5hel2l2y | 1:aa7766849e5d | 53 | |
5hel2l2y | 1:aa7766849e5d | 54 | imu.get_gyro(); |
5hel2l2y | 1:aa7766849e5d | 55 | pc.printf("Gyro:\r\n"); |
5hel2l2y | 1:aa7766849e5d | 56 | pc.printf("GX: %2f\r\n", imu.gyro.x); |
5hel2l2y | 1:aa7766849e5d | 57 | pc.printf("GY: %2f\r\n", imu.gyro.y); |
5hel2l2y | 1:aa7766849e5d | 58 | pc.printf("GZ: %2f\r\n", imu.gyro.z); |
5hel2l2y | 1:aa7766849e5d | 59 | |
5hel2l2y | 1:aa7766849e5d | 60 | imu.get_mag(); |
5hel2l2y | 1:aa7766849e5d | 61 | pc.printf("Mag:\r\n"); |
5hel2l2y | 1:aa7766849e5d | 62 | pc.printf("MX: %2f\r\n", imu.mag.x); |
5hel2l2y | 1:aa7766849e5d | 63 | pc.printf("MY: %2f\r\n", imu.mag.y); |
5hel2l2y | 1:aa7766849e5d | 64 | pc.printf("MZ: %2f\r\n\r\n", imu.mag.z); |
5hel2l2y | 1:aa7766849e5d | 65 | |
StressedDave | 0:a8e6e26ebe0f | 66 | wait(1.0); |
StressedDave | 0:a8e6e26ebe0f | 67 | } |
StressedDave | 0:a8e6e26ebe0f | 68 | } |