08/13

Dependencies:   ADXL345 BME280 HMC5883L ITG3200 MBed_Adafruit-GPS-Library XBee agzIDLIST cansat2 mbed

Fork of Cansat_program4 by CanSat2015aizu

Revision:
23:8581b740beef
Parent:
22:92408c551605
Child:
24:d5fe0afc4565
--- a/main.cpp	Sat Aug 15 02:01:06 2015 +0000
+++ b/main.cpp	Wed Aug 19 07:49:59 2015 +0000
@@ -1,3 +1,5 @@
+
+
 /**********************************************/
 //更新情報
 
@@ -216,20 +218,19 @@
     
     
     if(t==r) {
-        //前進
-        return 'f';
+        return 'f';     // target_angleとrobot_angleが等しいときは前進
     } else if(n == 4) {
-        return 'r';
+        return 'r';     // target_angleとrobot_angleが正反対にあるときは右回転
     } else if(n > 0 && n < 4) {
         if(t > r)
-            return 'r';
+            return 'r'; // robot_angleから見て右方向にtarget_angleがあるときに右回転
         else
-            return 'l';
+            return 'l'; // robot_angleから見て左方向にtarget_angleがあるときに左回転
     } else if(n > 4 && n < 8){
         if(t > r)
-            return 'l';
+            return 'l'; // robot_angleから見て左方向にtarget_angleがあるときに左回
         else
-            return 'r';
+            return 'r'; // robot_angleから見て右方向にtarget_angleがあるときに右回転
     } else
         return 'b';
     
@@ -283,14 +284,14 @@
 }
 
 int calc_angle(double c){
-    if(c > 337.5 ||(c >=0 && c < 22.5)) return 0;
-    else if(c >= 22.5 && c < 67.5) return 1;
-    else if(c >= 67.5 && c < 112.5) return 2;
-    else if(c >= 112.5 && c < 157.5) return 3;
-    else if(c >= 157.5 && c < 202.5) return 4;
-    else if(c >= 202.5 && c < 247.5) return 5;
-    else if(c >= 247.5 && c < 292.5) return 6;
-    else if(c >= 292.5 && c < 337.5) return 7;
+    if(c > 337.5 ||(c >=0 && c < 22.5)) return 0;   // 北
+    else if(c >= 22.5 && c < 67.5) return 1;        // 北東
+    else if(c >= 67.5 && c < 112.5) return 2;       // 東
+    else if(c >= 112.5 && c < 157.5) return 3;      // 南東
+    else if(c >= 157.5 && c < 202.5) return 4;      // 南
+    else if(c >= 202.5 && c < 247.5) return 5;      // 南西
+    else if(c >= 247.5 && c < 292.5) return 6;      // 西
+    else if(c >= 292.5 && c < 337.5) return 7;      // 北西
     else return 8;
 }  
 
@@ -360,34 +361,30 @@
 
 void falling(){
     
-    cansat.set_temperature(sensor.getTemperature()); 
-    cansat.set_pressure(sensor.getPressure());
-    cansat.set_humidity(sensor.getHumidity());
+    cansat.set_temperature(sensor.getTemperature());    // 取得した温度を変数に格納
+    cansat.set_pressure(sensor.getPressure());          // 取得した気圧を変数に格納
+    cansat.set_humidity(sensor.getHumidity());          // 取得した湿度を変数に格納
     
     falling_print();
     
-    if(cansat.get_pressure() >= goal_Pressure){
+    if(cansat.get_pressure() >= goal_Pressure){         // 取得した気圧と閾値を比較
         if(fall_flag == 0){
-            nic = 1;
+            nic = 1;    // ニクロム線を切る
             fall_flag = 1;
             sep_Timer.reset();
-            //mode = 2;
-            //xbee.printf("my pressure is high!\n");
-            //xbee.printf("remove the parachute\n");
-            //xbee.printf("change mode: running\n");
         }
     }
     
-    if(fall_flag == 1 && pressure_Timer.read_ms() >= pressure_Time){
-        mode = 2;
+    if(fall_flag == 1 && pressure_Timer.read_ms() >= pressure_Time){    // 取得した気圧が閾値より大きく、落下してから10秒以上経過しているとき
+        mode = 2;   // 走行モードに移る
         xbee.printf("my pressure is high!\n");
         xbee.printf("remove the parachute\n");
         xbee.printf("change mode: running\n");
     }
     
-   if(fall_flag == 0 && parachute_Timer.read_ms() >= parachute_Time){
-        mode = 2;
-        nic = 1;
+   if(fall_flag == 0 && parachute_Timer.read_ms() >= parachute_Time){   // 取得した気圧が閾値より小さく、落下してから30秒以上経過しているとき
+        mode = 2;   // 走行モードに移る
+        nic = 1;    // ニクロム線を切る
         xbee.printf("Time out!\n");
         xbee.printf("remove the parachute\n");
         wait_ms(3000);