2008b

懐中電灯に向かってブロックを投げるロボット

以上の条件を満たすロボットを作成する。

目次

方針

いかにして一つのモーターで正確に標的に近づくか、そしていかにして懐中電灯との距離をとるかを考えて作成する。

作成の手順

プログラム

#define straight OnRev(OUT_A); Wait(10); Float(OUT_A); Wait(10); OnFwd(OUT_A); Wait(10); Float(OUT_A); Wait(10); Off(OUT_A);

task main(){
  SetSensor(SENSOR_1,SENSOR_LIGHT);
  SetSensor(SENSOR_3,SENSOR_LIGHT);  //センサーの設置

  while(true){  //無限に繰り返す
    if(SENSOR_1 > SENSOR_3){
      OnRev(OUT_A);
      Wait(25);
      Off(OUT_A);  //左折
    }
    else if(SENSOR_1 < SENSOR_3){
      OnFwd(OUT_A);
      Wait(25);
      Off(OUT_A);  //右折
    }
    else if(SENSOR_1 == SENSOR_3){
      straight;  //直進(左右のタイヤを交互に回転)
    }
    else if((SENSOR_1 > 80)&&(SENSOR_3 > 80)){
      OnRev(OUT_C);
      Wait(100);
      Off(OUT_C);
      break;  //両方のセンサーの値が一定の値より大きいとき、ブロックを投げつけて繰り返しを抜ける。
    }
  }
}

実行結果…反省および感想


その後の改良点

ハード面においては、ブロックの飛距離に大きなばらつきがあった事が気になった。また、光の受け方によっては光センサーの数値が左右ともに同じになってしまい、正確な方向へ進めなくなってしまうことがあった。これらの問題を解消するため、以下の対策を行った。

コメント欄

コメントをお願いします。


プログラムその2に説明を入れましょう。三輪車など、ロボットの方にも気を配ったのはよいと思います。 FI


添付ファイル: fileview.jpg 180件 [詳細] filethrow_back.jpg 348件 [詳細] fileside.jpg 182件 [詳細] filekaku_80.jpg 178件 [詳細] filefront.jpg 182件 [詳細] filebase_side.jpg 353件 [詳細] filebase.jpg 353件 [詳細] filewheel.jpg 362件 [詳細] filethrow_side.jpg 361件 [詳細] filethrow.jpg 360件 [詳細] fileshikiri.jpg 337件 [詳細] filekaku_0.jpg 188件 [詳細] filecustom_th.jpg 398件 [詳細] filebase_front.jpg 177件 [詳細] fileback.jpg 210件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-02-10 (火) 13:31:53