2005/B1

センサー二個で、モーター2個の改良版

task main ()
{SetSensor(SENSOR_1, SENSOR_LIGHT);
SetSensor (SENSOR_3, SENSOR_LIGHT);//セットセンサー
while(true){
if(SENSOR_1 >40 && SENSOR_3<40)//センサー1側で光を感知
{Off(OUT_A+OUT_C);
OnFwd(OUT_C);//左折
 Off(OUT_A);
 }
if (SENSOR_3 >40 && SENSOR_1<40)//センサー3側で感知
 {Off(OUT_A+OUT_C);
 OnFwd(OUT_A);//右折
 Off(OUT_C);
 }
 if(SENSOR_1<40 && SENSOR_3<40)//光を探すため回転
 {Off(OUT_A+OUT_C);
 OnFwd(OUT_A);
 OnRev(OUT_C);
 }
 if(SENSOR_1>40 && SENSOR_3>40)//光感知
 {Off(OUT_A+OUT_C);
 OnFwd(OUT_A+OUT_C);//前進
 }
}
}

感想 

かなりよく追尾できるようになった。おまけに光を探す動作を追加できた。かずひろ


簡単な光を追跡する プログラム モーター2個、センサー1個

task main ()
{
   SetSensor(SENSOR_1, SENSOR_LIGHT);//光センサー1を置く
 while (true){
       if (SENSOR_1 >50)//値が50以上になったとき 
{          OnFwd(OUT_A+OUT_C);//前進
        } else {OnFwd(OUT_A);
        OnRev(OUT_C);//右に回転して光を探す
        
   }
   }
} 

製作者感想

簡単なプログラムだけどなかなか効果的だと思う -- ゆうき? 2005-12-16 (金) 17:40:10

簡単過ぎていけなかった気もする。m(_!_)mかずひろ

  • 光源とロボットの距離が一定でない場合に対応できるように、相対的な閾値、つまり他の方角よりも明るい方を探して進む、というようなプログラムにもチャレンジしてみてください。 -- 松本(教員)? 2006-02-02 (木) 11:11:53

2センサーで、光を追跡するだけのプログラム

task main ()
{
   SetSensor(SENSOR_1, SENSOR_LIGHT);
   SetSensor(SENSOR_3, SENSOR_LIGHT);
   while (true){
     if (SENSOR_1 > 50)//センサー1に光反応あり
     {
       OnFwd(OUT_C);//左折
       Off(OUT_A);
     }
     if (SENSOR_3 > 50)//センサー3に光反応あり
     {
       OnFwd(OUT_A);//右折
       Off(OUT_C);
     }
  else//反応なし 
     {
       Off(OUT_A+OUT_C);}
   }
}

光を探すことはできないが、追跡はなんとかできるという微妙さがあるプログラム。かずひろ



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-02-02 (木) 11:11:53