[[2017a/Member]]
#contents

**課題2 [#df78f979]
詳しくは [[2017a/Mission2]]


**ロボットについて [#y368c5e2]
#ref(2017a/Member/kenji/Mission2/gimp1.JPG,50%,)
#ref(2017a/Member/kenji/Mission2/gimp2.JPG,50%,)
小回りがきくようにするためとバランスが良くなるようにするためにロボットの後方に小さい車輪を付けました。また、指定された大きさに収まるようにできるだけロボットを小さくシンプルにしました。

**プログラミングについて [#s3f0e4ed]
 #define THRESHOLD 42
 #define turn_left Off(OUT_A);OnFwd(OUT_C);
 #define turn_right OnFwd(OUT_A);Off(OUT_C);
 #define STEP 1
 #define R_senkai OnFwd(OUT_A);OnRev(OUT_C);
 #define L_senkai OnFwd(OUT_C);OnRev(OUT_A);

trace1は境界の右側をたどるサブルーチンです。
白なら左回転、黒なら右回転して境目をたどっていくようにしました。また、交差点が識別できるように左回転したらタイマーをリセットし、右旋回をしたらタイマーをそのままにしてタイマーが30になったら止まるようにしました。

 
 sub trace1()
 {
 while(FastTimer(0)<30)
 if(SENSOR_2>49){
  L_senkai;Wait(STEP);ClearTimer(0);
 }else if(SENSOR_2>44){
  turn_left;Wait(STEP);ClearTimer(0);
 }else if(SENSOR_2< 36){
  turn_right;Wait(STEP);ClearTimer(0);
 }else if(SENSOR_2<33){
   R_senkai;Wait(STEP);
 }
 
 Off(OUT_AC);
 }

trace2は境界の左側をたどるサブルーチンです。trace1と同様にしました。

 sub trace2()
 {
 while(FastTimer(0)<100)
 if(SENSOR_2>49){
  R_senkai;Wait(STEP);ClearTimer(0);
 }else if(SENSOR_2>44){
  turn_right;Wait(STEP);ClearTimer(0);
 }else if(SENSOR_2< 36){
  turn_left;Wait(STEP);ClearTimer(0);
 }else if(SENSOR_2<33){
   L_senkai;Wait(STEP);
 }
 Off(OUT_AC);
 }
task main()
 {
  SetSensor(SENSOR_2,SENSOR_LIGHT);  
  ClearTimer(0);
 
 trace1();
 PlaySound(SOUND_UP);   //E右折
 
 trace1();
 PlaySound(SOUND_DOWN);//P一時停止&左折
 Wait(100);
 turn_left;
 Wait(30);
 
 trace2();
 PlaySound(SOUND_UP);//Q直進
 turn_right;
 Wait(30);
 
 trace2();
 PlaySound(SOUND_UP);//R直進
 
 
 trace2();
 PlaySound(SOUND_DOWN);//T一時停止&直進
 Wait(100);
 turn_right;
 Wait(30);
 
 trace2();
 PlaySound(SOUND_DOWN);//T一時停止&直進
 Wait(100);
 turn_right;
 Wait(30);
 
 trace1();
 PlaySound(SOUND_UP);//H
 
 trace1(); //急なカーブ
 
 trace1(); //急なカーブ
 
 trace1();
 PlaySound(SOUND_UP);//G
 
 trace2(); 
 PlaySound(SOUND_DOWN);//S一時停止&左折
 Wait(100);
 
 trace2();
 PlaySound(SOUND_UP);//P直進
 turn_right;  
 Wait(30);
 
 trace2();
 PlaySound(SOUND_UP);//Q左折
 
 trace1();
 PlaySound(SOUND_UP);//F右折
 
 trace1();//E直進
 
 trace1();//A停止
 
}
 

**感想 [#z22b7f63]
交差点の判断が難しくなかなかゴールまで辿りつけなかったが、最後に一回ゴール出来てよかった。
確実にゴールすることができなかったのが残念だった。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS