GPS,LPC,xbee==
Dependencies: mbed LPS25HB_I2C
main.cpp@1:bfd9df900c4f, 2022-08-05 (annotated)
- Committer:
- kosukesuzuki
- Date:
- Fri Aug 05 10:29:38 2022 +0000
- Revision:
- 1:bfd9df900c4f
- Parent:
- 0:f20bcf1efbc2
?
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kosukesuzuki | 0:f20bcf1efbc2 | 1 | #include "mbed.h" |
kosukesuzuki | 0:f20bcf1efbc2 | 2 | |
kosukesuzuki | 0:f20bcf1efbc2 | 3 | //#include "" //SDcardで使用 |
kosukesuzuki | 0:f20bcf1efbc2 | 4 | |
kosukesuzuki | 0:f20bcf1efbc2 | 5 | #include "LPS.h" //気圧で使用 |
kosukesuzuki | 0:f20bcf1efbc2 | 6 | |
kosukesuzuki | 0:f20bcf1efbc2 | 7 | #include "math.h" //GPSで使用 |
kosukesuzuki | 0:f20bcf1efbc2 | 8 | |
kosukesuzuki | 1:bfd9df900c4f | 9 | Serial xbee(PB_6, PB_7); //xbee pin |
kosukesuzuki | 1:bfd9df900c4f | 10 | //Serial gps(D1,D0); //GPS後で変える |
kosukesuzuki | 0:f20bcf1efbc2 | 11 | Serial pc(USBRX,USBTX); //衛星側のpin |
kosukesuzuki | 0:f20bcf1efbc2 | 12 | |
kosukesuzuki | 0:f20bcf1efbc2 | 13 | I2C i2c(D0,D1); //気圧 pin |
kosukesuzuki | 0:f20bcf1efbc2 | 14 | LPS ps(i2c); |
kosukesuzuki | 0:f20bcf1efbc2 | 15 | |
kosukesuzuki | 0:f20bcf1efbc2 | 16 | |
kosukesuzuki | 0:f20bcf1efbc2 | 17 | Timer t; //時間を定義 |
kosukesuzuki | 0:f20bcf1efbc2 | 18 | const float dt = 1; //wait_us(dt)で使用:データの間隔 |
kosukesuzuki | 0:f20bcf1efbc2 | 19 | |
kosukesuzuki | 0:f20bcf1efbc2 | 20 | |
kosukesuzuki | 0:f20bcf1efbc2 | 21 | int i; //回数カウント用 |
kosukesuzuki | 0:f20bcf1efbc2 | 22 | |
kosukesuzuki | 0:f20bcf1efbc2 | 23 | float data1[10]; //気圧の較正用データ |
kosukesuzuki | 0:f20bcf1efbc2 | 24 | float sum = 0; //合計値(初期化) |
kosukesuzuki | 0:f20bcf1efbc2 | 25 | float ave; //気圧の標高平均 |
kosukesuzuki | 0:f20bcf1efbc2 | 26 | |
kosukesuzuki | 0:f20bcf1efbc2 | 27 | |
kosukesuzuki | 0:f20bcf1efbc2 | 28 | //データ格納 |
kosukesuzuki | 0:f20bcf1efbc2 | 29 | //気圧センサ |
kosukesuzuki | 0:f20bcf1efbc2 | 30 | float dataPa[10]; //気圧 圧力 |
kosukesuzuki | 0:f20bcf1efbc2 | 31 | float dataAl[10]; //気圧 標高 |
kosukesuzuki | 0:f20bcf1efbc2 | 32 | float dataTe[10]; //気圧 温度 |
kosukesuzuki | 0:f20bcf1efbc2 | 33 | |
kosukesuzuki | 1:bfd9df900c4f | 34 | /* |
kosukesuzuki | 0:f20bcf1efbc2 | 35 | //GPSセンサ |
kosukesuzuki | 0:f20bcf1efbc2 | 36 | float dataLat[10]; //GSP 緯度 |
kosukesuzuki | 0:f20bcf1efbc2 | 37 | float dataLon[10]; //GPS 経度 |
kosukesuzuki | 0:f20bcf1efbc2 | 38 | float dataH[10]; //GPS ジオイド高さ |
kosukesuzuki | 1:bfd9df900c4f | 39 | */ |
kosukesuzuki | 0:f20bcf1efbc2 | 40 | |
kosukesuzuki | 1:bfd9df900c4f | 41 | /* |
kosukesuzuki | 0:f20bcf1efbc2 | 42 | |
kosukesuzuki | 0:f20bcf1efbc2 | 43 | //GPS |
kosukesuzuki | 0:f20bcf1efbc2 | 44 | Timer timer_open; |
kosukesuzuki | 0:f20bcf1efbc2 | 45 | Timer timer_log; |
kosukesuzuki | 0:f20bcf1efbc2 | 46 | Ticker tic_open; |
kosukesuzuki | 0:f20bcf1efbc2 | 47 | Ticker tic_log; |
kosukesuzuki | 0:f20bcf1efbc2 | 48 | |
kosukesuzuki | 0:f20bcf1efbc2 | 49 | float _DMS2DEG(float raw_data); |
kosukesuzuki | 0:f20bcf1efbc2 | 50 | int _imput(char cha); |
kosukesuzuki | 0:f20bcf1efbc2 | 51 | |
kosukesuzuki | 0:f20bcf1efbc2 | 52 | float Time; |
kosukesuzuki | 0:f20bcf1efbc2 | 53 | char gps_data[256]; |
kosukesuzuki | 0:f20bcf1efbc2 | 54 | int cnt_gps; |
kosukesuzuki | 0:f20bcf1efbc2 | 55 | int Cnt_GPS=0; |
kosukesuzuki | 0:f20bcf1efbc2 | 56 | |
kosukesuzuki | 1:bfd9df900c4f | 57 | */ |
kosukesuzuki | 0:f20bcf1efbc2 | 58 | |
kosukesuzuki | 0:f20bcf1efbc2 | 59 | int main() { //1 |
kosukesuzuki | 0:f20bcf1efbc2 | 60 | |
kosukesuzuki | 0:f20bcf1efbc2 | 61 | pc.printf("settig start\r\n"); |
kosukesuzuki | 0:f20bcf1efbc2 | 62 | xbee.printf("settig start\r\n"); |
kosukesuzuki | 0:f20bcf1efbc2 | 63 | |
kosukesuzuki | 0:f20bcf1efbc2 | 64 | /**************************************************************/ |
kosukesuzuki | 0:f20bcf1efbc2 | 65 | //ここに気圧の標高の較正とGPSの接続を行う。 |
kosukesuzuki | 0:f20bcf1efbc2 | 66 | |
kosukesuzuki | 0:f20bcf1efbc2 | 67 | //気圧(所要時間約20秒) |
kosukesuzuki | 0:f20bcf1efbc2 | 68 | if (!ps.init()){ //2 |
kosukesuzuki | 0:f20bcf1efbc2 | 69 | printf("Failed to autodetect pressure sensor!\r\n"); |
kosukesuzuki | 0:f20bcf1efbc2 | 70 | while (1); |
kosukesuzuki | 0:f20bcf1efbc2 | 71 | } //2 |
kosukesuzuki | 0:f20bcf1efbc2 | 72 | |
kosukesuzuki | 0:f20bcf1efbc2 | 73 | ps.enableDefault(); |
kosukesuzuki | 0:f20bcf1efbc2 | 74 | |
kosukesuzuki | 0:f20bcf1efbc2 | 75 | for(i=0;i<10;i++){ //2 |
kosukesuzuki | 0:f20bcf1efbc2 | 76 | float pressure = ps.readPressureMillibars(); |
kosukesuzuki | 0:f20bcf1efbc2 | 77 | float altitude = ps.pressureToAltitudeMeters(pressure); |
kosukesuzuki | 0:f20bcf1efbc2 | 78 | float temperature = ps.readTemperatureC(); |
kosukesuzuki | 0:f20bcf1efbc2 | 79 | wait(1); |
kosukesuzuki | 0:f20bcf1efbc2 | 80 | } //2 |
kosukesuzuki | 0:f20bcf1efbc2 | 81 | |
kosukesuzuki | 0:f20bcf1efbc2 | 82 | for(i=0;i<10;i++){ //2 |
kosukesuzuki | 0:f20bcf1efbc2 | 83 | float pressure = ps.readPressureMillibars(); |
kosukesuzuki | 0:f20bcf1efbc2 | 84 | float altitude = ps.pressureToAltitudeMeters(pressure); |
kosukesuzuki | 0:f20bcf1efbc2 | 85 | data1[i] = altitude; |
kosukesuzuki | 0:f20bcf1efbc2 | 86 | sum = sum + data1[i]; |
kosukesuzuki | 0:f20bcf1efbc2 | 87 | wait(1); |
kosukesuzuki | 0:f20bcf1efbc2 | 88 | } //2 |
kosukesuzuki | 0:f20bcf1efbc2 | 89 | |
kosukesuzuki | 0:f20bcf1efbc2 | 90 | ave = sum/10; |
kosukesuzuki | 0:f20bcf1efbc2 | 91 | xbee.printf("0 altitude = %f\r\n",ave); |
kosukesuzuki | 0:f20bcf1efbc2 | 92 | |
kosukesuzuki | 1:bfd9df900c4f | 93 | /* |
kosukesuzuki | 0:f20bcf1efbc2 | 94 | //GPS |
kosukesuzuki | 0:f20bcf1efbc2 | 95 | while(1){ //2 |
kosukesuzuki | 0:f20bcf1efbc2 | 96 | if(gps.readable()){ //3 |
kosukesuzuki | 0:f20bcf1efbc2 | 97 | gps_data[cnt_gps]=gps.getc(); |
kosukesuzuki | 0:f20bcf1efbc2 | 98 | if(gps_data[cnt_gps]=='$' || cnt_gps==256){ //4 |
kosukesuzuki | 0:f20bcf1efbc2 | 99 | cnt_gps=0; |
kosukesuzuki | 0:f20bcf1efbc2 | 100 | memset(gps_data,'\0',256); |
kosukesuzuki | 0:f20bcf1efbc2 | 101 | }else if (gps_data[cnt_gps]=='\r'){ //4 |
kosukesuzuki | 0:f20bcf1efbc2 | 102 | float world_time, lon_east, lat_north; |
kosukesuzuki | 0:f20bcf1efbc2 | 103 | int rlock, sat_num; |
kosukesuzuki | 0:f20bcf1efbc2 | 104 | char lat,lon; |
kosukesuzuki | 0:f20bcf1efbc2 | 105 | if(sscanf(gps_data,"GPGGA,%f,%f,%c,%f,%c,%d,%d",&world_time,&lat_north,&lat,&lon_east,&lon,&rlock,&sat_num)>=1){ //5 |
kosukesuzuki | 0:f20bcf1efbc2 | 106 | if(rlock==1){ //6 |
kosukesuzuki | 0:f20bcf1efbc2 | 107 | lat_north=_DMS2DEG(lat_north); |
kosukesuzuki | 0:f20bcf1efbc2 | 108 | lon_east=_DMS2DEG(lon_east); |
kosukesuzuki | 0:f20bcf1efbc2 | 109 | //printf("Lat:%f,Lon:%f\r\ntime:%f,sat_num:%d\r\n", |
kosukesuzuki | 0:f20bcf1efbc2 | 110 | //lat_north,lon_east,world_time,sat_num); |
kosukesuzuki | 0:f20bcf1efbc2 | 111 | |
kosukesuzuki | 0:f20bcf1efbc2 | 112 | /*******************************/ |
kosukesuzuki | 0:f20bcf1efbc2 | 113 | |
kosukesuzuki | 1:bfd9df900c4f | 114 | //goto lav; |
kosukesuzuki | 0:f20bcf1efbc2 | 115 | |
kosukesuzuki | 0:f20bcf1efbc2 | 116 | /*******************************/ |
kosukesuzuki | 1:bfd9df900c4f | 117 | /*//koko |
kosukesuzuki | 0:f20bcf1efbc2 | 118 | |
kosukesuzuki | 0:f20bcf1efbc2 | 119 | }else{//6 |
kosukesuzuki | 0:f20bcf1efbc2 | 120 | //printf("%s\r\n",gps_data); |
kosukesuzuki | 0:f20bcf1efbc2 | 121 | } //6 |
kosukesuzuki | 0:f20bcf1efbc2 | 122 | } //5 |
kosukesuzuki | 0:f20bcf1efbc2 | 123 | }else{ //4 |
kosukesuzuki | 0:f20bcf1efbc2 | 124 | cnt_gps++; |
kosukesuzuki | 0:f20bcf1efbc2 | 125 | } //4 |
kosukesuzuki | 0:f20bcf1efbc2 | 126 | }//3 |
kosukesuzuki | 0:f20bcf1efbc2 | 127 | if(timer_log.read()>=30.0*60.0) timer_log.reset(); |
kosukesuzuki | 0:f20bcf1efbc2 | 128 | }//2 |
kosukesuzuki | 0:f20bcf1efbc2 | 129 | |
kosukesuzuki | 0:f20bcf1efbc2 | 130 | |
kosukesuzuki | 0:f20bcf1efbc2 | 131 | lav: //goto lav;より |
kosukesuzuki | 1:bfd9df900c4f | 132 | |
kosukesuzuki | 0:f20bcf1efbc2 | 133 | /**************************************************************/ |
kosukesuzuki | 0:f20bcf1efbc2 | 134 | |
kosukesuzuki | 0:f20bcf1efbc2 | 135 | |
kosukesuzuki | 0:f20bcf1efbc2 | 136 | //準備完了 |
kosukesuzuki | 0:f20bcf1efbc2 | 137 | |
kosukesuzuki | 0:f20bcf1efbc2 | 138 | pc.printf("Ok\r\n"); |
kosukesuzuki | 0:f20bcf1efbc2 | 139 | xbee.printf("Ok\r\n"); |
kosukesuzuki | 0:f20bcf1efbc2 | 140 | |
kosukesuzuki | 0:f20bcf1efbc2 | 141 | for (;;) { //2 |
kosukesuzuki | 0:f20bcf1efbc2 | 142 | |
kosukesuzuki | 0:f20bcf1efbc2 | 143 | //if (pc.readable()) xbee.putc(pc.getc()); |
kosukesuzuki | 0:f20bcf1efbc2 | 144 | if (xbee.readable()) pc.putc(xbee.getc()); |
kosukesuzuki | 0:f20bcf1efbc2 | 145 | wait_us(1); |
kosukesuzuki | 0:f20bcf1efbc2 | 146 | |
kosukesuzuki | 0:f20bcf1efbc2 | 147 | char cmd1 = xbee.getc(); |
kosukesuzuki | 0:f20bcf1efbc2 | 148 | |
kosukesuzuki | 1:bfd9df900c4f | 149 | /* |
kosukesuzuki | 0:f20bcf1efbc2 | 150 | //↓↓↓継続してGPSをとるため |
kosukesuzuki | 0:f20bcf1efbc2 | 151 | if(gps.readable()){ //3 |
kosukesuzuki | 0:f20bcf1efbc2 | 152 | gps_data[cnt_gps]=gps.getc(); |
kosukesuzuki | 0:f20bcf1efbc2 | 153 | if(gps_data[cnt_gps]=='$' || cnt_gps==256){ //4 |
kosukesuzuki | 0:f20bcf1efbc2 | 154 | cnt_gps=0; |
kosukesuzuki | 0:f20bcf1efbc2 | 155 | memset(gps_data,'\0',256); |
kosukesuzuki | 0:f20bcf1efbc2 | 156 | }else if (gps_data[cnt_gps]=='\r'){ //4 |
kosukesuzuki | 0:f20bcf1efbc2 | 157 | float world_time, lon_east, lat_north; |
kosukesuzuki | 0:f20bcf1efbc2 | 158 | int rlock, sat_num; |
kosukesuzuki | 0:f20bcf1efbc2 | 159 | char lat,lon; |
kosukesuzuki | 0:f20bcf1efbc2 | 160 | if(sscanf(gps_data,"GPGGA,%f,%f,%c,%f,%c,%d,%d",&world_time,&lat_north,&lat,&lon_east,&lon,&rlock,&sat_num)>=1){ //5 |
kosukesuzuki | 0:f20bcf1efbc2 | 161 | if(rlock==1){ //6 |
kosukesuzuki | 0:f20bcf1efbc2 | 162 | lat_north=_DMS2DEG(lat_north); |
kosukesuzuki | 0:f20bcf1efbc2 | 163 | lon_east=_DMS2DEG(lon_east); |
kosukesuzuki | 0:f20bcf1efbc2 | 164 | |
kosukesuzuki | 0:f20bcf1efbc2 | 165 | //printf("Lat:%f,Lon:%f\r\ntime:%f,sat_num:%d\r\n",lat_north,lon_east,world_time,sat_num); |
kosukesuzuki | 0:f20bcf1efbc2 | 166 | |
kosukesuzuki | 0:f20bcf1efbc2 | 167 | }else{ //6 |
kosukesuzuki | 0:f20bcf1efbc2 | 168 | //printf("%s\r\n",gps_data); |
kosukesuzuki | 0:f20bcf1efbc2 | 169 | } //6 |
kosukesuzuki | 0:f20bcf1efbc2 | 170 | } //5 |
kosukesuzuki | 0:f20bcf1efbc2 | 171 | }else{ //4 |
kosukesuzuki | 0:f20bcf1efbc2 | 172 | cnt_gps++; |
kosukesuzuki | 0:f20bcf1efbc2 | 173 | } //3 |
kosukesuzuki | 0:f20bcf1efbc2 | 174 | if(timer_log.read()>=30.0*60.0) timer_log.reset(); |
kosukesuzuki | 0:f20bcf1efbc2 | 175 | } //2 |
kosukesuzuki | 1:bfd9df900c4f | 176 | */ |
kosukesuzuki | 0:f20bcf1efbc2 | 177 | |
kosukesuzuki | 0:f20bcf1efbc2 | 178 | |
kosukesuzuki | 0:f20bcf1efbc2 | 179 | |
kosukesuzuki | 0:f20bcf1efbc2 | 180 | //機体の放出後→データを取る |
kosukesuzuki | 0:f20bcf1efbc2 | 181 | if(cmd1 == 'm'){ //3 |
kosukesuzuki | 0:f20bcf1efbc2 | 182 | pc.printf("start\r\n"); |
kosukesuzuki | 0:f20bcf1efbc2 | 183 | t.start(); |
kosukesuzuki | 0:f20bcf1efbc2 | 184 | cmd1 = 0; |
kosukesuzuki | 0:f20bcf1efbc2 | 185 | |
kosukesuzuki | 0:f20bcf1efbc2 | 186 | while(1){ //4 |
kosukesuzuki | 0:f20bcf1efbc2 | 187 | //if (pc.readable()) xbee.putc(pc.getc()); |
kosukesuzuki | 0:f20bcf1efbc2 | 188 | if (xbee.readable()) pc.putc(xbee.getc()); |
kosukesuzuki | 0:f20bcf1efbc2 | 189 | wait_us(1); |
kosukesuzuki | 0:f20bcf1efbc2 | 190 | char cmd2 = xbee.getc(); |
kosukesuzuki | 0:f20bcf1efbc2 | 191 | |
kosukesuzuki | 0:f20bcf1efbc2 | 192 | /***********************************************************/ |
kosukesuzuki | 0:f20bcf1efbc2 | 193 | //データ(気圧,GPS,地磁気)を取る。 |
kosukesuzuki | 0:f20bcf1efbc2 | 194 | //データの保存を10回行い, 保存する。 |
kosukesuzuki | 0:f20bcf1efbc2 | 195 | |
kosukesuzuki | 0:f20bcf1efbc2 | 196 | |
kosukesuzuki | 0:f20bcf1efbc2 | 197 | for(i=0;i<10;i++){ //データ10回とる //5 |
kosukesuzuki | 1:bfd9df900c4f | 198 | /* |
kosukesuzuki | 0:f20bcf1efbc2 | 199 | if(gps.readable()){ //6 |
kosukesuzuki | 0:f20bcf1efbc2 | 200 | gps_data[cnt_gps]=gps.getc(); |
kosukesuzuki | 0:f20bcf1efbc2 | 201 | if(gps_data[cnt_gps]=='$' || cnt_gps==256){ //7 |
kosukesuzuki | 0:f20bcf1efbc2 | 202 | cnt_gps=0; |
kosukesuzuki | 0:f20bcf1efbc2 | 203 | memset(gps_data,'\0',256); |
kosukesuzuki | 0:f20bcf1efbc2 | 204 | }else if (gps_data[cnt_gps]=='\r'){ //7 |
kosukesuzuki | 0:f20bcf1efbc2 | 205 | |
kosukesuzuki | 0:f20bcf1efbc2 | 206 | float world_time, lon_east, lat_north, rate, sea_level, g_h; //rate 水平精度低下率 sea_level アンテナ海抜高さ g_h ジオイド高さ |
kosukesuzuki | 0:f20bcf1efbc2 | 207 | char lat,lon,sea,h; |
kosukesuzuki | 0:f20bcf1efbc2 | 208 | int rlock, sat_num; |
kosukesuzuki | 0:f20bcf1efbc2 | 209 | if(sscanf(gps_data,"GPGGA,%f,%f,%c,%f,%c,%d,%d,%f,%f,%c,%f,%c",&world_time,&lat_north,&lat,&lon_east,&lon,&rlock,&sat_num, &rate,&sea_level,&sea,&g_h,&h)>=1){ //8 |
kosukesuzuki | 0:f20bcf1efbc2 | 210 | if(rlock==1){ //9 |
kosukesuzuki | 0:f20bcf1efbc2 | 211 | lat_north=_DMS2DEG(lat_north); |
kosukesuzuki | 0:f20bcf1efbc2 | 212 | lon_east=_DMS2DEG(lon_east); |
kosukesuzuki | 0:f20bcf1efbc2 | 213 | |
kosukesuzuki | 0:f20bcf1efbc2 | 214 | //printf("Lat:%f,Lon:%f\r\ntime:%f,sat_num:%d g_h%f\r\n",lat_north,lon_east,world_time,sat_num,g_h); |
kosukesuzuki | 0:f20bcf1efbc2 | 215 | |
kosukesuzuki | 0:f20bcf1efbc2 | 216 | dataLat[i] = lat_north; |
kosukesuzuki | 0:f20bcf1efbc2 | 217 | dataLon[i] = lon_east; |
kosukesuzuki | 0:f20bcf1efbc2 | 218 | dataH[i] = g_h; |
kosukesuzuki | 0:f20bcf1efbc2 | 219 | |
kosukesuzuki | 0:f20bcf1efbc2 | 220 | }else{ //9 |
kosukesuzuki | 0:f20bcf1efbc2 | 221 | //printf("%s\r\n",gps_data); |
kosukesuzuki | 0:f20bcf1efbc2 | 222 | |
kosukesuzuki | 0:f20bcf1efbc2 | 223 | dataLat[i] = 0; |
kosukesuzuki | 0:f20bcf1efbc2 | 224 | dataLon[i] = 0; |
kosukesuzuki | 0:f20bcf1efbc2 | 225 | dataH[i] = 0; |
kosukesuzuki | 0:f20bcf1efbc2 | 226 | |
kosukesuzuki | 0:f20bcf1efbc2 | 227 | |
kosukesuzuki | 0:f20bcf1efbc2 | 228 | } //9 |
kosukesuzuki | 0:f20bcf1efbc2 | 229 | } //8 |
kosukesuzuki | 0:f20bcf1efbc2 | 230 | }else{ //7 |
kosukesuzuki | 0:f20bcf1efbc2 | 231 | cnt_gps++; |
kosukesuzuki | 0:f20bcf1efbc2 | 232 | } //7 |
kosukesuzuki | 0:f20bcf1efbc2 | 233 | } //6 |
kosukesuzuki | 0:f20bcf1efbc2 | 234 | |
kosukesuzuki | 0:f20bcf1efbc2 | 235 | if(timer_log.read()>=30.0*60.0) timer_log.reset(); |
kosukesuzuki | 0:f20bcf1efbc2 | 236 | |
kosukesuzuki | 1:bfd9df900c4f | 237 | */ |
kosukesuzuki | 0:f20bcf1efbc2 | 238 | //GPS |
kosukesuzuki | 0:f20bcf1efbc2 | 239 | float pressure = ps.readPressureMillibars(); |
kosukesuzuki | 0:f20bcf1efbc2 | 240 | float altitude = ps.pressureToAltitudeMeters(pressure); |
kosukesuzuki | 0:f20bcf1efbc2 | 241 | float temperature = ps.readTemperatureC(); |
kosukesuzuki | 0:f20bcf1efbc2 | 242 | |
kosukesuzuki | 0:f20bcf1efbc2 | 243 | dataPa[i] = pressure; |
kosukesuzuki | 0:f20bcf1efbc2 | 244 | dataAl[i] = altitude; |
kosukesuzuki | 0:f20bcf1efbc2 | 245 | dataTe[i] = temperature; |
kosukesuzuki | 0:f20bcf1efbc2 | 246 | |
kosukesuzuki | 0:f20bcf1efbc2 | 247 | |
kosukesuzuki | 0:f20bcf1efbc2 | 248 | wait_us(dt); |
kosukesuzuki | 0:f20bcf1efbc2 | 249 | } //5 |
kosukesuzuki | 0:f20bcf1efbc2 | 250 | |
kosukesuzuki | 0:f20bcf1efbc2 | 251 | //ここで保存と表示する |
kosukesuzuki | 0:f20bcf1efbc2 | 252 | for(i=0;i<10;i++){ //5 |
kosukesuzuki | 1:bfd9df900c4f | 253 | //xbee.printf("time = %f, Lat,Lon %f,%f gH = %f, Pa = %f, Al = %f, Te = %f\r\n",t.read(),dataLat[i],dataLon[i],dataH[i],dataPa[i],dataAl[i],dataTe[i]); |
kosukesuzuki | 1:bfd9df900c4f | 254 | xbee.printf("time = %f,Pa = %f, Al = %f, Te = %f\r\n",t.read(),dataPa[i],dataAl[i],dataTe[i]); |
kosukesuzuki | 0:f20bcf1efbc2 | 255 | } //5 |
kosukesuzuki | 0:f20bcf1efbc2 | 256 | |
kosukesuzuki | 0:f20bcf1efbc2 | 257 | |
kosukesuzuki | 0:f20bcf1efbc2 | 258 | |
kosukesuzuki | 0:f20bcf1efbc2 | 259 | /***********************************************************/ |
kosukesuzuki | 0:f20bcf1efbc2 | 260 | |
kosukesuzuki | 0:f20bcf1efbc2 | 261 | //機体の着陸後→プログラムを終わらす。 |
kosukesuzuki | 0:f20bcf1efbc2 | 262 | if(cmd2 == 'n'){ //5 |
kosukesuzuki | 0:f20bcf1efbc2 | 263 | pc.printf("end\r\n"); |
kosukesuzuki | 0:f20bcf1efbc2 | 264 | xbee.printf("ned\r\n"); |
kosukesuzuki | 0:f20bcf1efbc2 | 265 | pc.printf("time = %f",t.read()); |
kosukesuzuki | 0:f20bcf1efbc2 | 266 | xbee.printf("time = %f",t.read()); |
kosukesuzuki | 0:f20bcf1efbc2 | 267 | t.stop(); |
kosukesuzuki | 0:f20bcf1efbc2 | 268 | cmd2 = 0; |
kosukesuzuki | 0:f20bcf1efbc2 | 269 | return 0; |
kosukesuzuki | 0:f20bcf1efbc2 | 270 | } //5 |
kosukesuzuki | 0:f20bcf1efbc2 | 271 | |
kosukesuzuki | 0:f20bcf1efbc2 | 272 | } //4 |
kosukesuzuki | 0:f20bcf1efbc2 | 273 | |
kosukesuzuki | 0:f20bcf1efbc2 | 274 | |
kosukesuzuki | 0:f20bcf1efbc2 | 275 | } //3 |
kosukesuzuki | 0:f20bcf1efbc2 | 276 | } //2 |
kosukesuzuki | 0:f20bcf1efbc2 | 277 | } //1 |
kosukesuzuki | 0:f20bcf1efbc2 | 278 | |
kosukesuzuki | 1:bfd9df900c4f | 279 | /* |
kosukesuzuki | 0:f20bcf1efbc2 | 280 | float _DMS2DEG(float raw_data){//GPSで使用 //1 |
kosukesuzuki | 0:f20bcf1efbc2 | 281 | float bb = raw_data/100; |
kosukesuzuki | 0:f20bcf1efbc2 | 282 | int d=(int)bb; |
kosukesuzuki | 0:f20bcf1efbc2 | 283 | float m=(raw_data-(float)d*100); |
kosukesuzuki | 0:f20bcf1efbc2 | 284 | return (float)d+m/60; |
kosukesuzuki | 1:bfd9df900c4f | 285 | } //1 |
kosukesuzuki | 1:bfd9df900c4f | 286 | |
kosukesuzuki | 1:bfd9df900c4f | 287 | */ |