task main() { OnFwd(OUT_A;OUT_C); Waite(500); Off(OUT_A+OUT_C);}
当たればもう片方の方向にロボットが動くようにプログラムした。下はこの時のプログラム。 [#e66b6c7f]
task main()
{ SetSensor(SENSOR_1,SENSOR_TOUCH); SetSensor(SENSOR_3,SENSOR_TOUCH);
OnFwd(OUT_A+OUT_C);
while(1){
if(SENSOR_1==1){ OnRev(OUT_A+OUT_C);Wait(50); OnFwd(OUT_A);Wait(90); OnFwd(OUT_C); } if(SENSOR_3==1){ OnRev(OUT_A+OUT_C);Wait(50); OnFwd(OUT_C);Wait(90); OnFwd(OUT_A); } } }
ここまで。
これはタッチセンサーが反応したら反対方向にロボットが動くプログラム
#define x 30
task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_LIGHT); SetSensor(SENSOR_2,SENSOR_TOUCH); while(1){
if(SENSOR_1<x){ OnFwd(OUT_C); } if(SENSOR_3<x){ OnFwd(OUT_A); } if((SENSOR_1>x)&&(SENSOR_3>x)) {OnFwd(OUT_A+OUT_C);} if(SENSOR_2==1){ OnFwd(OUT_A);Wait(180); OnRev(OUT_C);Wait(180);
} } }
これは追い越しプログラム
#define x 40
task main() { SetSensor(SENSOR_1,SENSOR_LIGHT) SetSensor(SENSOR_3,SENSOR_LIGHT) SetSensor(SENSOR_2,SENSOR_TOUCH) while(1){
if(SENSOR_1>x){ OnFwd(OUT_A); }
else{OnFwd(OUT_A+OUT_C) }
while(1){
if(SENSOR_3>x){ OnFwd(OUT_A); }
else{OnFwd(OUT_A+OUT_C);}
if(SENSOR_2==1){ OnRev(OUT_A+OUT_C);Wait(100); OnFwd(OUT_A);Wait(45); OnRev(OUT_C);Wait(45); OnFwd(OUT_A+OUT_C);Wait(70); OnFwd(OUT_C);Wait(45); OnRev(OUT_A);Wait(45); OnFwd(OUT_A+OUT_C);Wait(100); OnFwd(OUT_A);Wait(45); OnRev(OUT_C);Wait(45); }
while(1){
if(SENSOR_1>x){ OnFwd(OUT_A); } else{OnFwd(OUT_A+OUT_C);} }
while(1){
if(SENSOR_3>x){ OnFwd(OUT_A); } else{OnFwd(OUT_A+OUT_C); } }
ラインに沿うだけ
#define x 32
task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_LIGHT); SetSensor(SENSOR_2,SENSOR_TOUCH);
while(1){
if(SENSOR_1<x){ OnFwd(OUT_C); OnRev(OUT_A); }
if(SENSOR_3<x){ OnFwd(OUT_A); OnRev(OUT_C); } if((SENSOR_1>x)&&(SENSOR_3>x)){ OnFwd(OUT_A+OUT_C); } } }
ここから
#define x 33
task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_LIGHT); SetSensor(SENSOR_2,SENSOR_TOUCH); while(1){
if(SENSOR_1<x){ OnFwd(OUT_C); OnRev(OUT_A); } if(SENSOR_3<x){ OnFwd(OUT_A); OnRev(OUT_C); } if((SENSOR_1>x)&&(SENSOR_3>x)){ OnFwd(OUT_A+OUT_C); } if(SENSOR_2==1){ OnFwd(OUT_A);Wait(180); OnRev(OUT_C);Wait(180); } } }
task main(){ SetSensor(SENSOR_2,SENSOR_LIGHT) int light_max=0 ClearTimer(0) while(FastTimer(0)<TURN_TIME){
if(SENSOR_1>light_max){ light_max=SENSOR_ 1 time_max=FastTimer } }
光を追いかける
#define x 43 task main(){ SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_LIGHT); while(1){
if(SENSOR_1>x){ Off(OUT_A+OUT_B+OUT_C); Wait(50); OnFwd(OUT_A); until(SENSOR_1<x); Off(OUT_A); } if(SENSOR_3>x){ Off(OUT_A+OUT_B+OUT_C); Wait(50); OnFwd(OUT_C); until(SENSOR_3<x); Off(OUT_C); } else{ OnFwd(OUT_A+OUT_C); OnFwd(OUT_B); Wait(300); OnRev(OUT_B); Wait(300); } } }