*壁に沿って動くプログラム [#l417de3c] int t; int w; sub yuu () //yuuのプログラム { OnFwd(OUT_A+OUT_C); //前進 until((SENSOR_1==1)&&(SENSOR_3==1));//タッチセンサー1もしくはタッチセンサー1,3両方が反応するまで OnRev(OUT_A+OUT_C); //後進 Wait(w); OnFwd(OUT_A); OnRev(OUT_C); //回転 OnRev(OUT_C); //右に回転 Wait(105); Off (OUT_A+OUT_C); //停止 } sub sho () //shoのプログラム { ClearTimer (0); while (Timer (0) < t) { while (SENSOR_1==1 && SENSOR_3==0) { Off (OUT_A+OUT_C); //停止 OnFwd (OUT_A+OUT_C); //前進 } while (SENSOR_1==0 && SENSOR_3==0) { Off (OUT_A+OUT_C); //停止 OnFwd (OUT_C); OnRev (OUT_A); //回転 OnRev (OUT_A); //左に回転 Wait (10); OnFwd (OUT_A+OUT_C); //前進 Wait (10); } if (SENSOR_1==1 && SENSOR_3==1) { OnRev (OUT_A+OUT_C); //後進 Wait (0); OnFwd (OUT_A); OnRev (OUT_C); //回転 OnRev (OUT_C); //右に回転 Wait (130); Off (OUT_A+OUT_C); //停止 } } Off (OUT_A+OUT_C); //停止 } task main () { SetSensor (SENSOR_1, SENSOR_TOUCH); //left //タッチセンサー左 SetSensor (SENSOR_3, SENSOR_TOUCH); //right //タッチセンサー右 w=5; yuu(); w=50; yuu(); OnFwd (OUT_A+OUT_C); //前進 Wait (330); OnFwd (OUT_C); OnRev (OUT_A); //回転 OnRev (OUT_A); //左に回転 Wait (90); OnFwd (OUT_A+OUT_C); //前進 until (SENSOR_1==1 && SENSOR_3==1); //タッチセンサー1もしくはタッチセンサー1,3両方が反応するまで t=110; sho(); w=5; yuu(); yuu(); OnFwd (OUT_A+OUT_C); //前進 Wait(340); t=1000; sho(); Off (OUT_A+OUT_C); //停止 } 写真 #ref(http://yakushi.shinshu-u.ac.jp/robotics-photo/2005-11-24/img_0017_Medium.jpg) 特徴 タッチセンサーを2つ使用。タッチセンサーの反応をよくするために左側のタッチセンサーにブロックをつける。 感想 二人のプログラムをあわせてプログラミングをした。壁にそって離れることなく走れた。かなり完成度は高いと思う。 二人のプログラムをあわせてプログラミングをした。壁にそって離れることなく走れた。かなり完成度は高いと思う。 -プログラムだけでは様子がわからないので、コメントやロボットの説明を書き加えて下さい。 -- [[まいける(TA)]] &new{2005-12-02 (金) 18:04:59}; -説明をいれましょう。 -- [[かとりーぬ(TA)]] &new{2005-12-16 (金) 18:59:45}; #comment