Hepta2_Assembly_Ver.1
Dependencies: HeptaBattery Hepta2_9axis Hepta_Serial SDHCFileSystem HeptaTemp HeptaXbee mbed
Fork of Hepta_Camera_test by
main.cpp
00001 /* 00002 ************************************************************* 00003 H29/07_20/T.Umezawa 00004 1:SD.....OK! 00005 2:MPU9250(Accel) = OK 00006 3:MPU9250(Gyro) = OK 00007 4:MPU9250(Mag_compass) = 微妙 00008 5:GPS sensing Mode = (サンプリング時間の修正) 00009 6:CAM Mode = OK!(微妙だった) 00010 7:Temperature sensing = OK! 00011 8:Xbee mode = OK! 00012 ************************************************************* 00013 */ 00014 #include "mbed.h" 00015 #include "SDHCFileSystem.h" 00016 #include "HeptaXbee.h" 00017 #include "HeptaSerial.h" 00018 #include "Hepta9axis.h" 00019 #include "HeptaTemp.h" 00020 #include "HeptaBattery.h" 00021 #define USE_JPEG_HIGH_RESOLUTION 1 00022 00023 Serial pc(USBTX,USBRX); 00024 SDFileSystem sd(p5, p6, p7, p8, "fs"); 00025 HeptaXbee xbee(p9,p10); 00026 HeptaSerial camera(p13, p14); 00027 HeptaMPU9250 MPU9250(p28,p27,0xD0,0x18);//sda,scl,acc&gyro_address,mag_gyro 00028 HeptaTemp heptatemp(p17); 00029 HeptaBattery bat(p16,p26); 00030 DigitalOut CAM_SW(p25);//CAM_control 00031 DigitalOut GPS_SW(p24);//GPS_control 00032 00033 int main() 00034 { 00035 char mode; 00036 pc.baud(9600); 00037 00038 while(1) { 00039 00040 /* 00041 ************ 00042 Mode select 00043 *********** 00044 */ 00045 pc.printf("\r\n"); 00046 pc.printf("*********************************\r\n"); 00047 pc.printf("Hello world.\r\n"); 00048 pc.printf("My name is HEPTA2\r\n"); 00049 pc.printf("Please select mode.\r\n"); 00050 pc.printf("a:SD test Mode\r\n"); 00051 pc.printf("b:Check Battery Level\r\n"); 00052 pc.printf("c:Gyro Sening Mode\r\n"); 00053 pc.printf("d:Accel Sensing Mode\r\n"); 00054 pc.printf("e:Magnet Sensig Mode\r\n"); 00055 pc.printf("f:GPS Test Sensing Mode\r\n"); 00056 pc.printf("g:CAM Mode\r\n"); 00057 pc.printf("h:Temperature Sensing Mode\r\n"); 00058 pc.printf("i:Xbee Mode\r\n"); 00059 pc.printf("j:Xbee & Temperature Mode\r\n");//恒温槽用 00060 pc.printf("k:All Transmitting Mode\r\n"); 00061 pc.printf("l:Test Mode\r\n"); 00062 pc.printf("m:Test Mode\r\n"); 00063 pc.printf("*********************************\r\n"); 00064 00065 mode = pc.getc(); 00066 pc.printf("\r\n"); 00067 pc.printf("Your select Mode = %c\r\n",mode); 00068 wait(0.5); 00069 00070 switch(mode) { 00071 case'a': { 00072 00073 printf("=============\r\n"); 00074 printf("SD test Mode\r\n"); 00075 printf("=============\r\n"); 00076 FILE *fp = fopen("/fs/myfile.txt", "w"); 00077 if(fp == NULL) { 00078 pc.printf("Could not open file for write\r\n"); 00079 } else { 00080 fprintf(fp, "\n\rHello World!\n\r"); 00081 printf("SD Check Complete!!\r\n"); 00082 fclose(fp); 00083 } 00084 00085 00086 break; 00087 }//case'1' 00088 00089 /* 00090 ************************ 00091 Check Battery Level mode 00092 ************************ 00093 */ 00094 case'b': { 00095 float bt; 00096 bat.vol(&bt); 00097 pc.printf("V = %f\r\n",bt); 00098 break; 00099 } 00100 00101 /* 00102 ****************** 00103 Gyro sensing mode 00104 ****************** 00105 */ 00106 00107 case'c': { 00108 printf("===================\r\n"); 00109 printf("Gyro sensing Mode\r\n"); 00110 printf("===================\r\n"); 00111 float gx,gy,gz; 00112 for(int i = 0; i < 10; i++) { 00113 MPU9250.sen_gyro(&gx,&gy,&gz); 00114 pc.printf("GX = %f,GY = %f,GZ = %f\r\n",gx,gy,gz); 00115 wait(0.5); 00116 } 00117 break; 00118 }//case'2' 00119 00120 /* 00121 ****************** 00122 Accel sensing mode 00123 ****************** 00124 */ 00125 00126 case'd': { 00127 printf("===================\r\n"); 00128 printf("Accel sensing Mode\r\n"); 00129 printf("===================\r\n"); 00130 float ax,ay,az; 00131 for(int i = 0; i < 10; i++) { 00132 MPU9250.sen_acc(&ax,&ay,&az); 00133 pc.printf("AX = %f,AY = %f,AZ = %f\r\n",ax,ay,az); 00134 wait(0.5); 00135 } 00136 break; 00137 }//case'3' 00138 00139 /* 00140 ****************** 00141 Magnet sensing mode 00142 ****************** 00143 */ 00144 00145 case'e': { 00146 float mx,my,mz; 00147 printf("===================\r\n"); 00148 printf("Magnet sensing Mode\r\n"); 00149 printf("===================\r\n"); 00150 for(int i = 0; i < 10; i++) { 00151 MPU9250.sen_mag(&mx,&my,&mz); 00152 pc.printf("MX = %f,MY = %f,MZ = %f\r\n",mx,my,mz); 00153 wait(0.5); 00154 } 00155 break; 00156 }//case'4' 00157 00158 /* 00159 ****************** 00160 GPS sensing mode 00161 ****************** 00162 */ 00163 00164 case'f': { 00165 00166 printf("===================\r\n"); 00167 printf("GPS sensing Mode\r\n"); 00168 printf("===================\r\n"); 00169 while(1) pc.putc(camera.getc()); 00170 break; 00171 }//case'4' 00172 00173 /* 00174 ****************** 00175 Cam Snapshot mode 00176 ****************** 00177 */ 00178 00179 case'g': { 00180 GPS_SW = 0; 00181 CAM_SW = 1; 00182 printf("\r\n"); 00183 printf("==========\r\n"); 00184 printf("CameraC1098\r\n"); 00185 printf("==========\r\n"); 00186 camera.Sync(); 00187 camera.initialize(HeptaSerial::Baud115200, HeptaSerial::JpegResolution320x240); 00188 camera.test_jpeg_snapshot_picture(1); 00189 00190 break; 00191 }//case'6' 00192 00193 /* 00194 ****************** 00195 Temp sensing mode 00196 ****************** 00197 */ 00198 00199 case'h': { 00200 printf("==================\r\n"); 00201 printf("Temp sensing Mode\r\n"); 00202 printf("==================\r\n"); 00203 float temp; 00204 for(int i = 0; i<100; i++) { 00205 heptatemp.temp_sense(&temp); 00206 pc.printf("%f\r\n",temp); 00207 //xbee.printf("%f\r\n",temp); 00208 } 00209 break; 00210 }//case'7' 00211 00212 /* 00213 *********** 00214 Xbee mode 00215 *********** 00216 */ 00217 00218 case'i': { 00219 00220 int i=0,rcmd=0,cmdflag=0; 00221 xbee.printf("Count Up!\r"); 00222 while(1) { 00223 xbee.printf("num = %d\r",i); 00224 i++; 00225 wait(1.0); 00226 xbee.xbee_recieve(&rcmd,&cmdflag); 00227 pc.printf("rcmd=%d, cmdflag=%d\r\n",rcmd, cmdflag); 00228 if (cmdflag == 1) { 00229 if (rcmd == 'a') { 00230 pc.printf("Command Get %d\r\n",rcmd); 00231 xbee.printf("HEPTA Uplink OK\r"); 00232 } 00233 xbee.initialize(); 00234 } 00235 } 00236 00237 break; 00238 }//case'8' 00239 00240 /* 00241 ****************** 00242 Temp sensing mode by Xbbe 00243 ****************** 00244 */ 00245 00246 case'j': { 00247 00248 printf("==================\r\n"); 00249 printf("Temp sensing Mode & Xbee\r\n"); 00250 printf("==================\r\n"); 00251 00252 float temp; 00253 while(1) { 00254 FILE *fp = fopen("/fs/myfile.csv", "a"); 00255 heptatemp.temp_sense(&temp); 00256 pc.printf("%f\r\n",temp); 00257 xbee.printf("%f\r\n",temp); 00258 fprintf(fp, "%f\n",temp); 00259 fclose(fp); 00260 } 00261 break; 00262 }//case'9' 00263 00264 /* 00265 ********************* 00266 All Transmitting Mode 00267 ********************* 00268 */ 00269 00270 case'k': { 00271 00272 printf("==================\r\n"); 00273 printf("All Transmitting Mode\r\n"); 00274 printf("==================\r\n"); 00275 char gx[4],gy[4],gz[4],ax[4],ay[4],az[4],mx[4],my[4],mz[4],lad[8],log[8],bt[4],temp[4]; 00276 char ddata[60]; 00277 int dsize[6]; 00278 while(1) { 00279 00280 MPU9250.sen_gyro_u16(gx,gy,gz,&dsize[0]); 00281 MPU9250.sen_acc_u16(ax,ay,az,&dsize[1]); 00282 MPU9250.sen_mag_u16(mx,my,mz,&dsize[2]); 00283 camera.lat_log_sensing_u16(lad,log,&dsize[3]); 00284 bat.vol_u16(bt,&dsize[4]); 00285 heptatemp.temp_sense_u16(temp,&dsize[5]); 00286 xbee.xbee_transmit(ddata,60,gx,gy,gz,ax,ay,az,mx,my,mz,lad,log,bt,temp,dsize[0],dsize[0],dsize[0],dsize[1],dsize[1],dsize[1],dsize[2],dsize[2],dsize[2],dsize[3],dsize[3],dsize[4],dsize[5],13); 00287 } 00288 break; 00289 }//case'9' 00290 /* 00291 ****************** 00292 Cam Snapshot mode 00293 ****************** 00294 */ 00295 00296 case'l': { 00297 GPS_SW = 0; 00298 CAM_SW = 1; 00299 printf("\r\n"); 00300 printf("==========\r\n"); 00301 printf("CameraC1098\r\n"); 00302 printf("==========\r\n"); 00303 camera.Sync(); 00304 camera.initialize(HeptaSerial::Baud115200, HeptaSerial::JpegResolution320x240); 00305 camera.test_jpeg_snapshot_data(1); 00306 00307 break; 00308 }//case'6' 00309 00310 case'm': { 00311 pc.printf("L:GPS GPGGA Mode\r\n"); 00312 int quality=0,stnum=0,gps_check=0; 00313 char ns='A',ew='B',aunit='m'; 00314 float time=0.0,latitude=0.0,longitude=0.0,hacu=0.0,altitude=0.0; 00315 for(int i=1; i<10; i++) { 00316 camera.gga_sensing(&time, &latitude, &ns, &longitude, &ew, &quality, &stnum, &hacu, &altitude, &aunit, &gps_check); 00317 if((gps_check==0)|(gps_check==1)) { 00318 pc.printf("GPGGA,%f,%f,%c,%f,%c,%d,%d,%f,%f,%c\r\n",time,latitude,ns,longitude,ew,quality,stnum,hacu,altitude,aunit); 00319 } 00320 } 00321 break; 00322 } 00323 00324 default: 00325 break; 00326 00327 00328 } 00329 } 00330 }
Generated on Thu Jul 21 2022 01:57:27 by 1.7.2