[[2015a/Member]]

*ライントレーサーロボ285829.jpット [#x2ffb0d0]

**ハードウェア [#q5631562]
 
#ref(s_S__30285827.jpg)
二駆を基本形とし、それにキャスターを付けることで旋回性を重視しユニセンサーというライントレーサーとして致命的な不利を補った。左右のホイールも極限まで幅を狭め同じく旋回性を優位に進めた。
#ref(s_S__30285828.jpg)
ボールのキャッチにおいては、感圧センサーより取り付けられたバンパーと、モーターにより駆動するアームで挟みこむことで固定力を得ている。また、他班が不可能としたボールの察知を感圧センサーでやるという方式は、そのボールの軽さ故センサーが作動するに至らないというものであったが、センサーに取り付けられる腕の長さを長くすることでテコの原理的にその力を大きくし作動させることに成功した。
#ref(s_S__30285829.jpg)
#ref(s_S__30285831.jpg)
#ref(s_S__30285832.jpg)
光センサーについてはできるだけ地面に接近させる場所・旋回軸に近い(同一ではない)場所に設置した事により、ラインの感知をより正確なものとさせた。
#ref(s_S__30285833.jpg)
#ref(s_S__30285834.jpg)
**ソフトェア [#i4f6f5e1]
 task main(){
  SetSensor(SENSOR_2,SENSOR_LIGHT);
  SetSensor(SENSOR_1,SENSOR_TOUCH);
  int i = 0;
  int j = 0;
  int T = 0;
  ClearTimer(1);
  while(1){
  	if(SENSOR_1 == 1){
			i++;
			ClearTimer(0);
		}
		if(i == 1){
			OnFwd(OUT_B);
			Wait(50);
			Off(OUT_B);
			i++;
 			ClearTimer(0);
 		}
   if(SENSOR_2 > 50 && SENSOR_2 <55){
    OnRev(OUT_A);
    Off(OUT_C);
    ClearTimer(0);
    }if(SENSOR_2 >56){
   	int t = FastTimer(0);
   	int T = FastTimer(1);
   	if((T > 1000 && T < 1800) || (T > 2500 && T <3300)){ 
	   	if(t >20){
    			PlaySound(SOUND_UP);
    			Off(OUT_AC);
    			Wait(200);
   			ClearTimer(0);
   	   	}else{
    			OnRev(OUT_A);
    			OnFwd(OUT_C);
    		}
    	}
    	if(T > 3700){
    		if(t > 20){
    			PlaySound(SOUND_UP);
    			OnRev(OUT_AC);
    			Wait(100);
    			Off(OUT_AC);
    			Wait(1000);
    			ClearTimer(0);
    		}else{
    			OnRev(OUT_A);
    			OnFwd(OUT_C);
    		}
    	}else{
    		OnRev(OUT_A); 
		OnFwd(OUT_C);
    	}
    }   
    else if(SENSOR_2 < 49 && SENSOR_2 >45){
    	OnFwd(OUT_A);
    	OnRev(OUT_C);
    	ClearTimer(0);
    }
    else if(SENSOR_2 < 40){
    	OnRev(OUT_AC);
    	ClearTimer(0);
    }	
    else{
    OnRev(OUT_C);
    Off(OUT_A);
    ClearTimer(0);
   }
  }
 }

***ソフトウェアの解説 [#jb2c85a5]
私は地点CからAへ行くコースを制作した。ボールの察知に関しては感圧センサーに依存しているため、交差点の認識からは切り離してある。


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