- 追加された行はこの色です。
- 削除された行はこの色です。
[[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){♬};
#comment