2005/A5/課題2右

机の周りを回るロボットのプログラム

作成者:するめ 作成日時:11/17
#define turn_left   OnFwd(OUT_A);OnRev(OUT_C);Wait(100);Off(OUT_A+OUT_C); // 左に90度曲がる
#define turn_right OnFwd(OUT_C);OnRev(OUT_A);Wait(8);Off(OUT_A+OUT_C); //右に曲がる
#define go_straight1 OnFwd(OUT_A+OUT_C); //前進する
#define go_straight2 OnFwd(OUT_A+OUT_C);Wait(10);Off(OUT_A+OUT_C);//0.1秒間前進してとまる
#define go_straight3 OnFwd(OUT_A+OUT_C);Wait(120);Off(OUT_A+OUT_C); //1.2秒間前進してとまる
task main()
 {
   SetSensor(SENSOR_1, SENSOR_TOUCH); //センサー1をタッチセンサーに指定する
   SetSensor(SENSOR_3, SENSOR_TOUCH);  //センサー3をタッチセンサーに指定する
   SetPower(OUT_A,6);   //モーターAのパワーを下げる
 
    while (true)
     {
       if (SENSOR_1 == 0) //センサー1が触れていない時、右に方向修正する
       {
         turn_right;
	   go_straight2;
       } else {           //触れているとき前進する
               go_straight1;
       }
       if((SENSOR_1 == 1) && (SENSOR_3 == 1)) //センサー1とセンサー3が触れている時左に90度曲がり前進する
       {
         turn_left;
	   go_straight3;
       } 
      } 
  }

感想

 回転する角度が電池の消費に影響されて大変だった。  センサーの誤作動などが時々あってセンサーの感度を下げると反応してくれ  ないなどの問題も発生したが壁側のタイヤ(モーターA)のトルクを下げることで常に壁側によっているようにしてこの問題を解決しました。

コメント

 このプログラムに関するコメントをどうぞ



トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-12-16 (金) 00:41:42