- 追加された行はこの色です。
- 削除された行はこの色です。
*課題2『黒い線に沿って動くロボット』 [#w158d8ce]
&size(20){◇課題2『黒い線に沿って動くロボット』};
+前方のロボットに接触したら反転して進む
+前方のロボットに接触したらそのロボットを右側から追い抜いて、再びライン上に戻って進む
**製作に関して [#vc86cb68]
-プログラム
--反転して進む
--追い抜いて進む
-苦労した点とその解決
-工夫した点
-製作時間&費用
-反省/感想
&size(20){☆製作に関して };
#contents
**プログラム [#u73fb488]
-反転して進む
***反転して進む [#wb540068]
task main()
{
SetSensor(SENSOR_3,SENSOR_LIGHT);//センサ−3を「光」、センサー1を「タッチセンサー」と定義する
SetSensor(SENSOR_1,SENSOR_TOUCH);
while (true)
{
if(SENSOR_3 < 50)//センサー3が黒線上に無いとき、左タイヤだけが動く
{OnFwd(OUT_A);
Off(OUT_C);
Wait(5);
}
if(SENSOR_3 > 50)//センサー3が黒線上に有るとき、右タイヤだけが動く
{OnFwd(OUT_C);
Off(OUT_A);
Wait(5);
if(SENSOR_1 == 1)//センサ−1が反応したとき、バックして反転
{OnRev(OUT_A+OUT_C);
Wait(50);
OnFwd(OUT_A);OnRev(OUT_C);
Wait(235);
}
}
}
}
-追い抜いて進む
***追い抜いて進む [#a9500fea]
task main()
{
SetSensor(SENSOR_3,SENSOR_LIGHT);
SetSensor(SENSOR_1,SENSOR_TOUCH);
while (true)
{
if(SENSOR_3 < 50)
{OnFwd(OUT_A);
Off(OUT_C);
Wait(5);
}
if(SENSOR_3 > 50)
{OnFwd(OUT_C);
Off(OUT_A);
Wait(5);
if(SENSOR_1 == 1)//センサ−1が反応
{OnRev(OUT_A+OUT_C);//少しバック
Wait(90);
OnFwd(OUT_A);OnRev(OUT_C);//右に約45度
Wait(50);
OnFwd(OUT_A+OUT_C);//少し直進
Wait(100);
OnFwd(OUT_C);OnRev(OUT_A);//左に約45度
Wait(50);
OnFwd(OUT_A+OUT_C);//少し直進
Wait(120);
OnFwd(OUT_C);OnRev(OUT_A);//左に約45度
Wait(30);
}
}
}
}
**苦労した点とその解決 [#z996e706]
タッチセンサーをつけるのは簡単だったけれども光センサーをどの位置につけるかに結構悩まされました。でも結局タッチセンサーの真下につけることで解決しました。また光センサーをいくつつけるかも悩んだけど1つの方がプログラムが簡単だと思ったので1つにしました。タッチセンサーに光センサーも加わったのでプログラムは全体的に大変でした。
**工夫した点 [#jab5474c]
-ロボット
--左右の誤差をなくすように、機体の中心にセンサーを持ってきた。
--センサー同士が邪魔にならないように、一カ所にまとめて配置した。
-プログラム
--トレース時間を短くして、ライントレースの正確さを改善した。
**製作時間&費用 [#ea81d627]
-製作時間
--ロボット製作:1時間
--プログラム:1時間(授業時間含まず)
--レポート作成:3時間
-費用
--画用紙:90円
--マジック:100円
**反省/感想 [#xb264790]
今回、「ライントレースロボ」を作って、慣れてきたせいか、ロボもプログラムも比較的早くできた。また、役割分担もできていて一人一人しっかりできた。今後の課題として、得意分野だけをするのではなく、他の分野の作業(特に、ロボの製作)もできるよう一層の努力が必要である。
***是非コメントをお願いします [#s753bda6]
是非コメントをお願いします
#comment
[[2006a/B4]]へ戻る