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

Dependencies:   mbed CameraUS015sb612-3

Committer:
YUPPY
Date:
Fri Nov 08 19:48:16 2019 +0000
Revision:
3:5d0c4b13f4e8
Parent:
2:e2b803e3bcbc
Child:
4:1354e56c7dd3
main

Who changed what in which revision?

UserRevisionLine numberNew contents of line
YUPPY 0:6212b283430c 1 #define cansatB
YUPPY 2:e2b803e3bcbc 2 #include "mbed.h" //mbed
YUPPY 2:e2b803e3bcbc 3 #include "getGPS.h" //GPS
YUPPY 2:e2b803e3bcbc 4 #include "math.h" //GPS
YUPPY 3:5d0c4b13f4e8 5 #include "TB6612.h" //motorDriver
YUPPY 2:e2b803e3bcbc 6 #include "XBee.h" //XBee
YUPPY 0:6212b283430c 7 #include <SoftwareSerial.h> //カメラ
YUPPY 0:6212b283430c 8 #include <SD.h>//SDカード
YUPPY 0:6212b283430c 9 #include <JPEGCamera.h>//カメラ
YUPPY 2:e2b803e3bcbc 10 #include "us015.h" // 超音波センサ
YUPPY 0:6212b283430c 11 #include <stdio.h>
YUPPY 2:e2b803e3bcbc 12 US015 hs(p12,p11); //P12 :超音波センサ トリガ出力 //p11 :超音波センサ エコー入力
YUPPY 2:e2b803e3bcbc 13 Serial pc(USBTX,USBRX); //GPs
YUPPY 2:e2b803e3bcbc 14 GPS gps (p28,p27); //GPS
YUPPY 0:6212b283430c 15 PwmOut motorSpeedR(p26); //モーター
YUPPY 0:6212b283430c 16 PwmOut motorSpeedL(p25); //モーター
YUPPY 0:6212b283430c 17 DigitalIn flight(p22,p23); //フライトピン
YUPPY 2:e2b803e3bcbc 18 DigitalOut FET(p21); //FET
YUPPY 0:6212b283430c 19 XBee xbee(p13, p14); // XBee
YUPPY 2:e2b803e3bcbc 20 DigitalIn thermo(p20); //焦電センサ↓
YUPPY 2:e2b803e3bcbc 21 DigitalOut led(LED1);
YUPPY 2:e2b803e3bcbc 22 Serial pc(USBTX, USBRX); // tx, rx 焦電センサ↑
YUPPY 0:6212b283430c 23 Serial pc (p9); //カメラ
YUPPY 3:5d0c4b13f4e8 24 TB6612 left(p25,p17,p16);
YUPPY 3:5d0c4b13f4e8 25 TB6612 right(p26,p19,p18);
YUPPY 2:e2b803e3bcbc 26
YUPPY 2:e2b803e3bcbc 27 int main() { //FET
YUPPY 2:e2b803e3bcbc 28 FET = 0;
YUPPY 2:e2b803e3bcbc 29 SW = 1; //p21をhigh(3.3V)にする。
YUPPY 2:e2b803e3bcbc 30 while(1) {
YUPPY 2:e2b803e3bcbc 31 if(flight==1) {
YUPPY 2:e2b803e3bcbc 32 wait(10);
YUPPY 2:e2b803e3bcbc 33 }
YUPPY 2:e2b803e3bcbc 34
YUPPY 2:e2b803e3bcbc 35 else{
YUPPY 2:e2b803e3bcbc 36 if(flight==1) {
YUPPY 2:e2b803e3bcbc 37 wait(10);
YUPPY 2:e2b803e3bcbc 38 }
YUPPY 2:e2b803e3bcbc 39 else{
YUPPY 2:e2b803e3bcbc 40 FET = 0; //FET、ニクロム線切断
YUPPY 2:e2b803e3bcbc 41 wait(20);
YUPPY 2:e2b803e3bcbc 42 FET = 1;
YUPPY 2:e2b803e3bcbc 43 wait(12);
YUPPY 2:e2b803e3bcbc 44 FET = 0;
YUPPY 2:e2b803e3bcbc 45 wait(10);
YUPPY 2:e2b803e3bcbc 46 FET = 1;
YUPPY 2:e2b803e3bcbc 47 wait(12);
YUPPY 2:e2b803e3bcbc 48 FET = 0;
YUPPY 2:e2b803e3bcbc 49 SW = 0; //p21をlow(0V)にする。
YUPPY 2:e2b803e3bcbc 50 break;
YUPPY 2:e2b803e3bcbc 51 }
YUPPY 2:e2b803e3bcbc 52 }
YUPPY 2:e2b803e3bcbc 53 }
YUPPY 2:e2b803e3bcbc 54 }
YUPPY 2:e2b803e3bcbc 55
YUPPY 2:e2b803e3bcbc 56 int main() { //以下GPS
YUPPY 2:e2b803e3bcbc 57 double a;
YUPPY 2:e2b803e3bcbc 58 double b;
YUPPY 2:e2b803e3bcbc 59 double distance;
YUPPY 2:e2b803e3bcbc 60
YUPPY 2:e2b803e3bcbc 61 pc.printf("GPS Start\r\n");
YUPPY 2:e2b803e3bcbc 62
YUPPY 2:e2b803e3bcbc 63 while(1) {
YUPPY 2:e2b803e3bcbc 64 if(gps.getgps()){
YUPPY 2:e2b803e3bcbc 65 a = gps.latitude;
YUPPY 2:e2b803e3bcbc 66 b = gps.longitude;
YUPPY 2:e2b803e3bcbc 67
YUPPY 2:e2b803e3bcbc 68 pc.printf("(%lf,%lf)\r\n",gps.latitude,gps.longitude);//緯度と経度を表示
YUPPY 2:e2b803e3bcbc 69
YUPPY 2:e2b803e3bcbc 70 break;
YUPPY 2:e2b803e3bcbc 71
YUPPY 2:e2b803e3bcbc 72 }else{
YUPPY 2:e2b803e3bcbc 73 pc.printf("NO DATA\r\n");//データ取得失敗
YUPPY 2:e2b803e3bcbc 74 wait(1);
YUPPY 2:e2b803e3bcbc 75 }
YUPPY 2:e2b803e3bcbc 76 }
YUPPY 2:e2b803e3bcbc 77 while(1){
YUPPY 2:e2b803e3bcbc 78 if(gps.getgps()) {
YUPPY 2:e2b803e3bcbc 79
YUPPY 2:e2b803e3bcbc 80 pc.printf("(%lf,%lf)\n\r",gps.latitude,gps.longitude);//緯度と経度を表示
YUPPY 2:e2b803e3bcbc 81
YUPPY 2:e2b803e3bcbc 82 // 球面三角法により、大円距離(メートル)を求める
YUPPY 2:e2b803e3bcbc 83 double c;
YUPPY 2:e2b803e3bcbc 84 double d;
YUPPY 2:e2b803e3bcbc 85 c = gps.latitude;
YUPPY 2:e2b803e3bcbc 86 d = gps.longitude;
YUPPY 2:e2b803e3bcbc 87
YUPPY 2:e2b803e3bcbc 88 const double pi = 3.14159265359; // 円周率
YUPPY 2:e2b803e3bcbc 89
YUPPY 2:e2b803e3bcbc 90 double ra = a * pi / 180;
YUPPY 2:e2b803e3bcbc 91 double rb = b * pi / 180; // 緯度経度をラジアンに変換
YUPPY 2:e2b803e3bcbc 92 double rc = c * pi / 180;
YUPPY 2:e2b803e3bcbc 93 double rd = d * pi / 180;
YUPPY 2:e2b803e3bcbc 94
YUPPY 2:e2b803e3bcbc 95 double e = sin(ra) * sin(rc) + cos(ra) * cos(rc) * cos(rb - rd); // 2点の中心角(ラジアン)を求める
YUPPY 2:e2b803e3bcbc 96 double rr = acos(e);
YUPPY 2:e2b803e3bcbc 97
YUPPY 2:e2b803e3bcbc 98 const double earth_radius = 6378140; // 地球赤道半径(m)
YUPPY 2:e2b803e3bcbc 99
YUPPY 2:e2b803e3bcbc 100 distance = earth_radius * rr; // 2点間の距離(m)
YUPPY 2:e2b803e3bcbc 101
YUPPY 2:e2b803e3bcbc 102
YUPPY 2:e2b803e3bcbc 103
YUPPY 2:e2b803e3bcbc 104
YUPPY 2:e2b803e3bcbc 105 if (distance<5){
YUPPY 2:e2b803e3bcbc 106 printf("%lf\r\n",distance);
YUPPY 2:e2b803e3bcbc 107 }else{
YUPPY 2:e2b803e3bcbc 108 pc.printf("5m clear!");
YUPPY 2:e2b803e3bcbc 109 break;
YUPPY 2:e2b803e3bcbc 110 }
YUPPY 2:e2b803e3bcbc 111
YUPPY 2:e2b803e3bcbc 112 }else{
YUPPY 2:e2b803e3bcbc 113 pc.printf("NO DATA\r\n");//データ取得失敗
YUPPY 2:e2b803e3bcbc 114 wait(1);
YUPPY 2:e2b803e3bcbc 115 }
YUPPY 2:e2b803e3bcbc 116 }
YUPPY 2:e2b803e3bcbc 117 return 0; //注意!void()に変えること.このままだとここで終わる
YUPPY 2:e2b803e3bcbc 118 }
YUPPY 2:e2b803e3bcbc 119
YUPPY 3:5d0c4b13f4e8 120 int main() {
YUPPY 3:5d0c4b13f4e8 121 while(1) {
YUPPY 3:5d0c4b13f4e8 122 left = 100; //左モーター100%
YUPPY 3:5d0c4b13f4e8 123 right = 100;//右モーター100%
YUPPY 3:5d0c4b13f4e8 124 wait(1.0);
YUPPY 3:5d0c4b13f4e8 125 left = 30;//左30%
YUPPY 3:5d0c4b13f4e8 126 right = 30;//右30%
YUPPY 3:5d0c4b13f4e8 127 wait(1.0);
YUPPY 3:5d0c4b13f4e8 128 printf("OK");
YUPPY 3:5d0c4b13f4e8 129 }
YUPPY 3:5d0c4b13f4e8 130 }
YUPPY 0:6212b283430c 131
YUPPY 2:e2b803e3bcbc 132 if(distance<2000){
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 2:e2b803e3bcbc 141 int main()
YUPPY 2:e2b803e3bcbc 142 {
YUPPY 2:e2b803e3bcbc 143 float th;
YUPPY 2:e2b803e3bcbc 144 Timer tm;
YUPPY 2:e2b803e3bcbc 145 pc.printf("start\r\n");
YUPPY 2:e2b803e3bcbc 146 led=0;
YUPPY 2:e2b803e3bcbc 147 bool detected=false;
YUPPY 2:e2b803e3bcbc 148 while(true)
YUPPY 2:e2b803e3bcbc 149 {
YUPPY 2:e2b803e3bcbc 150 th = thermo;
YUPPY 2:e2b803e3bcbc 151 if(th==1 && !detected) {
YUPPY 2:e2b803e3bcbc 152 led = 1;
YUPPY 2:e2b803e3bcbc 153 detected=true;
YUPPY 2:e2b803e3bcbc 154 pc.printf("human\r\n");
YUPPY 2:e2b803e3bcbc 155 tm.reset();
YUPPY 2:e2b803e3bcbc 156 tm.start();
YUPPY 2:e2b803e3bcbc 157 }
YUPPY 2:e2b803e3bcbc 158 if(tm.read_ms()>10000) {
YUPPY 2:e2b803e3bcbc 159 printf("Time out!\r\n");
YUPPY 2:e2b803e3bcbc 160 led = 0;
YUPPY 2:e2b803e3bcbc 161 detected=false;
YUPPY 2:e2b803e3bcbc 162 }
YUPPY 2:e2b803e3bcbc 163 }
YUPPY 2:e2b803e3bcbc 164 }
YUPPY 1:edc264954800 165 if(detected=true){
YUPPY 1:edc264954800 166 stopsb612a();
YUPPY 1:edc264954800 167 startCamera();
YUPPY 1:edc264954800 168 stopCamera();
YUPPY 1:edc264954800 169 sendSD();
YUPPY 1:edc264954800 170 sendPC();
YUPPY 1:edc264954800 171
YUPPY 0:6212b283430c 172 //焦電センサー反応あり
YUPPY 0:6212b283430c 173 //焦電センサーOFF
YUPPY 0:6212b283430c 174 //カメラ起動
YUPPY 0:6212b283430c 175 //カメラOFF
YUPPY 0:6212b283430c 176 //データをSDカードに保存
YUPPY 0:6212b283430c 177 //保存データをXBeeによりPCへ送信
YUPPY 1:edc264954800 178 if(receiveOK()=true){
YUPPY 1:edc264954800 179 printf("Unknown Creature has been descovered!\n");
YUPPY 1:edc264954800 180 }
YUPPY 0:6212b283430c 181 //"OK"受信、ミッション終了
YUPPY 1:edc264954800 182 else if(receiveOK()=false){
YUPPY 1:edc264954800 183 printf("Continue!\n");
YUPPY 1:edc264954800 184 }
YUPPY 0:6212b283430c 185 //"NO"受信、ミッション再開
YUPPY 0:6212b283430c 186
YUPPY 1:edc264954800 187 else if(detected=false){
YUPPY 1:edc264954800 188 stopsb612a();
YUPPY 1:edc264954800 189 motorForwardL();
YUPPY 1:edc264954800 190 motorStopL();
YUPPY 1:edc264954800 191 motorForwardR();
YUPPY 1:edc264954800 192 motorForwardL();
YUPPY 1:edc264954800 193 startUS015();
YUPPY 1:edc264954800 194 }
YUPPY 1:edc264954800 195 }
YUPPY 0:6212b283430c 196 //焦電センサー反応無し
YUPPY 0:6212b283430c 197 //焦電センサーOFF
YUPPY 0:6212b283430c 198 //方向転換
YUPPY 0:6212b283430c 199 //超音波センサーON
YUPPY 0:6212b283430c 200 //直進
YUPPY 1:edc264954800 201 }
YUPPY 2:e2b803e3bcbc 202 else if(distance>=2000){
YUPPY 1:edc264954800 203 motorStopL();
YUPPY 1:edc264954800 204 motorStopR();
YUPPY 1:edc264954800 205 motorForwardL();
YUPPY 1:edc264954800 206 motorStopL();
YUPPY 1:edc264954800 207 motorForwardR();
YUPPY 1:edc264954800 208 motorForwardL();
YUPPY 1:edc264954800 209 }
YUPPY 0:6212b283430c 210 //超音波センサー反応無し
YUPPY 0:6212b283430c 211 //停止
YUPPY 0:6212b283430c 212 //方向転換
YUPPY 0:6212b283430c 213 //直進