*//台から落ちないロボット// [#q01eb19f] task main() task main() { SetPower(OUT_A,6);SetPower(OUT_C,6);//回転数を決める SetSensor(SENSOR_1, SENSOR_LIGHT); SetSensor(SENSOR_2, SENSOR_LIGHT);//センサーを決める int a;//変数を決める(aは定数) while(true ){ OnFwd(OUT_A+OUT_C);a=35; //前進 aを35にする until (SENSOR_1 || SENSOR_2 <a);//センサー1か2がa以下まで前進 if(SENSOR_1 <a){ // もしセンサー1がa以下のとき以下 OnRev(OUT_A); until(SENSOR_1>a); // センサー1がa以上になるまで モーターAを逆回転 } if(SENSOR_2 <a){ //もしセンサー2がa以下のとき以下 OnRev(OUT_C); until(SENSOR_2>a);//センサー2がa以上になるまで モーターCを逆回転 } if(SENSOR_1 && SENSOR_2 <a){//もしセンサー1と2がa以下のとき以下 OnRev(OUT_A+OUT_C); until(SENSOR_1 && SENSOR_2 >a);//センサー1と2がa以上になるまで 後退 } } Off(OUT_A+OUT_C);//停止 } *《感想・反省》 [#me7bf72e] センサーを二つ使った。センサーを外側につくようにした。回転軸を車体の真中にした。 ロボットが机上から転落しないように、ロボットの先端に取り付けたセンサーを用いて、机上から転落しそうになったら後退するというものである。 センサーの位置によって後退時間が変化してしまうので、ロボットが落ちないギリギリに取り付けた。この取り付け位置もプログラム同様に苦労した点である。