SparkFun_9DOF_SensorStick
Dependencies: FatFileSystem mbed
Fork of 9DOF_SensorStick by
Revision 5:12e37af16f2e, committed 2012-09-03
- Comitter:
- higedura
- Date:
- Mon Sep 03 03:44:13 2012 +0000
- Parent:
- 4:cc2b1a6de723
- Commit message:
- update
Changed in this revision
diff -r cc2b1a6de723 -r 12e37af16f2e FATFileSystem.lib --- a/FATFileSystem.lib Wed Mar 14 17:06:53 2012 +0000 +++ b/FATFileSystem.lib Mon Sep 03 03:44:13 2012 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_unsupported/code/fatfilesystem/ \ No newline at end of file +http://mbed.org/users/mbed_unsupported/code/FatFileSystem/#333d6e93e58f
diff -r cc2b1a6de723 -r 12e37af16f2e main.cpp --- a/main.cpp Wed Mar 14 17:06:53 2012 +0000 +++ b/main.cpp Mon Sep 03 03:44:13 2012 +0000 @@ -8,6 +8,7 @@ ITG3200 gyro(p9, p10); HMC5883L compass(p9, p10); SDFileSystem sd(p5, p6, p7, p8, "sd"); // the pinout on the mbed Cool Components workshop board +DigitalIn stop(p20); Serial pc(USBTX, USBRX); #define N 3 @@ -31,64 +32,7 @@ FILE *fp = fopen("/sd/mydir/sdtest.txt", "w"); if( fp==NULL ){ error("Could not open file for write\n"); } - // *** Setting up sensors *** - int preparing_acc(); - gyro.setLpBandwidth(LPFBW_42HZ); - compass.setDefault(); - wait(0.1); // Wait some time for all sensors (Need at least 5ms) - - pc.printf("\n\rStarting ADXL345, ITG3200 and HMC5883L test...\n\r"); - pc.printf(" Time AccX AccY AccZ GyroX GyroY GyroZ MagX MagY MagZ\n\r"); - - //while(1){ - for( int i=0;i<10000;i++ ){ - - // Updating accelerometer and compass - accelerometer.getOutput(bitAcc); - compass.readData(getMag); - - // Transfering units (Acc[g], Gyro[deg/s], Compass[Ga]) - // Calibration YAL 9DOF Acc:X+6, Y-12, Z+44 - // Calibration green Acc:X+1, Y-18, Z+45 - Acc[0] = ((int16_t)bitAcc[0])*0.004; - Acc[1] = ((int16_t)bitAcc[1])*0.004; - Acc[2] = ((int16_t)bitAcc[2])*0.004; - // Calibration YAL 9DOF Gyro:X+28, Y-45, Z+34 - // Calibration green Gyro:X+135, Y-12, Z-53 - Gyro[0] = (gyro.getGyroX())/14.375; - Gyro[1] = (gyro.getGyroY())/14.375; - Gyro[2] = (gyro.getGyroZ())/14.375; - // Calibration YAL 9DOF Compass:X, Y, Z - Mag[0] = (int16_t)getMag[0]; - Mag[1] = (int16_t)getMag[1]; - Mag[2] = (int16_t)getMag[2]; - - // Low pass filter for acc - //for ( int i=0;i<N;i++ ){ - // if( -0.05<Acc[i] && Acc[i]<0.05 ){ Acc[i]=0; } - //} - - // Low pass filter for gyro - //for ( int i=0;i<N;i++ ){ - // if( -1.0<Gyro[i] && Gyro[i]<1.0 ){ Gyro[i]=0; } - //} - - //pc.printf("%7.2f, %7.3f, %7.3f, %7.3f, %7.1f, %7.1f, %7.1f, %5d, %5d, %5d\n\r", t, Acc[0], Acc[1], Acc[2], Gyro[0], Gyro[1], Gyro[2], Mag[0], Mag[1], Mag[2]); - pc.printf("%7.2f, %7.3f, %7.3f, %7.3f, %7.1f, %7.1f, %7.1f\n\r", t, Acc[0], Acc[1], Acc[2], Gyro[0], Gyro[1], Gyro[2]); - //pc.printf("%7.1f, %7.1f, %7.1f\n\r",Gyro[0], Gyro[1], Gyro[2]); - fprintf(fp, "%7.2f, %7.3f, %7.3f, %7.3f, %7.1f, %7.1f, %7.1f\n\r", t, Acc[0], Acc[1], Acc[2], Gyro[0], Gyro[1], Gyro[2]); - - t += dt; - wait(dt); - - } - - fclose(fp); - - } - -int preparing_acc(){ - + // *** start up *** // These are here to test whether any of the initialization fails. It will print the failure. if (accelerometer.setPowerControl(0x00)){ pc.printf("didn't intitialize power control\n\r"); @@ -113,8 +57,57 @@ if(accelerometer.setPowerControl(MeasurementMode)) { pc.printf("didn't set the power control to measurement\n\r"); return 0; - } - - return 0; - -} + } + + gyro.setLpBandwidth(LPFBW_42HZ); + compass.setDefault(); + wait(0.1); // Wait some time for all sensors (Need at least 5ms) + // *** start up *** + + pc.printf("\n\rStarting ADXL345, ITG3200 and HMC5883L test...\n\r"); + pc.printf(" Time AccX AccY AccZ GyroX GyroY GyroZ MagX MagY MagZ\n\r"); + + while( stop==0 ){ + //for( int i=0;i<10000;i++ ){ + + // Updating accelerometer and compass + accelerometer.getOutput(bitAcc); + compass.readData(getMag); + + // Transfering units (Acc[g], Gyro[deg/s], Compass[Ga]) + Acc[0] = ((int16_t)bitAcc[0])*0.004; + Acc[1] = ((int16_t)bitAcc[1])*0.004; + Acc[2] = ((int16_t)bitAcc[2])*0.004; + + Gyro[0] = (gyro.getGyroX())/14.375; + Gyro[1] = (gyro.getGyroY())/14.375; + Gyro[2] = (gyro.getGyroZ())/14.375; + // Calibration YAL 9DOF Compass:X, Y, Z + Mag[0] = (int16_t)getMag[0]; + Mag[1] = (int16_t)getMag[1]; + Mag[2] = (int16_t)getMag[2]; + + // Low pass filter for acc + //for ( int i=0;i<N;i++ ){ + // if( -0.05<Acc[i] && Acc[i]<0.05 ){ Acc[i]=0; } + //} + + // Low pass filter for gyro + //for ( int i=0;i<N;i++ ){ + // if( -1.0<Gyro[i] && Gyro[i]<1.0 ){ Gyro[i]=0; } + //} + + //pc.printf("%7.2f, %7.3f, %7.3f, %7.3f, %7.1f, %7.1f, %7.1f, %5d, %5d, %5d\n\r", t, Acc[0], Acc[1], Acc[2], Gyro[0], Gyro[1], Gyro[2], Mag[0], Mag[1], Mag[2]); + pc.printf("%7.2f, %7.3f, %7.3f, %7.3f, %7.1f, %7.1f, %7.1f\n\r", t, Acc[0], Acc[1], Acc[2], Gyro[0], Gyro[1], Gyro[2]); + //pc.printf("%7.1f, %7.1f, %7.1f\n\r",Gyro[0], Gyro[1], Gyro[2]); + fprintf(fp, "%7.2f, %7.3f, %7.3f, %7.3f, %7.1f, %7.1f, %7.1f\n", t, Acc[0], Acc[1], Acc[2], Gyro[0], Gyro[1], Gyro[2]); + + t += dt; + wait(dt); + + } + + fclose(fp); + + } + \ No newline at end of file
diff -r cc2b1a6de723 -r 12e37af16f2e mbed.bld --- a/mbed.bld Wed Mar 14 17:06:53 2012 +0000 +++ b/mbed.bld Mon Sep 03 03:44:13 2012 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed/builds/63bcd7ba4912 +http://mbed.org/users/mbed_official/code/mbed/builds/63bcd7ba4912 \ No newline at end of file