[[2009a]]

*課題2 [#j4bc665b]
&br;&size(30){&color(#00eecc){目};};&size(35){&color(#ee00cc){次};};&size(45){&color(#eecc00){♪};};
#contents
*課題2 ⌣[#j4bc665b]
ライントレースをするロボットを作ろう!!
+障害物にぶつかったら避ける
+障害物にぶつかったら次の交差点まで運ぶ
&br;かつ以下の条件をそなえたプログラムをそれぞれ作ること!
+障害物にぶつかったら''&color(#e00){避けて進む};''
+障害物にぶつかったら''&color(#e00){障害物を次の交差点まで運ぶ};''
*ロボット [#j5244865]
#ref(全体写真.jpg)
#ref(後輪.jpg)
#ref(タッチセンサ部分.jpg)
*コース [#s76c5a4b]
*プログラム [#ye6f4aa3]
**避ける方のプログラム [#g3fded9d]
 int kosaten = 0;

 task main ()
  {
 SetSensor(SENSOR_1,SENSOR_LIGHT);
 SetSensor(SENSOR_2,SENSOR_TOUCH);
 SetSensor(SENSOR_3,SENSOR_LIGHT);    //センサーは1と3を光に、2をタッチにしました。

 while(kosaten < 6)      //kosatennの値が6より小さいときは以下のプログラムに従う
 {while(SENSOR_2==1)    //交差点で牛乳パックとぶつかったら発動       
 {OnRev(OUT_A+OUT_C);        
 Wait(60);         
 Off(OUT_A+OUT_C);              //とりあえずバック
 OnFwd(OUT_A);       
 OnRev(OUT_C);                         
 Wait(50);                                
 Off(OUT_A+OUT_C);             //右に方向転換
 OnFwd(OUT_A+OUT_C);
 Wait(50);
 Off(OUT_A+OUT_C);    //前進
 OnFwd(OUT_C);
 OnRev(OUT_A);
 Wait(50);
 Off(OUT_A+OUT_C);              //左に方向転換
 OnFwd(OUT_A+OUT_C);
 Off(OUT_A+OUT_C);    //前進
 kosaten++;        //ここまで動作を完了したらkosatenに1加える
 }

 if (SENSOR_1 > 40&&SENSOR_3 < 40)  //ロボの右側が白、左側が黒と認識したとき発動
 {OnFwd(OUT_A);
 OnRev(OUT_C);}            //右側に曲がる 
 if (SENSOR_1< 40&&SENSOR_3 > 40)  //ロボの右側が黒、左側が白と認識したとき発動
 {OnFwd(OUT_C);
 OnRev(OUT_A);}            //左に曲がる
 if (SENSOR_1 > 40&&SENSOR_3 > 40)  //ロボの両側とも白と認識したとき発動
 {OnFwd(OUT_A+OUT_C);}        //前進
 if (SENSOR_1 < 40&&SENSOR_3 < 40)  //ロボの両側とも白と認識したとき発動
 {OnFwd(OUT_C+OUT_A);}        //前進
 }

 Off(OUT_A+OUT_C);                  //kosatenの値が6以上になったら停止
 }
**運ぶ方のプログラム [#de156211]
*最後に・・・ [#ycca2fce]
コメントよろしくお願いします&color(#f09){&#9836;};
#comment


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS