東北大学学友会準加盟団体 From The Earth の高高度ロケットFTE-06(通称:海豚)にて使用したソフトウェアです.ご自由にお使いください.このプログラムによって生じた損害について当団体は一切責任を負いません.また,各モジュールのライブラリは当団体が作成したものではないので再配布は禁止します.

Dependencies:   mbed FATFileSystem

Fork of FTE-06 by Tetsushi Amano

Revision:
14:b902e73a5404
Parent:
13:c3c7524d2440
Child:
15:792eb5103e9e
--- a/main.cpp	Thu Jun 22 10:47:01 2017 +0000
+++ b/main.cpp	Sun Jul 09 09:20:22 2017 +0000
@@ -22,21 +22,27 @@
 #define servo_deg_close 90//サーボの水密構造を閉じる時の角度
 
 //-----------------------------------------センサの測定レンジなどの設定
-#define Acc_range 2.
-#define conv2Gravity 1./(32768./Acc_range)
+#define Acc_range 2.//加速度センサの測定レンジ
+#define para_switch p10//パラシュート展開用のデジタル出力ピン番号
+#define time_between_para_opening_ms 4000//パラシュート展開用の電熱線の加熱時間(msec) 
+#define conv2Gravity 1./(32768./Acc_range)//加速度センサの値の単位をGに変換
 #define AT24C1024_address 0x50
 
 DigitalOut myled1(LED1);
 DigitalOut myled2(LED2);
 DigitalOut myled3(LED3);
 DigitalOut myled4(LED4);
+
+DigitalOut Para(para_switch);//パラシュート展開用のクラス
+
 Timer t;
 
 AnalogIn analog_rand(p20);//電圧読み取り用のピン
 
 double pres_dif[size_dif]= {0}; //気圧の変化をsize_difの数だけ保存
-uint32_t launch_detect_time=0;//発射検知の時間
-uint32_t fall_detect_time=0;//頂点検知の時間
+uint32_t launch_detect_time=0;//発射検知の時間(ms)
+uint32_t fall_detect_time=0;//頂点検知の時間(ms)
+uint32_t para_open_time=0;//パラシュート展開の時間(ms)
 
 SDFileSystem sd(p5, p6, p7, p8, "sd");//SDカードのオブジェクト作成
 BMP085 BMP(p9,p10);//気圧、温度センサのクラス
@@ -175,9 +181,9 @@
         Im920.printf(send_data);
     }
 
-    void servo_move(){//サーボの動作に関する関数
+    void servo_move() { //サーボの動作に関する関数
         myservo.position(servo_deg_close);
-        }
+    }
 
 };
 
@@ -216,7 +222,7 @@
 
 }
 
-void SD_check() //SDカードの確認
+void Setup() //SDカードの確認
 {
     /*
     起動時に4つのLEDを一旦全部点灯
@@ -224,7 +230,7 @@
     確認終了後break
     */
 
-
+    Para=0;//パラシュート展開用のトランジスタをoff
     myled1=myled2=myled3=myled4=1;
     wait_ms(1000);
     myled1=myled2=myled3=myled4=0;
@@ -337,7 +343,10 @@
     展開高度の制限が必要になったら、waitを挟む
     展開命令後LED3点灯
     */
-    wait_ms(1000);
+    Para=1;
+    wait_ms(time_between_para_opening_ms);
+    Para=0;
+    para_open_time=t.read_ms();
     myled3=1;
 }
 
@@ -355,7 +364,7 @@
 int main()
 {
     t.start();
-    SD_check();
+    Setup();
     status=1;
     uint32_t msg=Launch_detect();
     status=2;