2005/C1/宇佐美

ロボット製作者

 池尻、宇佐美

ライントレースするロボット~モーター2個、光センサー1個使用~

プログラム

#define T 40

task main ()
{
     SetSensor(SENSOR_2,SENSOR_LIGHT);
    
      while (true) {
       if (SENSOR_2 < T) {     //センサーが線の上にある条件             
           OnFwd(OUT_A);    //左に曲がる
           Off(OUT_C);
       } else {                //それ以外の条件          
           OnFwd(OUT_C);    //右に曲がる
           Off(OUT_A);
       }
   }
}

ロボットについて

キャタピラ(説明書通り)に光センサーを下向きに設置(写真はありません・・・。

感想

うまくライントレースしてくれた。あっさり出来て、ちょっと嬉しかった。

ライントレースするロボット~モーター1個、光センサー1個使用~

ロボットの写真

モーター一個・ギア モーター一個

プログラム

#define T 40
task main()
{
     SetSensor(SENSOR_2, SENSOR_LIGHT);
      
      while(true) {
       if (SENSOR_2 > T) {    //センサーが線の上にないとき
           OnFwd(OUT_B);
       } 
       if (SENSOR_2 < T)) {   //センサーが線の上にあるとき
           OnRev(OUT_B);
       }
                  }
}

ロボットについて

タッチセンサーに引き続き、めちゃくちゃ時間をかけた。 説明書通りにロボットを作ると、前進と(ブレーキを使って)左後進or右後進しかできなくて、 どうやれば右前進と左前進になるのか、すごく考えた。 ギアの組み合わせを変えなければならないのは分かったけど、 ブレーキの使いどころやギアの組み合わせ方に迷った。 出来た!っておもっても、その場で回転することしか出来ひんロボットとか、そもそも動力を打ち消しあって動かないやつとか・・・。 で、左右でギアの個数を変えればいい!!って思い立って作ろうとしても 大小のギアが上手くかみ合わなかったりした。 何回もギアを変えに変えて、写真のような組み合わせで成功。

感想

モーター1個に苦戦した。作れた!と思ったら、 ギアの構造が先生のヒントと同じような感じだったので、 ちょっと残念だった。

ライントレースするロボット~モーター2個、光センサー2個使用(前後に設置)~

ロボットの写真

モーター二個

プログラム

#define T 40
task main ()
{
    SetSensor(SENSOR_1,SENSOR_LIGHT);
    SetSensor(SENSOR_3,SENSOR_LIGHT);
     while (true) {
      if ((SENSOR_1 < T) &&(SENSOR_3 < T)){ 
                             //前後のセンサーが線の上にある条件   
          OnFwd(OUT_A);
          OnFwd(OUT_C);
      } if (SENSOR_1 < T){   //前のセンサーのみ線の上にある条件                  
          OnFwd(OUT_A);
          Off(OUT_C);
      } if (SENSER_1 < T){   //後のセンサーのみ線の上にある条件
          Off(OUT_A);
          OnFwd(OUT_C);
  } 
}
}

感想

うまくライントレースしなかった。 両方のセンサーが線から離れないと曲がらないようにしたため、 車体の長さの分、線からはみ出すまで進んだ。 結果、ズルをしたり、線から離れるロボットとなった。

ライントレースするロボット~モーター2個、光センサー2個使用(両方前に線を挟むように設置)~

プログラム

#define T 40
task main()
{
     SetSensor(SENSOR_1, SENSOR_LIGHT);
     SetSensor(SENSOR_3, SENSOR_LIGHT);
      
      while(true) {
       if ((SENSOR_1 > T)&&(SENSOR_3 > T)){  //センサーが両方線の上にないとき    
           OnFwd(OUT_A+OUT_C);
           Off(OUT_A+OUT_C);
          } 
       if (SENSOR_1 < T) {                   //センサー1が線の上にあるとき
           OnFwd(OUT_A);
           Off(OUT_A);
          }
       else {                                //センサー3が線の上にあるとき
           OnFwd(OUT_C);
           Off(OUT_C); 
          }
                   }
} 

感想

ちゃんとライントレースした。 モーター1個に挑戦したあとだったので、モーターを2つ使えるのが嬉しかった。



添付ファイル: file画像 026.jpg 267件 [詳細] file画像 025.jpg 264件 [詳細] file画像 024.jpg 284件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-02-09 (木) 03:18:30