all ok noMU2

Dependencies:   mbed mbedTimer SDFileSystem MU2 GPS

Committer:
takepiyo
Date:
Wed Aug 07 10:03:17 2019 +0000
Revision:
6:b7bf39bc3487
Parent:
4:0d087e3f731d
Child:
8:6b835a82b1eb
0807test;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Nerosho 0:d0f3991839ec 1 #include "mbed.h"
Nerosho 0:d0f3991839ec 2 #include "MU2.h"
Nerosho 0:d0f3991839ec 3 #include "SDFileSystem.h"
takepiyo 3:4f1bac105598 4 #include "inletclose.h"
Nerosho 2:d6dc5c2224cc 5 //#include "GPS.h"
Nerosho 1:a8772ca26d1b 6
takepiyo 4:0d087e3f731d 7 MU2 MuPort(p28,p27);
takepiyo 3:4f1bac105598 8 SDFileSystem sd(p11, p12, p13, p14, "sd");
Nerosho 2:d6dc5c2224cc 9 //GPS gps(p13,p14);
takepiyo 3:4f1bac105598 10 Serial gps(p9,p10); //tx, rx
takepiyo 3:4f1bac105598 11
takepiyo 3:4f1bac105598 12 Inlet inlet(p26,p15,p16);//モーター出力,感圧センサー1入力,感圧センサー2入力
Nerosho 2:d6dc5c2224cc 13
Nerosho 0:d0f3991839ec 14
takepiyo 3:4f1bac105598 15 //DigitalIn flight(p21); //フライトピン
takepiyo 3:4f1bac105598 16 DigitalOut FIRE(p24); //溶断
Nerosho 1:a8772ca26d1b 17
Nerosho 1:a8772ca26d1b 18 DigitalOut myled(LED1);
takepiyo 4:0d087e3f731d 19 DigitalOut myled2(LED2);
Nerosho 1:a8772ca26d1b 20 DigitalOut myled3(LED3);
Nerosho 1:a8772ca26d1b 21 DigitalOut myled4(LED4);
Nerosho 0:d0f3991839ec 22
Nerosho 0:d0f3991839ec 23 int main()
Nerosho 0:d0f3991839ec 24 {
Nerosho 2:d6dc5c2224cc 25
takepiyo 6:b7bf39bc3487 26 wait(0.1);//起動してからちょっと待つ
Nerosho 0:d0f3991839ec 27
Nerosho 2:d6dc5c2224cc 28 //FILE* fp1= fopen("/sd/cansat/log3.txt", "w");
takepiyo 6:b7bf39bc3487 29 FILE* fp2= fopen("/sd/cansat/gpsdata1000.csv", "w");
takepiyo 3:4f1bac105598 30
Nerosho 2:d6dc5c2224cc 31 /*if(fp1 == NULL || fp2 == NULL)
takepiyo 3:4f1bac105598 32 {
Nerosho 2:d6dc5c2224cc 33 (fp1 == NULL) ? fprintf(stderr, "fname1 open error.\n") : fclose(fp1);
Nerosho 2:d6dc5c2224cc 34 (fp2 == NULL) ? fprintf(stderr, "fname2 open error.\n") : fclose(fp2);
Nerosho 2:d6dc5c2224cc 35 return -1;
takepiyo 3:4f1bac105598 36 }*/
Nerosho 2:d6dc5c2224cc 37
takepiyo 3:4f1bac105598 38 //溶断機構部分
Nerosho 2:d6dc5c2224cc 39
Nerosho 2:d6dc5c2224cc 40 //fprintf(fp1, "CanSat start!\r\n");
Nerosho 0:d0f3991839ec 41
takepiyo 3:4f1bac105598 42 //fprintf(fp1, "Fire!!\r\n");
takepiyo 3:4f1bac105598 43 //FIRE=1;
takepiyo 3:4f1bac105598 44 myled=1;//テストようにLED光らせてる
takepiyo 6:b7bf39bc3487 45 wait(3);//溶断にかかる時間TBD秒
takepiyo 3:4f1bac105598 46 //FIRE=0;
takepiyo 3:4f1bac105598 47 myled=0;
takepiyo 3:4f1bac105598 48
takepiyo 3:4f1bac105598 49 //溶断機構終わり
Nerosho 0:d0f3991839ec 50
Nerosho 2:d6dc5c2224cc 51 gps.baud(9600);
Nerosho 2:d6dc5c2224cc 52 char recvGPS=0;
Nerosho 2:d6dc5c2224cc 53 char getGPS[128];
Nerosho 2:d6dc5c2224cc 54 int i=0;
takepiyo 3:4f1bac105598 55 int timer=0;
takepiyo 3:4f1bac105598 56
Nerosho 2:d6dc5c2224cc 57 //fprintf(fp1, "GPS start!\r\n");
Nerosho 2:d6dc5c2224cc 58
takepiyo 3:4f1bac105598 59 while(1)
takepiyo 3:4f1bac105598 60 {
takepiyo 4:0d087e3f731d 61 myled3=1;
takepiyo 4:0d087e3f731d 62 myled2=0;
takepiyo 3:4f1bac105598 63 if(gps.readable())
takepiyo 3:4f1bac105598 64 {
Nerosho 2:d6dc5c2224cc 65 recvGPS=gps.getc();
Nerosho 2:d6dc5c2224cc 66 getGPS[i]=recvGPS;
Nerosho 2:d6dc5c2224cc 67
takepiyo 3:4f1bac105598 68 if(getGPS[i]=='\n')
takepiyo 3:4f1bac105598 69 {
Nerosho 2:d6dc5c2224cc 70
takepiyo 3:4f1bac105598 71 if((getGPS[5]=='G')&&(getGPS[6]=='A'))
takepiyo 3:4f1bac105598 72 {
takepiyo 4:0d087e3f731d 73
takepiyo 6:b7bf39bc3487 74 MuPort.send(getGPS);
takepiyo 3:4f1bac105598 75
Nerosho 2:d6dc5c2224cc 76 /*if(fp == NULL) {
Nerosho 2:d6dc5c2224cc 77 error("Could not open file for write\n");
Nerosho 2:d6dc5c2224cc 78 }*/
takepiyo 3:4f1bac105598 79
Nerosho 2:d6dc5c2224cc 80 fprintf(fp2, "%s\n",getGPS);
Nerosho 2:d6dc5c2224cc 81 //fclose(fp);
takepiyo 3:4f1bac105598 82
takepiyo 6:b7bf39bc3487 83 wait(1.0);
takepiyo 4:0d087e3f731d 84 timer++;
Nerosho 2:d6dc5c2224cc 85 }
Nerosho 2:d6dc5c2224cc 86
Nerosho 2:d6dc5c2224cc 87 i=0;
Nerosho 2:d6dc5c2224cc 88 }
Nerosho 2:d6dc5c2224cc 89 i++;
takepiyo 6:b7bf39bc3487 90 if(timer>15)//落下開始してからTBD秒後whileを抜ける.
takepiyo 3:4f1bac105598 91 {
takepiyo 3:4f1bac105598 92 break;
takepiyo 3:4f1bac105598 93 }
Nerosho 2:d6dc5c2224cc 94 }
Nerosho 2:d6dc5c2224cc 95
Nerosho 2:d6dc5c2224cc 96 // wait(1);
Nerosho 2:d6dc5c2224cc 97 //fclose(fp);
Nerosho 0:d0f3991839ec 98 }
takepiyo 3:4f1bac105598 99
takepiyo 6:b7bf39bc3487 100 timer=0;//モーター時間で止めるよう
takepiyo 6:b7bf39bc3487 101
takepiyo 3:4f1bac105598 102 while(1)
takepiyo 3:4f1bac105598 103 {
takepiyo 4:0d087e3f731d 104 myled3=0;
takepiyo 4:0d087e3f731d 105 myled2=1;
takepiyo 3:4f1bac105598 106 if(gps.readable())
takepiyo 3:4f1bac105598 107 {
takepiyo 3:4f1bac105598 108 recvGPS=gps.getc();
takepiyo 3:4f1bac105598 109 getGPS[i]=recvGPS;
takepiyo 3:4f1bac105598 110
takepiyo 3:4f1bac105598 111 if(getGPS[i]=='\n')
takepiyo 3:4f1bac105598 112 {
takepiyo 3:4f1bac105598 113
takepiyo 3:4f1bac105598 114 if((getGPS[5]=='G')&&(getGPS[6]=='A'))
takepiyo 3:4f1bac105598 115 {
takepiyo 4:0d087e3f731d 116 MuPort.send(getGPS);
takepiyo 3:4f1bac105598 117
takepiyo 3:4f1bac105598 118 /*if(fp == NULL) {
takepiyo 3:4f1bac105598 119 error("Could not open file for write\n");
takepiyo 3:4f1bac105598 120 }*/
takepiyo 3:4f1bac105598 121
takepiyo 3:4f1bac105598 122 fprintf(fp2, "%s\n",getGPS);
takepiyo 3:4f1bac105598 123 //fclose(fp);
takepiyo 3:4f1bac105598 124 wait(0.1);
takepiyo 6:b7bf39bc3487 125 timer++;
takepiyo 3:4f1bac105598 126 }
takepiyo 3:4f1bac105598 127
takepiyo 3:4f1bac105598 128 i=0;
takepiyo 3:4f1bac105598 129 }
takepiyo 3:4f1bac105598 130 i++;
takepiyo 6:b7bf39bc3487 131 if(timer>30)
takepiyo 6:b7bf39bc3487 132 {
takepiyo 6:b7bf39bc3487 133 break;
takepiyo 6:b7bf39bc3487 134 }
takepiyo 6:b7bf39bc3487 135 inlet.Close(1.1);//1より大きい引数にしておけばモーターはずっと回ってる.
takepiyo 3:4f1bac105598 136 }
takepiyo 3:4f1bac105598 137
takepiyo 3:4f1bac105598 138 // wait(1);
takepiyo 3:4f1bac105598 139 //fclose(fp);
takepiyo 3:4f1bac105598 140 }
takepiyo 3:4f1bac105598 141
takepiyo 6:b7bf39bc3487 142 //何もせずGPS信号を発する
takepiyo 3:4f1bac105598 143
takepiyo 6:b7bf39bc3487 144 while(1)
takepiyo 6:b7bf39bc3487 145 {
takepiyo 6:b7bf39bc3487 146 myled3=1;
takepiyo 6:b7bf39bc3487 147 myled2=1;
takepiyo 6:b7bf39bc3487 148 if(gps.readable())
takepiyo 6:b7bf39bc3487 149 {
takepiyo 6:b7bf39bc3487 150 recvGPS=gps.getc();
takepiyo 6:b7bf39bc3487 151 getGPS[i]=recvGPS;
takepiyo 6:b7bf39bc3487 152
takepiyo 6:b7bf39bc3487 153 if(getGPS[i]=='\n')
takepiyo 6:b7bf39bc3487 154 {
takepiyo 6:b7bf39bc3487 155
takepiyo 6:b7bf39bc3487 156 if((getGPS[5]=='G')&&(getGPS[6]=='A'))
takepiyo 6:b7bf39bc3487 157 {
takepiyo 6:b7bf39bc3487 158 MuPort.send(getGPS);
takepiyo 6:b7bf39bc3487 159
takepiyo 6:b7bf39bc3487 160 /*if(fp == NULL) {
takepiyo 6:b7bf39bc3487 161 error("Could not open file for write\n");
takepiyo 6:b7bf39bc3487 162 }*/
takepiyo 6:b7bf39bc3487 163
takepiyo 6:b7bf39bc3487 164 fprintf(fp2, "%s\n",getGPS);
takepiyo 6:b7bf39bc3487 165 //fclose(fp);
takepiyo 6:b7bf39bc3487 166 wait(0.1);
takepiyo 6:b7bf39bc3487 167 timer++;
takepiyo 6:b7bf39bc3487 168 }
takepiyo 6:b7bf39bc3487 169
takepiyo 6:b7bf39bc3487 170 i=0;
takepiyo 6:b7bf39bc3487 171 }
takepiyo 6:b7bf39bc3487 172 i++;
takepiyo 6:b7bf39bc3487 173 }
takepiyo 6:b7bf39bc3487 174
takepiyo 6:b7bf39bc3487 175 // wait(1);
takepiyo 6:b7bf39bc3487 176 //fclose(fp);
takepiyo 6:b7bf39bc3487 177 }
takepiyo 6:b7bf39bc3487 178
takepiyo 6:b7bf39bc3487 179
Nerosho 2:d6dc5c2224cc 180 //fclose(fp1);
Nerosho 2:d6dc5c2224cc 181 fclose(fp2);
Nerosho 2:d6dc5c2224cc 182
Nerosho 2:d6dc5c2224cc 183 }
Nerosho 2:d6dc5c2224cc 184
Nerosho 2:d6dc5c2224cc 185
Nerosho 2:d6dc5c2224cc 186