[[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