ロボットにペンを取り付け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); }
机の上で動き回るロボットを作成しなさい。 ただし方向変換は机の端に来たときに行うこと。
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); } }
できるだけ速いロボットを作成すること
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); } } }
まず最初に一回転してもっとも明るい方向(懐中電灯の方向)を探し、次に懐中電灯の光を追いかけて進むようなロボットを作成しなさい。
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(); } } }
インストラクション(説明書)の最後にある「Top Secret」を参考に、音楽を演奏しながら前進し障害物にぶつかったら(あるいは明るい光にあたったら)後退しながら方向を変えるロボットを作成しなさい。ただし移動のためのモータはひとつだけ使うものとし、また前進しているときと後進している時で違う音楽を演奏すること。
task play_music1() { while (true) { ここに「スノースマイル」のプログラムが入ります。 すごく長いので省略します。 詳しくは上の音楽プログラムを見てください。 } } task play_music2() { while (true) PlaySound (SOUND_FAST_UP); } task main () { SetSensor(SENSOR_1, SENSOR_TOUCH); while (true) { start play_music1 ; Wait (300); OnFwd (OUT_A); until (SENSOR_1==1); stop play_music1 ; start play_music2; OnRev (OUT_A); Wait (300); stop play_music2; } }