2005/A1

センサー2個・モーター2個でライントレースするロボット

特徴

速度が速いとセンサーが反応する前に通り過ぎてしまうのでなるべくゆっくり進むように直進を【OnFwd(OUT_A+OUT_C);Wait(2);Off(OUT_A+OUT_C);Wait(2);】のように工夫した。これにより、大抵の線は外れることなくトレースできる。 プログラムは単純明快である。  

//製作者 そるとと 高尾 
#define THRESHOLD 34   

task main ()
{
    SetSensor(SENSOR_1, SENSOR_LIGHT);
    SetSensor(SENSOR_3, SENSOR_LIGHT);  //センサー1、3が光セン サーであると定義
    while (true) 
    {
        if (SENSOR_3<THRESHOLD)         //センサー3がライン上にあるとき
        {          
        OnFwd(OUT_A);                   //右に曲がる
        OnRev(OUT_C);
        Wait(10);                   
        }
        if (SENSOR_1<THRESHOLD)         //センサー2がライン上 にあるとき
        {    
        OnFwd(OUT_C);                   
        OnRev(OUT_A);                   //左に曲がる
        Wait(5);                           
        }
        else                            //どちらもライン上にな いとき
        {
        OnFwd(OUT_A+OUT_C);Wait(2);     
        Off(OUT_A+OUT_C);Wait(2);       //直進
        }
    }
}

感想

こんな簡単なプログラムでいいのかとも思ったけれども、すごいうまくトレースができてうれしかった。あとこれだと鋭角も曲がれます!! コメントをどうぞ

  • モータ1つでのプログラムも載せましょう。 -- ゆん(TAM)? 2005-12-09 (金) 15:42:00

センサー2個・モーター1個でライントレースするロボット

特徴

すごーくゆっくり進みます。

//製作者 そるとと 高尾
#define THRESHOLD 34   
task main ()
{
    SetSensor(SENSOR_1, SENSOR_LIGHT);
    SetSensor(SENSOR_3, SENSOR_LIGHT);  //センサー1、3が光セン サーであると定義
    while (true) 
    {
        if (SENSOR_1<THRESHOLD)         //センサー3がライン上にあるとき
        {          
        OnFwd(OUT_A);                   //右に曲がる
        until(SENSOR_1>THRESHOLD);
        }
        if (SENSOR_3<THRESHOLD)         //センサー2がライン上にあるとき
        {    
        OnRev(OUT_A);                   //左に曲がる
        until(SENSOR_3>THRESHOLD);   
        else              //どちらもライン上にないとき
        {
        OnFwd(OUT_A);                   //右へ動く
        }
    }
}
PA0_0051.JPG

感想

遅い・・・・・・・・・・。パワー不足だったので意地になってパワーをあげまくったら、遅くなってしまった。でも亀みたいで愛着がわく。ロボットの写真を下に添付しておきます。コメントをどうぞ



添付ファイル: filePA0_0051.JPG 200件 [詳細]

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