2005/A3

壁に沿うロボット program editer Hideshi

基本プログラム

sub Go(){OnFwd(OUT_A+OUT_C);}
sub Back(){OnRev(OUT_A+OUT_C);Wait(19);Off (OUT_A+OUT_C);}
sub Left_Turn(){OnRev(OUT_A);OnFwd(OUT_C);Wait(60);}
sub Right_Turn(){OnRev(OUT_C);OnFwd(OUT_A);Wait(60);}
  • 基本的の動作(前進、後退、左折、右折)を、サブルーチンで定義 [#f8d7ae32]

実際に動かす(機体の前と右にセンサーを設置)

task main()
{SetSensor(SENSOR_2,SENSOR_TOUCH);      //front sensor
SetSensor(SENSOR_3,SENSOR_TOUCH);                    //right sensor
while(true)
{Go();
if(SENSOR_2==1){Back();Left_Turn();Go();Off(OUT_C);Wait(30);Go();Wait(80);};  
                                                         //If sensor of only front turn on,the machine turn left.
if(SENSOR_3!=1){Wait(80);Right_Turn();Go();Wait(50);Off(OUT_C);Wait(10);Go();Wait(80);};}
                                                        //if sensor of only right turn off,the machine turn right
}

工夫点

  • Simple is best.
  • センサーの感度が高いため、機体の右にあるセンサーがあまり作動しないようにプログラミングした。
  • 機体が右折したりすると、どうしても機体が壁から離れてしまうので、曲がった直後のしばらくは壁よりに進むようにした。
  • もし仮に壁から離れてしまっても、自動的に近づくようにした。

コメントをお願いします

  • もう少しわかりやすい説明をお願いします -- 2007-01-22 (月) 12:11:34


添付ファイル: file1 115件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-01-22 (月) 12:11:34 (4598d)