2005/A5/課題3右

ラインをトレースするロボット1(モーター2つ使用)

センサーを2つ使用

 作成者:するめ 作成日時:11/25
 #define THRHSHOLD 40 //閾値を40に指定
 task main()
 {
    SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1をライトセンサーに指定
    SetSensor(SENSOR_3,SENSOR_LIGHT); //センサー3をライトセンサーに指定
  
  
     ClearTimer(0); //タイマーをリセット
  
    
    while(FastTimer(0) >= 0) //タイマーが0以上の時次の命令を実行
    {
     if((SENSOR_1>THRHSHOLD) && (SENSOR_3>THRHSHOLD)){
       SetPower(OUT_A+OUT_C,7); 
       OnFwd(OUT_A+OUT_C); //センサー1,3が共に白の時前進せよ。
     }
     if((SENSOR_1<THRHSHOLD) && (SENSOR_3>THRHSHOLD)){
        SetPower(OUT_A,6); 
         OnFwd(OUT_C);OnRev(OUT_A); //センサー1が黒でセンサー3が白の時トルクを6で左旋回せよ。
     }
      if((SENSOR_1>THRHSHOLD) && (SENSOR_3<THRHSHOLD)){
        SetPower(OUT_C,6); 
         OnFwd(OUT_A);OnRev(OUT_C); //センサー1が白でセンサー3が黒の時トルクを6で右旋回せよ。
     }
     if((SENSOR_1<THRHSHOLD) && (SENSOR_3<THRHSHOLD)){
       Off(OUT_A+OUT_C);Wait(100); 
       OnFwd(OUT_A+OUT_C); 
        Wait(10); //センサー1,3が共に黒の時1秒止まってから1/10秒前進せよ。
         Float(OUT_A+OUT_C); //その後トルクをかけずに進め。
          ClearTimer(0); //タイマーをリセット
     }
    }
  }

反省と感想

 今回のロボットはサイズを小さくすることと回転軸をできるだけ真中にもって
 くる様に作成しました。最初に作ったものはギア比の関係でスピードが速く
 なってしまいうまくコーナーを曲がってくれませんでした。写真(下)のものは
 ギア比を変えたものです。
 回転軸を真中にするためにできるだけタイヤの数を減らしたっかので矢印の部分
 で車体を支えています。最初は小さい車輪を使っていたんですがうまく回転しな
 かったので写真の矢印のようなものをつかってみました。
rightrob.JPG

ロボット裏側

ラインをトレースするロボット2(モーター1つ使用)

センサーを2つ使用

 

 作成者:するめ 作成日時:12/1
 
 #define THRESHOLD 40 //閾値を40に指定せよ。
 
 task main()
 {
  SetSensor(SENSOR_1, SENSOR_LIGHT); //センサー1をライトセンサーに指定。
  SetSensor(SENSOR_3, SENSOR_LIGHT); //センサー3をライトセンサーに指定。
  
  ClearTimer(0); //タイマーをリセット
  
  while(true){
   if((SENSOR_1 > THRESHOLD) && (SENSOR_3 > THRESHOLD)) {
     OnRev(OUT_B); //センサー1,3が共に白の時左旋回せよ。
    }
   if((SENSOR_1 > THRESHOLD) && (SENSOR_3 <= THRESHOLD)) {
     OnFwd(OUT_B); //センサー1が白でセンサー3が黒の時右旋回せよ。
    }
   if((SENSOR_1 <= THRESHOLD) && (SENSOR_3 > THRESHOLD)) {
     OnRev(OUT_B); //センサー1が黒でセンサー3が白の時左旋回せよ。
    }
   if((SENSOR_1 <= THRESHOLD) && (SENSOR_3 <= THRESHOLD))     {
     OnFwd(OUT_B);Wait(3); 
      Toggle(OUT_B); //センサー1,3が共に黒の時3/100秒右旋回しその後左旋回せよ。
    }
  }
  while ( FastTimer(0) >= 200 ){
   if((SENSOR_1 > THRESHOLD) && (SENSOR_3 > THRESHOLD)) {
     OnFwd(OUT_B); センサー1,3が2秒以上白の時右旋回せよ。
      ClearTimer(0); //タイマーをリセットせよ。
    }
   }
 }

  (注意)このプログラムはモーターを正回転で右に、負回転で左に曲がるようにマシーンを作りました。

反省と感想

 このプログラムは凄くロボットが慎重に動きます。工夫した点は旋回を繰り返して進むのでどちらかによっていってしまうところをタイマーで
 走行進路を若干補正しながら進ませることによりぶれを小さくする事ができるとこです。これを使ったのでトルクを変化
 させなくても進めるようになりました。

コメント

この課題に関するご意見をどうぞ!



添付ファイル: filerightrob.JPG 178件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-01-06 (金) 15:29:58