[[2005/B4]]

#contents

* 課題4(光の方について行くプログラム(試作)) [#q71b8ef2]

 //課題4(光の方について行くプログラム(試作))
 //
 //
 #define THRESHOLD 40 
 task main(){
	int max_right,time_max;
	SetSensor(SENSOR_1,SENSOR_LIGHT);
	SetSensor(SENSOR_3,SENSOR_LIGHT);
	while(true){
	if(SENSOR_1>THRESHOLD&&SENSOR_3<THRESHOLD){
		OnFwd(OUT_C);
 }
	if(SENSOR_1<THRESHOLD&&SENSOR_3>THRESHOLD){
		OnFwd(OUT_A);
 }
	if(SENSOR_1<THRESHOLD&&SENSOR_3<THRESHOLD){
		OnFwd(OUT_A);
 }
	if(SENSOR_1>THRESHOLD&&SENSOR_3<THRESHOLD){
		OnFwd(OUT_A+OUT_C);
 	}
 }

-普通の所より明るいを見つけて進むプログラム
-とりあえず失敗しましたがここから改良です。
-ぶっちゃけタッチセンサーの光バージョン。
-(このプログラムはWaitがないので動かなかった模様、原因が分かったので
-一応記述します。)

* 課題4(光の方について行くプログラム(改良)) [#o3425963]
 //right_trace
 // 作成者 やらー&すなお&satoshi
 //
 #define THRESHOLD 40 
 task main(){
	SetSensor(SENSOR_1,SENSOR_LIGHT);
	SetSensor(SENSOR_3,SENSOR_LIGHT);
	while(true){
	if(SENSOR_1>THRESHOLD&&SENSOR_3<THRESHOLD){//左のセンサーのみ感知         
                OnFwd(OUT_C);//左回転
		OnRev(OUT_A);
	        Wait(10);
 }
	if(SENSOR_1<THRESHOLD&&SENSOR_3>THRESHOLD){//右のセンサーのみ感知		
                OnFwd(OUT_A);//右回転
		OnRev(OUT_C);
		Wait(10);
 }
	if(SENSOR_1<THRESHOLD&&SENSOR_3<THRESHOLD){//両方感知してなかったら     
              while(SENSOR_1<THRESHOLD||SENSOR_3<THRESHOLD){//どちらかが反応するまで
              OnFwd(OUT_C);//左回転
              OnRev(OUT_A);
		Wait(10);
		until(SENSOR_1>THRESHOLD||SENSOR_3>THRESHOLD);//もしかしたらいらないかも…
		}
 }
	if(SENSOR_1>THRESHOLD&&SENSOR_3>THRESHOLD){//両方感知していたら
		OnFwd(OUT_A+OUT_C);//前進
 	}
 }
 }
#ref(2005/B4/課題4左/060110_2328~02.jpg,ライトトレース1)
#ref(2005/B4/課題4左/060110_2328~01.jpg,ライトトレース2)

-改良前のとちがうのはWaitをいれて刻んでる所です。
-センサーが反応してなければひたすら左回りなので少し遅い。
-ロボは前タイヤを大きくしてセンサーが光を感知しやすくした。

#comment


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