[[2007a/MemberOnly/進行状況A]] *ライン・トレース・ロボット [#z3a0f3c5] 黒い線に沿って走るロボットを作成した。A4Rの班と、一つのコースで二つのロボットが走るコースを作った。 *ロボット紹介 [#k75fc585] タッチセンサーの下に光センサーを取り付けたロボット。 #ref(2007a/A4/課題2左/TS3C0001.JPG) *苦労した点 [#u66b42a9] タッチセンサーと光センサーを同じ場所に取り付けるのに苦労した。光センサーが地面に近すぎると、うまく明るさを認識できずに走らなかったり、遠すぎるとずっと走り続けたりした。最終的にはちょうど良い位置(地面から5センチくらい)を見つけることができた。 *プログラム [#c3f2ae2f] #define THRESHOLD 40 #define Do 523 #define Re 587 #define Mi 659 #define Fa 698 #define Sol 784 task play_music() // 走行時に鳴る音楽のプログラム { while(true) { PlayTone(Mi,25); Wait(15); PlayTone(Re, 5); Wait(5); PlayTone(Do,15); Wait(10); PlayTone(Re,15); Wait(10); PlayTone(Mi,15); Wait(10); PlayTone(Mi,15); Wait(10); PlayTone(Mi,35); Wait(20); PlayTone(Re,15); Wait(10); PlayTone(Re,15); Wait(10); PlayTone(Re,35); Wait(20); PlayTone(Mi,15); Wait(10); PlayTone(Sol,15); Wait(10); PlayTone(Sol,35); Wait(20); PlayTone(Mi,25); Wait(15); PlayTone(Re, 5); Wait(5); PlayTone(Do,15); Wait(10); PlayTone(Re,15); Wait(10); PlayTone(Mi,15); Wait(10); PlayTone(Mi,15); Wait(10); PlayTone(Mi,35); Wait(20); PlayTone(Re,15); Wait(10); PlayTone(Re,15); Wait(10); PlayTone(Mi,25); Wait(15); PlayTone(Re, 5); Wait(5); PlayTone(Do,55); Wait(30); } } task main () { SetSensor(SENSOR_1,SENSOR_LIGHT); // センサー1は光センサーである SetSensor(SENSOR_3,SENSOR_TOUCH); // センサー3はタッチセンサーである while(true) { start play_music; // 音楽スタート if(SENSOR_1<THRESHOLD) { // センサー1が40以上なら OnFwd(OUT_A); Off(OUT_C); } else // それ以外 { Off(OUT_A); OnFwd(OUT_C); } until (SENSOR_3==1); // センサー3が反応したとき Off(OUT_A+OUT_B);Wait(270); stop play_music; // 音楽停止 } } *感想 [#c0c44a14] 黒い線が光に反射してしまい、練習ではうまくセンサーが線を認識できずに大変だった。 音楽の鳴らすタイミングのプログラムがなかなか上手くできなくrて少し苦労した。