加速度とジャイロを100HzでSDに保存するプログラム

Dependencies:   MPU6050 SDFileSystem mbed

Fork of SD_100Hz by kohei oikawa

Revision:
3:1410f9acca63
Parent:
2:ac793e1667ec
--- a/main.cpp	Sun Dec 24 10:47:14 2017 +0000
+++ b/main.cpp	Sat Mar 10 02:39:47 2018 +0000
@@ -5,7 +5,7 @@
 #define RATE        100    //サンプリングレート[Hz]
 #define SAVE_NUM    100     //一度に保存するデータ数   SAVE_NUM/RATE [s]ごとに保存する
 
-SDFileSystem    sd(p11, p12, p13, p14, "sd");
+SDFileSystem    sd(p5, p6, p7, p8, "sd");
 MPU6050         mpu(p9,p10);
 Timer           jikan;
 Ticker          get_t;
@@ -14,12 +14,14 @@
 
 void _getData();
 
-float   Data[2][SAVE_NUM][4]={0};
+float   Data[2][SAVE_NUM][7]={0};
 int     Data_cnt = 0;
 bool    row;
 
 int main(){
     pc.printf("Hello!\r\n");
+    mpu.setAcceleroRange(3);
+    mpu.setGyroRange(3);
     mkdir("/sd/mydir", 0777);
     bp = fopen("/sd/mydir/data.bin","ab");  //ファイルは作成は時間がかかるため先にやる
     fclose(bp);
@@ -30,9 +32,10 @@
             Data_cnt=0;
             row = !row;
             bp = fopen("/sd/mydir/data.bin","ab");
-            fwrite(&Data[!row][0][0],sizeof(float),4*SAVE_NUM,bp);
+            fwrite(&Data[!row][0][0],sizeof(float),7*SAVE_NUM,bp);
             fclose(bp);
         }
+        if(jikan.read()==30.0*60.0)jikan.reset();
     }
     return 0;
 }
@@ -40,5 +43,6 @@
 void _getData(){
     Data[row][Data_cnt][0] = jikan.read();
     mpu.getAccelero(&Data[row][Data_cnt][1]);
+    mpu.getGyro(&Data[row][Data_cnt][4]);
     Data_cnt++;
 }
\ No newline at end of file