2006a/C3/ロボコン

受けとる側

int go_time;                  //直進の秒数を変数とする
#define TURN_TIME 150     //曲がるときの秒数
#define BACK_TIME 250     //後進する秒数
#define HOLD_TIME 30     //アームを下げる秒数
#define PART_TIME 150     //アームを上げる秒数

sub go_straight()       //直進を定義
{
    OnFwd(OUT_A+OUT_C);Wait(go_time);Off(OUT_A+OUT_C);
}
sub turn_right()       //左折を定義
{
   OnFwd(OUT_A);OnRev(OUT_C);Wait(TURN_TIME);Off(OUT_A+OUT_C);
}
sub turn_left()       //右折を定義
{
   OnRev(OUT_A);OnFwd(OUT_C);Wait(TURN_TIME);Off(OUT_A+OUT_C);
}
sub back_straight()     //後進を定義
{
   OnRev(OUT_A+OUT_C);Wait(BACK_TIME);Off(OUT_A+OUT_C);
}
sub hold_can()       //アームを下げる動作の定義
{
   OnFwd(OUT_B);Wait(HOLD_TIME);Off(OUT_B);
}  
sub part_can()       //アームを上げる動作の定義
{
   OnRev(OUT_B);Wait(PART_TIME);Off(OUT_B);
}

task main()
{
   SetSensor(SENSOR_1,SENSOR_LIGHT);   //センサー1はライトセンサー
   SetSensor(SENSOR_3,SENSOR_LIGHT);      //センサー2はライトセンサー
   while(true)
   {
       
           Wait(500);          //缶が来るまで5秒待機
           hold_can();         //缶をつかむ
           back_straight();       //後進
           turn_right();        //左折
           go_time=300;         //直進の秒数を3秒にする
           go_straight();        //直進
           turn_left();         //左折
           go_time=100;         
           go_straight();               //1秒直進
           part_can();         //缶を離す
           go_time=100; 
           go_straight();        //一秒直進して缶を押し入れる
           back_straight();       //後進
           turn_left();         //左折
           go_time=300; 
           go_straight();        //3秒直進
           turn_right();         //右折
           go_time=100;
           go_straight();        //1秒直進
        
    }
}

秒数は実際のものではなく、メッセージもまだ組み込んでいません。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-08-10 (木) 23:56:19 (4761d)