2005/B4

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

//課題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(光の方について行くプログラム(改良))

//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);//前進
	}
}
}
ライトトレース1
ライトトレース2
  • 改良前のとちがうのはWaitをいれて刻んでる所です。
  • センサーが反応してなければひたすら左回りなので少し遅い。
  • ロボは前タイヤを大きくしてセンサーが光を感知しやすくした。
  • 見ました。見やすくまとまっていると思います。 -- ゆん(TA)? 2006-02-02 (木) 18:46:51


添付ファイル: file060110_2328~02.jpg 233件 [詳細] file060110_2328~01.jpg 200件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-02-02 (木) 18:46:51