[[2005/B7/課題2]]

目次
#contents

* 机に沿って走行するロボット(試作) [#z94c3c34]

 // 机に沿って走行するロボット
 //
 //    作成者:かずま&ブリトニー
 //    作成日:2005-11-17
 
 #define TURN_TIME 110
 
 sub turn_left()                              // 左方向に90度回転
 {
     OnRev(OUT_A); OnFwd(OUT_C);
     Wait(TURN_TIME);
     Off(OUT_A+OUT_C);
 }
 
 task main()
 {
     SetSensor(SENSOR_1, SENSOR_TOUCH);       // センサ端子1に接続されたセンサが
                                              // タッチセンサであると宣言(ロボットの前に取り付けてある)
     SetSensor(SENSOR_3, SENSOR_TOUCH);       // センサ端子3に接続されたセンサが
                                              // タッチセンサであると宣言(ロボットの右側に取り付けてある)
 
     while(true)
     {
         if(SENSOR_1 == 1)                    // センサ1が押されたとき
         {
             Off(OUT_A+OUT_C);
             OnRev(OUT_A+OUT_C); Wait(50);    // 0.5秒間後退した後
             Off(OUT_A+OUT_C);
             turn_left();                     // 左折する
         }
 
         if(SENSOR_3 == 0)                    // センサ3が壁から離れたとき
         {
             Off(OUT_A+OUT_C);
             OnFwd(OUT_A); OnRev(OUT_C);      // 0.3秒間右方向に回転し
             Wait(30);
             Off(OUT_A+OUT_C);
             OnFwd(OUT_A+OUT_C);              // 0.45秒間前進する
             Wait(45);
         }
 
         else                                 // センサ1が壁にぶつかっておらず、センサ3が壁に接しているとき
         {
             Off(OUT_A+OUT_C);
             OnRev(OUT_A); OnFwd(OUT_C);      // 0.1秒間左方向に回転し
             Wait(10);
             Off(OUT_A+OUT_C);
             OnFwd(OUT_A+OUT_C);              // 0.1秒間前進する
             Wait(10);
         }
     }
 }

・試作ですが、ほぼ完成といっていいです。なかなか堅実な動きをします。最初はセンサ3がonのときに直進させて、offで曲がるのが理想でしたが、まっすぐ走ってくれず、壁から離れやがるので少しづつ進み常に壁に沿うように走る今のプログラムにしました。
-なかなか良くできています。 -- [[まいける(TA)]] &new{2005-12-02 (金) 16:58:18};

#comment

[[戻る>2005/B7/課題2]]


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