MPU9250
Dependencies: MPU9250_SPI mbed
Fork of MPU9250_SPI_Test by
main.cpp@6:275462c61b74, 2016-12-13 (annotated)
- Committer:
- tomoya123
- Date:
- Tue Dec 13 06:50:23 2016 +0000
- Revision:
- 6:275462c61b74
- Parent:
- 5:5839d1b118bc
MPU9250
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kylongmu | 3:ad2ef67e7f72 | 1 | /*CODED by Qiyong Mu on 21/06/2014 |
kylongmu | 3:ad2ef67e7f72 | 2 | kylongmu@msn.com |
kylongmu | 3:ad2ef67e7f72 | 3 | */ |
kylongmu | 0:58f9d4556df7 | 4 | #include "mbed.h" |
kylongmu | 0:58f9d4556df7 | 5 | #include "MPU9250.h" //Include library |
kylongmu | 0:58f9d4556df7 | 6 | |
kylongmu | 0:58f9d4556df7 | 7 | DigitalOut myled(LED1); |
tomoya123 | 6:275462c61b74 | 8 | Serial pc(USBTX, USBRX); |
tomoya123 | 6:275462c61b74 | 9 | SPI spi(p5, p6, p7); |
tomoya123 | 6:275462c61b74 | 10 | mpu9250_spi imu(spi,p8); //define the mpu9250 object |
kylongmu | 0:58f9d4556df7 | 11 | int main(){ |
kylongmu | 0:58f9d4556df7 | 12 | pc.baud(115200); |
kylongmu | 5:5839d1b118bc | 13 | if(imu.init(1,BITS_DLPF_CFG_188HZ)){ //INIT the mpu9250 |
kylongmu | 1:7497c7952470 | 14 | printf("\nCouldn't initialize MPU9250 via SPI!"); |
kylongmu | 0:58f9d4556df7 | 15 | } |
kylongmu | 2:6de3660a1f92 | 16 | printf("\nWHOAMI=0x%2x\n",imu.whoami()); //output the I2C address to know if SPI is working, it should be 104 |
kylongmu | 1:7497c7952470 | 17 | wait(1); |
kylongmu | 2:6de3660a1f92 | 18 | printf("Gyro_scale=%u\n",imu.set_gyro_scale(BITS_FS_2000DPS)); //Set full scale range for gyros |
kylongmu | 0:58f9d4556df7 | 19 | wait(1); |
kylongmu | 2:6de3660a1f92 | 20 | printf("Acc_scale=%u\n",imu.set_acc_scale(BITS_FS_16G)); //Set full scale range for accs |
kylongmu | 1:7497c7952470 | 21 | wait(1); |
kylongmu | 2:6de3660a1f92 | 22 | printf("AK8963 WHIAM=0x%2x\n",imu.AK8963_whoami()); |
kylongmu | 1:7497c7952470 | 23 | wait(0.1); |
kylongmu | 5:5839d1b118bc | 24 | imu.AK8963_calib_Magnetometer(); |
kylongmu | 0:58f9d4556df7 | 25 | while(1) { |
kylongmu | 0:58f9d4556df7 | 26 | //myled = 1; |
kylongmu | 0:58f9d4556df7 | 27 | wait(0.1); |
tomoya123 | 6:275462c61b74 | 28 | |
tomoya123 | 6:275462c61b74 | 29 | //imu.read_temp(); |
kylongmu | 0:58f9d4556df7 | 30 | imu.read_acc(); |
kylongmu | 0:58f9d4556df7 | 31 | imu.read_rot(); |
kylongmu | 1:7497c7952470 | 32 | imu.AK8963_read_Magnetometer(); |
tomoya123 | 6:275462c61b74 | 33 | |
kylongmu | 4:6bfddd447c27 | 34 | imu.read_all(); |
tomoya123 | 6:275462c61b74 | 35 | printf("%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f\n", |
tomoya123 | 6:275462c61b74 | 36 | //imu.Temperature, |
kylongmu | 0:58f9d4556df7 | 37 | imu.gyroscope_data[0], |
kylongmu | 0:58f9d4556df7 | 38 | imu.gyroscope_data[1], |
kylongmu | 0:58f9d4556df7 | 39 | imu.gyroscope_data[2], |
kylongmu | 0:58f9d4556df7 | 40 | imu.accelerometer_data[0], |
kylongmu | 0:58f9d4556df7 | 41 | imu.accelerometer_data[1], |
kylongmu | 1:7497c7952470 | 42 | imu.accelerometer_data[2], |
kylongmu | 1:7497c7952470 | 43 | imu.Magnetometer[0], |
kylongmu | 1:7497c7952470 | 44 | imu.Magnetometer[1], |
kylongmu | 1:7497c7952470 | 45 | imu.Magnetometer[2] |
kylongmu | 1:7497c7952470 | 46 | ); |
tomoya123 | 6:275462c61b74 | 47 | /*float mx,my,F; |
tomoya123 | 6:275462c61b74 | 48 | mx = (imu.Magnetometer[0])*cos(7*3.1415/180); |
tomoya123 | 6:275462c61b74 | 49 | my = (imu.Magnetometer[1])*cos(7*3.1415/180); |
tomoya123 | 6:275462c61b74 | 50 | //float mz = imu.Magnetometer[2]; |
tomoya123 | 6:275462c61b74 | 51 | |
tomoya123 | 6:275462c61b74 | 52 | F = atan2(my,mx)*180/3.1415; |
tomoya123 | 6:275462c61b74 | 53 | printf("degree=%10.5f\n",F); |
tomoya123 | 6:275462c61b74 | 54 | //myled = 0;*/ |
tomoya123 | 6:275462c61b74 | 55 | wait(0.5); |
kylongmu | 0:58f9d4556df7 | 56 | } |
kylongmu | 0:58f9d4556df7 | 57 | } |
kylongmu | 0:58f9d4556df7 | 58 |