[[2005/A1]]
*壁伝いロボ [#c7618245]
#ref(051125_1602~0001.jpg)
 作成者 Harada コンパス 今井  
 作成者 Harada (コンパス 今井)  
*机の脚に沿って進むロボットのプログラム  [#m8332caa]
 
 //制作 harada
 #define back    20 	//転回時に後退する時間
 #define rotate  60	//転回時の回転時間
 
 task main ()
 {
         SetSensor(SENSOR_1, SENSOR_TOUCH);	//センサ種別指定(左タッチセンサ)
         SetSensor(SENSOR_3, SENSOR_TOUCH);	//センサ種別指定(右タッチセンサ)
 
         OnFwd(OUT_A+OUT_C);			//壁に接触するまで前進
         until(SENSOR_1 == 1);
 
         while(true)				//無限ループ
        {
        if(SENSOR_3 == 0)			
                          {
                           if(SENSOR_1 == 1)		//壁から離れたとき
                                      {
                                       OnFwd(OUT_A+OUT_C);				
                                       until ((SENSOR_1 == 0) || (SENSOR_3 == 1)) ;		
                                      }
                                      
                           else			//壁に当たったとき
                                      {
                                       OnFwd (OUT_C);Float(OUT_A);
                                       until ((SENSOR_1 == 1) || (SENSOR_3 == 1)) ;
                                      }
                          }
        else					//足の部分など、回転するとき
                      {
                       OnRev (OUT_A+OUT_C); Wait(back);		
                       Off (OUT_A+OUT_C);
                       OnFwd (OUT_A); OnRev (OUT_C); Wait(rotate);
                      }
                      
         }
 }

*感想(解説) [#abb2f014]
バンパーを高い所と低い所の両方に対応できるように二重にして、スムーズに進むようにローラーも付けました。プログラムでは、常に壁に当たっているようにしたいため、二つにタッチセンサーを使うことにより、全く当たってない時、片方当たっているとき、両方当たっている時とで条件を設定しました。壁に引っかかったり、曲がりすぎてしまったりして苦労しました。
#comment

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