#define THRESHOLD 40 //光の閾値を設定 task main() { SetSensor(SENSOR_1,SENSOR_LIGHT);//光センサーのセット SetSensor(SENSOR_2,SENSOR_TOUCH);//タッチセンサーのセット SetSensor(SENSOR_3,SENSOR_LIGHT);//光センサーのセット while(true) { if(SENSOR_1<THRESHOLD) {OnFwd(OUT_C); Off(OUT_A);} if(SENSOR_3<THRESHOLD) {OnFwd(OUT_A); Off(OUT_C);} //黒い線に沿って運動 if(SENSOR_2==1) //タッチセンサーに触 れた場合 {OnRev(OUT_A+OUT_C); //後退 Wait(80); OnFwd(OUT_C); OnRev(OUT_A); Wait(50);} //回転させる until(SENSOR_1 <= THRESHOLD); //黒い線に戻る } }
#define THRESHOLD 40 //光の閾値を設定 task main() { SetSensor(SENSOR_1,SENSOR_LIGHT);//光センサーのセット SetSensor(SENSOR_2,SENSOR_TOUCH);//タッチセンサーのセット SetSensor(SENSOR_3,SENSOR_LIGHT);//光センサーのセット while(true) { if(SENSOR_1<THRESHOLD) {OnFwd(OUT_C); Off(OUT_A);} if(SENSOR_3<THRESHOLD) {OnFwd(OUT_A); Off(OUT_C);} //黒い線に沿って運動 if(SENSOR_2==1) //タッチセンサーに触 れた場合 {OnRev(OUT_A+OUT_C); //後退 Wait(80); OnFwd(OUT_A); OnRev(OUT_C); Wait(90); //右に曲がる OnFwd(OUT_A+OUT_C); Wait(100); //前進 OnRev(OUT_A); Wait(90); //左に曲がる OnFwd(OUT_A); Wait(100); //前進 OnRev(OUT_A); Wait(90); //左に曲がる OnFwd(OUT_A); Wait(30); OnRev(OUT_C); Wait(30); //回転させる until(SENSOR_1 < 40); //黒い線に戻る } } }
まず最初に作ったキャタピラ型。
とりあえず動きに正確性を欠いたので、変更された。
光センサーでセンサーを二つ使っていたので、センサーを重ねることでひとつになってどうにか使えるようになったタッチセンサー
コース。。。緩やかにデザインしてもらったが、一箇所まがりにくかった。。。けど、なかなかいいデザインでした。。。
バンパーが高さが違うので、最初はうまくあたらなく反応しなかったが、高さを変更し当たるようにしたのでうまくいくようになった。
あと、すれ違うときにぶつからないように、コースから外れすぎなうように、調整するのに少し工夫した。工夫というのは、ぶつからないように外れすぎないように、一台分よけるのではなく、お互いに一台半分よけるようにして、外れすぎないようにした。
タッチセンサーが2つ、光センサーが2つの4つだったので、最初どうしようか迷った。光センサー1つでライントレイスをしようかと思ったが、精度を欠いていて線を外れたり、左右にがたがた揺れて、スピードも出なかったので却下した。タッチセンサーを1つのやつを作ろうかと思ったが、センサーは重ねて使えることを聞き、悩み解決。