This program is for Cansat made with BreadBoard which have pressure sensor LPS331. This program is based on http://mbed.org/users/nyamfg/code/LPS331_HelloWorld/

Dependencies:   mbed

Revision:
12:6b5035346d43
Parent:
11:3342540c22d8
--- a/main.cpp	Fri Sep 19 09:39:03 2014 +0000
+++ b/main.cpp	Fri Sep 19 11:28:40 2014 +0000
@@ -7,8 +7,8 @@
 #define TEMP 20     //気温(度)
 
 DigitalOut myled(LED1);
-DigitalOut JPlow(p5); // p6ピンでLowを検出させるために使用。隣同士(p5,p6)のピンをショートさせるとログ出力停止
-DigitalIn JP(p6);
+DigitalOut JPlow(p5); // p6ピンでLowを検出させるために使用
+DigitalIn JP(p6);     // p5とp6のピンを接続するとログ出力停止
 LocalFileSystem local("local"); 
 
 Serial telem(p13,p14);
@@ -27,19 +27,22 @@
     JPlow = 0;
     JP.mode(PullUp);
 
+    // 気圧センサーの初期化------------------------------------------
     lps331.setResolution(LPS331_I2C_PRESSURE_AVG_512, LPS331_I2C_TEMP_AVG_128);
     lps331.setDataRate(LPS331_I2C_DATARATE_7HZ); // 7Hz(1秒間に7回更新)
     lps331.setActive(true); // 動作開始
               
+    // ファイルにデータの区切り用メッセージを出力 -----------------------
     FILE *fp = fopen("/local/data.txt", "a");   // 「追記」でファイルを開く
     fprintf(fp,"BBsat start. **********\r\n");  // fprintf()は、ファイルに文字を出力
     fclose(fp);
 
+    // テレメトリにデータの区切り用メッセージを出力 ---------------------
     telem.printf("BBsat start. **********\r\n");  // テレメトリ用出力
 
-    t.start();
+    t.start(); // 起動からの時間を測るために時計をスタート
 
-    // 地面の高度を求める 
+    // 地面の高度を求める --------------------------------------------
     for(i=0;i<GROUND_AVE_NUM;i++) {
         pres = lps331.getPressure();    // 気圧
         ground_alti += lps331.getAltitude(P0, TEMP, pres);
@@ -47,28 +50,35 @@
     }
     ground_alti = ground_alti / GROUND_AVE_NUM;
     
+    // 高度を繰り返し計測する -----------------------------------------
     while(1) {
         int ms=0;       // リセットからの経過時間(単位:ミリ秒(MilliSecond)
-        float altitude;                       // 高度
+        float altitude;               // 高度
         pres=lps331.getPressure();    // 気圧
         temp=lps331.getTemperature(); // 気温
 
-        // 高度算出
+        // 気圧から高度を求める ---------------------------------------
         altitude = lps331.getAltitude(P0, TEMP, pres);
         
+        // 気圧の記録を停止するかをチェック -----------------------------
         if(JP==0) {     // JPが0(GND)だったら、
             break;      //whileのループを終了
         }
 
         ms = t.read_ms(); //現在時刻を取得
 
+        // ファイルに記録 ---------------------------------------------
         FILE *fp = fopen("/local/data.txt", "a");
         fprintf(fp,  "%10d,%6.2f,%4.1f %5.1f \r\n", ms, pres, temp, altitude);   // 時刻,気圧,気温,高度を出力
-        printf(      "%10d,%6.2f,%4.1f,Ground:%5.1f altitude:%5.1f Diff%5.1f \r\n", ms, pres, temp, ground_alti, altitude, altitude-ground_alti);
+        printf(      "%10d,%6.2f,%4.1f,Ground:%5.1f altitude:%5.1f Diff%5.1f \r\n",
+            ms, pres, temp, ground_alti, altitude, altitude-ground_alti);
         fclose(fp);
 
+        // 高度のみテレメトリ出力 ---------------------------------------
         telem.printf("%5.1f\n", altitude-ground_alti);   // 高度を出力
-        wait(0.05);     // LED点滅
+ 
+        // 動作確認用 LED点滅 -----------------------------------------
+        wait(0.05);     // 
         myled = 1;
         wait(0.05);
         myled = 0;