目次
#contents



*課題 黒い線をトレースするプログラム  [#y4bccc89]

**ロボットの構造の工夫 [#ufd8c21e]


このロボットの雛形は、マインドストームの四輪駆動型ロボットです。


・黒線を太くすることで、センサーの感度を実質的に引き上げました。

・また、前輪と後輪を入れ替えることで機動力を得ます。

・両端にある光センサーの幅を狭くすることで、左右にぶれることを少なくしました。






**ロボットの基本的なプログラム [#t078adcd]

・光センサーを利用してライントレースのプログラムを書く。

・タッチセンサーを利用した牛乳パックの回避。牛乳パックを運ぶためのプログラムを作る。

・完成。



**それぞれのプログラム [#ob93befe]

***これがハるのプログラムです。 [#q46756d2]

 #define THRESHOLD 40
 #define RUN_TIME 1800

 task main() {

    SetSensor(SENSOR_1,SENSOR_LIGHT);
    SetSensor(SENSOR_3,SENSOR_LIGHT);
    SetSensor(SENSOR_2,SENSOR_TOUCH);
    ClearTimer(0);

まず、ちゃんと三周で止まるように、起動時間を三分に設定しました。

        while(Timer(0)<=RUN_TIME){
        if(SENSOR_1>THRESHOLD){
                 if(SENSOR_3>THRESHOLD){
                              OnFwd(OUT_A+OUT_C);
                                                 }
                 else{
                              OnFwd(OUT_A);
                              Off(OUT_C);
                           }
                                     }
         else{
                 if(SENSOR_3>THRESHOLD){
                              OnFwd(OUT_C);
                              Off(OUT_A);
                                                 }
                }

ここまでは、ライントレースのプログラム。

         if (SENSOR_2 == 1)
            {
         OnRev(OUT_A+OUT_C);
         Wait(50);
         Off(OUT_A+OUT_C);
         OnRev(OUT_B);
         Wait(50);
         Off(OUT_B);
         OnFwd(OUT_A+OUT_C);
         Wait(300);
         Off(OUT_A+OUT_C);
         OnFwd(OUT_A);
         OnRev(OUT_C);
         Wait(250);
         Off(OUT_A+OUT_C);
         OnFwd(OUT_B);
         Wait(50);
         Off(OUT_B);
         OnFwd(OUT_A);
         OnRev(OUT_C);
         Wait(250);

         
            }                   } Off(OUT_A+OUT_C);
     }
最後に、牛乳パックを感知>ホールド>進んでから反転>パージして復帰
このプログラムを付け加え、完了です。

***これがカヲルのプログラムです。 [#q848c14c]
   #define THRESHOLD 40

   task main()
   {
     SetSensor(SENSOR_1,SENSOR_LIGHT);
     SetSensor(SENSOR_3,SENSOR_LIGHT);
     SetSensor(SENSOR_2,SENSOR_TOUCH);

     while(true){
         if(SENSOR_1>THRESHOLD){
                  if(SENSOR_3>THRESHOLD){
                               OnFwd(OUT_A+OUT_C);
                                                  }
                  else{
                               OnFwd(OUT_A);
                               Off(OUT_C);
                            }
                                      }
          else{
                  if(SENSOR_3>THRESHOLD){
                               OnFwd(OUT_C);
                               Off(OUT_A);
                                                  }
                 }
          if (SENSOR_2 == 1)
             {
          OnFwd(OUT_A+OUT_B);
          Wait(100);

          OnRev(OUT_A);
          OnFwd(OUT_C);
          Wait(800);

          
             }

                    }
      
      }

**感想 [#h9aa55d6]
***ハる [#od7fa6db]

家に持って帰ったのは今回が初めてでした。牛乳パックをホールドするアームの設計は、かなり考えた末に現在のような形になりました。
また、集会を記録するプログラミングは、変数を記録するプログラムがまだわからなかったので断念し、タイマーを利用することになりました。

今回、NQCを自分のパソコンでも使えるようになったので、今後の課題はもっと楽になると思います。

***カヲル [#yd028789]

#comment

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