[[2005/C1/池尻]] *課題3:黒い線に沿って動くロボット [#e185a731] **モータ1個、光センサー1個 [#l01ed61d] #define T 40 task main() { SetSensor(SENSOR_2, SENSOR_LIGHT); while(true) { if (SENSOR_2 > T) { //センサーが線の上にないとき OnFwd(OUT_B); } if (SENSOR_2 < T)) { //センサーが線の上にあるとき OnRev(OUT_B); } } } **○感想[#md163209] モータを1個しか使用できへんかったから、マシンが左右に動く様に作るのが大変やった。出来たやつも先生がヒントとして載せた写真と似とったから何とも言えん。 **モータ2個、光センサー1個 [#m82a3459] #define T 40 task main () { SetSensor(SENSOR_2,SENSOR_LIGHT); while (true) { if (SENSOR_2 < T) { //センサーが線の上にある条件 OnFwd(OUT_A); Off(OUT_C); } else { //それ以外の条件 Off(OUT_A); OnFwd(OUT_C); } } } **○感想[#md163209] すぐにマシンが出来てプログラムもすぐに出来た。黒い線の上をなんなく走った。モータ1個の時と違って、えらい簡単やった。 ** 試作:モーター2個、光センサー2個使用(前後に設置)[#c21859cb] #define T 40 task main () { SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_LIGHT); while (true) { if ((SENSOR_1 < T) &&(SENSOR_3 < T)){ //前後のセンサーが線の上にある条件 OnFwd(OUT_A); OnFwd(OUT_C); } if (SENSOR_1 < T){ //前のセンサーのみ線の上にある条件 OnFwd(OUT_A); Off(OUT_C); } if (SENSER_1 < T){ //後のセンサーのみ線の上にある条件 Off(OUT_A); OnFwd(OUT_C); } } } **○感想 [#j4626aac] うまくライントレースせえへんかった。両方のセンサーが線から離れへんと曲がれへんようにしたため、車体の長さの分、線からはみ出すまで進んだ。結果、ズルをやったり、線から離れるロボットになった。まあええや。 **モーター2個、光センサー2個使用(両方前に線を挟むように設置)[#ace261c4] #define T 40 task main() { SetSensor(SENSOR_1, SENSOR_LIGHT); SetSensor(SENSOR_3, SENSOR_LIGHT); while(true) { if ((SENSOR_1 > T)&&(SENSOR_3 > T)){ //センサーが両方線の上にないとき OnFwd(OUT_A+OUT_C); Off(OUT_A+OUT_C); } if (SENSOR_1 < T) { //センサー1が線の上にあるとき OnFwd(OUT_A); Off(OUT_A); } else { //センサー3が線の上にあるとき OnFwd(OUT_C); Off(OUT_C); } } } **○感想 [#da4f4f6b] 「ほんまこれ完璧ちゃうん」てゆうくらい上手くいった。もう満点やー。