** 台から落ちないロボット [#c74d30df] &size(10){机の上で動き回るロボットを作成しなさい。 ただし方向変換は机の端に来たときに行うこと。}; &size(10){プログラミング担当⇒⇒}; ~ &size(10){組み立て担当⇒⇒}; Programed by 体調 ~ task main() { SetSensor(SENSOR_1,SENSOR_TOUCH); SetSensor(SENSOR_3,SENSOR_TOUCH); while(true) { OnFwd(OUT_A+OUT_C); until ((SENSOR_1 == 0) || (SENSOR_3 == 0)); Off(OUT_A+OUT_C); Wait(50); OnRev(OUT_A+OUT_C); until ((SENSOR_1 == 1) && (SENSOR_3 == 1)); Wait(50); OnFwd(OUT_C); OnRev(OUT_A); Wait(300); Off(OUT_A+OUT_C); Wait(50); OnFwd(OUT_A+OUT_C); } Wait(200); Off(OUT_A+OUT_C); } このRCXには前方にタッチセンサーを2個取り付け、台の上にある場合は押されている状態(SENSOR==1)となり、台からそれると押されていない状態(SENSOR==0)となります。 台からそれると、後退して方向を変えて再び前進します。工夫した点は、交代する際に後退を始めてから何秒間後退するというのではなく、後退して、台の上に戻ってから何秒間後退するかというプログラムにしてあります。 Written by 体調