mainまでいけました カメラのとこからコンパイルできません

Dependencies:   mbed CameraUS015sb612-3

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?

UserRevisionLine numberNew 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 //直進