課題2:黒い線に沿って動くロボット

自作のコースで黒い線に沿って動くロボットを作成せよ。ただし、

ロボットの構造

ロボットに光センサーを取り付けることでライントレースをさせる。さらに、課題にある‘もう一台のロボットに接触した時に止まる’という問題を解決するために、タッチセンサーを使って停止させるための機構を考えた。

光センサーを取り付ける

NO.5.JPG

黒い線を挟んでいる

NO.6.JPG

カーブでは片方のセンサーが反応

タッチセンサーを取り付ける

ロボット完成

コースの紹介

プログラム

プログラムを作っている中で問題点が二つ出てきた。

試行錯誤した結果次のようなプログラムになった  

#define THRESHOLD 40   // 閾値
task main ()
{
    SetSensor(SENSOR_1, SENSOR_LIGHT);
    SetSensor(SENSOR_3, SENSOR_LIGHT);
    SetSensor(SENSOR_2, SENSOR_TOUCH);
    int n;                       //交差点を通った回数
     n = 0;         //スタートする前なので交差点を通った回数は0回、この後のプログラムで交差点を通るたびに通った回数を1つずつ増やしていく
    while ( n <  6)  {     //交差点を通った回数が5回までなら繰り返す     
       if ((SENSOR_1> THRESHOLD)&&(SENSOR_3 > THRESHOLD)){   //黒い線に触れなければ前進
           OnFwd(OUT_A+OUT_C);
       }
        if ((SENSOR_1 < THRESHOLD)){                              //黒い線を左の光センサーが感知したら、つまり右にコースアウトしそうなら左に曲がる
           Off(OUT_A);
           OnFwd(OUT_C);
       }
       if((SENSOR_3 < THRESHOLD)){ OnFwd(OUT_A);       //黒い線を右の光センサーが感知したら、つまり左にコースアウトしそうなら右に曲がる
           OnRev(OUT_C);
         } 
        if((SENSOR_1 < THRESHOLD) && (SENSOR_3 < THRESHOLD)){  //黒い線を両方の光センサーが感知したら、つまり交差点まできたら一時停止後進む                    
            Off(OUT_A+OUT_C)  ;       
            Wait(150);                
            OnFwd(OUT_A+OUT_C) ;   
            Wait(150);
             n=n+1;             //交差点を通った回数に1を足す
             }
              
        if((SENSOR_2==1 )){                     //タッチセンサーが何かに触れたら後進した後前進
            Rev(OUT_A+OUT_C);                    
            Wait(70);
            Off(OUT_A+OUT_C);
            Wait(150);
            OnFwd(OUT_A+OUT_C);                                           
         }
}
Float(OUT_A+OUT_C);          //交差点を通ったのが6回だと止まる
}

苦労・工夫した点

感想

コメントをお願いします



添付ファイル: fileNO.7.JPG 322件 [詳細] fileNO.6.JPG 351件 [詳細] fileNO.5.JPG 330件 [詳細] fileNO.4.JPG 310件 [詳細] fileNO.3.JPG 152件 [詳細] fileNO.2.JPG 287件 [詳細] fileNO.1.JPG 298件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-06-19 (木) 16:50:34