ロボティクス入門ゼミ~初めてのプログラム~

今回取り組んだ「四角形」のプログラム

 {
 OnFwd(OUT_A+OUT_C); 
 Wait(200);
 OnFwd(OUT_A);OnRev(OUT_C);
 Wait(130);
 OnFwd(OUT_A+OUT_C);
 Wait(200);
 Wait(130);
 OnFwd(OUT_A+OUT_C);
 Wait(200);
 OnFwd(OUT_A);OnRev(OUT_C);
 Wait(130);
 OnFwd(OUT_A+OUT_C);
 Wait(200);
 OnFwd(OUT_A);OnRev(OUT_C);
 Wait(130);
 Off(OUT_A+OUT_C);
 }
[考察] もう少しプログラムの勉強をすべきだと思った。繰り返しのプログラムができれば短く、きれいになるだろう。

「木」という文字のプログラム

 2006a/B4/課題1『木』にのってます!

 [考察]何度も試行錯誤を繰り返して、完成までこぎつけた。特に、角度調節に苦労した。「はらい」が上手くできていればさらによくなっただろう。

タッチセンサーのプログラム

   task main()                                                         
   {
   SetSensor(SENSOR_1, SENSOR_TOUCH);
   SetSensor(SENSOR_3, SENSOR_TOUCH);
    OnFwd(OUT_A+OUT_C);
   while(true)
   {
   if(SENSOR_3==1&&SENSOR_1==1)
  {
   
   OnFwd(OUT_A);OnRev(OUT_C);
   Wait(100);
   OnFwd(OUT_A+OUT_C);
      
  }
  
  else{if(SENSOR_1==1)
  {
  
  OnFwd(OUT_A);OnRev(OUT_C);
  Wait(100);
  OnFwd(OUT_A+OUT_C);
  }
  else{if(SENSOR_3==1)
  {
  
  OnFwd(OUT_C);OnRev(OUT_A);
  Wait(100);
  OnFwd(OUT_A+OUT_C);
  }
  }
  }
  }
  }

[考察]上のプログラムは試作品なので上手く動くかわからないけれど、きっと動くはず…。

「ライントレース」のプログラム

反転

2006a/B4/課題2右 ライントレース?にのってます!

#define stop_turning Off(OUT_A+OUT_C);
#define turn_right OnFwd(OUT_A);OnRev(OUT_C);
#define turn_left OnFwd(OUT_C);OnRev(OUT_A);
#define TURN_TIME 400
#define go_straight OnFwd(OUT_A+OUT_C)
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
int light_max=0,time_max=0;
turn_right;
ClearTimer(0);
while(FastTimer(0)<TURN_TIME){
if(SENSOR_1>light_max){
light_max=SENSOR_1;
time_max=FastTimer(0);
}
}
stop_turning; Wait(100);
turn_left;
Wait(TURN_TIME-time_max);
stop_turning;
}
  

コメントどーぞ!



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-07-31 (月) 13:33:03 (4766d)