mainまでいけました カメラのとこからコンパイルできません
Dependencies: mbed CameraUS015sb612-3
main.cpp@1:edc264954800, 2019-11-01 (annotated)
- Committer:
- YUPPY
- Date:
- Fri Nov 01 15:02:54 2019 +0000
- Revision:
- 1:edc264954800
- Parent:
- 0:6212b283430c
- Child:
- 2:e2b803e3bcbc
main 2;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
YUPPY | 0:6212b283430c | 1 | #define cansatB |
YUPPY | 0:6212b283430c | 2 | #include “mbed.h” //mbed |
YUPPY | 0:6212b283430c | 3 | #include “getgps.h” //GPS |
YUPPY | 0:6212b283430c | 4 | #include “motordriver.h” //モータードライバ |
YUPPY | 0:6212b283430c | 5 | #include “XBee.h” //XBee |
YUPPY | 0:6212b283430c | 6 | #include <SoftwareSerial.h> //カメラ |
YUPPY | 0:6212b283430c | 7 | #include <SD.h>//SDカード |
YUPPY | 0:6212b283430c | 8 | #include <JPEGCamera.h>//カメラ |
YUPPY | 0:6212b283430c | 9 | #include “US015.h” // 超音波センサ |
YUPPY | 0:6212b283430c | 10 | #include "sb612a.h"//焦電センサー |
YUPPY | 0:6212b283430c | 11 | #include <stdio.h> |
YUPPY | 0:6212b283430c | 12 | #include <wiringPi.h> |
YUPPY | 0:6212b283430c | 13 | #include <mcp23s17.h> |
YUPPY | 0:6212b283430c | 14 | #include <sys/time.h> |
YUPPY | 0:6212b283430c | 15 | #include <unistd.h> |
YUPPY | 0:6212b283430c | 16 | DigitalOut USSTriger (p12); //P12 :超音波センサ トリガ出力 |
YUPPY | 0:6212b283430c | 17 | InterruptIn USSEcho (p11); //p11 :超音波センサ エコー入力 |
YUPPY | 0:6212b283430c | 18 | Serial pc(USBTX, USBRX); //GPS |
YUPPY | 0:6212b283430c | 19 | GPS gps(p28, p27); //GPS |
YUPPY | 0:6212b283430c | 20 | PwmOut motorSpeedR(p26); //モーター |
YUPPY | 0:6212b283430c | 21 | PwmOut motorSpeedL(p25); //モーター |
YUPPY | 0:6212b283430c | 22 | DigitalIn flight(p22,p23); //フライトピン |
YUPPY | 0:6212b283430c | 23 | DigitalOut FET(p21); //FET |
YUPPY | 0:6212b283430c | 24 | Timer ActiveTime; |
YUPPY | 0:6212b283430c | 25 | XBee xbee(p13, p14); // XBee |
YUPPY | 0:6212b283430c | 26 | AnalogIn (p15,p16); //焦電センサ |
YUPPY | 0:6212b283430c | 27 | Serial pc (p9); //カメラ |
YUPPY | 0:6212b283430c | 28 | //Motor motor1(p22, p16, p17, 1); // pwm, fwd, rev, can brake モーター |
YUPPY | 0:6212b283430c | 29 | //Motor motor2(p22, p19, p20, 1); // pwm, fwd, rev, can brake |
YUPPY | 0:6212b283430c | 30 | void dist(int distance) |
YUPPY | 0:6212b283430c | 31 | { |
YUPPY | 0:6212b283430c | 32 | //put code here to happen when the distance is changed |
YUPPY | 0:6212b283430c | 33 | printf(“Distance changed to %dmm\r\n”, distance); |
YUPPY | 0:6212b283430c | 34 | } |
YUPPY | 0:6212b283430c | 35 | printf(“GPS start\r\n”);//GPS 第一回目 |
YUPPY | 0:6212b283430c | 36 | FILE *fp = fopen(“/local/gps,foto.txt”, “w”); // Open “gps.txt” on the local file system for writing |
YUPPY | 0:6212b283430c | 37 | fprintf(fp, “GPS Start\r\n”); |
YUPPY | 0:6212b283430c | 38 | int n; |
YUPPY | 0:6212b283430c | 39 | for(n=0;n<45;n++) //GPSの取得を45回行う(これで大体1分半) |
YUPPY | 0:6212b283430c | 40 | { |
YUPPY | 0:6212b283430c | 41 | printf(“gps for\r\n”); |
YUPPY | 0:6212b283430c | 42 | if(gps.getgps()) //現在地取得 |
YUPPY | 0:6212b283430c | 43 | fprintf(fp,“(%lf, %lf)\r\n”, gps.latitude, gps.longitude);//緯度と経度を出力 |
YUPPY | 0:6212b283430c | 44 | else |
YUPPY | 0:6212b283430c | 45 | fprintf(fp,“No data\r\n”);//データ取得に失敗した場合 |
YUPPY | 0:6212b283430c | 46 | wait(1); |
YUPPY | 0:6212b283430c | 47 | printf(“%d\r\n”,n); //今何回目かを出力(本番ではいらない) |
YUPPY | 0:6212b283430c | 48 | } |
YUPPY | 0:6212b283430c | 49 | fprintf(fp,“GPS finish\r\n”); |
YUPPY | 0:6212b283430c | 50 | // fclose(fp); // GPSの測定終了 */ |
YUPPY | 0:6212b283430c | 51 | US015 mu(p11, p12, .1, 1, &dist); //Set the trigger pin to D8 and the echo pin to D9 超音波センサー |
YUPPY | 0:6212b283430c | 52 | //have updates every .1 seconds and a timeout after 1 |
YUPPY | 0:6212b283430c | 53 | //second, and call dist when the distance changes |
YUPPY | 0:6212b283430c | 54 | void motorForwardR(void); |
YUPPY | 0:6212b283430c | 55 | void motorStopR(void); |
YUPPY | 0:6212b283430c | 56 | void motorReverseR(void); |
YUPPY | 0:6212b283430c | 57 | void motorForwardL(void); |
YUPPY | 0:6212b283430c | 58 | void motorStopL(void); |
YUPPY | 0:6212b283430c | 59 | void motorReverseL(void); |
YUPPY | 0:6212b283430c | 60 | LocalFileSystem local(“local”); // Create the local filesystem under the name “local” データ保存 |
YUPPY | 0:6212b283430c | 61 | float culculate_distance_3(float a,float b); |
YUPPY | 0:6212b283430c | 62 | int main() { |
YUPPY | 0:6212b283430c | 63 | printf(“cansat start\r\n”); |
YUPPY | 0:6212b283430c | 64 | flight==1; |
YUPPY | 0:6212b283430c | 65 | FET = 0; |
YUPPY | 0:6212b283430c | 66 | SW = 1; //p23をhigh(3.3V)にする。 |
YUPPY | 0:6212b283430c | 67 | while(1) { |
YUPPY | 0:6212b283430c | 68 | if(flight==1) { |
YUPPY | 0:6212b283430c | 69 | wait(10); |
YUPPY | 0:6212b283430c | 70 | printf(“mada\r\n”); |
YUPPY | 0:6212b283430c | 71 | } |
YUPPY | 0:6212b283430c | 72 | else{ |
YUPPY | 0:6212b283430c | 73 | if(flight==1) { |
YUPPY | 0:6212b283430c | 74 | wait(10); |
YUPPY | 0:6212b283430c | 75 | printf(“madamada\r\n”); |
YUPPY | 0:6212b283430c | 76 | } |
YUPPY | 0:6212b283430c | 77 | else{ |
YUPPY | 0:6212b283430c | 78 | printf(“yattar\r\n”); |
YUPPY | 0:6212b283430c | 79 | FET = 0; //FET、ニクロム線切断 |
YUPPY | 0:6212b283430c | 80 | wait(20); |
YUPPY | 0:6212b283430c | 81 | FET = 1; |
YUPPY | 0:6212b283430c | 82 | wait(12); |
YUPPY | 0:6212b283430c | 83 | FET = 0; |
YUPPY | 0:6212b283430c | 84 | wait(10); |
YUPPY | 0:6212b283430c | 85 | FET = 1; |
YUPPY | 0:6212b283430c | 86 | wait(12); |
YUPPY | 0:6212b283430c | 87 | FET = 0; |
YUPPY | 0:6212b283430c | 88 | SW = 0; //p23をlow(0V)にする。 |
YUPPY | 0:6212b283430c | 89 | break; |
YUPPY | 0:6212b283430c | 90 | } |
YUPPY | 0:6212b283430c | 91 | } |
YUPPY | 0:6212b283430c | 92 | } |
YUPPY | 0:6212b283430c | 93 | motorStopR(); |
YUPPY | 0:6212b283430c | 94 | motorStopL(); |
YUPPY | 0:6212b283430c | 95 | wait(20); //確認用//デフォ20秒 |
YUPPY | 0:6212b283430c | 96 | // FILE *fp = fopen(“/local/gps.txt”, “w”); // Open “gps.txt” on the local file system for writing |
YUPPY | 0:6212b283430c | 97 | motorSpeedR.period_ms(4); //モーター調節 |
YUPPY | 0:6212b283430c | 98 | motorSpeedR = 0.655; |
YUPPY | 0:6212b283430c | 99 | motorSpeedL.period_ms(4); //モーター調節 |
YUPPY | 0:6212b283430c | 100 | motorSpeedL = 0.755; |
YUPPY | 0:6212b283430c | 101 | motorForwardL(); //車体を時計回りに3秒回転 |
YUPPY | 0:6212b283430c | 102 | motorReverseR(); |
YUPPY | 0:6212b283430c | 103 | wait(1.6); |
YUPPY | 0:6212b283430c | 104 | motorStopR(); |
YUPPY | 0:6212b283430c | 105 | motorStopL(); |
YUPPY | 0:6212b283430c | 106 | wait(1); |
YUPPY | 0:6212b283430c | 107 | motorReverseL(); //車体を反時計回りに3秒回転 |
YUPPY | 0:6212b283430c | 108 | motorForwardR(); |
YUPPY | 0:6212b283430c | 109 | wait(1.6); |
YUPPY | 0:6212b283430c | 110 | motorStopR(); |
YUPPY | 0:6212b283430c | 111 | motorStopL(); |
YUPPY | 0:6212b283430c | 112 | wait(1); |
YUPPY | 0:6212b283430c | 113 | printf(“compass carriblation\r\n”); //キャリブレーション終了 |
YUPPY | 0:6212b283430c | 114 | //float mcn1,mcn2; |
YUPPY | 0:6212b283430c | 115 | printf(“GPS start\r\n”);//GPS第2回目(移動後) |
YUPPY | 0:6212b283430c | 116 | FILE *fp = fopen(“/local/gps,foto.txt”, “w”); // Open “gps.txt” on the local file system for writing |
YUPPY | 0:6212b283430c | 117 | fprintf(fp, “GPS Start\r\n”); |
YUPPY | 0:6212b283430c | 118 | int n; |
YUPPY | 0:6212b283430c | 119 | for(n=0;n<45;n++) //GPSの取得を45回行う(これで大体1分半) |
YUPPY | 0:6212b283430c | 120 | { |
YUPPY | 0:6212b283430c | 121 | printf(“gps for\r\n”); |
YUPPY | 0:6212b283430c | 122 | if(gps.getgps()) //現在地取得 |
YUPPY | 0:6212b283430c | 123 | fprintf(fp,“(%lf, %lf)\r\n”, gps.latitude, gps.longitude);//緯度と経度を出力 |
YUPPY | 0:6212b283430c | 124 | else |
YUPPY | 0:6212b283430c | 125 | fprintf(fp,“No data\r\n”);//データ取得に失敗した場合 |
YUPPY | 0:6212b283430c | 126 | wait(1); |
YUPPY | 0:6212b283430c | 127 | printf(“%d\r\n”,n); //今何回目かを出力(本番ではいらない) |
YUPPY | 0:6212b283430c | 128 | } |
YUPPY | 0:6212b283430c | 129 | fprintf(fp,“GPS finish\r\n”); |
YUPPY | 0:6212b283430c | 130 | // fclose(fp); // GPSの測定終了 */ |
YUPPY | 0:6212b283430c | 131 | |
YUPPY | 1:edc264954800 | 132 | if(distance<4000){ |
YUPPY | 1:edc264954800 | 133 | motorStopR(); |
YUPPY | 1:edc264954800 | 134 | motorStopL(); |
YUPPY | 1:edc264954800 | 135 | stopUS015(); |
YUPPY | 1:edc264954800 | 136 | startsb612a(); |
YUPPY | 0:6212b283430c | 137 | //超音波センサー反応あり |
YUPPY | 0:6212b283430c | 138 | //停止 |
YUPPY | 0:6212b283430c | 139 | //超音波センサーOFF |
YUPPY | 0:6212b283430c | 140 | //焦電センサーON |
YUPPY | 1:edc264954800 | 141 | if(detected=true){ |
YUPPY | 1:edc264954800 | 142 | stopsb612a(); |
YUPPY | 1:edc264954800 | 143 | startCamera(); |
YUPPY | 1:edc264954800 | 144 | stopCamera(); |
YUPPY | 1:edc264954800 | 145 | sendSD(); |
YUPPY | 1:edc264954800 | 146 | sendPC(); |
YUPPY | 1:edc264954800 | 147 | |
YUPPY | 0:6212b283430c | 148 | //焦電センサー反応あり |
YUPPY | 0:6212b283430c | 149 | //焦電センサーOFF |
YUPPY | 0:6212b283430c | 150 | //カメラ起動 |
YUPPY | 0:6212b283430c | 151 | //カメラOFF |
YUPPY | 0:6212b283430c | 152 | //データをSDカードに保存 |
YUPPY | 0:6212b283430c | 153 | //保存データをXBeeによりPCへ送信 |
YUPPY | 1:edc264954800 | 154 | if(receiveOK()=true){ |
YUPPY | 1:edc264954800 | 155 | printf("Unknown Creature has been descovered!\n"); |
YUPPY | 1:edc264954800 | 156 | } |
YUPPY | 0:6212b283430c | 157 | //"OK"受信、ミッション終了 |
YUPPY | 1:edc264954800 | 158 | else if(receiveOK()=false){ |
YUPPY | 1:edc264954800 | 159 | printf("Continue!\n"); |
YUPPY | 1:edc264954800 | 160 | } |
YUPPY | 0:6212b283430c | 161 | //"NO"受信、ミッション再開 |
YUPPY | 0:6212b283430c | 162 | |
YUPPY | 1:edc264954800 | 163 | else if(detected=false){ |
YUPPY | 1:edc264954800 | 164 | stopsb612a(); |
YUPPY | 1:edc264954800 | 165 | motorForwardL(); |
YUPPY | 1:edc264954800 | 166 | motorStopL(); |
YUPPY | 1:edc264954800 | 167 | motorForwardR(); |
YUPPY | 1:edc264954800 | 168 | motorForwardL(); |
YUPPY | 1:edc264954800 | 169 | startUS015(); |
YUPPY | 1:edc264954800 | 170 | } |
YUPPY | 1:edc264954800 | 171 | } |
YUPPY | 0:6212b283430c | 172 | //焦電センサー反応無し |
YUPPY | 0:6212b283430c | 173 | //焦電センサーOFF |
YUPPY | 0:6212b283430c | 174 | //方向転換 |
YUPPY | 0:6212b283430c | 175 | //超音波センサーON |
YUPPY | 0:6212b283430c | 176 | //直進 |
YUPPY | 1:edc264954800 | 177 | } |
YUPPY | 1:edc264954800 | 178 | else if(distance>=4000){ |
YUPPY | 1:edc264954800 | 179 | motorStopL(); |
YUPPY | 1:edc264954800 | 180 | motorStopR(); |
YUPPY | 1:edc264954800 | 181 | motorForwardL(); |
YUPPY | 1:edc264954800 | 182 | motorStopL(); |
YUPPY | 1:edc264954800 | 183 | motorForwardR(); |
YUPPY | 1:edc264954800 | 184 | motorForwardL(); |
YUPPY | 1:edc264954800 | 185 | } |
YUPPY | 0:6212b283430c | 186 | //超音波センサー反応無し |
YUPPY | 0:6212b283430c | 187 | //停止 |
YUPPY | 0:6212b283430c | 188 | //方向転換 |
YUPPY | 0:6212b283430c | 189 | //直進 |