東北大学学友会準加盟団体 From The Earth の高高度ロケットFTE-06(通称:海豚)にて使用したソフトウェアです.ご自由にお使いください.このプログラムによって生じた損害について当団体は一切責任を負いません.また,各モジュールのライブラリは当団体が作成したものではないので再配布は禁止します.
Dependencies: mbed FATFileSystem
Fork of FTE-06 by
Diff: main.cpp
- Revision:
- 40:bc28a352f9fa
- Parent:
- 39:381c211ca11c
- Child:
- 41:e64a3a884db8
--- a/main.cpp Mon Aug 21 02:17:28 2017 +0000 +++ b/main.cpp Mon Aug 21 08:57:04 2017 +0000 @@ -14,17 +14,17 @@ //im920ではECIOコマンドを使って、送信データのアスキーコード逆変換が行われるようにすること //-----------------------------------------ロケットの制御にかかわる設定 #define launch_pressure_threshold 990.//発射したとみなす気圧(おおよそ地上気圧-80.4hpa) -#define launch_acc_threshold 2.5 //発射時の加速度(G) +#define launch_acc_threshold 5 //発射時の加速度(G) #define acc_axis 0//上方向の軸を決定x;0,y;1,z;2 #define pre_sd 0.00037//気圧センサの測定誤差(事前に測定して計算) #define size_dif 3//気圧の変位を保存する数 -#define time_limit_launch_and_fall_ms 10000//発射から頂点に至るまでの予測時間(msec) +#define time_limit_launch_and_fall_ms 24000//発射から頂点に至るまでの予測時間(msec) #define fall_detect_lock 2000//加速度で発射検知したときに頂点検知にロックをかける時間(msec) #define servo_deg_initial 20//サーボの初期角度 #define servo_deg_close 90//サーボの水密構造を閉じる時の角度 //-----------------------------------------センサの測定レンジなどの設定 -#define Acc_range 16.//加速度センサの測定レンジ +#define Acc_range 25.//加速度センサの測定レンジ #define para_switch p22//パラシュート展開用のデジタル出力ピン番号 #define time_between_para_opening_ms 4000//パラシュート展開用の電熱線の加熱時間(msec) #define conv2Gravity 10./(32768./Acc_range)/9.80665//加速度センサの値の単位をGに変換 @@ -154,6 +154,7 @@ save_data();//データの保存 send_GPS_and_status(); write_data2eeprom();//eepromへの保存 + //pc.printf("%lf,%lf,%lf\n",acc[0],acc[1],acc[2]); } void write_data2eeprom() {//eepromへの書き込み @@ -190,10 +191,10 @@ void send_GPS_and_status() {//GPSデータの送信 char send_data[100]; - sprintf(send_data,"%.7f",latitude); + sprintf(send_data,"latitude:%.7f",latitude); Im920.sendData(send_data,strlen(send_data)); wait_ms(5); - sprintf(send_data,"%.7f",longitude); + sprintf(send_data,"longitude:%.7f",longitude); Im920.sendData(send_data,strlen(send_data)); wait_ms(2); //sprintf(send_data,"%d",status); @@ -382,30 +383,37 @@ 水密構造稼働ごLED4点灯 */ rocket_data.servo_move(); - // wait_ms(1000); + // wait_ms(1000); myled4=1; - while(true){ + while(true) { rocket_data.get_data(); - } - + } + } int main() -{ +{ t.start(); Setup(); status=1; uint32_t msg=Launch_detect(); + if(msg==1) + rocket_data.send_data("detected launch by acc"); + else + rocket_data.send_data("detected launch by pres"); status=2; fall_detect(msg); + rocket_data.send_data("detected starting falling"); status=3; para_open(); + rocket_data.send_data("opened para"); status=4; bottle_close(); + rocket_data.send_data("bottle closed"); status=5; - - - - + + + + } \ No newline at end of file