[[2011a]]

目次
#contents
*今回の課題 [#b4ba7f13]
画用紙の上に置かれているテニスボールをランタンの元へ送る(手段は問わない)
*MEMBER [#ffff6220]
-ばるす!
-
*ROBOTTO [#sfccc0c9]
-お名前
デリケート
 デリケートなやつなんです
-特徴
 角!(張りぼて)
 デリケートさ(おそらく全ロボット中TOP)
 センサー類が一箇所に集まっている(まともな特徴ねえなあ…)
-見た目
 写真
*PROGRAMs [#o56ec15f]
-ばるす!

 SetSensor(SENSOR_1,SENSOR_LIGHT);                        // ライントレースのセンサー
 SetSensor(SENSOR_2,SENSOR_TOUCH);                        // タッチセンサー
 SetSensor(SENSOR_3,SENSOR_LIGHT);                        // ランタンを探すセンサー
 #define THRESHOLD 50                                     // 閾値
 #define go OnFwd(OUT_A+OUT_C);                           //前進
 #define right OnFwd(OUT_A);Off(OUT_C);                   //右折
 #define left OnFwd(OUT_C);Off(OUT_A);                    //左折
 #define STOP Off (OUT_A+OUT_C);                          //止まる
 #define throught OnFwd(OUT_B);Wait(100);Off(OUT_B);      //ボール投げる
 int T = 350 ;
 int lmax = 0 ;
 int tmax = 0 ;

 task light()                                             //光の最大値を計るタスク
 {
   ClearTimer(0);
   while(FastTimer(0)<T)
    {
     right;
     if( Sensor_1 > lmax )
      { lmax=Sensor_1;tmax = FastTimer(0) ; }
    STOP;
    left;Wait(T - tmax );
    }
 } 

 task sub()                        //ボールを投げるタスク
 {
 
 STOP;
 start light;                     //ライトのタスクを起動
 throught;
 left;
 Wait(tmax);
 
 }

 task main()                       //ラインをトレースするタスク
 {
 
 go;
 until(SENSOR_1<50){right;}
 until(SENSOR_1>50){left;}
 if(SENSOR_1> == 1);
 start sub;                       //サブのタスクを起動
 
 }

プログラムはこの上なくシンプルになったがシンプルすぎて複雑なコースに適応できてない気がする…が、一応一度だけ成功したからこのままで完成とする。せめてライントレース用にもう一つ光センサーがあればなぁ…
*まとめ [#f70c7851]
- あとはまかせた! -- [[ばるす!]] &new{2011-07-09 (土) 10:45:40};

#comment

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS