[[2009a]] &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){♬}; #comment