yusuke takahashi
/
Ball_fanction
IRIR
main.cpp@2:22b099fbdd14, 2013-03-08 (annotated)
- Committer:
- yusuke_robocup
- Date:
- Fri Mar 08 03:49:58 2013 +0000
- Revision:
- 2:22b099fbdd14
- Parent:
- 1:d6c8be12a3de
Ball_fanction4
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yusuke_robocup | 0:0c7c6eefafe4 | 1 | #include "mbed.h" |
yusuke_robocup | 0:0c7c6eefafe4 | 2 | |
yusuke_robocup | 0:0c7c6eefafe4 | 3 | #define IR_TIME_NOTFOUND 833 /* 見つけられなかったと判断するまでの時間(単位:us) */ |
yusuke_robocup | 0:0c7c6eefafe4 | 4 | #define IR_COUNTMAX 487 /*最大パルス幅 パルスの存在しうる最大時間は487us*/ |
yusuke_robocup | 1:d6c8be12a3de | 5 | #define ALL_IR 9 |
yusuke_robocup | 2:22b099fbdd14 | 6 | #define DIREC_IR 8 |
yusuke_robocup | 0:0c7c6eefafe4 | 7 | #define DIRECTION 16 |
yusuke_robocup | 0:0c7c6eefafe4 | 8 | #define TERM 0 |
yusuke_robocup | 2:22b099fbdd14 | 9 | #define DELTA -2 |
yusuke_robocup | 0:0c7c6eefafe4 | 10 | #define SWAP(type,a,b) { type temp = a; a = b; b = temp; } |
yusuke_robocup | 0:0c7c6eefafe4 | 11 | |
yusuke_robocup | 0:0c7c6eefafe4 | 12 | Serial pc(USBTX, USBRX); // tx, rx |
yusuke_robocup | 0:0c7c6eefafe4 | 13 | |
yusuke_robocup | 0:0c7c6eefafe4 | 14 | Timer timer_ir; /* 赤外線用タイマー */ |
yusuke_robocup | 0:0c7c6eefafe4 | 15 | |
yusuke_robocup | 0:0c7c6eefafe4 | 16 | BusOut myleds(p18, p17, p16, p15, p14, p13, p12, p11); //出力用ポート |
yusuke_robocup | 0:0c7c6eefafe4 | 17 | |
yusuke_robocup | 0:0c7c6eefafe4 | 18 | BusOut mbedleds(LED4,LED3,LED2,LED1); |
yusuke_robocup | 0:0c7c6eefafe4 | 19 | |
yusuke_robocup | 0:0c7c6eefafe4 | 20 | /* 赤外線センサに使うpinを配列に格納 */ |
yusuke_robocup | 0:0c7c6eefafe4 | 21 | PinName ir_num[ALL_IR] = { |
yusuke_robocup | 0:0c7c6eefafe4 | 22 | p13, |
yusuke_robocup | 0:0c7c6eefafe4 | 23 | p14, |
yusuke_robocup | 0:0c7c6eefafe4 | 24 | p15, |
yusuke_robocup | 0:0c7c6eefafe4 | 25 | p16, |
yusuke_robocup | 0:0c7c6eefafe4 | 26 | p17, |
yusuke_robocup | 0:0c7c6eefafe4 | 27 | p18, |
yusuke_robocup | 0:0c7c6eefafe4 | 28 | p19, |
yusuke_robocup | 1:d6c8be12a3de | 29 | p20, |
yusuke_robocup | 1:d6c8be12a3de | 30 | p30 |
yusuke_robocup | 0:0c7c6eefafe4 | 31 | }; |
yusuke_robocup | 0:0c7c6eefafe4 | 32 | |
yusuke_robocup | 0:0c7c6eefafe4 | 33 | int Convert_Direction[DIRECTION] = { |
yusuke_robocup | 1:d6c8be12a3de | 34 | 90, |
yusuke_robocup | 1:d6c8be12a3de | 35 | 67, |
yusuke_robocup | 0:0c7c6eefafe4 | 36 | 45, |
yusuke_robocup | 1:d6c8be12a3de | 37 | 22, |
yusuke_robocup | 1:d6c8be12a3de | 38 | 0, |
yusuke_robocup | 1:d6c8be12a3de | 39 | 337, |
yusuke_robocup | 1:d6c8be12a3de | 40 | 315, |
yusuke_robocup | 1:d6c8be12a3de | 41 | 292, |
yusuke_robocup | 1:d6c8be12a3de | 42 | 270, |
yusuke_robocup | 1:d6c8be12a3de | 43 | 247, |
yusuke_robocup | 1:d6c8be12a3de | 44 | 225, |
yusuke_robocup | 1:d6c8be12a3de | 45 | 202, |
yusuke_robocup | 1:d6c8be12a3de | 46 | 180, |
yusuke_robocup | 1:d6c8be12a3de | 47 | 157, |
yusuke_robocup | 0:0c7c6eefafe4 | 48 | 135, |
yusuke_robocup | 1:d6c8be12a3de | 49 | 112 |
yusuke_robocup | 0:0c7c6eefafe4 | 50 | }; |
yusuke_robocup | 0:0c7c6eefafe4 | 51 | |
yusuke_robocup | 0:0c7c6eefafe4 | 52 | int moving_ave(int data,int active_ir) |
yusuke_robocup | 0:0c7c6eefafe4 | 53 | { |
yusuke_robocup | 2:22b099fbdd14 | 54 | static int tmp[12][ALL_IR]= {{0,0}}; |
yusuke_robocup | 0:0c7c6eefafe4 | 55 | static int sum[ALL_IR] = {0}; |
yusuke_robocup | 0:0c7c6eefafe4 | 56 | int count = 0; |
yusuke_robocup | 0:0c7c6eefafe4 | 57 | |
yusuke_robocup | 2:22b099fbdd14 | 58 | sum[active_ir] -= tmp[11][active_ir]; |
yusuke_robocup | 0:0c7c6eefafe4 | 59 | sum[active_ir] += data; |
yusuke_robocup | 2:22b099fbdd14 | 60 | //tmp[13][active_ir] = tmp[12][active_ir]; |
yusuke_robocup | 2:22b099fbdd14 | 61 | //tmp[12][active_ir] = tmp[11][active_ir]; |
yusuke_robocup | 0:0c7c6eefafe4 | 62 | tmp[11][active_ir] = tmp[10][active_ir]; |
yusuke_robocup | 0:0c7c6eefafe4 | 63 | tmp[10][active_ir] = tmp[9][active_ir]; |
yusuke_robocup | 0:0c7c6eefafe4 | 64 | tmp[9][active_ir] = tmp[8][active_ir]; |
yusuke_robocup | 0:0c7c6eefafe4 | 65 | tmp[8][active_ir] = tmp[7][active_ir]; |
yusuke_robocup | 0:0c7c6eefafe4 | 66 | tmp[7][active_ir] = tmp[6][active_ir]; |
yusuke_robocup | 0:0c7c6eefafe4 | 67 | tmp[6][active_ir] = tmp[5][active_ir]; |
yusuke_robocup | 0:0c7c6eefafe4 | 68 | tmp[5][active_ir] = tmp[4][active_ir]; |
yusuke_robocup | 0:0c7c6eefafe4 | 69 | tmp[4][active_ir] = tmp[3][active_ir]; |
yusuke_robocup | 0:0c7c6eefafe4 | 70 | tmp[3][active_ir] = tmp[2][active_ir]; |
yusuke_robocup | 0:0c7c6eefafe4 | 71 | tmp[2][active_ir] = tmp[1][active_ir]; |
yusuke_robocup | 0:0c7c6eefafe4 | 72 | tmp[1][active_ir] = tmp[0][active_ir]; |
yusuke_robocup | 0:0c7c6eefafe4 | 73 | tmp[0][active_ir] = data; |
yusuke_robocup | 0:0c7c6eefafe4 | 74 | |
yusuke_robocup | 2:22b099fbdd14 | 75 | for(int i=0;i<12;i++){ |
yusuke_robocup | 0:0c7c6eefafe4 | 76 | if(tmp[i][active_ir])count++; |
yusuke_robocup | 0:0c7c6eefafe4 | 77 | } |
yusuke_robocup | 0:0c7c6eefafe4 | 78 | |
yusuke_robocup | 0:0c7c6eefafe4 | 79 | return sum[active_ir]/count; |
yusuke_robocup | 0:0c7c6eefafe4 | 80 | } |
yusuke_robocup | 0:0c7c6eefafe4 | 81 | |
yusuke_robocup | 0:0c7c6eefafe4 | 82 | void IR_Position(int* direction,int* distance){ |
yusuke_robocup | 0:0c7c6eefafe4 | 83 | |
yusuke_robocup | 0:0c7c6eefafe4 | 84 | int ir_value[ALL_IR+100] = {0}; |
yusuke_robocup | 0:0c7c6eefafe4 | 85 | |
yusuke_robocup | 0:0c7c6eefafe4 | 86 | int active_ir = 0; /* 今回更新する赤外線の番号 */ |
yusuke_robocup | 0:0c7c6eefafe4 | 87 | int memory_ir = 0; /*赤外線時間カウンタ*/ |
yusuke_robocup | 0:0c7c6eefafe4 | 88 | int flag_ir = 0; |
yusuke_robocup | 0:0c7c6eefafe4 | 89 | int value = 0; |
yusuke_robocup | 0:0c7c6eefafe4 | 90 | |
yusuke_robocup | 0:0c7c6eefafe4 | 91 | for(int i=0; i<ALL_IR; i++) { |
yusuke_robocup | 0:0c7c6eefafe4 | 92 | flag_ir = 1; |
yusuke_robocup | 0:0c7c6eefafe4 | 93 | |
yusuke_robocup | 0:0c7c6eefafe4 | 94 | DigitalIn sensor_ir(ir_num[active_ir]); /* 今回更新する赤外線の個体を呼び出す */ |
yusuke_robocup | 0:0c7c6eefafe4 | 95 | |
yusuke_robocup | 0:0c7c6eefafe4 | 96 | timer_ir.start(); /* タイマー起動 */ |
yusuke_robocup | 0:0c7c6eefafe4 | 97 | |
yusuke_robocup | 0:0c7c6eefafe4 | 98 | if(sensor_ir) { /* もし立ち上がっていたら */ |
yusuke_robocup | 0:0c7c6eefafe4 | 99 | while(sensor_ir) { /* 立ち下がるまで待つ */ |
yusuke_robocup | 0:0c7c6eefafe4 | 100 | if(timer_ir.read_us() >= IR_TIME_NOTFOUND) { |
yusuke_robocup | 0:0c7c6eefafe4 | 101 | flag_ir = 0; |
yusuke_robocup | 0:0c7c6eefafe4 | 102 | break; /* 立ち上がっている時間が指定時間越えたらブレイク */ |
yusuke_robocup | 0:0c7c6eefafe4 | 103 | } |
yusuke_robocup | 0:0c7c6eefafe4 | 104 | } |
yusuke_robocup | 0:0c7c6eefafe4 | 105 | } |
yusuke_robocup | 0:0c7c6eefafe4 | 106 | |
yusuke_robocup | 0:0c7c6eefafe4 | 107 | timer_ir.stop(); /* タイマー停止 */ |
yusuke_robocup | 0:0c7c6eefafe4 | 108 | timer_ir.reset(); /* タイマーリセット */ |
yusuke_robocup | 0:0c7c6eefafe4 | 109 | |
yusuke_robocup | 0:0c7c6eefafe4 | 110 | if(flag_ir) { |
yusuke_robocup | 0:0c7c6eefafe4 | 111 | timer_ir.start(); /* タイマー起動 */ |
yusuke_robocup | 0:0c7c6eefafe4 | 112 | |
yusuke_robocup | 0:0c7c6eefafe4 | 113 | while(!(sensor_ir)) { /* 立ち上がるまで待つ */ |
yusuke_robocup | 0:0c7c6eefafe4 | 114 | if(timer_ir.read_us() >= IR_TIME_NOTFOUND) { |
yusuke_robocup | 0:0c7c6eefafe4 | 115 | flag_ir = 0; |
yusuke_robocup | 0:0c7c6eefafe4 | 116 | break; /* 立ち上がっている時間が指定時間越えたらブレイク */ |
yusuke_robocup | 0:0c7c6eefafe4 | 117 | } |
yusuke_robocup | 0:0c7c6eefafe4 | 118 | } |
yusuke_robocup | 0:0c7c6eefafe4 | 119 | } |
yusuke_robocup | 0:0c7c6eefafe4 | 120 | |
yusuke_robocup | 0:0c7c6eefafe4 | 121 | /*ボールが指定時間内に見つかっていたら*/ |
yusuke_robocup | 0:0c7c6eefafe4 | 122 | if(flag_ir) { |
yusuke_robocup | 0:0c7c6eefafe4 | 123 | memory_ir = timer_ir.read_us(); |
yusuke_robocup | 0:0c7c6eefafe4 | 124 | |
yusuke_robocup | 0:0c7c6eefafe4 | 125 | while(1) { |
yusuke_robocup | 0:0c7c6eefafe4 | 126 | if((timer_ir.read_us()-memory_ir)>=IR_TIME_NOTFOUND)break; |
yusuke_robocup | 0:0c7c6eefafe4 | 127 | |
yusuke_robocup | 0:0c7c6eefafe4 | 128 | if(!(sensor_ir)) { |
yusuke_robocup | 2:22b099fbdd14 | 129 | //value = moving_ave( (timer_ir.read_us()-memory_ir)/10 , active_ir ); |
yusuke_robocup | 2:22b099fbdd14 | 130 | value = (timer_ir.read_us()-memory_ir)/10; |
yusuke_robocup | 0:0c7c6eefafe4 | 131 | |
yusuke_robocup | 0:0c7c6eefafe4 | 132 | break; |
yusuke_robocup | 0:0c7c6eefafe4 | 133 | } |
yusuke_robocup | 0:0c7c6eefafe4 | 134 | } |
yusuke_robocup | 0:0c7c6eefafe4 | 135 | } else { |
yusuke_robocup | 0:0c7c6eefafe4 | 136 | /*ボールが見つかっていない場合*/ |
yusuke_robocup | 0:0c7c6eefafe4 | 137 | value = 0; |
yusuke_robocup | 0:0c7c6eefafe4 | 138 | } |
yusuke_robocup | 0:0c7c6eefafe4 | 139 | timer_ir.stop(); /* タイマー停止 */ |
yusuke_robocup | 0:0c7c6eefafe4 | 140 | timer_ir.reset(); /* タイマーリセット */ |
yusuke_robocup | 0:0c7c6eefafe4 | 141 | |
yusuke_robocup | 0:0c7c6eefafe4 | 142 | memory_ir = 0; |
yusuke_robocup | 0:0c7c6eefafe4 | 143 | |
yusuke_robocup | 0:0c7c6eefafe4 | 144 | ir_value[active_ir] = value; //direction array |
yusuke_robocup | 0:0c7c6eefafe4 | 145 | |
yusuke_robocup | 0:0c7c6eefafe4 | 146 | active_ir++; |
yusuke_robocup | 0:0c7c6eefafe4 | 147 | |
yusuke_robocup | 0:0c7c6eefafe4 | 148 | if( active_ir >= ALL_IR) { |
yusuke_robocup | 0:0c7c6eefafe4 | 149 | active_ir = 0; |
yusuke_robocup | 0:0c7c6eefafe4 | 150 | |
yusuke_robocup | 0:0c7c6eefafe4 | 151 | /***********direction***********/ |
yusuke_robocup | 0:0c7c6eefafe4 | 152 | |
yusuke_robocup | 0:0c7c6eefafe4 | 153 | int min = 100,youso_min = 100; |
yusuke_robocup | 0:0c7c6eefafe4 | 154 | |
yusuke_robocup | 2:22b099fbdd14 | 155 | for(int i = 0; i<DIREC_IR; i++) { |
yusuke_robocup | 0:0c7c6eefafe4 | 156 | if((ir_value[i]<min)&&(ir_value[i])) { |
yusuke_robocup | 0:0c7c6eefafe4 | 157 | min = ir_value[i]; |
yusuke_robocup | 0:0c7c6eefafe4 | 158 | youso_min = i; |
yusuke_robocup | 0:0c7c6eefafe4 | 159 | } |
yusuke_robocup | 0:0c7c6eefafe4 | 160 | } |
yusuke_robocup | 0:0c7c6eefafe4 | 161 | |
yusuke_robocup | 0:0c7c6eefafe4 | 162 | double hiritu = 0; |
yusuke_robocup | 0:0c7c6eefafe4 | 163 | |
yusuke_robocup | 0:0c7c6eefafe4 | 164 | int direc = 0; |
yusuke_robocup | 0:0c7c6eefafe4 | 165 | |
yusuke_robocup | 0:0c7c6eefafe4 | 166 | if(youso_min == 0) { |
yusuke_robocup | 0:0c7c6eefafe4 | 167 | hiritu = (double)ir_value[7]/(double)ir_value[1]; |
yusuke_robocup | 0:0c7c6eefafe4 | 168 | } else if(youso_min ==7) { |
yusuke_robocup | 0:0c7c6eefafe4 | 169 | hiritu = (double)ir_value[6]/(double)ir_value[0]; |
yusuke_robocup | 0:0c7c6eefafe4 | 170 | } else { |
yusuke_robocup | 0:0c7c6eefafe4 | 171 | hiritu = (double)ir_value[youso_min-1]/(double)ir_value[youso_min+1]; |
yusuke_robocup | 0:0c7c6eefafe4 | 172 | } |
yusuke_robocup | 1:d6c8be12a3de | 173 | |
yusuke_robocup | 1:d6c8be12a3de | 174 | if((hiritu <= 0.85)&&(youso_min != 0)) { |
yusuke_robocup | 0:0c7c6eefafe4 | 175 | direc = youso_min*2-1; |
yusuke_robocup | 1:d6c8be12a3de | 176 | }else if((hiritu <= 0.85)&&(youso_min == 0)){ |
yusuke_robocup | 0:0c7c6eefafe4 | 177 | direc = 15; |
yusuke_robocup | 1:d6c8be12a3de | 178 | }else if(hiritu >= 1.15) { |
yusuke_robocup | 0:0c7c6eefafe4 | 179 | direc = youso_min*2+1; |
yusuke_robocup | 0:0c7c6eefafe4 | 180 | } else { |
yusuke_robocup | 0:0c7c6eefafe4 | 181 | direc = youso_min*2; |
yusuke_robocup | 0:0c7c6eefafe4 | 182 | } |
yusuke_robocup | 1:d6c8be12a3de | 183 | |
yusuke_robocup | 2:22b099fbdd14 | 184 | /*if(youso_min == 0){ |
yusuke_robocup | 1:d6c8be12a3de | 185 | direc = 0; |
yusuke_robocup | 2:22b099fbdd14 | 186 | }*/ |
yusuke_robocup | 0:0c7c6eefafe4 | 187 | |
yusuke_robocup | 0:0c7c6eefafe4 | 188 | /******* direction end *******/ |
yusuke_robocup | 0:0c7c6eefafe4 | 189 | |
yusuke_robocup | 0:0c7c6eefafe4 | 190 | /******* distance *******/ |
yusuke_robocup | 0:0c7c6eefafe4 | 191 | |
yusuke_robocup | 0:0c7c6eefafe4 | 192 | int dista; |
yusuke_robocup | 0:0c7c6eefafe4 | 193 | |
yusuke_robocup | 2:22b099fbdd14 | 194 | if((ir_value[youso_min]<=28 + TERM)) { |
yusuke_robocup | 0:0c7c6eefafe4 | 195 | dista = 30; |
yusuke_robocup | 0:0c7c6eefafe4 | 196 | } else if((ir_value[youso_min]>28 + TERM)&&(ir_value[youso_min]<=35 + TERM)) { |
yusuke_robocup | 0:0c7c6eefafe4 | 197 | dista = 90; |
yusuke_robocup | 0:0c7c6eefafe4 | 198 | } else if((ir_value[youso_min]>35 + TERM)&&(ir_value[youso_min]<=40 + TERM)) { |
yusuke_robocup | 0:0c7c6eefafe4 | 199 | dista = 120; |
yusuke_robocup | 0:0c7c6eefafe4 | 200 | } else if( ir_value[youso_min]>40 + TERM) { |
yusuke_robocup | 0:0c7c6eefafe4 | 201 | dista = 180; |
yusuke_robocup | 0:0c7c6eefafe4 | 202 | } else { |
yusuke_robocup | 0:0c7c6eefafe4 | 203 | dista = 0; |
yusuke_robocup | 0:0c7c6eefafe4 | 204 | } |
yusuke_robocup | 0:0c7c6eefafe4 | 205 | |
yusuke_robocup | 2:22b099fbdd14 | 206 | int count_ir = 0,total_ir = 0; |
yusuke_robocup | 2:22b099fbdd14 | 207 | |
yusuke_robocup | 2:22b099fbdd14 | 208 | for(int i=0; i<DIREC_IR; i++){ |
yusuke_robocup | 2:22b099fbdd14 | 209 | if(ir_value[i]){ |
yusuke_robocup | 2:22b099fbdd14 | 210 | total_ir += ir_value[i]; |
yusuke_robocup | 2:22b099fbdd14 | 211 | count_ir++; |
yusuke_robocup | 1:d6c8be12a3de | 212 | } |
yusuke_robocup | 2:22b099fbdd14 | 213 | } |
yusuke_robocup | 2:22b099fbdd14 | 214 | |
yusuke_robocup | 2:22b099fbdd14 | 215 | double hihhihi = 0; |
yusuke_robocup | 2:22b099fbdd14 | 216 | |
yusuke_robocup | 2:22b099fbdd14 | 217 | hihhihi = (double)ir_value[youso_min]/(double)ir_value[8]; |
yusuke_robocup | 2:22b099fbdd14 | 218 | |
yusuke_robocup | 1:d6c8be12a3de | 219 | |
yusuke_robocup | 2:22b099fbdd14 | 220 | if((direc == 0)&&(hihhihi >= 0.80)){ |
yusuke_robocup | 2:22b099fbdd14 | 221 | dista = 10; |
yusuke_robocup | 2:22b099fbdd14 | 222 | }else if((direc == 1)&&(hihhihi >= 0.80)){ |
yusuke_robocup | 2:22b099fbdd14 | 223 | dista = 10; |
yusuke_robocup | 2:22b099fbdd14 | 224 | }else if((direc == 2)&&(hihhihi >= 0.65)){ |
yusuke_robocup | 2:22b099fbdd14 | 225 | dista = 10; |
yusuke_robocup | 2:22b099fbdd14 | 226 | }else if((direc == 3)&&(hihhihi >= 0.65)){ |
yusuke_robocup | 2:22b099fbdd14 | 227 | dista = 10; |
yusuke_robocup | 2:22b099fbdd14 | 228 | }else if((direc == 4)&&(hihhihi >= 0.80)){ |
yusuke_robocup | 2:22b099fbdd14 | 229 | dista = 10; |
yusuke_robocup | 2:22b099fbdd14 | 230 | }else if((direc == 5)&&(hihhihi >= 0.65)){ |
yusuke_robocup | 2:22b099fbdd14 | 231 | dista = 10; |
yusuke_robocup | 2:22b099fbdd14 | 232 | }else if((direc == 6)&&(hihhihi >= 0.65)){ |
yusuke_robocup | 2:22b099fbdd14 | 233 | dista = 10; |
yusuke_robocup | 2:22b099fbdd14 | 234 | }else if((direc == 7)&&(hihhihi >= 0.80)){ |
yusuke_robocup | 2:22b099fbdd14 | 235 | dista = 10; |
yusuke_robocup | 2:22b099fbdd14 | 236 | }else if((direc == 8)&&(hihhihi >= 0.80)){ |
yusuke_robocup | 2:22b099fbdd14 | 237 | dista = 10; |
yusuke_robocup | 2:22b099fbdd14 | 238 | }else if((direc == 9)&&(hihhihi >= 0.80)){ |
yusuke_robocup | 2:22b099fbdd14 | 239 | dista = 10; |
yusuke_robocup | 2:22b099fbdd14 | 240 | }else if((direc == 10)&&(hihhihi >= 0.65)){ |
yusuke_robocup | 2:22b099fbdd14 | 241 | dista = 10; |
yusuke_robocup | 2:22b099fbdd14 | 242 | }else if((direc == 11)&&(hihhihi >= 0.65)){ |
yusuke_robocup | 2:22b099fbdd14 | 243 | dista = 10; |
yusuke_robocup | 2:22b099fbdd14 | 244 | }else if((direc == 12)&&(hihhihi >= 0.80)){ |
yusuke_robocup | 2:22b099fbdd14 | 245 | dista = 10; |
yusuke_robocup | 2:22b099fbdd14 | 246 | }else if((direc == 13)&&(hihhihi >= 0.65)){ |
yusuke_robocup | 2:22b099fbdd14 | 247 | dista = 10; |
yusuke_robocup | 2:22b099fbdd14 | 248 | }else if((direc == 14)&&(hihhihi >= 0.65)){ |
yusuke_robocup | 2:22b099fbdd14 | 249 | dista = 10; |
yusuke_robocup | 2:22b099fbdd14 | 250 | }else if((direc == 15)&&(hihhihi >= 0.80)){ |
yusuke_robocup | 2:22b099fbdd14 | 251 | dista = 10; |
yusuke_robocup | 2:22b099fbdd14 | 252 | } |
yusuke_robocup | 2:22b099fbdd14 | 253 | |
yusuke_robocup | 2:22b099fbdd14 | 254 | |
yusuke_robocup | 0:0c7c6eefafe4 | 255 | /******** distance end *******/ |
yusuke_robocup | 0:0c7c6eefafe4 | 256 | |
yusuke_robocup | 0:0c7c6eefafe4 | 257 | *direction = Convert_Direction[direc]; |
yusuke_robocup | 0:0c7c6eefafe4 | 258 | *distance = dista; |
yusuke_robocup | 0:0c7c6eefafe4 | 259 | } |
yusuke_robocup | 0:0c7c6eefafe4 | 260 | } |
yusuke_robocup | 0:0c7c6eefafe4 | 261 | } |
yusuke_robocup | 0:0c7c6eefafe4 | 262 | |
yusuke_robocup | 0:0c7c6eefafe4 | 263 | int main () |
yusuke_robocup | 0:0c7c6eefafe4 | 264 | { |
yusuke_robocup | 0:0c7c6eefafe4 | 265 | pc.baud(9600); |
yusuke_robocup | 0:0c7c6eefafe4 | 266 | |
yusuke_robocup | 0:0c7c6eefafe4 | 267 | int derection = 0; |
yusuke_robocup | 0:0c7c6eefafe4 | 268 | int distance = 0; |
yusuke_robocup | 0:0c7c6eefafe4 | 269 | |
yusuke_robocup | 0:0c7c6eefafe4 | 270 | for(;;){ |
yusuke_robocup | 0:0c7c6eefafe4 | 271 | IR_Position(&derection,&distance); |
yusuke_robocup | 0:0c7c6eefafe4 | 272 | |
yusuke_robocup | 0:0c7c6eefafe4 | 273 | pc.printf("derection:%d distance:%d\n",derection,distance); |
yusuke_robocup | 0:0c7c6eefafe4 | 274 | } |
yusuke_robocup | 0:0c7c6eefafe4 | 275 | } |