高高度CanSat Space SWANの投下時に使用したプログラム.(IZU2019)
Dependencies: Nichrome_lib mbed ads1115_test BNO055_lib ADXL375_i2c ES920LR CCS811_lib SDFileSystem BME280_lib INA226_lib EEPROM_lib GPS_interrupt
main.cpp@0:03be138291de, 2019-02-19 (annotated)
- Committer:
- Sigma884
- Date:
- Tue Feb 19 15:00:39 2019 +0000
- Revision:
- 0:03be138291de
- Child:
- 1:6dea30c8b406
20190219 ver.0.1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Sigma884 | 0:03be138291de | 1 | #include "mbed.h" |
Sigma884 | 0:03be138291de | 2 | #include "math.h" |
Sigma884 | 0:03be138291de | 3 | |
Sigma884 | 0:03be138291de | 4 | #include "Adafruit_ADS1015.h" |
Sigma884 | 0:03be138291de | 5 | #include "ADXL375_i2c.h" |
Sigma884 | 0:03be138291de | 6 | #include "BME280_lib.h" |
Sigma884 | 0:03be138291de | 7 | #include "BNO055_lib.h" |
Sigma884 | 0:03be138291de | 8 | #include "CCS811_lib.h" |
Sigma884 | 0:03be138291de | 9 | #include "EEPROM_lib.h" |
Sigma884 | 0:03be138291de | 10 | #include "ES920LR.hpp" |
Sigma884 | 0:03be138291de | 11 | #include "GPS_interrupt.h" |
Sigma884 | 0:03be138291de | 12 | #include "INA226.h" |
Sigma884 | 0:03be138291de | 13 | #include "Nichrome_lib.h" |
Sigma884 | 0:03be138291de | 14 | #include "SDFileSystem.h" |
Sigma884 | 0:03be138291de | 15 | |
Sigma884 | 0:03be138291de | 16 | |
Sigma884 | 0:03be138291de | 17 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 18 | 設定値 |
Sigma884 | 0:03be138291de | 19 | 投下前に必ず確認!! |
Sigma884 | 0:03be138291de | 20 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 21 | |
Sigma884 | 0:03be138291de | 22 | |
Sigma884 | 0:03be138291de | 23 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 24 | コンストラクタ |
Sigma884 | 0:03be138291de | 25 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 26 | RawSerial pc(USBTX, USBRX, 115200); |
Sigma884 | 0:03be138291de | 27 | |
Sigma884 | 0:03be138291de | 28 | RawSerial serial_es920(p9, p10); |
Sigma884 | 0:03be138291de | 29 | ES920LR es920(serial_es920, pc, 115200); |
Sigma884 | 0:03be138291de | 30 | |
Sigma884 | 0:03be138291de | 31 | Serial GPS_serial(p13, p14, 38400); |
Sigma884 | 0:03be138291de | 32 | GPS_interrupt GPS(&GPS_serial); |
Sigma884 | 0:03be138291de | 33 | float GPS_freq = 4; |
Sigma884 | 0:03be138291de | 34 | |
Sigma884 | 0:03be138291de | 35 | SDFileSystem sd(p5, p6, p7, p8, "sd"); |
Sigma884 | 0:03be138291de | 36 | const char file_name[64] = "/sd/Space_SWAN_LOG.txt"; |
Sigma884 | 0:03be138291de | 37 | |
Sigma884 | 0:03be138291de | 38 | I2C i2c_bus(p28, p27); |
Sigma884 | 0:03be138291de | 39 | ADXL375_i2c ADXL375(i2c_bus, ADXL375_i2c::ALT_ADDRESS_HIGH); |
Sigma884 | 0:03be138291de | 40 | myINA226 INA226(i2c_bus, myINA226::A1_VDD, myINA226::A0_VDD); |
Sigma884 | 0:03be138291de | 41 | BME280_lib BME280(i2c_bus, BME280_lib::AD0_LOW); |
Sigma884 | 0:03be138291de | 42 | BNO055_lib BNO055(i2c_bus, BNO055_lib::AD0_HIGH); |
Sigma884 | 0:03be138291de | 43 | CCS811_lib CCS811(i2c_bus, CCS811_lib::AD0_LOW); |
Sigma884 | 0:03be138291de | 44 | EEPROM_lib EEPROM(i2c_bus, 4); |
Sigma884 | 0:03be138291de | 45 | |
Sigma884 | 0:03be138291de | 46 | Adafruit_ADS1115 ADS1115(&i2c_bus, ADS1015_ADDRESS); |
Sigma884 | 0:03be138291de | 47 | |
Sigma884 | 0:03be138291de | 48 | DigitalOut valve1(p23); |
Sigma884 | 0:03be138291de | 49 | DigitalOut valve2(p24); |
Sigma884 | 0:03be138291de | 50 | DigitalOut valve3(p24); |
Sigma884 | 0:03be138291de | 51 | DigitalOut valve4(p25); |
Sigma884 | 0:03be138291de | 52 | DigitalOut Buzzer(p22); |
Sigma884 | 0:03be138291de | 53 | |
Sigma884 | 0:03be138291de | 54 | DigitalIn FlightPin(p15); |
Sigma884 | 0:03be138291de | 55 | |
Sigma884 | 0:03be138291de | 56 | Timeout timeout_stop; |
Sigma884 | 0:03be138291de | 57 | Timeout timeout_sep; |
Sigma884 | 0:03be138291de | 58 | Timeout timeout_recovery; |
Sigma884 | 0:03be138291de | 59 | |
Sigma884 | 0:03be138291de | 60 | Timer time_main; |
Sigma884 | 0:03be138291de | 61 | Timer time_flight; |
Sigma884 | 0:03be138291de | 62 | |
Sigma884 | 0:03be138291de | 63 | Ticker tick_gps; |
Sigma884 | 0:03be138291de | 64 | Ticker tick_print; |
Sigma884 | 0:03be138291de | 65 | Ticker tick_header_data; |
Sigma884 | 0:03be138291de | 66 | |
Sigma884 | 0:03be138291de | 67 | |
Sigma884 | 0:03be138291de | 68 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 69 | 関数のプロトタイプ宣言 |
Sigma884 | 0:03be138291de | 70 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 71 | void setup(); //無線あり |
Sigma884 | 0:03be138291de | 72 | |
Sigma884 | 0:03be138291de | 73 | void modeChange(); //無線あり |
Sigma884 | 0:03be138291de | 74 | |
Sigma884 | 0:03be138291de | 75 | void readSensor(); |
Sigma884 | 0:03be138291de | 76 | void readGPS(); |
Sigma884 | 0:03be138291de | 77 | |
Sigma884 | 0:03be138291de | 78 | void printData(); |
Sigma884 | 0:03be138291de | 79 | void readPC(); |
Sigma884 | 0:03be138291de | 80 | void printHelp(); |
Sigma884 | 0:03be138291de | 81 | |
Sigma884 | 0:03be138291de | 82 | void sendDownLink();//無線あり |
Sigma884 | 0:03be138291de | 83 | void readUpLink(); //無線あり |
Sigma884 | 0:03be138291de | 84 | |
Sigma884 | 0:03be138291de | 85 | void startRecSlow(); |
Sigma884 | 0:03be138291de | 86 | void startRecFast(); |
Sigma884 | 0:03be138291de | 87 | void stopRec(); |
Sigma884 | 0:03be138291de | 88 | void recData(); |
Sigma884 | 0:03be138291de | 89 | |
Sigma884 | 0:03be138291de | 90 | |
Sigma884 | 0:03be138291de | 91 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 92 | 変数の宣言 |
Sigma884 | 0:03be138291de | 93 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 94 | char CanSat_phase; |
Sigma884 | 0:03be138291de | 95 | bool do_first = false; |
Sigma884 | 0:03be138291de | 96 | |
Sigma884 | 0:03be138291de | 97 | bool es920_using = false; |
Sigma884 | 0:03be138291de | 98 | char es920_uplink_command = '-'; |
Sigma884 | 0:03be138291de | 99 | |
Sigma884 | 0:03be138291de | 100 | float adxl_acc[3]; |
Sigma884 | 0:03be138291de | 101 | |
Sigma884 | 0:03be138291de | 102 | float ina_v, ina_i; |
Sigma884 | 0:03be138291de | 103 | |
Sigma884 | 0:03be138291de | 104 | double amg[9], quart[4], euler[3]; |
Sigma884 | 0:03be138291de | 105 | |
Sigma884 | 0:03be138291de | 106 | float pres, temp, hum, alt, pres_0, temp_0; |
Sigma884 | 0:03be138291de | 107 | float pres_now; |
Sigma884 | 0:03be138291de | 108 | int speed_time_old; |
Sigma884 | 0:03be138291de | 109 | float alt_buf[10], alt_ave, alt_ave_old, speed, speed_buf[10], speed_ave; |
Sigma884 | 0:03be138291de | 110 | int alt_count = 0, speed_count = 0; |
Sigma884 | 0:03be138291de | 111 | |
Sigma884 | 0:03be138291de | 112 | float gps_lat, gps_lon, gps_alt, gps_utc[6], gps_knot, gps_deg; |
Sigma884 | 0:03be138291de | 113 | int gps_sat; |
Sigma884 | 0:03be138291de | 114 | bool gps_yn; |
Sigma884 | 0:03be138291de | 115 | |
Sigma884 | 0:03be138291de | 116 | bool flight_pin; |
Sigma884 | 0:03be138291de | 117 | |
Sigma884 | 0:03be138291de | 118 | FILE *fp; |
Sigma884 | 0:03be138291de | 119 | bool save_slow = false; |
Sigma884 | 0:03be138291de | 120 | bool save_fast = false; |
Sigma884 | 0:03be138291de | 121 | int save_c = 0; |
Sigma884 | 0:03be138291de | 122 | |
Sigma884 | 0:03be138291de | 123 | int time_read, time_reset = 0; |
Sigma884 | 0:03be138291de | 124 | int time_min, time_sec, time_ms; |
Sigma884 | 0:03be138291de | 125 | |
Sigma884 | 0:03be138291de | 126 | int flight_time_read, flight_time_read_old, flight_time_reset = 0; |
Sigma884 | 0:03be138291de | 127 | int flight_time_min, flight_time_sec, flight_time_ms; |
Sigma884 | 0:03be138291de | 128 | |
Sigma884 | 0:03be138291de | 129 | |
Sigma884 | 0:03be138291de | 130 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 131 | 定数 |
Sigma884 | 0:03be138291de | 132 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 133 | |
Sigma884 | 0:03be138291de | 134 | |
Sigma884 | 0:03be138291de | 135 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 136 | 無線のヘッダまとめ(CANSAT -> GND) |
Sigma884 | 0:03be138291de | 137 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 138 | const char HEADER_SENSOR_SETUP = 0x01; |
Sigma884 | 0:03be138291de | 139 | // 0x01, ADXL, INA, BME, BNO, CCS, PRES, SD |
Sigma884 | 0:03be138291de | 140 | // 0 1 1 1 1 1 1 1 |
Sigma884 | 0:03be138291de | 141 | // 0 1 2 3 4 5 6 |
Sigma884 | 0:03be138291de | 142 | |
Sigma884 | 0:03be138291de | 143 | const char HEADER_GPS_SETUP = 0x02; |
Sigma884 | 0:03be138291de | 144 | // 0x02, readable, wait_count |
Sigma884 | 0:03be138291de | 145 | // 0 1 4 |
Sigma884 | 0:03be138291de | 146 | // 0 1 |
Sigma884 | 0:03be138291de | 147 | // 0x00 : NG |
Sigma884 | 0:03be138291de | 148 | // 0x01 : OK |
Sigma884 | 0:03be138291de | 149 | // 0xAA : Finish |
Sigma884 | 0:03be138291de | 150 | // 0xFF : Ignore |
Sigma884 | 0:03be138291de | 151 | |
Sigma884 | 0:03be138291de | 152 | const char HEADER_DATA = 0x10; |
Sigma884 | 0:03be138291de | 153 | |
Sigma884 | 0:03be138291de | 154 | const char HEADER_START = 0x11; |
Sigma884 | 0:03be138291de | 155 | |
Sigma884 | 0:03be138291de | 156 | |
Sigma884 | 0:03be138291de | 157 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 158 | 無線のヘッダまとめ(GND -> CANSAT) |
Sigma884 | 0:03be138291de | 159 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 160 | const char HEADER_COMMAND = 0xcd: |
Sigma884 | 0:03be138291de | 161 | // 0xcd, command |
Sigma884 | 0:03be138291de | 162 | // 0 1 |
Sigma884 | 0:03be138291de | 163 | // 0 |
Sigma884 | 0:03be138291de | 164 | |
Sigma884 | 0:03be138291de | 165 | |
Sigma884 | 0:03be138291de | 166 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 167 | CanSatのフェーズ |
Sigma884 | 0:03be138291de | 168 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 169 | const char CANSAT_SETUP = 0x00; //セットアップ中 |
Sigma884 | 0:03be138291de | 170 | const char CANSAT_SAFETY = 0x01; //安全モード |
Sigma884 | 0:03be138291de | 171 | const char CANSAT_WAIT = 0x02; //待機モード |
Sigma884 | 0:03be138291de | 172 | const char CANSAT_FLIGHT = 0x03; //フライトモード |
Sigma884 | 0:03be138291de | 173 | const char CANSAT_RECOVERY = 0x04; //回収モード |
Sigma884 | 0:03be138291de | 174 | |
Sigma884 | 0:03be138291de | 175 | |
Sigma884 | 0:03be138291de | 176 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 177 | メイン関数 |
Sigma884 | 0:03be138291de | 178 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 179 | int main() { |
Sigma884 | 0:03be138291de | 180 | CanSat_phase = CANSAT_SETUP; |
Sigma884 | 0:03be138291de | 181 | setup(); |
Sigma884 | 0:03be138291de | 182 | |
Sigma884 | 0:03be138291de | 183 | pc.attach(&readPC, Serial::RxIrq); |
Sigma884 | 0:03be138291de | 184 | |
Sigma884 | 0:03be138291de | 185 | tick_gps.attach(&readGPS, 1.0/GPS_freq); |
Sigma884 | 0:03be138291de | 186 | tick_print.attach(&printData, 1.0f); |
Sigma884 | 0:03be138291de | 187 | tick_header_data.attach(&sendDownLink, 1.0f); |
Sigma884 | 0:03be138291de | 188 | |
Sigma884 | 0:03be138291de | 189 | es920.attach(&readUpLink, HEADER_COMMAND); |
Sigma884 | 0:03be138291de | 190 | |
Sigma884 | 0:03be138291de | 191 | FlightPin.mode(PullUp); |
Sigma884 | 0:03be138291de | 192 | |
Sigma884 | 0:03be138291de | 193 | time_main.reset(); |
Sigma884 | 0:03be138291de | 194 | time_main.start(); |
Sigma884 | 0:03be138291de | 195 | startRecSlow(); |
Sigma884 | 0:03be138291de | 196 | |
Sigma884 | 0:03be138291de | 197 | CanSat_phase = CANSAT_SAFETY; |
Sigma884 | 0:03be138291de | 198 | while(1) { |
Sigma884 | 0:03be138291de | 199 | readSensor(); |
Sigma884 | 0:03be138291de | 200 | recData(); |
Sigma884 | 0:03be138291de | 201 | modeChange(); //状態遷移の判断 |
Sigma884 | 0:03be138291de | 202 | } |
Sigma884 | 0:03be138291de | 203 | } |
Sigma884 | 0:03be138291de | 204 | |
Sigma884 | 0:03be138291de | 205 | |
Sigma884 | 0:03be138291de | 206 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 207 | 状態遷移の判断 |
Sigma884 | 0:03be138291de | 208 | 無線あり:HEADER_START |
Sigma884 | 0:03be138291de | 209 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 210 | void modeChange(); |
Sigma884 | 0:03be138291de | 211 | |
Sigma884 | 0:03be138291de | 212 | |
Sigma884 | 0:03be138291de | 213 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 214 | センサー読み取り |
Sigma884 | 0:03be138291de | 215 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 216 | void readSensor(); |
Sigma884 | 0:03be138291de | 217 | |
Sigma884 | 0:03be138291de | 218 | |
Sigma884 | 0:03be138291de | 219 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 220 | GPS読み取り |
Sigma884 | 0:03be138291de | 221 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 222 | void readGPS(); |
Sigma884 | 0:03be138291de | 223 | |
Sigma884 | 0:03be138291de | 224 | |
Sigma884 | 0:03be138291de | 225 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 226 | データ表示 |
Sigma884 | 0:03be138291de | 227 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 228 | void printData(); |
Sigma884 | 0:03be138291de | 229 | |
Sigma884 | 0:03be138291de | 230 | |
Sigma884 | 0:03be138291de | 231 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 232 | PC読み取り |
Sigma884 | 0:03be138291de | 233 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 234 | void readPC(); |
Sigma884 | 0:03be138291de | 235 | |
Sigma884 | 0:03be138291de | 236 | |
Sigma884 | 0:03be138291de | 237 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 238 | ヘルプ表示 |
Sigma884 | 0:03be138291de | 239 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 240 | void printHelp(); |
Sigma884 | 0:03be138291de | 241 | |
Sigma884 | 0:03be138291de | 242 | |
Sigma884 | 0:03be138291de | 243 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 244 | ダウンリンク送信 |
Sigma884 | 0:03be138291de | 245 | 無線あり:HEADER_DATA |
Sigma884 | 0:03be138291de | 246 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 247 | void sendDownLink(); |
Sigma884 | 0:03be138291de | 248 | |
Sigma884 | 0:03be138291de | 249 | |
Sigma884 | 0:03be138291de | 250 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 251 | アップリンク受信 |
Sigma884 | 0:03be138291de | 252 | 無線あり:HEADER_COMMAND |
Sigma884 | 0:03be138291de | 253 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 254 | void readUpLink(); |
Sigma884 | 0:03be138291de | 255 | |
Sigma884 | 0:03be138291de | 256 | |
Sigma884 | 0:03be138291de | 257 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 258 | データを1秒ごとに書き込み開始 |
Sigma884 | 0:03be138291de | 259 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 260 | void startRecSlow(); |
Sigma884 | 0:03be138291de | 261 | |
Sigma884 | 0:03be138291de | 262 | |
Sigma884 | 0:03be138291de | 263 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 264 | データを最速で書き込み開始 |
Sigma884 | 0:03be138291de | 265 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 266 | void startRecFast(); |
Sigma884 | 0:03be138291de | 267 | |
Sigma884 | 0:03be138291de | 268 | |
Sigma884 | 0:03be138291de | 269 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 270 | データ記録停止 |
Sigma884 | 0:03be138291de | 271 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 272 | void stopRec(); |
Sigma884 | 0:03be138291de | 273 | |
Sigma884 | 0:03be138291de | 274 | |
Sigma884 | 0:03be138291de | 275 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 276 | データの記録 |
Sigma884 | 0:03be138291de | 277 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 278 | void recData(); |
Sigma884 | 0:03be138291de | 279 | |
Sigma884 | 0:03be138291de | 280 | |
Sigma884 | 0:03be138291de | 281 | /******************************************************************************* |
Sigma884 | 0:03be138291de | 282 | セットアップ(最初に1回実行) |
Sigma884 | 0:03be138291de | 283 | 無線あり:HEADER_SETUP_SENSOR |
Sigma884 | 0:03be138291de | 284 | 無線あり:HEADER_GPS_SETUP |
Sigma884 | 0:03be138291de | 285 | *******************************************************************************/ |
Sigma884 | 0:03be138291de | 286 | void setup(){ |
Sigma884 | 0:03be138291de | 287 | wait(1.0f); |
Sigma884 | 0:03be138291de | 288 | char setup_string[1024]; |
Sigma884 | 0:03be138291de | 289 | |
Sigma884 | 0:03be138291de | 290 | pc.printf("\r\n******************************\r\n"); |
Sigma884 | 0:03be138291de | 291 | pc.printf("Sensor Setting Start!!\r\n"); |
Sigma884 | 0:03be138291de | 292 | strcat(setup_string, "Sensor Setting Start!!\r\n"); |
Sigma884 | 0:03be138291de | 293 | es920 << HEADER_SENSOR_SETUP; |
Sigma884 | 0:03be138291de | 294 | |
Sigma884 | 0:03be138291de | 295 | //////////////////////////////////////////////////ADXL375 |
Sigma884 | 0:03be138291de | 296 | ADXL375.setDataRate(ADXL375_100HZ); |
Sigma884 | 0:03be138291de | 297 | if(ADXL375.whoAmI() == 1){ |
Sigma884 | 0:03be138291de | 298 | pc.printf("ADXL375 : OK\r\n"); |
Sigma884 | 0:03be138291de | 299 | strcat(setup_string, "ADXL375 : OK\r\n"); |
Sigma884 | 0:03be138291de | 300 | es920 << (char)0x01; |
Sigma884 | 0:03be138291de | 301 | } |
Sigma884 | 0:03be138291de | 302 | else{ |
Sigma884 | 0:03be138291de | 303 | pc.printf("ADXL375 : NG\r\n"); |
Sigma884 | 0:03be138291de | 304 | strcat(setup_string, "ADXL375 : NG\r\n"); |
Sigma884 | 0:03be138291de | 305 | es920 << (char)0x00; |
Sigma884 | 0:03be138291de | 306 | } |
Sigma884 | 0:03be138291de | 307 | ADXL375.offset(0.0f, 0.0f, 0.0f); |
Sigma884 | 0:03be138291de | 308 | |
Sigma884 | 0:03be138291de | 309 | //////////////////////////////////////////////////INA226 |
Sigma884 | 0:03be138291de | 310 | INA226.set_callibretion(); |
Sigma884 | 0:03be138291de | 311 | if(INA226.Connection_check() == 0){ |
Sigma884 | 0:03be138291de | 312 | pc.printf("INA226 : OK\r\n"); |
Sigma884 | 0:03be138291de | 313 | strcat(setup_string, "INA226 : OK!!\r\n"); |
Sigma884 | 0:03be138291de | 314 | es920 << (char)0x01; |
Sigma884 | 0:03be138291de | 315 | } |
Sigma884 | 0:03be138291de | 316 | else{ |
Sigma884 | 0:03be138291de | 317 | pc.printf("INA226 : NG\r\n"); |
Sigma884 | 0:03be138291de | 318 | strcat(setup_string, "INA226 : NG\r\n"); |
Sigma884 | 0:03be138291de | 319 | es920 << (char)0x00; |
Sigma884 | 0:03be138291de | 320 | } |
Sigma884 | 0:03be138291de | 321 | |
Sigma884 | 0:03be138291de | 322 | //////////////////////////////////////////////////BME280 |
Sigma884 | 0:03be138291de | 323 | BME280.configMeasure(BME280_lib::NORMAL, 1, 2, 1); |
Sigma884 | 0:03be138291de | 324 | BME280.configFilter(4); |
Sigma884 | 0:03be138291de | 325 | if(BME280.connectCheck() == 1){ |
Sigma884 | 0:03be138291de | 326 | pc.printf("BME280 OK!!\r\n"); |
Sigma884 | 0:03be138291de | 327 | strcat(setup_string, "BME280 : OK!!\r\n"); |
Sigma884 | 0:03be138291de | 328 | es920 << (char)0x01; |
Sigma884 | 0:03be138291de | 329 | } |
Sigma884 | 0:03be138291de | 330 | else{ |
Sigma884 | 0:03be138291de | 331 | pc.printf("BME280 NG\r\n"); |
Sigma884 | 0:03be138291de | 332 | strcat(setup_string, "BME280 : NG\r\n"); |
Sigma884 | 0:03be138291de | 333 | es920 << (char)0x00; |
Sigma884 | 0:03be138291de | 334 | } |
Sigma884 | 0:03be138291de | 335 | |
Sigma884 | 0:03be138291de | 336 | //////////////////////////////////////////////////BNO055 |
Sigma884 | 0:03be138291de | 337 | BNO055.setOperationMode(BNO055_lib::CONFIG); |
Sigma884 | 0:03be138291de | 338 | BNO055.setAccRange(BNO055_lib::_16G); |
Sigma884 | 0:03be138291de | 339 | BNO055.setAxis(BNO055_lib::Z, BNO055_lib::Y, BNO055_lib::X); |
Sigma884 | 0:03be138291de | 340 | BNO055.setAxisPM(1, 1, -1); |
Sigma884 | 0:03be138291de | 341 | if(BNO055.connectCheck() == 1){ |
Sigma884 | 0:03be138291de | 342 | pc.printf("BNO055 OK!!\r\n"); |
Sigma884 | 0:03be138291de | 343 | strcat(setup_string, "BNO055 : OK!!\r\n"); |
Sigma884 | 0:03be138291de | 344 | es920 << (char)0x01; |
Sigma884 | 0:03be138291de | 345 | } |
Sigma884 | 0:03be138291de | 346 | else{ |
Sigma884 | 0:03be138291de | 347 | pc.printf("BNO055 NG\r\n"); |
Sigma884 | 0:03be138291de | 348 | strcat(setup_string, "BNO055 : NG\r\n"); |
Sigma884 | 0:03be138291de | 349 | es920 << (char)0x00; |
Sigma884 | 0:03be138291de | 350 | } |
Sigma884 | 0:03be138291de | 351 | |
Sigma884 | 0:03be138291de | 352 | //////////////////////////////////////////////////CCS811 |
Sigma884 | 0:03be138291de | 353 | if(CCS811.connectCheck() == 1){ |
Sigma884 | 0:03be138291de | 354 | pc.printf("CCS811 OK!!\r\n"); |
Sigma884 | 0:03be138291de | 355 | strcat(setup_string, "CCS811 : OK!!\r\n"); |
Sigma884 | 0:03be138291de | 356 | es920 << (char)0x01; |
Sigma884 | 0:03be138291de | 357 | } |
Sigma884 | 0:03be138291de | 358 | else{ |
Sigma884 | 0:03be138291de | 359 | pc.printf("CCS811 NG\r\n"); |
Sigma884 | 0:03be138291de | 360 | strcat(setup_string, "CCS811 : NG\r\n"); |
Sigma884 | 0:03be138291de | 361 | es920 << (char)0x00; |
Sigma884 | 0:03be138291de | 362 | } |
Sigma884 | 0:03be138291de | 363 | |
Sigma884 | 0:03be138291de | 364 | //////////////////////////////////////////////////圧力センサ |
Sigma884 | 0:03be138291de | 365 | pc.printf("PRES : "); |
Sigma884 | 0:03be138291de | 366 | ADS1115.setGain(GAIN_TWOTHIRDS); |
Sigma884 | 0:03be138291de | 367 | pc.printf("OK!!\r\n"); |
Sigma884 | 0:03be138291de | 368 | strcat(setup_string, "PRES : OK!!\r\n"); |
Sigma884 | 0:03be138291de | 369 | es920 << (char)0x01; |
Sigma884 | 0:03be138291de | 370 | |
Sigma884 | 0:03be138291de | 371 | //////////////////////////////////////////////////SD |
Sigma884 | 0:03be138291de | 372 | fp = fopen("/sd/Space_SWAN_setup.txt", "r"); |
Sigma884 | 0:03be138291de | 373 | if(fp != NULL){ |
Sigma884 | 0:03be138291de | 374 | pc.printf("SD : OK!!\r\n"); |
Sigma884 | 0:03be138291de | 375 | strcat(setup_string, "SD : OK!!\r\n"); |
Sigma884 | 0:03be138291de | 376 | es920 << (char)0x01; |
Sigma884 | 0:03be138291de | 377 | fclose(fp); |
Sigma884 | 0:03be138291de | 378 | } |
Sigma884 | 0:03be138291de | 379 | else{ |
Sigma884 | 0:03be138291de | 380 | pc.printf("SD : NG...\r\n"); |
Sigma884 | 0:03be138291de | 381 | strcat(setup_string, "SD : NG...\r\n"); |
Sigma884 | 0:03be138291de | 382 | es920 << (char)0x00; |
Sigma884 | 0:03be138291de | 383 | } |
Sigma884 | 0:03be138291de | 384 | |
Sigma884 | 0:03be138291de | 385 | pc.printf("Sensor Setting Finished!!\r\n"); |
Sigma884 | 0:03be138291de | 386 | pc.printf("******************************\r\n"); |
Sigma884 | 0:03be138291de | 387 | strcat(setup_string, "Sensor Setting Finished!!\r\n"); |
Sigma884 | 0:03be138291de | 388 | es920.send(); |
Sigma884 | 0:03be138291de | 389 | wait(1.0f); |
Sigma884 | 0:03be138291de | 390 | |
Sigma884 | 0:03be138291de | 391 | pc.printf("\r\n******************************\r\n"); |
Sigma884 | 0:03be138291de | 392 | if(wait_GPS){ |
Sigma884 | 0:03be138291de | 393 | pc.printf("GPS Setting Start!!\r\n"); |
Sigma884 | 0:03be138291de | 394 | strcat(setup_string, "GPS Setting Start!!\r\n"); |
Sigma884 | 0:03be138291de | 395 | |
Sigma884 | 0:03be138291de | 396 | pc.printf("Waiting : 0"); |
Sigma884 | 0:03be138291de | 397 | strcat(setup_string, "Wait : "); |
Sigma884 | 0:03be138291de | 398 | int gps_wait_count = 0; |
Sigma884 | 0:03be138291de | 399 | while(!GPS.gps_readable){ |
Sigma884 | 0:03be138291de | 400 | pc.printf("\rWaiting : %d", gps_wait_count);// |
Sigma884 | 0:03be138291de | 401 | es920 << HEADER_GPS_SETUP; |
Sigma884 | 0:03be138291de | 402 | es920 << (char)GPS.gps_readable; |
Sigma884 | 0:03be138291de | 403 | es920 << (int)gps_wait_count; |
Sigma884 | 0:03be138291de | 404 | es920.send(); |
Sigma884 | 0:03be138291de | 405 | wait(1.0f); |
Sigma884 | 0:03be138291de | 406 | gps_wait_count ++; |
Sigma884 | 0:03be138291de | 407 | } |
Sigma884 | 0:03be138291de | 408 | char ss[8]; |
Sigma884 | 0:03be138291de | 409 | sprintf(ss, "%d", gps_wait_count); |
Sigma884 | 0:03be138291de | 410 | strcat(setup_string, ss); |
Sigma884 | 0:03be138291de | 411 | pc.printf(" OK!!\r\n"); |
Sigma884 | 0:03be138291de | 412 | strcat(setup_string, " OK!!\r\n"); |
Sigma884 | 0:03be138291de | 413 | pc.printf("GPS Setting Finished!!\r\n"); |
Sigma884 | 0:03be138291de | 414 | strcat(setup_string, "GPS Setting Finished!!\r\n"); |
Sigma884 | 0:03be138291de | 415 | es920 << HEADER_GPS_SETUP; |
Sigma884 | 0:03be138291de | 416 | es920 << (char)0xAA; |
Sigma884 | 0:03be138291de | 417 | es920 << (int)0; |
Sigma884 | 0:03be138291de | 418 | es920.send(); |
Sigma884 | 0:03be138291de | 419 | } |
Sigma884 | 0:03be138291de | 420 | else{ |
Sigma884 | 0:03be138291de | 421 | pc.printf("GPS Setting Ignore...\r\n"); |
Sigma884 | 0:03be138291de | 422 | strcat(setup_string, "GPS Setting Ignore...\r\n"); |
Sigma884 | 0:03be138291de | 423 | es920 << HEADER_GPS_SETUP; |
Sigma884 | 0:03be138291de | 424 | es920 << (char)0xFF; |
Sigma884 | 0:03be138291de | 425 | es920 << (int)0; |
Sigma884 | 0:03be138291de | 426 | es920.send(); |
Sigma884 | 0:03be138291de | 427 | } |
Sigma884 | 0:03be138291de | 428 | pc.printf("******************************\r\n"); |
Sigma884 | 0:03be138291de | 429 | fp = fopen(file_name, "a"); |
Sigma884 | 0:03be138291de | 430 | fprintf(fp, setup_string); |
Sigma884 | 0:03be138291de | 431 | fclose(fp); |
Sigma884 | 0:03be138291de | 432 | setup_string[0] = NULL; |
Sigma884 | 0:03be138291de | 433 | |
Sigma884 | 0:03be138291de | 434 | printHelp(); |
Sigma884 | 0:03be138291de | 435 | wait(1.0f); |
Sigma884 | 0:03be138291de | 436 | } |