2004/C5/45班

1. ハート形を描くロボット(必須)

ロボットにペンを取り付けA3用紙にハート型を描くロボットを作成しなさい。


task main ()
{
OnFwd (OUT_A+OUT_C);
Wait (185);
Off (OUT_C);
Wait (390);
OnRev (OUT_C);
Off (OUT_A);
Wait (390);
OnRev (OUT_A);
Wait (185);
Off (OUT_A+OUT_C);
}

2. 台から落ちないロボット(必須)

机の上で動き回るロボットを作成しなさい。 ただし方向変換は机の端に来たときに行うこと。


task main ()
 {
   SetSensor(SENSOR_1,SENSOR_LIGHT);
   
   while(true)
   {
     OnFwd(OUT_A+OUT_C);
     until(SENSOR_1<35);
     OnRev(OUT_A+OUT_C);
     Wait(50);
     OnFwd(OUT_A);
     OnRev(OUT_C);
     Wait(100);
   }
 } 

3. ライントレースをするロボット(必須)

できるだけ速いロボットを作成すること


task main ()
{
 SetSensor (SENSOR_1, SENSOR_LIGHT);
 ClearTimer(0);
 while (true)
 {if (SENSOR_1<40) {
 SetPower (OUT_A,7);
 SetPower (OUT_C,3);
 OnFwd (OUT_A+OUT_C);}
 else{Off (OUT_A);
      SetPower (OUT_C,7);
      OnFwd (OUT_C); }
 }
}

4. 光を追いかけるロボット(必須)

まず最初に一回転してもっとも明るい方向(懐中電灯の方向)を探し、次に懐中電灯の光を追いかけて進むようなロボットを作成しなさい。


OUT_Aは左モーター,OUT_Cは右モーター,光センサーは"1"に接続する。

進行方向判断時(サブルーチンRIGHT_or_LEFT)の回転時間はしようロボットによって改定する必要あり。

<このロボットの簡単な動き> (10秒直進→明るいほうへ向く)×無限

int light_before=0;
int light_middle=0;
int light_right=0;
int light_left=0;
void go_straight(int t){
	OnFwd(OUT_A+OUT_C);
	Wait(t);
}
void turn_right(int t){ //右旋回
	OnFwd(OUT_A);
	OnRev(OUT_C);
	Wait(t);
}
void turn_left(int t){ //左旋回
	OnFwd(OUT_C);
	OnRev(OUT_A);
	Wait(t);
}
sub RIGHT_or_LEFT(){//明るい方向へ向くサブルーチン
	SetSensor(SENSOR_1, SENSOR_LIGHT);
	light_middle=SENSOR_1;//真中の光量取得
	turn_right(10);
	light_right=SENSOR_1;//右の光量取得
	turn_left(20);
	light_left=SENSOR_1;//左の光量取得
	/*右が明るい*/
	if(light_right>light_middle&&light_right>light_left){
		turn_right(20);
		}
	/*右前が明るい*/
if(light_right==light_middle&&light_middle>light_left){
		turn_right(15);
		}
	/*真中が明るい*/
if((light_middle>light_right&&light_middle>light_left)||(light_right==light_middle&&light_middle==light_left)){
		turn_right(10);
		}
	/*左前が明るい*/
if(light_right<light_middle&&light_middle==light_left){
		turn_right(5);
		}
	/*左が明るい(=動かない)*/
}
task main(){ //光追跡
	SetSensor(SENSOR_1, SENSOR_LIGHT);
	while(true){
		light_before=SENSOR_1;
		go_straight(10);//10秒間前進→10秒に一度チェック
		if(light_before>=SENSOR_1){
			RIGHT_or_LEFT();
			}
		}
}

5. 演奏ロボット(必須)

インストラクション(説明書)の最後にある「Top Secret」を参考に、音楽を演奏しながら前進し障害物にぶつかったら(あるいは明るい光にあたったら)後退しながら方向を変えるロボットを作成しなさい。ただし移動のためのモータはひとつだけ使うものとし、また前進しているときと後進している時で違う音楽を演奏すること。


6. 二足歩行ロボット(自由)

7. その他(自由)


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-02-04 (金) 20:16:03