cansat_B 2019 / Mbed 2 deprecated tougou-no3

Dependencies:   mbed

Committer:
YUPPY
Date:
Thu Nov 28 08:59:56 2019 +0000
Revision:
4:75090ff74dd0
Parent:
3:f70ecf1e21d5
Child:
5:9b5899b06e2e
yeah;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
KINU 0:f728b8e6bdf2 1 #include "mbed.h"
KINU 0:f728b8e6bdf2 2 #include "JPEGCamera.h"
KINU 0:f728b8e6bdf2 3 #include "us015.h"
KINU 3:f70ecf1e21d5 4 #include "TB6612.h"
KINU 0:f728b8e6bdf2 5 DigitalOut myled(LED1);
KINU 0:f728b8e6bdf2 6 US015 hs(p12,p11);
YUPPY 4:75090ff74dd0 7 DigitalIn thermo(p20);
YUPPY 4:75090ff74dd0 8 DigitalOut Sb612switch(p15);//焦電スイッチ
KINU 0:f728b8e6bdf2 9 DigitalOut Ultra(p12);
KINU 0:f728b8e6bdf2 10 Serial pc(USBTX,USBRX); // tx, rx
KINU 0:f728b8e6bdf2 11 JPEGCamera camera(p9, p10); // TX, RX
KINU 3:f70ecf1e21d5 12 TB6612 left(p25,p17,p16);//モーターピン
KINU 3:f70ecf1e21d5 13 TB6612 right(p26,p19,p18);//モーターピン
KINU 0:f728b8e6bdf2 14 int main(){
seijakunouenimutou 2:c799e2dde99f 15 int i=1;
KINU 0:f728b8e6bdf2 16 float th;
KINU 0:f728b8e6bdf2 17 Timer tm;
seijakunouenimutou 2:c799e2dde99f 18 for(i=0;i<3;i++){
KINU 0:f728b8e6bdf2 19 pc.printf("start\r\n");
KINU 3:f70ecf1e21d5 20 left = 100; //左モーター100%
KINU 3:f70ecf1e21d5 21 right = 100;//右モーター100%
YUPPY 4:75090ff74dd0 22
YUPPY 4:75090ff74dd0 23 Sb612switch=0; //焦電off
KINU 0:f728b8e6bdf2 24 Ultra=1;//超音波on
KINU 3:f70ecf1e21d5 25
KINU 0:f728b8e6bdf2 26 while(1) {
YUPPY 4:75090ff74dd0 27 printf("超音波on\r\n 焦電off\r\n" ) ;
KINU 0:f728b8e6bdf2 28 hs.TrigerOut();
KINU 0:f728b8e6bdf2 29 wait(1);
KINU 0:f728b8e6bdf2 30 int distance;
KINU 0:f728b8e6bdf2 31 distance = hs.GetDistance();
YUPPY 4:75090ff74dd0 32 printf("distance=%d\r\n",distance);//距離出力
KINU 0:f728b8e6bdf2 33
YUPPY 4:75090ff74dd0 34 if(distance<=2000){//超音波反応
KINU 3:f70ecf1e21d5 35 left = 0; //左モーター0%
KINU 3:f70ecf1e21d5 36 right = 0;//右モーター0%
KINU 3:f70ecf1e21d5 37 printf("停止\n\r");
YUPPY 4:75090ff74dd0 38 wait(5.0);
KINU 3:f70ecf1e21d5 39
KINU 0:f728b8e6bdf2 40 Ultra=0;//超音波off
YUPPY 4:75090ff74dd0 41 Sb612switch=1; //焦電on
YUPPY 4:75090ff74dd0 42 printf("超音波off\r\n焦電on\r\n ");
YUPPY 4:75090ff74dd0 43 bool detected=false;
KINU 0:f728b8e6bdf2 44 th = thermo;
YUPPY 4:75090ff74dd0 45 if(th==1 && !detected) {//焦電反応ありの場合
KINU 3:f70ecf1e21d5 46 i++;
KINU 0:f728b8e6bdf2 47 detected=true;
KINU 3:f70ecf1e21d5 48 pc.printf("human\r\n");
KINU 3:f70ecf1e21d5 49 tm.reset();
KINU 3:f70ecf1e21d5 50 tm.start();
KINU 0:f728b8e6bdf2 51
KINU 3:f70ecf1e21d5 52 LocalFileSystem local("local");
KINU 3:f70ecf1e21d5 53 Timer timer;
KINU 3:f70ecf1e21d5 54 timer.start();
KINU 3:f70ecf1e21d5 55 camera.setPictureSize(JPEGCamera::SIZE320x240);
KINU 0:f728b8e6bdf2 56
seijakunouenimutou 2:c799e2dde99f 57
KINU 3:f70ecf1e21d5 58 if (camera.isReady()) {
KINU 3:f70ecf1e21d5 59 char filename[32];
KINU 3:f70ecf1e21d5 60 sprintf(filename, "/local/pict%03d.jpg",i);
KINU 3:f70ecf1e21d5 61 printf("Picture: %s ", filename);
KINU 3:f70ecf1e21d5 62 if (camera.takePicture(filename)) {
KINU 3:f70ecf1e21d5 63 while (camera.isProcessing()) {
KINU 0:f728b8e6bdf2 64 camera.processPicture();
KINU 0:f728b8e6bdf2 65 printf("take pictuer!");
KINU 3:f70ecf1e21d5 66 }
KINU 3:f70ecf1e21d5 67 }else{
KINU 0:f728b8e6bdf2 68 printf("take picture failed\r\n");
KINU 3:f70ecf1e21d5 69 }
KINU 3:f70ecf1e21d5 70 }else{
KINU 3:f70ecf1e21d5 71 printf("camera is not ready\r\n");
KINU 0:f728b8e6bdf2 72 }
KINU 3:f70ecf1e21d5 73
KINU 3:f70ecf1e21d5 74 printf("time = %f\n", timer.read());
seijakunouenimutou 2:c799e2dde99f 75
KINU 3:f70ecf1e21d5 76 }else{//焦電反応なしの場合
YUPPY 4:75090ff74dd0 77 printf("not found!\r\n");
YUPPY 4:75090ff74dd0 78
YUPPY 4:75090ff74dd0 79 left = 70; //左モーター10%
YUPPY 4:75090ff74dd0 80 right = 100;//右モーター100%(右折)
YUPPY 4:75090ff74dd0 81 Sb612switch=0;
YUPPY 4:75090ff74dd0 82 Ultra=1;
KINU 3:f70ecf1e21d5 83 detected=false;
KINU 3:f70ecf1e21d5 84 printf("右折\n\r");
KINU 3:f70ecf1e21d5 85 wait(3.0);
KINU 3:f70ecf1e21d5 86 left = 100; //左モーター100%
KINU 3:f70ecf1e21d5 87 right = 100;//右モーター100%
KINU 3:f70ecf1e21d5 88 }
KINU 3:f70ecf1e21d5 89 }else{//超音波distance>2000
YUPPY 4:75090ff74dd0 90 printf("safety zone\r\n");
KINU 3:f70ecf1e21d5 91 left = 100; //左モーター100%
YUPPY 4:75090ff74dd0 92 right = 70;//右モーター70%(左折)
YUPPY 4:75090ff74dd0 93 printf("左折\r\n");
KINU 3:f70ecf1e21d5 94 }
KINU 3:f70ecf1e21d5 95
KINU 3:f70ecf1e21d5 96 }
KINU 3:f70ecf1e21d5 97
KINU 0:f728b8e6bdf2 98 }
KINU 3:f70ecf1e21d5 99
KINU 3:f70ecf1e21d5 100
KINU 0:f728b8e6bdf2 101
KINU 0:f728b8e6bdf2 102 }
YUPPY 4:75090ff74dd0 103