2005/A2/課題2

机を1周するロボ

プログラム

   task main()
   {
   SetSensor(SENSOR_1,SENSOR_TOUCH); // センサ端子1に接続されたセンサが
                                     // タッチセンサであると宣言
   OnFwd(OUT_A+OUT_C);               // モータAとモータCを正回転【プロセス1】           
   Wait(400);                        // 4sec継続し前進
   Off(OUT_A+OUT_C);                 // モータAとモータCを停止(起動修正1開始)
   OnFwd(OUT_C);                     // モータCを正回転
   Wait(50);                         // 0.5secマシン回転
   OnFwd(OUT_A+OUT_C);               // モータAとモータCを正回転
   until(SENSOR_1 == 1);             // タッチセンサが押されるまで待機   
   Off(OUT_A+OUT_C);                 // モータAとモータC を停止
       OnRev(OUT_A+OUT_C) ; Wait(50);// 0.5secバック【プロセス2】
       OnFwd(OUT_C) ; Wait(120);     // Cのモータだけを正回転させて
                                     // 1.2secで方向転換
                                     // 上記の設定時間は適当に調節
       OnFwd(OUT_A);                 // Aのモータも正回転する	
       OnFwd(OUT_A+OUT_C);           // モータAとモータCを5sec正回転
       Wait(500);                    // 5sec継続
       Off(OUT_A+OUT_C);             // モータAとモータC を停止
   OnFwd(OUT_A) ;                    // モーターAを1.8sec正回転【プロセス3】
   Wait(185); 
   Off(OUT_A+OUT_C);                 // モータAとモータCを停止
   OnFwd(OUT_A+OUT_C);               // モータAとモータCを1.75sec回転
   Wait(175);
   Off(OUT_A+OUT_C);                 // モータAとモータC を停止
   OnFwd(OUT_A) ;                    // モーターAを1.8sec正回転
   Wait(180); 
   Off(OUT_A+OUT_C);                 // モータAとモータCを停止
       OnFwd(OUT_A+OUT_C);           // モータAとモータC を正回転【プロセス4】
       Wait(180);                    // 1sec前進
       Off(OUT_A+OUT_C);             // モータAとモータCを停止(起動修正1開始)
       OnFwd(OUT_C);                 // モータCを正回転
       Wait(17);
       OnFwd(OUT_A+OUT_C);           // モータAとモータCを正回転
       Wait(730);                    // 7.3sec前進
       Off(OUT_A+OUT_C);             // モータAとモータCを停止
   OnFwd(OUT_A) ;                    // モーターAを2.1sec正回転【プロセス5】
   Wait(200); 
   Off(OUT_A+OUT_C);                 // モータAとモータCを停止
   OnFwd(OUT_A+OUT_C);               // モータAとモータCを正回転     
   Wait(450);
   Off(OUT_A+OUT_C);                 // モータAとモータCを停止(起動修正1開始)
   OnFwd(OUT_C);                     // モータCを正回転
   Wait(30);
   OnFwd(OUT_A+OUT_C);               // モータAとモータCを正回転
   Wait(550);                        // 5.5sec長距離走行
   Off(OUT_A+OUT_C);                 // モータAとモータCを停止(起動修正2開始)
   OnFwd(OUT_C);                     // モータCを正回転
   Wait(30);
   OnFwd(OUT_A+OUT_C);               // モータAとモータCを正回転
   Wait(400);
   Off(OUT_A+OUT_C);                 // モータAとモータCを停止(起動修正3開始)
   OnFwd(OUT_C);                     // モータCを正回転
   Wait(14);
   OnFwd(OUT_A+OUT_C);               // モータAとモータCを正回転
   Wait(500);
   Off(OUT_A+OUT_C);                 // モータAとモータCを停止(起動修正4開始)
   OnFwd(OUT_C);                     // モータCを正回転
   Wait(5);
   OnFwd(OUT_A+OUT_C);               // モータAとモータCを正回転
   Wait(200);
   Off(OUT_A+OUT_C);                 // モータAとモータCを停止(起動修正5開始)
   OnFwd(OUT_C);                     // モータCを正回転
   Wait(10);
   OnFwd(OUT_A+OUT_C);               // モータAとモータCを正回転
   Wait(400);
   Off(OUT_A+OUT_C);                 // モータAとモータCを停止(起動修正6開始)
    OnFwd(OUT_C);                    // モータCを正回転
   Wait(22);
   OnFwd(OUT_A+OUT_C);               // モータAとモータCを正回転
   Wait(250);
   Off(OUT_A+OUT_C);                 // モータAとモータCを停止    
   Off(OUT_A+OUT_C);                 // モータAとモータCを停止(起動修正7開始)
    OnFwd(OUT_C);                    // モータCを正回転
   Wait(14);
   OnFwd(OUT_A+OUT_C);               // モータAとモータCを正回転
   Wait(500);
   Off(OUT_A+OUT_C);                 // モータAとモータCを停止    
       OnFwd(OUT_A) ;                // モーターAを2.1sec正回転【プロセス6】
       Wait(210); 
       Off(OUT_A+OUT_C);             // モータAとモータCを停止
       OnFwd(OUT_A+OUT_C);           // モータAとモータC を正回転
       Wait(180);                    // 1.8sec前進
       Off(OUT_A+OUT_C);             // モータAとモータCを停止(起動修正1開始)
       OnFwd(OUT_C);                 // モータCを正回転
       Wait(10);
       OnFwd(OUT_A+OUT_C);           // モータAとモータCを正回転
       Wait(800);                    // 8sec前進
       Off(OUT_A+OUT_C);             // モータAとモータCを停止
   OnFwd(OUT_A) ;                    // モーターAを1.8sec正回転【プロセス7】
   Wait(185); 
   Off(OUT_A+OUT_C);                 // モータAとモータCを停止
   OnFwd(OUT_A+OUT_C);               // モータAとモータCを2.3sec回転
   Wait(230);
   Off(OUT_A+OUT_C);                 // モータAとモータC を停止
   OnFwd(OUT_A) ;                    // モーターAを1.8sec正回転
   Wait(180); 
   Off(OUT_A+OUT_C);                 // モータAとモータCを停止
       OnFwd(OUT_A+OUT_C);           // モータAとモータCを正回転【プロセス8】
       Wait(340);
       Off(OUT_A+OUT_C);             // モータAとモータC を停止
   OnFwd(OUT_C) ; Wait(250);         // Cのモータだけを正回転させて【プロセス9】
                                     // 2secで方向転換
                                     // 上記の設定時間は適当に調節
   OnFwd(OUT_A);                     // Aのモータも正回転する	
   OnFwd(OUT_A+OUT_C);               // モータAとモータCを正回転
   Wait(400);
   Off(OUT_A+OUT_C);                 // モータAとモータCを停止(起動修正1開始)
   OnFwd(OUT_C);                     // モータCを正回転
   Wait(50);
   OnFwd(OUT_A+OUT_C);               // モータAとモータCを正回転
   until(SENSOR_1 == 1);             // タッチセンサが押されるまで待機   
   Off(OUT_A+OUT_C);                 // モータAとモータC を停止
       OnRev(OUT_A+OUT_C) ; Wait(50);// 0.5secバック【プロセス10】
       OnFwd(OUT_C) ; Wait(110);     // Cのモータだけを正回転させて
                                     // 1.1secで方向転換
                                     // 上記の設定時間は適当に調節
       OnFwd(OUT_A);                 // Aのモータも正回転する	
       OnFwd(OUT_A+OUT_C);           // モータAとモータC を正回転
       Wait(300);
       Off(OUT_A+OUT_C);             // モータAとモータC を停止
   OnFwd(OUT_A) ;                    // モーターAを1.8sec正回転【プロセス11】
   Wait(185); 
   Off(OUT_A+OUT_C);                 // モータAとモータCを停止
   OnFwd(OUT_A+OUT_C);               // モータAとモータCを3sec回転
   Wait(300);
   Off(OUT_A+OUT_C);                 // モータAとモータC を停止
   OnFwd(OUT_A) ;                    // モーターAを1.8sec正回転
   Wait(180); 
   Off(OUT_A+OUT_C);                 // モータAとモータCを停止
       OnFwd(OUT_A+OUT_C);           // モータAとモータC を正回転【プロセス12】
       until(SENSOR_1 == 1);         // タッチセンサが押されるまで待機   
       Off(OUT_A+OUT_C);             // モータAとモータC を停止
   
   }

作成者

 とーます レタス

感想

今回の機体は、シンプルさとスピードをコンセプトに作りました。
タッチセンサーがうまく感知してくれないことが続き、コースのどこでセンサーを 使うか、センサーの使用用途を考えるのに苦労しました。
byレタス

コメントをどうぞ



トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-12-12 (月) 17:02:34