- 追加された行はこの色です。
- 削除された行はこの色です。
[[2007b/A1]]
-----
CENTER:COLOR(darkgreen):&size(22){課題2:ライントレース};
-----
RIGHT:counter &counter(all);
目次
#contents
*目的 [#u61be3dc]
斎木、坂本ペアで課題2に取り組みライントレースロボットを作成。
**ライントレースとは [#z4643462]
ライントレースとは、床面に描いたラインをロボットがセンサを利用して読み取り、ラインに沿って走行することです。
今回はA1左と共同で大きな画用紙に黒ペンでラインを描きロボットを動かします。
*コース [#bec4fe11]
#ref(20071206193208.jpg)
#ref(20071206192948.jpg)
**特徴 [#sfb210d4]
優先道路と非優先道路の区別をしっかりしました。
わかりやすいコースにしました。
*ロボット [#ae09f3d7]
-
-
-
-
-
**特徴 [#h4927445]
#ref(20071206183838.jpg)
これが光センサー。明暗を感知します。
#ref(20071206183929.jpg)
-上から見たロボ。実はNQCを逆さまに取り付けています。
これでプログラムの読み取りもスムーズになりました。
-
-
-
*プログラム [#l4578e2d]
fine THRESHOLD 40 //
#define so 1568
#define ra 1760
#define si 1976
task play_music() // âπäyÇââëtÇ∑ÇÈÉ^É XÉN
{
while (true)
{
PlayTone (so,15);Wait(15);
PlayTone (ra,15);Wait(15);
PlayTone (si,45);Wait(45);
PlayTone (ra,15);Wait(15);
PlayTone (so,15);Wait(40);
PlayTone (so,15);Wait(15);
PlayTone (ra,15);Wait(15);
PlayTone (si,15);Wait(15);
PlayTone (ra,15);Wait(15);
PlayTone (so,15);Wait(15);
PlayTone (ra,45);Wait(70);
}
}
task main ()
{
SetSensor(SENSOR_1,SENSOR_LIGHT); //
SetSensor(SENSOR_3,SENSOR_LIGHT); //
SetSensor(SENSOR_2,SENSOR_TOUCH); //
while(true){ //
if(SENSOR_2==1){
start play_music ;
OnRev(OUT_A+OUT_C);
Wait(40);
OnFwd(OUT_A);
Wait(440); //
stop play_music ;
}else{
if(SENSOR_1<THRESHOLD){ //
if(SENSOR_3<THRESHOLD){ //
OnFwd(OUT_A); //
OnFwd(OUT_C);
}else{
OnRev(OUT_A); //
OnFwd(OUT_C);
}
}else{
if(SENSOR_3<THRESHOLD){ //
OnFwd(OUT_A);
OnRev(OUT_C);
}else{
Off(OUT_A);
Off(OUT_C);
Wait(50);
OnFwd(OUT_A); //
OnFwd(OUT_C); //
Wait(30); //
}
}
}
}
}
*結果 [#q2b95d97]
*課題2を終えて [#x6df88c8]
*コメント [#qa917600]
よろしければコメントをお願いします。
#comment