Class導入前です まだできてません

Dependencies:   mbed CameraUS015sb612-3

Committer:
YUPPY
Date:
Wed Nov 20 08:06:46 2019 +0000
Revision:
4:1354e56c7dd3
Parent:
3:5d0c4b13f4e8
class_before_loading;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
YUPPY 0:6212b283430c 1 #define cansatB
YUPPY 4:1354e56c7dd3 2 #define min(x, y) ((x) < (y)) ? (x) : (y)
YUPPY 2:e2b803e3bcbc 3 #include "mbed.h" //mbed
YUPPY 2:e2b803e3bcbc 4 #include "getGPS.h" //GPS
YUPPY 2:e2b803e3bcbc 5 #include "math.h" //GPS
YUPPY 3:5d0c4b13f4e8 6 #include "TB6612.h" //motorDriver
YUPPY 4:1354e56c7dd3 7 #include "JPEGCamera.h"//カメラ
YUPPY 4:1354e56c7dd3 8 #include "base64.h"//写真ーXBee
YUPPY 2:e2b803e3bcbc 9 #include "us015.h" // 超音波センサ
YUPPY 0:6212b283430c 10 #include <stdio.h>
YUPPY 2:e2b803e3bcbc 11 US015 hs(p12,p11); //P12 :超音波センサ トリガ出力 //p11 :超音波センサ エコー入力
YUPPY 2:e2b803e3bcbc 12 GPS gps (p28,p27); //GPS
YUPPY 4:1354e56c7dd3 13
YUPPY 2:e2b803e3bcbc 14 DigitalOut FET(p21); //FET
YUPPY 4:1354e56c7dd3 15 DigitalOut Ultra(p12);
YUPPY 2:e2b803e3bcbc 16 DigitalIn thermo(p20); //焦電センサ↓
YUPPY 2:e2b803e3bcbc 17 DigitalOut led(LED1);
YUPPY 4:1354e56c7dd3 18 Serial pc(USBTX,USBRX); // tx, rx 焦電センサ↑
YUPPY 4:1354e56c7dd3 19 TB6612 left(p25,p17,p16);//motor
YUPPY 4:1354e56c7dd3 20 TB6612 right(p26,p19,p18);//motor
YUPPY 2:e2b803e3bcbc 21
YUPPY 2:e2b803e3bcbc 22 int main() { //FET
YUPPY 2:e2b803e3bcbc 23 FET = 0;
YUPPY 2:e2b803e3bcbc 24 SW = 1; //p21をhigh(3.3V)にする。
YUPPY 2:e2b803e3bcbc 25 while(1) {
YUPPY 2:e2b803e3bcbc 26 if(flight==1) {
YUPPY 2:e2b803e3bcbc 27 wait(10);
YUPPY 2:e2b803e3bcbc 28 }
YUPPY 2:e2b803e3bcbc 29
YUPPY 2:e2b803e3bcbc 30 else{
YUPPY 2:e2b803e3bcbc 31 if(flight==1) {
YUPPY 2:e2b803e3bcbc 32 wait(10);
YUPPY 2:e2b803e3bcbc 33 }
YUPPY 2:e2b803e3bcbc 34 else{
YUPPY 2:e2b803e3bcbc 35 FET = 0; //FET、ニクロム線切断
YUPPY 2:e2b803e3bcbc 36 wait(20);
YUPPY 2:e2b803e3bcbc 37 FET = 1;
YUPPY 2:e2b803e3bcbc 38 wait(12);
YUPPY 2:e2b803e3bcbc 39 FET = 0;
YUPPY 2:e2b803e3bcbc 40 wait(10);
YUPPY 2:e2b803e3bcbc 41 FET = 1;
YUPPY 2:e2b803e3bcbc 42 wait(12);
YUPPY 2:e2b803e3bcbc 43 FET = 0;
YUPPY 2:e2b803e3bcbc 44 SW = 0; //p21をlow(0V)にする。
YUPPY 2:e2b803e3bcbc 45 break;
YUPPY 2:e2b803e3bcbc 46 }
YUPPY 2:e2b803e3bcbc 47 }
YUPPY 2:e2b803e3bcbc 48 }
YUPPY 2:e2b803e3bcbc 49 }
YUPPY 2:e2b803e3bcbc 50 int main() { //以下GPS
YUPPY 2:e2b803e3bcbc 51 double a;
YUPPY 2:e2b803e3bcbc 52 double b;
YUPPY 2:e2b803e3bcbc 53 double distance;
YUPPY 2:e2b803e3bcbc 54
YUPPY 2:e2b803e3bcbc 55 pc.printf("GPS Start\r\n");
YUPPY 2:e2b803e3bcbc 56
YUPPY 2:e2b803e3bcbc 57 while(1) {
YUPPY 2:e2b803e3bcbc 58 if(gps.getgps()){
YUPPY 2:e2b803e3bcbc 59 a = gps.latitude;
YUPPY 2:e2b803e3bcbc 60 b = gps.longitude;
YUPPY 2:e2b803e3bcbc 61
YUPPY 2:e2b803e3bcbc 62 pc.printf("(%lf,%lf)\r\n",gps.latitude,gps.longitude);//緯度と経度を表示
YUPPY 2:e2b803e3bcbc 63
YUPPY 2:e2b803e3bcbc 64 break;
YUPPY 2:e2b803e3bcbc 65
YUPPY 2:e2b803e3bcbc 66 }else{
YUPPY 2:e2b803e3bcbc 67 pc.printf("NO DATA\r\n");//データ取得失敗
YUPPY 2:e2b803e3bcbc 68 wait(1);
YUPPY 2:e2b803e3bcbc 69 }
YUPPY 2:e2b803e3bcbc 70 }
YUPPY 2:e2b803e3bcbc 71 while(1){
YUPPY 2:e2b803e3bcbc 72 if(gps.getgps()) {
YUPPY 2:e2b803e3bcbc 73
YUPPY 2:e2b803e3bcbc 74 pc.printf("(%lf,%lf)\n\r",gps.latitude,gps.longitude);//緯度と経度を表示
YUPPY 2:e2b803e3bcbc 75
YUPPY 2:e2b803e3bcbc 76 // 球面三角法により、大円距離(メートル)を求める
YUPPY 2:e2b803e3bcbc 77 double c;
YUPPY 2:e2b803e3bcbc 78 double d;
YUPPY 2:e2b803e3bcbc 79 c = gps.latitude;
YUPPY 2:e2b803e3bcbc 80 d = gps.longitude;
YUPPY 2:e2b803e3bcbc 81
YUPPY 2:e2b803e3bcbc 82 const double pi = 3.14159265359; // 円周率
YUPPY 2:e2b803e3bcbc 83
YUPPY 2:e2b803e3bcbc 84 double ra = a * pi / 180;
YUPPY 2:e2b803e3bcbc 85 double rb = b * pi / 180; // 緯度経度をラジアンに変換
YUPPY 2:e2b803e3bcbc 86 double rc = c * pi / 180;
YUPPY 2:e2b803e3bcbc 87 double rd = d * pi / 180;
YUPPY 2:e2b803e3bcbc 88
YUPPY 2:e2b803e3bcbc 89 double e = sin(ra) * sin(rc) + cos(ra) * cos(rc) * cos(rb - rd); // 2点の中心角(ラジアン)を求める
YUPPY 2:e2b803e3bcbc 90 double rr = acos(e);
YUPPY 2:e2b803e3bcbc 91
YUPPY 2:e2b803e3bcbc 92 const double earth_radius = 6378140; // 地球赤道半径(m)
YUPPY 2:e2b803e3bcbc 93
YUPPY 2:e2b803e3bcbc 94 distance = earth_radius * rr; // 2点間の距離(m)
YUPPY 2:e2b803e3bcbc 95
YUPPY 2:e2b803e3bcbc 96
YUPPY 2:e2b803e3bcbc 97
YUPPY 2:e2b803e3bcbc 98
YUPPY 2:e2b803e3bcbc 99 if (distance<5){
YUPPY 2:e2b803e3bcbc 100 printf("%lf\r\n",distance);
YUPPY 4:1354e56c7dd3 101 left = 100; //左モーター100%
YUPPY 4:1354e56c7dd3 102 right = 100;//右モーター100%
YUPPY 4:1354e56c7dd3 103 printf("直進\n\r");
YUPPY 2:e2b803e3bcbc 104 }else{
YUPPY 4:1354e56c7dd3 105 left = 0;
YUPPY 4:1354e56c7dd3 106 right = 0;
YUPPY 4:1354e56c7dd3 107 printf("停止\n\r");
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 4:1354e56c7dd3 120 int main(){
YUPPY 4:1354e56c7dd3 121 float th;
YUPPY 4:1354e56c7dd3 122 Timer tm;
YUPPY 4:1354e56c7dd3 123 pc.printf("start\r\n");
YUPPY 4:1354e56c7dd3 124
YUPPY 4:1354e56c7dd3 125 bool detected=false;
YUPPY 4:1354e56c7dd3 126 thermo=0; //焦電off
YUPPY 4:1354e56c7dd3 127 Ultra=1;//超音波on
YUPPY 4:1354e56c7dd3 128
YUPPY 3:5d0c4b13f4e8 129 while(1) {
YUPPY 4:1354e56c7dd3 130 hs.TrigerOut();
YUPPY 4:1354e56c7dd3 131 wait(1);
YUPPY 4:1354e56c7dd3 132 int distance;
YUPPY 4:1354e56c7dd3 133 distance = hs.GetDistance();
YUPPY 4:1354e56c7dd3 134 printf("%d\r\n",distance);//距離出力
YUPPY 4:1354e56c7dd3 135
YUPPY 4:1354e56c7dd3 136 if(distance<2000){//超音波反応
YUPPY 4:1354e56c7dd3 137 Ultra=0;//超音波off
YUPPY 4:1354e56c7dd3 138 thermo=1;//焦電on
YUPPY 4:1354e56c7dd3 139 left = 0; //左モーター0%
YUPPY 4:1354e56c7dd3 140 right = 0;//右モーター0%
YUPPY 4:1354e56c7dd3 141 printf("停止\n\r");
YUPPY 4:1354e56c7dd3 142 if(true)
YUPPY 4:1354e56c7dd3 143 th = thermo;
YUPPY 4:1354e56c7dd3 144 if(th=1 && !detected) {//焦電反応ありの場合
YUPPY 4:1354e56c7dd3 145 detected=true;
YUPPY 4:1354e56c7dd3 146 pc.printf("human\r\n");
YUPPY 4:1354e56c7dd3 147 tm.reset();
YUPPY 4:1354e56c7dd3 148 tm.start();
YUPPY 4:1354e56c7dd3 149 thermo=0;
YUPPY 4:1354e56c7dd3 150 const int RESPONSE_TIMEOUT = 500;
YUPPY 4:1354e56c7dd3 151 const int DATA_TIMEOUT = 1000;
YUPPY 4:1354e56c7dd3 152
YUPPY 4:1354e56c7dd3 153 JPEGCamera::JPEGCamera(PinName tx, PinName rx) : Serial(tx, rx) {
YUPPY 4:1354e56c7dd3 154 printf("AA\r\n");
YUPPY 4:1354e56c7dd3 155 baud(38400);
YUPPY 4:1354e56c7dd3 156 state = READY;
YUPPY 4:1354e56c7dd3 157 }
YUPPY 4:1354e56c7dd3 158
YUPPY 4:1354e56c7dd3 159 bool JPEGCamera::setPictureSize(JPEGCamera::PictureSize size, bool doReset) {
YUPPY 4:1354e56c7dd3 160 char buf[9] = {0x56, 0x00, 0x31, 0x05, 0x04, 0x01, 0x00, 0x19, (char) size};
YUPPY 4:1354e56c7dd3 161 int ret = sendReceive(buf, sizeof buf, 5);
YUPPY 4:1354e56c7dd3 162
YUPPY 4:1354e56c7dd3 163 if (ret == 5 && buf[0] == 0x76) {
YUPPY 4:1354e56c7dd3 164 if (doReset)
YUPPY 4:1354e56c7dd3 165 reset();
YUPPY 4:1354e56c7dd3 166 return true;
YUPPY 4:1354e56c7dd3 167 } else
YUPPY 4:1354e56c7dd3 168 return false;
YUPPY 4:1354e56c7dd3 169 }
YUPPY 4:1354e56c7dd3 170
YUPPY 4:1354e56c7dd3 171 bool JPEGCamera::isReady() {
YUPPY 4:1354e56c7dd3 172 return state == READY;
YUPPY 4:1354e56c7dd3 173 }
YUPPY 4:1354e56c7dd3 174
YUPPY 4:1354e56c7dd3 175 bool JPEGCamera::isProcessing() {
YUPPY 4:1354e56c7dd3 176 return state == PROCESSING;
YUPPY 4:1354e56c7dd3 177 }
YUPPY 4:1354e56c7dd3 178
YUPPY 4:1354e56c7dd3 179 bool JPEGCamera::takePicture(char *filename) {
YUPPY 4:1354e56c7dd3 180 if (state == READY) {
YUPPY 4:1354e56c7dd3 181 fp = fopen(filename, "wb");
YUPPY 4:1354e56c7dd3 182 if (fp != 0) {
YUPPY 4:1354e56c7dd3 183 if (takePicture()) {
YUPPY 4:1354e56c7dd3 184 imageSize = getImageSize();
YUPPY 4:1354e56c7dd3 185 address = 0;
YUPPY 4:1354e56c7dd3 186 state = PROCESSING;
YUPPY 4:1354e56c7dd3 187 } else {
YUPPY 4:1354e56c7dd3 188 fclose(fp);
YUPPY 4:1354e56c7dd3 189 printf("takePicture(%s) failed", filename);
YUPPY 4:1354e56c7dd3 190 state = ERROR;
YUPPY 4:1354e56c7dd3 191 }
YUPPY 4:1354e56c7dd3 192 } else {
YUPPY 4:1354e56c7dd3 193 printf("fopen() failed");
YUPPY 4:1354e56c7dd3 194 state = ERROR;
YUPPY 4:1354e56c7dd3 195 }
YUPPY 3:5d0c4b13f4e8 196 }
YUPPY 4:1354e56c7dd3 197 return state != ERROR;
YUPPY 4:1354e56c7dd3 198 }
YUPPY 4:1354e56c7dd3 199
YUPPY 4:1354e56c7dd3 200 bool JPEGCamera::processPicture() {
YUPPY 4:1354e56c7dd3 201 if (state == PROCESSING) {
YUPPY 4:1354e56c7dd3 202 if (address < imageSize) {
YUPPY 4:1354e56c7dd3 203 char data[1024];
YUPPY 4:1354e56c7dd3 204 int size = readData(data, min(sizeof(data), imageSize - address), address);
YUPPY 4:1354e56c7dd3 205 int ret = fwrite(data, size, 1, fp);
YUPPY 4:1354e56c7dd3 206 if (ret > 0)
YUPPY 4:1354e56c7dd3 207 address += size;
YUPPY 4:1354e56c7dd3 208 if (ret == 0 || address >= imageSize) {
YUPPY 4:1354e56c7dd3 209 stopPictures();
YUPPY 4:1354e56c7dd3 210 fclose(fp);
YUPPY 4:1354e56c7dd3 211 wait(0.1); // ????
YUPPY 4:1354e56c7dd3 212 state = ret > 0 ? READY : ERROR;
YUPPY 4:1354e56c7dd3 213 }
YUPPY 4:1354e56c7dd3 214 }
YUPPY 4:1354e56c7dd3 215 }
YUPPY 4:1354e56c7dd3 216
YUPPY 4:1354e56c7dd3 217 return state == PROCESSING || state == READY;
YUPPY 3:5d0c4b13f4e8 218 }
YUPPY 0:6212b283430c 219
YUPPY 4:1354e56c7dd3 220 bool JPEGCamera::reset() {
YUPPY 4:1354e56c7dd3 221 char buf[4] = {0x56, 0x00, 0x26, 0x00};
YUPPY 4:1354e56c7dd3 222 int ret = sendReceive(buf, sizeof buf, 4);
YUPPY 4:1354e56c7dd3 223 if (ret == 4 && buf[0] == 0x76) {
YUPPY 4:1354e56c7dd3 224 wait(4.0);
YUPPY 4:1354e56c7dd3 225 state = READY;
YUPPY 4:1354e56c7dd3 226 } else {
YUPPY 4:1354e56c7dd3 227 state = ERROR;
YUPPY 4:1354e56c7dd3 228 }
YUPPY 4:1354e56c7dd3 229 return state == READY;
YUPPY 4:1354e56c7dd3 230 }
YUPPY 4:1354e56c7dd3 231
YUPPY 4:1354e56c7dd3 232 bool JPEGCamera::takePicture() {
YUPPY 4:1354e56c7dd3 233 char buf[5] = {0x56, 0x00, 0x36, 0x01, 0x00};
YUPPY 4:1354e56c7dd3 234 int ret = sendReceive(buf, sizeof buf, 5);
YUPPY 4:1354e56c7dd3 235
YUPPY 4:1354e56c7dd3 236 return ret == 5 && buf[0] == 0x76;
YUPPY 4:1354e56c7dd3 237 }
YUPPY 4:1354e56c7dd3 238
YUPPY 4:1354e56c7dd3 239 bool JPEGCamera::stopPictures() {
YUPPY 4:1354e56c7dd3 240 char buf[5] = {0x56, 0x00, 0x36, 0x01, 0x03};
YUPPY 4:1354e56c7dd3 241 int ret = sendReceive(buf, sizeof buf, 5);
YUPPY 4:1354e56c7dd3 242
YUPPY 4:1354e56c7dd3 243 return ret == 4 && buf[0] == 0x76;
YUPPY 4:1354e56c7dd3 244 }
YUPPY 4:1354e56c7dd3 245
YUPPY 4:1354e56c7dd3 246 int JPEGCamera::getImageSize() {
YUPPY 4:1354e56c7dd3 247 char buf[9] = {0x56, 0x00, 0x34, 0x01, 0x00};
YUPPY 4:1354e56c7dd3 248 int ret = sendReceive(buf, sizeof buf, 9);
YUPPY 4:1354e56c7dd3 249
YUPPY 4:1354e56c7dd3 250 //The size is in the last 2 characters of the response.
YUPPY 4:1354e56c7dd3 251 return (ret == 9 && buf[0] == 0x76) ? (buf[7] << 8 | buf[8]) : 0;
YUPPY 4:1354e56c7dd3 252 }
YUPPY 4:1354e56c7dd3 253
YUPPY 4:1354e56c7dd3 254 int JPEGCamera::readData(char *dataBuf, int size, int address) {
YUPPY 4:1354e56c7dd3 255 char buf[16] = {0x56, 0x00, 0x32, 0x0C, 0x00, 0x0A, 0x00, 0x00,
YUPPY 4:1354e56c7dd3 256 address >> 8, address & 255, 0x00, 0x00, size >> 8, size & 255, 0x00, 0x0A
YUPPY 4:1354e56c7dd3 257 };
YUPPY 4:1354e56c7dd3 258 int ret = sendReceive(buf, sizeof buf, 5);
YUPPY 4:1354e56c7dd3 259
YUPPY 4:1354e56c7dd3 260 return (ret == 5 && buf[0] == 0x76) ? receive(dataBuf, size, DATA_TIMEOUT) : 0;
YUPPY 4:1354e56c7dd3 261 }
YUPPY 4:1354e56c7dd3 262
YUPPY 4:1354e56c7dd3 263 int JPEGCamera::sendReceive(char *buf, int sendSize, int receiveSize) {
YUPPY 4:1354e56c7dd3 264 while (readable()) getc();
YUPPY 4:1354e56c7dd3 265
YUPPY 4:1354e56c7dd3 266 for (int i = 0; i < sendSize; i++) putc(buf[i]);
YUPPY 4:1354e56c7dd3 267
YUPPY 4:1354e56c7dd3 268 return receive(buf, receiveSize, RESPONSE_TIMEOUT);
YUPPY 4:1354e56c7dd3 269 }
YUPPY 4:1354e56c7dd3 270
YUPPY 4:1354e56c7dd3 271 int JPEGCamera::receive(char *buf, int size, int timeout) {
YUPPY 4:1354e56c7dd3 272 timer.start();
YUPPY 4:1354e56c7dd3 273 timer.reset();
YUPPY 4:1354e56c7dd3 274
YUPPY 4:1354e56c7dd3 275 int i = 0;
YUPPY 4:1354e56c7dd3 276 while (i < size && timer.read_ms() < timeout) {
YUPPY 4:1354e56c7dd3 277 if (readable())
YUPPY 4:1354e56c7dd3 278 buf[i++] = getc();
YUPPY 4:1354e56c7dd3 279 }
YUPPY 4:1354e56c7dd3 280
YUPPY 4:1354e56c7dd3 281 return i;
YUPPY 4:1354e56c7dd3 282 }
YUPPY 4:1354e56c7dd3 283 LocalFileSystem local("local");
YUPPY 4:1354e56c7dd3 284
YUPPY 4:1354e56c7dd3 285 Serial pc(USBTX,USBRX);
YUPPY 4:1354e56c7dd3 286 Serial xbee(p13, p14);
YUPPY 4:1354e56c7dd3 287 int main(void){
YUPPY 4:1354e56c7dd3 288 FILE *fp;
YUPPY 4:1354e56c7dd3 289 base64 *bs;
YUPPY 4:1354e56c7dd3 290 int c;
YUPPY 4:1354e56c7dd3 291
YUPPY 4:1354e56c7dd3 292 xbee.printf("charizard!!!\r\n");
YUPPY 4:1354e56c7dd3 293 bs = new base64();
YUPPY 4:1354e56c7dd3 294 bs->Encode("/local/PICT000.jpg","/local/d.txt");
YUPPY 4:1354e56c7dd3 295
YUPPY 4:1354e56c7dd3 296
YUPPY 4:1354e56c7dd3 297 if((fp=fopen("/local/d.txt","r"))!=NULL)
YUPPY 4:1354e56c7dd3 298 {
YUPPY 4:1354e56c7dd3 299 while ((c=fgetc(fp))!=EOF){
YUPPY 4:1354e56c7dd3 300 xbee.printf("%c",c);
YUPPY 4:1354e56c7dd3 301 }
YUPPY 4:1354e56c7dd3 302 fclose(fp);
YUPPY 4:1354e56c7dd3 303 }
YUPPY 4:1354e56c7dd3 304 return 0;
YUPPY 4:1354e56c7dd3 305 }
YUPPY 4:1354e56c7dd3 306
YUPPY 4:1354e56c7dd3 307 }else{//焦電反応なしの場合
YUPPY 4:1354e56c7dd3 308 detected=false;
YUPPY 4:1354e56c7dd3 309 thermo=0;
YUPPY 4:1354e56c7dd3 310 Ultra=1;
YUPPY 4:1354e56c7dd3 311 }
YUPPY 4:1354e56c7dd3 312
YUPPY 4:1354e56c7dd3 313 }
YUPPY 4:1354e56c7dd3 314 //while(true)
YUPPY 4:1354e56c7dd3 315 }
YUPPY 4:1354e56c7dd3 316 return 0;
YUPPY 4:1354e56c7dd3 317 }
YUPPY 4:1354e56c7dd3 318
YUPPY 0:6212b283430c 319 //超音波センサー反応あり
YUPPY 0:6212b283430c 320 //停止
YUPPY 0:6212b283430c 321 //超音波センサーOFF
YUPPY 0:6212b283430c 322 //焦電センサーON
YUPPY 1:edc264954800 323
YUPPY 0:6212b283430c 324 //焦電センサー反応あり
YUPPY 0:6212b283430c 325 //焦電センサーOFF
YUPPY 0:6212b283430c 326 //カメラ起動
YUPPY 0:6212b283430c 327 //カメラOFF
YUPPY 4:1354e56c7dd3 328 //XBeeによりPCへ送信
YUPPY 1:edc264954800 329 if(receiveOK()=true){
YUPPY 1:edc264954800 330 printf("Unknown Creature has been descovered!\n");
YUPPY 1:edc264954800 331 }
YUPPY 0:6212b283430c 332 //"OK"受信、ミッション終了
YUPPY 1:edc264954800 333 else if(receiveOK()=false){
YUPPY 1:edc264954800 334 printf("Continue!\n");
YUPPY 1:edc264954800 335 }
YUPPY 0:6212b283430c 336 //"NO"受信、ミッション再開
YUPPY 0:6212b283430c 337
YUPPY 1:edc264954800 338 else if(detected=false){
YUPPY 4:1354e56c7dd3 339 thermo=0;
YUPPY 4:1354e56c7dd3 340 left=100;
YUPPY 4:1354e56c7dd3 341 wait(3.0);
YUPPY 4:1354e56c7dd3 342 right=100;
YUPPY 4:1354e56c7dd3 343 Ultra=1;
YUPPY 1:edc264954800 344 }
YUPPY 1:edc264954800 345 }
YUPPY 0:6212b283430c 346 //焦電センサー反応無し
YUPPY 0:6212b283430c 347 //焦電センサーOFF
YUPPY 0:6212b283430c 348 //方向転換
YUPPY 0:6212b283430c 349 //超音波センサーON
YUPPY 0:6212b283430c 350 //直進
YUPPY 1:edc264954800 351 }
YUPPY 2:e2b803e3bcbc 352 else if(distance>=2000){
YUPPY 4:1354e56c7dd3 353 left=0;
YUPPY 4:1354e56c7dd3 354 right=0;
YUPPY 4:1354e56c7dd3 355 left=100;
YUPPY 4:1354e56c7dd3 356 wait(3.0);
YUPPY 4:1354e56c7dd3 357 right=100;
YUPPY 1:edc264954800 358 }
YUPPY 0:6212b283430c 359 //超音波センサー反応無し
YUPPY 0:6212b283430c 360 //停止
YUPPY 0:6212b283430c 361 //方向転換
YUPPY 0:6212b283430c 362 //直進