Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@3:f70ecf1e21d5, 2019-11-23 (annotated)
- Committer:
- KINU
- Date:
- Sat Nov 23 10:06:03 2019 +0000
- Revision:
- 3:f70ecf1e21d5
- Parent:
- 2:c799e2dde99f
- Child:
- 4:75090ff74dd0
moterCameraUS015sb612
Who changed what in which revision?
User | Revision | Line number | New 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); |
KINU | 0:f728b8e6bdf2 | 7 | DigitalOut thermo(p20); |
KINU | 0:f728b8e6bdf2 | 8 | DigitalOut Ultra(p12); |
KINU | 0:f728b8e6bdf2 | 9 | Serial pc(USBTX,USBRX); // tx, rx |
KINU | 0:f728b8e6bdf2 | 10 | JPEGCamera camera(p9, p10); // TX, RX |
KINU | 3:f70ecf1e21d5 | 11 | TB6612 left(p25,p17,p16);//モーターピン |
KINU | 3:f70ecf1e21d5 | 12 | TB6612 right(p26,p19,p18);//モーターピン |
KINU | 0:f728b8e6bdf2 | 13 | int main(){ |
seijakunouenimutou | 2:c799e2dde99f | 14 | int i=1; |
KINU | 0:f728b8e6bdf2 | 15 | float th; |
KINU | 0:f728b8e6bdf2 | 16 | Timer tm; |
seijakunouenimutou | 2:c799e2dde99f | 17 | for(i=0;i<3;i++){ |
KINU | 0:f728b8e6bdf2 | 18 | pc.printf("start\r\n"); |
KINU | 3:f70ecf1e21d5 | 19 | left = 100; //左モーター100% |
KINU | 3:f70ecf1e21d5 | 20 | right = 100;//右モーター100% |
KINU | 0:f728b8e6bdf2 | 21 | bool detected=false; |
KINU | 0:f728b8e6bdf2 | 22 | thermo=0; //焦電off |
KINU | 0:f728b8e6bdf2 | 23 | Ultra=1;//超音波on |
KINU | 3:f70ecf1e21d5 | 24 | |
KINU | 0:f728b8e6bdf2 | 25 | while(1) { |
KINU | 3:f70ecf1e21d5 | 26 | printf("超音波on 焦電off" ) ; |
KINU | 0:f728b8e6bdf2 | 27 | hs.TrigerOut(); |
KINU | 0:f728b8e6bdf2 | 28 | wait(1); |
KINU | 0:f728b8e6bdf2 | 29 | int distance; |
KINU | 0:f728b8e6bdf2 | 30 | distance = hs.GetDistance(); |
KINU | 0:f728b8e6bdf2 | 31 | printf("%d\r\n",distance);//距離出力 |
KINU | 0:f728b8e6bdf2 | 32 | |
KINU | 0:f728b8e6bdf2 | 33 | if(distance<2000){//超音波反応 |
KINU | 3:f70ecf1e21d5 | 34 | left = 0; //左モーター0% |
KINU | 3:f70ecf1e21d5 | 35 | right = 0;//右モーター0% |
KINU | 3:f70ecf1e21d5 | 36 | printf("停止\n\r"); |
KINU | 3:f70ecf1e21d5 | 37 | wait(1.5); |
KINU | 3:f70ecf1e21d5 | 38 | |
KINU | 0:f728b8e6bdf2 | 39 | Ultra=0;//超音波off |
KINU | 0:f728b8e6bdf2 | 40 | thermo=1;//焦電on |
KINU | 3:f70ecf1e21d5 | 41 | printf("超音波off焦電on "); |
KINU | 0:f728b8e6bdf2 | 42 | if(true) |
KINU | 0:f728b8e6bdf2 | 43 | th = thermo; |
KINU | 0:f728b8e6bdf2 | 44 | if(th=1 && !detected) {//焦電反応ありの場合 |
KINU | 3:f70ecf1e21d5 | 45 | i++; |
KINU | 0:f728b8e6bdf2 | 46 | detected=true; |
KINU | 3:f70ecf1e21d5 | 47 | pc.printf("human\r\n"); |
KINU | 3:f70ecf1e21d5 | 48 | tm.reset(); |
KINU | 3:f70ecf1e21d5 | 49 | tm.start(); |
KINU | 0:f728b8e6bdf2 | 50 | |
KINU | 3:f70ecf1e21d5 | 51 | LocalFileSystem local("local"); |
KINU | 3:f70ecf1e21d5 | 52 | Timer timer; |
KINU | 3:f70ecf1e21d5 | 53 | timer.start(); |
KINU | 3:f70ecf1e21d5 | 54 | camera.setPictureSize(JPEGCamera::SIZE320x240); |
KINU | 0:f728b8e6bdf2 | 55 | |
seijakunouenimutou | 2:c799e2dde99f | 56 | |
KINU | 3:f70ecf1e21d5 | 57 | if (camera.isReady()) { |
KINU | 3:f70ecf1e21d5 | 58 | char filename[32]; |
KINU | 3:f70ecf1e21d5 | 59 | sprintf(filename, "/local/pict%03d.jpg",i); |
KINU | 3:f70ecf1e21d5 | 60 | printf("Picture: %s ", filename); |
KINU | 3:f70ecf1e21d5 | 61 | if (camera.takePicture(filename)) { |
KINU | 3:f70ecf1e21d5 | 62 | while (camera.isProcessing()) { |
KINU | 0:f728b8e6bdf2 | 63 | camera.processPicture(); |
KINU | 0:f728b8e6bdf2 | 64 | printf("take pictuer!"); |
KINU | 3:f70ecf1e21d5 | 65 | } |
KINU | 3:f70ecf1e21d5 | 66 | }else{ |
KINU | 0:f728b8e6bdf2 | 67 | printf("take picture failed\r\n"); |
KINU | 3:f70ecf1e21d5 | 68 | } |
KINU | 3:f70ecf1e21d5 | 69 | }else{ |
KINU | 3:f70ecf1e21d5 | 70 | printf("camera is not ready\r\n"); |
KINU | 0:f728b8e6bdf2 | 71 | } |
KINU | 3:f70ecf1e21d5 | 72 | |
KINU | 3:f70ecf1e21d5 | 73 | printf("time = %f\n", timer.read()); |
seijakunouenimutou | 2:c799e2dde99f | 74 | |
KINU | 3:f70ecf1e21d5 | 75 | }else{//焦電反応なしの場合 |
KINU | 3:f70ecf1e21d5 | 76 | detected=false; |
KINU | 3:f70ecf1e21d5 | 77 | left = 20; //左モーター10% |
KINU | 3:f70ecf1e21d5 | 78 | right = 100;//右モーター100%(右折) |
KINU | 3:f70ecf1e21d5 | 79 | printf("右折\n\r"); |
KINU | 3:f70ecf1e21d5 | 80 | wait(3.0); |
KINU | 3:f70ecf1e21d5 | 81 | left = 100; //左モーター100% |
KINU | 3:f70ecf1e21d5 | 82 | right = 100;//右モーター100% |
KINU | 3:f70ecf1e21d5 | 83 | } |
KINU | 3:f70ecf1e21d5 | 84 | }else{//超音波distance>2000 |
KINU | 3:f70ecf1e21d5 | 85 | left = 100; //左モーター100% |
KINU | 3:f70ecf1e21d5 | 86 | right = 20;//右モーター20%(右折) |
KINU | 3:f70ecf1e21d5 | 87 | } |
KINU | 3:f70ecf1e21d5 | 88 | |
KINU | 3:f70ecf1e21d5 | 89 | } |
KINU | 3:f70ecf1e21d5 | 90 | |
KINU | 0:f728b8e6bdf2 | 91 | } |
KINU | 3:f70ecf1e21d5 | 92 | |
KINU | 3:f70ecf1e21d5 | 93 | |
KINU | 0:f728b8e6bdf2 | 94 | |
KINU | 0:f728b8e6bdf2 | 95 | } |
KINU | 3:f70ecf1e21d5 | 96 |