Dependencies:   BNO055_fusion_tom FastPWM mbed

Fork of NucleoCube1 by Will Church

Committer:
wchurch
Date:
Sun Apr 09 18:37:31 2017 +0000
Revision:
7:1be7e6735fe2
Parent:
6:f2c930a90873
Child:
8:1011786787a4
pwm f = 5kHZ;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wchurch 0:604ceafb7bb3 1 #include "mbed.h"
wchurch 0:604ceafb7bb3 2 #include "BNO055.h"
wchurch 0:604ceafb7bb3 3
wchurch 0:604ceafb7bb3 4
wchurch 0:604ceafb7bb3 5 //------------------------------------
wchurch 0:604ceafb7bb3 6 // Hyperterminal configuration
wchurch 0:604ceafb7bb3 7 // 9600 bauds, 8-bit data, no parity
wchurch 0:604ceafb7bb3 8 //------------------------------------
wchurch 0:604ceafb7bb3 9
wchurch 0:604ceafb7bb3 10 Serial pc(SERIAL_TX, SERIAL_RX);
wchurch 0:604ceafb7bb3 11
wchurch 5:9247f07a954a 12 Ticker pwmint;
wchurch 0:604ceafb7bb3 13 DigitalOut myled(LED1);
wchurch 6:f2c930a90873 14 InterruptIn button(USER_BUTTON);
wchurch 6:f2c930a90873 15
wchurch 1:d81f93d3f819 16 PwmOut P1(PE_9);
wchurch 7:1be7e6735fe2 17 //PwmOut P2(PE_11); 1D FOCUS FOR NOW
wchurch 7:1be7e6735fe2 18 //PwmOut P3(PE_13);
wchurch 0:604ceafb7bb3 19
wchurch 0:604ceafb7bb3 20 I2C i2c(PB_9, PB_8); // SDA, SCL
wchurch 0:604ceafb7bb3 21 BNO055 imu(i2c, PA_8); // Reset
wchurch 0:604ceafb7bb3 22
wchurch 0:604ceafb7bb3 23 BNO055_ID_INF_TypeDef bno055_id_inf;
wchurch 0:604ceafb7bb3 24 BNO055_EULER_TypeDef euler_angles;
wchurch 7:1be7e6735fe2 25
wchurch 7:1be7e6735fe2 26
wchurch 7:1be7e6735fe2 27 //BNO055_EULER_TypeDef velocity; IN PROGESS
wchurch 6:f2c930a90873 28
wchurch 6:f2c930a90873 29 int i = 180;
wchurch 6:f2c930a90873 30 int isPressed;
wchurch 6:f2c930a90873 31
wchurch 6:f2c930a90873 32 void pwmupdate() {
wchurch 6:f2c930a90873 33
wchurch 6:f2c930a90873 34 myled = !myled;
wchurch 6:f2c930a90873 35
wchurch 6:f2c930a90873 36
wchurch 6:f2c930a90873 37 P1 = (euler_angles.h/360.0);
wchurch 7:1be7e6735fe2 38 //P2 = (euler_angles.r/360.0);
wchurch 7:1be7e6735fe2 39 //P3 = (euler_angles.p/360.0);
wchurch 6:f2c930a90873 40
wchurch 6:f2c930a90873 41 }
wchurch 6:f2c930a90873 42
wchurch 6:f2c930a90873 43 void eventFunction() {
wchurch 7:1be7e6735fe2 44
wchurch 6:f2c930a90873 45 if(!isPressed) {
wchurch 7:1be7e6735fe2 46 pwmint.attach(&pwmupdate, .5);
wchurch 6:f2c930a90873 47 isPressed=1;
wchurch 7:1be7e6735fe2 48
wchurch 6:f2c930a90873 49 } else {
wchurch 6:f2c930a90873 50 pwmint.detach();
wchurch 7:1be7e6735fe2 51 P1 = 0;
wchurch 7:1be7e6735fe2 52 //P2 = 0;
wchurch 7:1be7e6735fe2 53 //P3 = 0;
wchurch 6:f2c930a90873 54 isPressed=0;
wchurch 6:f2c930a90873 55 }
wchurch 6:f2c930a90873 56 }
wchurch 6:f2c930a90873 57
wchurch 6:f2c930a90873 58 int main()
wchurch 6:f2c930a90873 59 {
wchurch 0:604ceafb7bb3 60
wchurch 0:604ceafb7bb3 61 pc.printf("Bosch Sensortec BNO055 test program on " __DATE__ "/" __TIME__ "\r\n");
wchurch 0:604ceafb7bb3 62 if (imu.chip_ready() == 0){
wchurch 4:ae9e664301dd 63 pc.printf("Bosch BNO055 is NOT available!!\r\n");
wchurch 0:604ceafb7bb3 64 }
wchurch 6:f2c930a90873 65
wchurch 0:604ceafb7bb3 66 imu.read_id_inf(&bno055_id_inf);
wchurch 6:f2c930a90873 67
wchurch 7:1be7e6735fe2 68 //pc.printf("CHIP:0x%02x, ACC:0x%02x, MAG:0x%02x, GYR:0x%02x, , SW:0x%04x, , BL:0x%02x\r\n",
wchurch 7:1be7e6735fe2 69 // bno055_id_inf.chip_id, bno055_id_inf.acc_id, bno055_id_inf.mag_id,
wchurch 7:1be7e6735fe2 70 // bno055_id_inf.gyr_id, bno055_id_inf.sw_rev_id, bno055_id_inf.bootldr_rev_id);
wchurch 6:f2c930a90873 71
wchurch 7:1be7e6735fe2 72 P1.period(0.0002);
wchurch 7:1be7e6735fe2 73
wchurch 6:f2c930a90873 74 isPressed=0;
wchurch 6:f2c930a90873 75 button.rise(&eventFunction);
wchurch 6:f2c930a90873 76
wchurch 6:f2c930a90873 77
wchurch 0:604ceafb7bb3 78
wchurch 0:604ceafb7bb3 79 while(1) {
wchurch 6:f2c930a90873 80
wchurch 6:f2c930a90873 81
wchurch 0:604ceafb7bb3 82 pc.printf("Heading:%+6.4f [deg], Roll:%+6.4f [deg], Pitch:%+6.4f [deg]\r\n",
wchurch 0:604ceafb7bb3 83 euler_angles.h, euler_angles.r, euler_angles.p);
wchurch 7:1be7e6735fe2 84
wchurch 6:f2c930a90873 85 imu.get_Euler_Angles(&euler_angles);
wchurch 6:f2c930a90873 86
wchurch 0:604ceafb7bb3 87
wchurch 6:f2c930a90873 88 wait(0.2);
wchurch 0:604ceafb7bb3 89 }
wchurch 0:604ceafb7bb3 90 }