2008a/A6/課題2右
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2008a/MemberOnly/進行状況A]]
*目次 [#oc70f701]
#contents
*課題 [#v2854fdb]
ライントレースロボット~
黒い線の上を通るロボットの作成
*ロボットの説明 [#r34040d4]
&ref(080619_1759~01[1].JPG);
上から見たロボットの全体図です。
&ref(080619_1800~01[1].JPG);
前から見た図です。センサーが線をなぞるようになっています。
&ref(080619_1800~02[1].JPG);
後ろから見た図です。曲りやすいように三輪にしました。
*コースについて [#p42a5df3]
&ref(080619_1801~01[1].JPG);
交差点が二つのコースにしました。多少コーナーが急になっています。
*プログラムについて [#f6246dda]
プログラム
#define THRESHOLD 40 // 閾値
#define RUN_TIME 1200 // 3周の時間 (接触なしの場合)
task main()
{
SetSensor(SENSOR_2,SENSOR_TOUCH);
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
ClearTimer ( 0 ) ;//タイマースタート
while(Timer (0) <= RUN_TIME)
{ if (SENSOR_2==1){OnRev(OUT_A+OUT_C);Wait(40);}//前方のロボットにぶつかったら、4秒下がる。
else{ if (SENSOR_1<THRESHOLD){if (SENSOR_3< THRESHOLD){OnFwd(OUT_A+OUT_C);}
//センサー1と3が線の上にあるなら前進する。
else {OnFwd(OUT_C);OnRev(OUT_A);}}//センサー1だけ線の上にある時、左に曲がる。
else {if (SENSOR_3< THRESHOLD){OnFwd(OUT_A);OnRev(OUT_C);}//センサー3だけ線の上にある時、右に曲がる。
else{Off(OUT_A+OUT_C);Wait(50);OnFwd(OUT_A+OUT_C);Wait(70);}//両方のセンサーが線の上にない時、5秒止まって7秒進む。
}
}
}
Off(OUT_A+OUT_C);//3周したら止まる。
}
*問題点 [#rcdf6b33]
コーナーでうまく回りきれなくて、線を出てしまったりした。
*解決策 [#daf848e7]
三輪にすることで、コーナーを回りやすくした。
*感想 [#d76af606]
前回に比べて、納得できるロボットができた。
プログラムもうまく作れたと思う。
時間があったら、音楽も入れてみたかった。
*コメントをどうぞ [#dd55719f]
#comment
終了行:
[[2008a/MemberOnly/進行状況A]]
*目次 [#oc70f701]
#contents
*課題 [#v2854fdb]
ライントレースロボット~
黒い線の上を通るロボットの作成
*ロボットの説明 [#r34040d4]
&ref(080619_1759~01[1].JPG);
上から見たロボットの全体図です。
&ref(080619_1800~01[1].JPG);
前から見た図です。センサーが線をなぞるようになっています。
&ref(080619_1800~02[1].JPG);
後ろから見た図です。曲りやすいように三輪にしました。
*コースについて [#p42a5df3]
&ref(080619_1801~01[1].JPG);
交差点が二つのコースにしました。多少コーナーが急になっています。
*プログラムについて [#f6246dda]
プログラム
#define THRESHOLD 40 // 閾値
#define RUN_TIME 1200 // 3周の時間 (接触なしの場合)
task main()
{
SetSensor(SENSOR_2,SENSOR_TOUCH);
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
ClearTimer ( 0 ) ;//タイマースタート
while(Timer (0) <= RUN_TIME)
{ if (SENSOR_2==1){OnRev(OUT_A+OUT_C);Wait(40);}//前方のロボットにぶつかったら、4秒下がる。
else{ if (SENSOR_1<THRESHOLD){if (SENSOR_3< THRESHOLD){OnFwd(OUT_A+OUT_C);}
//センサー1と3が線の上にあるなら前進する。
else {OnFwd(OUT_C);OnRev(OUT_A);}}//センサー1だけ線の上にある時、左に曲がる。
else {if (SENSOR_3< THRESHOLD){OnFwd(OUT_A);OnRev(OUT_C);}//センサー3だけ線の上にある時、右に曲がる。
else{Off(OUT_A+OUT_C);Wait(50);OnFwd(OUT_A+OUT_C);Wait(70);}//両方のセンサーが線の上にない時、5秒止まって7秒進む。
}
}
}
Off(OUT_A+OUT_C);//3周したら止まる。
}
*問題点 [#rcdf6b33]
コーナーでうまく回りきれなくて、線を出てしまったりした。
*解決策 [#daf848e7]
三輪にすることで、コーナーを回りやすくした。
*感想 [#d76af606]
前回に比べて、納得できるロボットができた。
プログラムもうまく作れたと思う。
時間があったら、音楽も入れてみたかった。
*コメントをどうぞ [#dd55719f]
#comment
ページ名: