*[[ロボティクス入門ゼミ]]~初めてのプログラム~ [#g5b2c132]


**COLOR(ORANGE):今回取り組んだ「四角形」のプログラム [#oa50712d]
  {
  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);
  }

 [考察] もう少しプログラムの勉強をすべきだと思った。繰り返しのプログラムができれば短く、きれいになるだろう。


**COLOR(GREEN):「木」という文字のプログラム [#u72f33d4]
 [[2006a/B4/課題1『木』]]にのってます!

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

** COLOR(RED):タッチセンサーのプログラム [#d0568e98]
    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);
   }
   }
   }
   }
   }
[考察]上のプログラムは試作品なので上手く動くかわからないけれど、きっと動くはず…。

**COLOR(BLUE):「ライントレース」のプログラム [#oe09ece5]
***反転 [#xac6049b]
[[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)
 #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;
}
  
 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;
 }
   
**COLOR(BROWN):コメントどーぞ! [#c27b93cb]
#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS