sdカードに経路緯度を保存する。txt形式で保存の後、kml形式にしてGoogle mapで経路を確認。 kml形式変換の参考サイト http://www.oidenansho.com/elekijack/mbed/2bk0208_GPS_logger/GPS_logger.htm

Dependencies:   SDFileSystem mbed

Fork of 2bk0123_GPS_Test05 by Takeuchi Kouichi

Committer:
Joeatsumi
Date:
Thu Feb 15 03:02:13 2018 +0000
Revision:
1:04787f83fac1
Parent:
0:f3ff53b5b707
mbed ??????sd?????????txt?????????kml????????Googlemap?????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
takeuchi 0:f3ff53b5b707 1 //GPS GT-720F Test05
takeuchi 0:f3ff53b5b707 2 #include "mbed.h"
Joeatsumi 1:04787f83fac1 3
Joeatsumi 1:04787f83fac1 4 #include "SDFileSystem.h"
takeuchi 0:f3ff53b5b707 5
takeuchi 0:f3ff53b5b707 6 #define ON 1
takeuchi 0:f3ff53b5b707 7 #define OFF 0
Joeatsumi 1:04787f83fac1 8 Serial gps(p9,p10);// tx, rx
Joeatsumi 1:04787f83fac1 9
Joeatsumi 1:04787f83fac1 10 LocalFileSystem local("local");
takeuchi 0:f3ff53b5b707 11
takeuchi 0:f3ff53b5b707 12 DigitalOut mled0(LED1);
takeuchi 0:f3ff53b5b707 13 DigitalOut mled1(LED2);
takeuchi 0:f3ff53b5b707 14
Joeatsumi 1:04787f83fac1 15 SDFileSystem sd(p5, p6, p7, p8, "sd"); // the pinout on the mbed Cool Components workshop board
Joeatsumi 1:04787f83fac1 16
Joeatsumi 1:04787f83fac1 17
Joeatsumi 1:04787f83fac1 18 Serial pc(USBTX, USBRX); // tx, rx
Joeatsumi 1:04787f83fac1 19
Joeatsumi 1:04787f83fac1 20 FILE *fp;
takeuchi 0:f3ff53b5b707 21
takeuchi 0:f3ff53b5b707 22 int main() {
takeuchi 0:f3ff53b5b707 23
takeuchi 0:f3ff53b5b707 24 char c;
takeuchi 0:f3ff53b5b707 25 int i,rlock,stn;
takeuchi 0:f3ff53b5b707 26 char gps_data[256];
takeuchi 0:f3ff53b5b707 27 char ns,ew;
takeuchi 0:f3ff53b5b707 28 float time,hokui,tokei;
takeuchi 0:f3ff53b5b707 29 float g_hokui,g_tokei;
takeuchi 0:f3ff53b5b707 30 float d_hokui,m_hokui,d_tokei,m_tokei;
Joeatsumi 1:04787f83fac1 31
Joeatsumi 1:04787f83fac1 32 int h_time=0,m_time=0,s_time=0;
Joeatsumi 1:04787f83fac1 33
Joeatsumi 1:04787f83fac1 34 mkdir("/sd/gps_data", 0777);//まずsdのフォルダをつくる。
Joeatsumi 1:04787f83fac1 35
takeuchi 0:f3ff53b5b707 36 gps.baud(9600);
takeuchi 0:f3ff53b5b707 37
takeuchi 0:f3ff53b5b707 38 while (1) {
takeuchi 0:f3ff53b5b707 39 i=0;
takeuchi 0:f3ff53b5b707 40 while(gps.getc()!='$'){
takeuchi 0:f3ff53b5b707 41 }
takeuchi 0:f3ff53b5b707 42
takeuchi 0:f3ff53b5b707 43 while( (gps_data[i]=gps.getc()) != '\r'){
takeuchi 0:f3ff53b5b707 44 i++;
takeuchi 0:f3ff53b5b707 45 if(i==256){
Joeatsumi 1:04787f83fac1 46
takeuchi 0:f3ff53b5b707 47 i=255;
takeuchi 0:f3ff53b5b707 48 break;
takeuchi 0:f3ff53b5b707 49 }
takeuchi 0:f3ff53b5b707 50 }
takeuchi 0:f3ff53b5b707 51 gps_data[i]='\0';
takeuchi 0:f3ff53b5b707 52
takeuchi 0:f3ff53b5b707 53 //test
takeuchi 0:f3ff53b5b707 54 /* Test data
takeuchi 0:f3ff53b5b707 55 rlock=1;
takeuchi 0:f3ff53b5b707 56 hokui=3532.25024; //=>35.537502
takeuchi 0:f3ff53b5b707 57 tokei=13751.86820;//=>137.864471
takeuchi 0:f3ff53b5b707 58 */
takeuchi 0:f3ff53b5b707 59 if( sscanf(gps_data, "GPGGA,%f,%f,%c,%f,%c,%d,%d",&time,&hokui,&ns,&tokei,&ew,&rlock,&stn) >= 1){
takeuchi 0:f3ff53b5b707 60 if(rlock >= 1){
Joeatsumi 1:04787f83fac1 61
Joeatsumi 1:04787f83fac1 62 //time set
Joeatsumi 1:04787f83fac1 63 h_time=int(time/10000);
Joeatsumi 1:04787f83fac1 64 m_time=int((time-h_time*10000)/100);
Joeatsumi 1:04787f83fac1 65 s_time=int(time-h_time*10000-m_time*100);
Joeatsumi 1:04787f83fac1 66 h_time=h_time+9;//UTC =>JST
Joeatsumi 1:04787f83fac1 67
takeuchi 0:f3ff53b5b707 68 //hokui
takeuchi 0:f3ff53b5b707 69 d_hokui=int(hokui/100);
takeuchi 0:f3ff53b5b707 70 m_hokui=(hokui-d_hokui*100)/60;
takeuchi 0:f3ff53b5b707 71 g_hokui=d_hokui+m_hokui;
takeuchi 0:f3ff53b5b707 72 //tokei
takeuchi 0:f3ff53b5b707 73 d_tokei=int(tokei/100);
takeuchi 0:f3ff53b5b707 74 m_tokei=(tokei-d_tokei*100)/60;
takeuchi 0:f3ff53b5b707 75 g_tokei=d_tokei+m_tokei;
takeuchi 0:f3ff53b5b707 76 //g_hokui=int(hokui/100)+(hokui-int(hokui/100))/60;
takeuchi 0:f3ff53b5b707 77 //g_tokei=int(tokei/100)+(tokei-int(tokei/100))/60;
Joeatsumi 1:04787f83fac1 78
takeuchi 0:f3ff53b5b707 79
Joeatsumi 1:04787f83fac1 80 //==================================================//
Joeatsumi 1:04787f83fac1 81
Joeatsumi 1:04787f83fac1 82 pc.printf("%2d,%2d,%2d,%4.6f,,%3.6f,\r\n",h_time,m_time,s_time,g_tokei,g_hokui);
Joeatsumi 1:04787f83fac1 83
Joeatsumi 1:04787f83fac1 84 fp = fopen("/sd/gps_data/log.txt", "a");
Joeatsumi 1:04787f83fac1 85
Joeatsumi 1:04787f83fac1 86 // fprintf(fp,"%2d,%2d,%2d,%4.6f,,%3.6f,\r\n",h_time,m_time,s_time,g_tokei,g_hokui);
Joeatsumi 1:04787f83fac1 87 fprintf(fp,"%4.6f,%3.6f,\r\n",g_tokei,g_hokui);
Joeatsumi 1:04787f83fac1 88 fclose(fp);
Joeatsumi 1:04787f83fac1 89
Joeatsumi 1:04787f83fac1 90 //==================================================//
Joeatsumi 1:04787f83fac1 91
Joeatsumi 1:04787f83fac1 92
Joeatsumi 1:04787f83fac1 93
Joeatsumi 1:04787f83fac1 94 //}
takeuchi 0:f3ff53b5b707 95 }
takeuchi 0:f3ff53b5b707 96 }//if
takeuchi 0:f3ff53b5b707 97 }//while
takeuchi 0:f3ff53b5b707 98 }//main
takeuchi 0:f3ff53b5b707 99
takeuchi 0:f3ff53b5b707 100
takeuchi 0:f3ff53b5b707 101