作成者:するめ 作成日時:11/17
#define turn_left OnFwd(OUT_A);OnRev(OUT_C);Wait(100);Off(OUT_A+OUT_C); // 左に90度曲がる #define turn_right OnFwd(OUT_C);OnRev(OUT_A);Wait(8);Off(OUT_A+OUT_C); //右に曲がる #define go_straight1 OnFwd(OUT_A+OUT_C); //前進する #define go_straight2 OnFwd(OUT_A+OUT_C);Wait(10);Off(OUT_A+OUT_C);//0.1秒間前進してとまる #define go_straight3 OnFwd(OUT_A+OUT_C);Wait(120);Off(OUT_A+OUT_C); //1.2秒間前進してとまる task main() { SetSensor(SENSOR_1, SENSOR_TOUCH); //センサー1をタッチセンサーに指定する SetSensor(SENSOR_3, SENSOR_TOUCH); //センサー3をタッチセンサーに指定する SetPower(OUT_A,6); //モーターAのパワーを下げる while (true) { if (SENSOR_1 == 0) //センサー1が触れていない時、右に方向修正する { turn_right; go_straight2; } else { //触れているとき前進する go_straight1; } if((SENSOR_1 == 1) && (SENSOR_3 == 1)) //センサー1とセンサー3が触れている時左に90度曲がり前進する { turn_left; go_straight3; } } }
回転する角度が電池の消費に影響されて大変だった。 センサーの誤作動などが時々あってセンサーの感度を下げると反応してくれ ないなどの問題も発生したが壁側のタイヤ(モーターA)のトルクを下げることで常に壁側によっているようにしてこの問題を解決しました。
このプログラムに関するコメントをどうぞ