[[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


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS