![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
all ok noMU2
Dependencies: mbed mbedTimer SDFileSystem MU2 GPS
main.cpp.orig@28:c8fabcd38c9a, 2019-09-11 (annotated)
- Committer:
- Nerosho
- Date:
- Wed Sep 11 05:59:59 2019 +0000
- Revision:
- 28:c8fabcd38c9a
- Parent:
- 4:0d087e3f731d
0910 last version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
takepiyo | 4:0d087e3f731d | 1 | #include "mbed.h" |
takepiyo | 4:0d087e3f731d | 2 | #include "MU2.h" |
takepiyo | 4:0d087e3f731d | 3 | //#include "SDFileSystem.h" |
takepiyo | 4:0d087e3f731d | 4 | #include "inletclose.h" |
takepiyo | 4:0d087e3f731d | 5 | //#include "GPS.h" |
takepiyo | 4:0d087e3f731d | 6 | |
takepiyo | 4:0d087e3f731d | 7 | MU2 MuPort(p27,p28); |
takepiyo | 4:0d087e3f731d | 8 | //SDFileSystem sd(p11, p12, p13, p14, "sd"); |
takepiyo | 4:0d087e3f731d | 9 | //GPS gps(p13,p14); |
takepiyo | 4:0d087e3f731d | 10 | Serial gps(p9,p10); //tx, rx |
takepiyo | 4:0d087e3f731d | 11 | |
takepiyo | 4:0d087e3f731d | 12 | Inlet inlet(p26,p15,p16);//モーター出力,感圧センサー1入力,感圧センサー2入力 |
takepiyo | 4:0d087e3f731d | 13 | |
takepiyo | 4:0d087e3f731d | 14 | |
takepiyo | 4:0d087e3f731d | 15 | //DigitalIn flight(p21); //フライトピン |
takepiyo | 4:0d087e3f731d | 16 | DigitalOut FIRE(p24); //溶断 |
takepiyo | 4:0d087e3f731d | 17 | |
takepiyo | 4:0d087e3f731d | 18 | DigitalOut myled(LED1); |
takepiyo | 4:0d087e3f731d | 19 | DigitalOut myled3(LED3); |
takepiyo | 4:0d087e3f731d | 20 | DigitalOut myled4(LED4); |
takepiyo | 4:0d087e3f731d | 21 | |
takepiyo | 4:0d087e3f731d | 22 | int main() |
takepiyo | 4:0d087e3f731d | 23 | { |
takepiyo | 4:0d087e3f731d | 24 | |
takepiyo | 4:0d087e3f731d | 25 | wait(3); |
takepiyo | 4:0d087e3f731d | 26 | |
takepiyo | 4:0d087e3f731d | 27 | //FILE* fp1= fopen("/sd/cansat/log3.txt", "w"); |
takepiyo | 4:0d087e3f731d | 28 | // FILE* fp2= fopen("/sd/cansat/gpsdata11.csv", "w"); |
takepiyo | 4:0d087e3f731d | 29 | |
takepiyo | 4:0d087e3f731d | 30 | /*if(fp1 == NULL || fp2 == NULL) |
takepiyo | 4:0d087e3f731d | 31 | { |
takepiyo | 4:0d087e3f731d | 32 | (fp1 == NULL) ? fprintf(stderr, "fname1 open error.\n") : fclose(fp1); |
takepiyo | 4:0d087e3f731d | 33 | (fp2 == NULL) ? fprintf(stderr, "fname2 open error.\n") : fclose(fp2); |
takepiyo | 4:0d087e3f731d | 34 | return -1; |
takepiyo | 4:0d087e3f731d | 35 | }*/ |
takepiyo | 4:0d087e3f731d | 36 | |
takepiyo | 4:0d087e3f731d | 37 | //溶断機構部分 |
takepiyo | 4:0d087e3f731d | 38 | |
takepiyo | 4:0d087e3f731d | 39 | //fprintf(fp1, "CanSat start!\r\n"); |
takepiyo | 4:0d087e3f731d | 40 | |
takepiyo | 4:0d087e3f731d | 41 | //fprintf(fp1, "Fire!!\r\n"); |
takepiyo | 4:0d087e3f731d | 42 | //FIRE=1; |
takepiyo | 4:0d087e3f731d | 43 | myled=1;//テストようにLED光らせてる |
takepiyo | 4:0d087e3f731d | 44 | wait(5);//溶断にかかる時間TBD秒 |
takepiyo | 4:0d087e3f731d | 45 | //FIRE=0; |
takepiyo | 4:0d087e3f731d | 46 | myled=0; |
takepiyo | 4:0d087e3f731d | 47 | |
takepiyo | 4:0d087e3f731d | 48 | //溶断機構終わり |
takepiyo | 4:0d087e3f731d | 49 | |
takepiyo | 4:0d087e3f731d | 50 | gps.baud(9600); |
takepiyo | 4:0d087e3f731d | 51 | char recvGPS=0; |
takepiyo | 4:0d087e3f731d | 52 | char getGPS[128]; |
takepiyo | 4:0d087e3f731d | 53 | int i=0; |
takepiyo | 4:0d087e3f731d | 54 | int timer=0; |
takepiyo | 4:0d087e3f731d | 55 | int count=0; |
takepiyo | 4:0d087e3f731d | 56 | |
takepiyo | 4:0d087e3f731d | 57 | //fprintf(fp1, "GPS start!\r\n"); |
takepiyo | 4:0d087e3f731d | 58 | |
takepiyo | 4:0d087e3f731d | 59 | while(1) |
takepiyo | 4:0d087e3f731d | 60 | { |
takepiyo | 4:0d087e3f731d | 61 | if(gps.readable()) |
takepiyo | 4:0d087e3f731d | 62 | { |
takepiyo | 4:0d087e3f731d | 63 | recvGPS=gps.getc(); |
takepiyo | 4:0d087e3f731d | 64 | getGPS[i]=recvGPS; |
takepiyo | 4:0d087e3f731d | 65 | |
takepiyo | 4:0d087e3f731d | 66 | if(getGPS[i]=='\n') |
takepiyo | 4:0d087e3f731d | 67 | { |
takepiyo | 4:0d087e3f731d | 68 | |
takepiyo | 4:0d087e3f731d | 69 | if((getGPS[5]=='G')&&(getGPS[6]=='A')) |
takepiyo | 4:0d087e3f731d | 70 | { |
takepiyo | 4:0d087e3f731d | 71 | if(count==10) |
takepiyo | 4:0d087e3f731d | 72 | { |
takepiyo | 4:0d087e3f731d | 73 | MuPort.send(getGPS); |
takepiyo | 4:0d087e3f731d | 74 | |
takepiyo | 4:0d087e3f731d | 75 | /*if(fp == NULL) { |
takepiyo | 4:0d087e3f731d | 76 | error("Could not open file for write\n"); |
takepiyo | 4:0d087e3f731d | 77 | }*/ |
takepiyo | 4:0d087e3f731d | 78 | |
takepiyo | 4:0d087e3f731d | 79 | // fprintf(fp2, "%s\n",getGPS); |
takepiyo | 4:0d087e3f731d | 80 | //fclose(fp); |
takepiyo | 4:0d087e3f731d | 81 | |
takepiyo | 4:0d087e3f731d | 82 | count=0; |
takepiyo | 4:0d087e3f731d | 83 | } |
takepiyo | 4:0d087e3f731d | 84 | wait(0.1); |
takepiyo | 4:0d087e3f731d | 85 | } |
takepiyo | 4:0d087e3f731d | 86 | |
takepiyo | 4:0d087e3f731d | 87 | i=0; |
takepiyo | 4:0d087e3f731d | 88 | } |
takepiyo | 4:0d087e3f731d | 89 | i++; |
takepiyo | 4:0d087e3f731d | 90 | timer++; |
takepiyo | 4:0d087e3f731d | 91 | if(timer>150)//落下開始してからTBD秒後whileを抜ける. |
takepiyo | 4:0d087e3f731d | 92 | { |
takepiyo | 4:0d087e3f731d | 93 | break; |
takepiyo | 4:0d087e3f731d | 94 | } |
takepiyo | 4:0d087e3f731d | 95 | count++; |
takepiyo | 4:0d087e3f731d | 96 | } |
takepiyo | 4:0d087e3f731d | 97 | |
takepiyo | 4:0d087e3f731d | 98 | // wait(1); |
takepiyo | 4:0d087e3f731d | 99 | //fclose(fp); |
takepiyo | 4:0d087e3f731d | 100 | } |
takepiyo | 4:0d087e3f731d | 101 | |
takepiyo | 4:0d087e3f731d | 102 | while(1) |
takepiyo | 4:0d087e3f731d | 103 | { |
takepiyo | 4:0d087e3f731d | 104 | if(gps.readable()) |
takepiyo | 4:0d087e3f731d | 105 | { |
takepiyo | 4:0d087e3f731d | 106 | recvGPS=gps.getc(); |
takepiyo | 4:0d087e3f731d | 107 | getGPS[i]=recvGPS; |
takepiyo | 4:0d087e3f731d | 108 | |
takepiyo | 4:0d087e3f731d | 109 | if(getGPS[i]=='\n') |
takepiyo | 4:0d087e3f731d | 110 | { |
takepiyo | 4:0d087e3f731d | 111 | |
takepiyo | 4:0d087e3f731d | 112 | if((getGPS[5]=='G')&&(getGPS[6]=='A')) |
takepiyo | 4:0d087e3f731d | 113 | { |
takepiyo | 4:0d087e3f731d | 114 | if(count==10) |
takepiyo | 4:0d087e3f731d | 115 | { |
takepiyo | 4:0d087e3f731d | 116 | MuPort.send(getGPS); |
takepiyo | 4:0d087e3f731d | 117 | |
takepiyo | 4:0d087e3f731d | 118 | /*if(fp == NULL) { |
takepiyo | 4:0d087e3f731d | 119 | error("Could not open file for write\n"); |
takepiyo | 4:0d087e3f731d | 120 | }*/ |
takepiyo | 4:0d087e3f731d | 121 | |
takepiyo | 4:0d087e3f731d | 122 | // fprintf(fp2, "%s\n",getGPS); |
takepiyo | 4:0d087e3f731d | 123 | //fclose(fp); |
takepiyo | 4:0d087e3f731d | 124 | count=0; |
takepiyo | 4:0d087e3f731d | 125 | } |
takepiyo | 4:0d087e3f731d | 126 | wait(0.1); |
takepiyo | 4:0d087e3f731d | 127 | } |
takepiyo | 4:0d087e3f731d | 128 | |
takepiyo | 4:0d087e3f731d | 129 | i=0; |
takepiyo | 4:0d087e3f731d | 130 | } |
takepiyo | 4:0d087e3f731d | 131 | i++; |
takepiyo | 4:0d087e3f731d | 132 | inlet.Close(0.9); |
takepiyo | 4:0d087e3f731d | 133 | count++; |
takepiyo | 4:0d087e3f731d | 134 | } |
takepiyo | 4:0d087e3f731d | 135 | |
takepiyo | 4:0d087e3f731d | 136 | // wait(1); |
takepiyo | 4:0d087e3f731d | 137 | //fclose(fp); |
takepiyo | 4:0d087e3f731d | 138 | } |
takepiyo | 4:0d087e3f731d | 139 | |
takepiyo | 4:0d087e3f731d | 140 | |
takepiyo | 4:0d087e3f731d | 141 | //fclose(fp1); |
takepiyo | 4:0d087e3f731d | 142 | //fclose(fp2); |
takepiyo | 4:0d087e3f731d | 143 | |
takepiyo | 4:0d087e3f731d | 144 | } |
takepiyo | 4:0d087e3f731d | 145 | |
takepiyo | 4:0d087e3f731d | 146 | |
takepiyo | 4:0d087e3f731d | 147 |