[[2007a/A9/ロボコン]] #contents *ライントレースについて [#w8265ecb] 方法としては、以下の通りである。&br; **方法 [#c520ef10] A,2つのセンサーでトレース(黒、黒)&br; B,2つのセンサーでトレース(白、白)&br; C,1つのセンサーでトレース(黒)&br; -''1つでトレース、一つで箱感知、一つで交差点を認識させることにしました。'' **参考までに。それぞれのプログラム(動作保障はいたしませんが。) [#x5923bcf] -''Bのプログラム''&br; [[課題2のページ>2007a/A9/課題2左]]をご覧下さい。 -''Cのプログラム''&br; #define MOTOR OUT_A+OUT_C #define THRESHOLD 40 //閾値 int search_dir; sub turn_left(){ OnRev(OUT_A);OnFwd(OUT_C); } sub turn_right(){ OnFwd(OUT_A);OnRev(OUT_C); } task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_2,SENSOR_LIGHT);OnFwd(MOTOR); //最初の動きとして直進させる。 while(true){ if(SENSOR_1<THRESHOLD) //線を見失ったら { if(search_dir==0){ turn_right(); Wait(5); if(SENSOR_1>THRESHOLD){ //線をみつけたのなら直進 OnFwd(MOTOR); search_dir=0; }else{ //見付からないのなら反対側を探す turn_left(); Wait(10); if(SENSOR_1>THRESHOLD){ //見付けたのなら直進 OnFwd(MOTOR); search_dir=1; }else{ //見付からないのなら1秒前進 OnFwd(MOTOR);Wait(100); search_dir=0; } } } if(search_dir==1){ turn_left(); Wait(5); if(SENSOR_1>THRESHOLD){ OnFwd(MOTOR); search_dir=1; }else{ turn_right(); Wait(10); if(SENSOR_1>THRESHOLD){ OnFwd(MOTOR); search_dir=0; }else{ OnFwd(MOTOR); Wait(100); search_dir=1; } } } } } Off(OUT_A+OUT_C); } **コメントをどうぞ。 [#td6ee9cd] #comment