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 line-trace2
main.cpp@4:a5dfe20835c0, 2018-12-10 (annotated)
- Committer:
- isshikiyuya
- Date:
- Mon Dec 10 18:55:45 2018 +0000
- Revision:
- 4:a5dfe20835c0
- Parent:
- 3:9c86f47e8947
a
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
isshikiyuya | 1:a8fad3c66162 | 1 | #include "function.h" |
isshikiyuya | 0:764148148257 | 2 | |
isshikiyuya | 0:764148148257 | 3 | PwmOut pwm11(D5); //左正転 |
isshikiyuya | 0:764148148257 | 4 | PwmOut pwm12(D1); //左逆転 |
isshikiyuya | 0:764148148257 | 5 | PwmOut pwm21(D6); //右正転 |
isshikiyuya | 0:764148148257 | 6 | PwmOut pwm22(D9); //右逆転 |
isshikiyuya | 0:764148148257 | 7 | DigitalOut LED(D2); |
isshikiyuya | 0:764148148257 | 8 | InterruptIn button1(A1); //フォトインタラプタ |
isshikiyuya | 0:764148148257 | 9 | InterruptIn button2(A2); //フォトインタラプタ |
isshikiyuya | 2:deefc81cf5a5 | 10 | AnalogIn in1(A6); //フォトリフレクタ左 |
isshikiyuya | 0:764148148257 | 11 | AnalogIn in2(A4); //フォトリフレクタ真ん中 |
isshikiyuya | 2:deefc81cf5a5 | 12 | AnalogIn in3(A3); //フォトリフレクタ右 |
isshikiyuya | 0:764148148257 | 13 | |
isshikiyuya | 2:deefc81cf5a5 | 14 | float thr1 = 0.40f; |
isshikiyuya | 2:deefc81cf5a5 | 15 | float thr2 = 0.60f; |
isshikiyuya | 2:deefc81cf5a5 | 16 | float thr3 = 0.40f; |
isshikiyuya | 0:764148148257 | 17 | int judge1 = 0; |
isshikiyuya | 0:764148148257 | 18 | int judge2 = 0; |
isshikiyuya | 0:764148148257 | 19 | int judge3 = 0; |
isshikiyuya | 0:764148148257 | 20 | |
isshikiyuya | 0:764148148257 | 21 | int main() { |
isshikiyuya | 0:764148148257 | 22 | pwm11.period(0.01f); //100Hz |
isshikiyuya | 0:764148148257 | 23 | pwm12.period(0.01f); //100Hz |
isshikiyuya | 0:764148148257 | 24 | pwm21.period(0.01f); //100Hz |
isshikiyuya | 0:764148148257 | 25 | pwm22.period(0.01f); //100Hz |
isshikiyuya | 0:764148148257 | 26 | button1.rise(&flip1); |
isshikiyuya | 0:764148148257 | 27 | button2.rise(&flip2); |
isshikiyuya | 0:764148148257 | 28 | int n;//3biteで状態を表現 |
isshikiyuya | 0:764148148257 | 29 | |
isshikiyuya | 0:764148148257 | 30 | while(1) { |
isshikiyuya | 0:764148148257 | 31 | |
isshikiyuya | 1:a8fad3c66162 | 32 | if( count1 + count2 > 43*2*12){ //200mm毎にLEDを点滅 |
isshikiyuya | 0:764148148257 | 33 | LED = 1.0f; |
isshikiyuya | 0:764148148257 | 34 | wait(0.5f); |
isshikiyuya | 0:764148148257 | 35 | LED = 0; |
isshikiyuya | 0:764148148257 | 36 | count1 = 0; |
isshikiyuya | 0:764148148257 | 37 | count2 = 0; |
isshikiyuya | 0:764148148257 | 38 | } |
isshikiyuya | 1:a8fad3c66162 | 39 | //////////////////floatのinをintのjudgeに変換 |
isshikiyuya | 0:764148148257 | 40 | if(in1 > thr1){ |
isshikiyuya | 0:764148148257 | 41 | judge1 = 1; |
isshikiyuya | 0:764148148257 | 42 | } |
isshikiyuya | 0:764148148257 | 43 | else{ |
isshikiyuya | 0:764148148257 | 44 | judge1 = 0; |
isshikiyuya | 0:764148148257 | 45 | } |
isshikiyuya | 0:764148148257 | 46 | if(in2 > thr2){ |
isshikiyuya | 0:764148148257 | 47 | judge2 = 1; |
isshikiyuya | 0:764148148257 | 48 | } |
isshikiyuya | 0:764148148257 | 49 | else{ |
isshikiyuya | 0:764148148257 | 50 | judge2 = 0; |
isshikiyuya | 0:764148148257 | 51 | } |
isshikiyuya | 0:764148148257 | 52 | if(in3 > thr3){ |
isshikiyuya | 0:764148148257 | 53 | judge3 = 1; |
isshikiyuya | 0:764148148257 | 54 | } |
isshikiyuya | 0:764148148257 | 55 | else{ |
isshikiyuya | 0:764148148257 | 56 | judge3 = 0; |
isshikiyuya | 0:764148148257 | 57 | } |
isshikiyuya | 0:764148148257 | 58 | ///////////////// |
isshikiyuya | 0:764148148257 | 59 | n = judge1 + judge2*2 + judge3*4; |
isshikiyuya | 1:a8fad3c66162 | 60 | /* distance = (distance1 + distance2) / 2; |
isshikiyuya | 1:a8fad3c66162 | 61 | if(ditance < 43*12*){ |
isshikiyuya | 1:a8fad3c66162 | 62 | */ |
isshikiyuya | 1:a8fad3c66162 | 63 | switch(n){ |
isshikiyuya | 1:a8fad3c66162 | 64 | case(2)://白黒白進む |
isshikiyuya | 2:deefc81cf5a5 | 65 | pwm11.write(0.60f); |
isshikiyuya | 2:deefc81cf5a5 | 66 | pwm12.write(0.30f); |
isshikiyuya | 2:deefc81cf5a5 | 67 | pwm21.write(0.60f); |
isshikiyuya | 2:deefc81cf5a5 | 68 | pwm22.write(0.30f); |
isshikiyuya | 0:764148148257 | 69 | break; |
isshikiyuya | 1:a8fad3c66162 | 70 | |
isshikiyuya | 1:a8fad3c66162 | 71 | case(0)://白白白 |
isshikiyuya | 0:764148148257 | 72 | pwm11.write(0.10f); |
isshikiyuya | 0:764148148257 | 73 | pwm12.write(0.10f); |
isshikiyuya | 0:764148148257 | 74 | pwm21.write(0.10f); |
isshikiyuya | 0:764148148257 | 75 | pwm22.write(0.10f); |
isshikiyuya | 0:764148148257 | 76 | break; |
isshikiyuya | 2:deefc81cf5a5 | 77 | |
isshikiyuya | 2:deefc81cf5a5 | 78 | |
isshikiyuya | 0:764148148257 | 79 | |
isshikiyuya | 1:a8fad3c66162 | 80 | case(1)://黒白白左回転 |
isshikiyuya | 4:a5dfe20835c0 | 81 | pwm11.write(0.30f); |
isshikiyuya | 2:deefc81cf5a5 | 82 | pwm12.write(0.30f); |
isshikiyuya | 4:a5dfe20835c0 | 83 | pwm21.write(0.60f); |
isshikiyuya | 2:deefc81cf5a5 | 84 | pwm22.write(0.30f); |
isshikiyuya | 0:764148148257 | 85 | break; |
isshikiyuya | 0:764148148257 | 86 | |
isshikiyuya | 1:a8fad3c66162 | 87 | case(4)://白白黒右回転 |
isshikiyuya | 4:a5dfe20835c0 | 88 | pwm11.write(0.60f); |
isshikiyuya | 4:a5dfe20835c0 | 89 | pwm12.write(0.30f); |
isshikiyuya | 4:a5dfe20835c0 | 90 | pwm21.write(0.30f); |
isshikiyuya | 4:a5dfe20835c0 | 91 | pwm22.write(0.30f); |
isshikiyuya | 4:a5dfe20835c0 | 92 | break; |
isshikiyuya | 4:a5dfe20835c0 | 93 | |
isshikiyuya | 4:a5dfe20835c0 | 94 | case(3)://黒黒白左回転 |
isshikiyuya | 4:a5dfe20835c0 | 95 | pwm11.write(0.30f); |
isshikiyuya | 2:deefc81cf5a5 | 96 | pwm12.write(0.30f); |
isshikiyuya | 2:deefc81cf5a5 | 97 | pwm21.write(0.60f); |
isshikiyuya | 2:deefc81cf5a5 | 98 | pwm22.write(0.30f); |
isshikiyuya | 0:764148148257 | 99 | break; |
isshikiyuya | 2:deefc81cf5a5 | 100 | |
isshikiyuya | 4:a5dfe20835c0 | 101 | case(6)://白黒黒右回転 |
isshikiyuya | 2:deefc81cf5a5 | 102 | pwm11.write(0.60f); |
isshikiyuya | 2:deefc81cf5a5 | 103 | pwm12.write(0.30f); |
isshikiyuya | 4:a5dfe20835c0 | 104 | pwm21.write(0.30f); |
isshikiyuya | 2:deefc81cf5a5 | 105 | pwm22.write(0.30f); |
isshikiyuya | 3:9c86f47e8947 | 106 | break; |
isshikiyuya | 2:deefc81cf5a5 | 107 | |
isshikiyuya | 4:a5dfe20835c0 | 108 | case(7)://黒黒黒走る |
isshikiyuya | 4:a5dfe20835c0 | 109 | pwm11.write(0.60f); |
isshikiyuya | 2:deefc81cf5a5 | 110 | pwm12.write(0.30f); |
isshikiyuya | 2:deefc81cf5a5 | 111 | pwm21.write(0.60f); |
isshikiyuya | 2:deefc81cf5a5 | 112 | pwm22.write(0.30f); |
isshikiyuya | 3:9c86f47e8947 | 113 | break; |
isshikiyuya | 0:764148148257 | 114 | |
isshikiyuya | 3:9c86f47e8947 | 115 | default://それ以外(ないけど) |
isshikiyuya | 0:764148148257 | 116 | pwm11.write(0.00f); |
isshikiyuya | 0:764148148257 | 117 | pwm12.write(0.00f); |
isshikiyuya | 0:764148148257 | 118 | pwm21.write(0.00f); |
isshikiyuya | 0:764148148257 | 119 | pwm22.write(0.00f); |
isshikiyuya | 0:764148148257 | 120 | break; |
isshikiyuya | 0:764148148257 | 121 | |
isshikiyuya | 0:764148148257 | 122 | } |
isshikiyuya | 0:764148148257 | 123 | } |
isshikiyuya | 0:764148148257 | 124 | } |