#contents *ロボット紹介 [#fb4915c5] #ref(2007a/A1/課題2右/20070619192912.jpg,100%,ロボット) 今回の課題の黒い線の上を走るロボットですが、黒い線の上を走るときにスピードがありすぎると すぐにコースを脱線してしまったため、「スピードをどう抑えたロボを作れるか」ということを 念頭にロボの設計を考えました。その結果、スピードを遅くするにはタイヤを使うとスピードが出るので、 それならいっそのことタイヤをなくしてしまえばいいという結論に至りました。そこで考えついたのが、 タイヤの代わりにキャタピラを使えばどうかということです。 *コース紹介 [#u012c38b] #ref(2007a/A1/課題2右/20070620185349.jpg,100%,こーす)*プログラム [#pe5cc1d3] ミッキーマウスをイメージしてコースをつくりました。 そのため十字路で交差するところが曲がりながら突入することになり、微調整が大変でした。 **プログラム [#lfa863bd] #define THRESHOLD 40 //閾値 #define RUN_TIME 600 //トレースする時間 task main() { //センサーを定義 SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_2,SENSOR_TOUCH); SetSensor(SENSOR_3,SENSOR_LIGHT); ClearTimer(0); while( Timer(0) <= RUN_TIME ){ //黒線上ではないとき直線 if(SENSOR_1 >= THRESHOLD && SENSOR_3 >= THRESHOLD){ OnFwd(OUT_A+OUT_C); } //黒線上のとき左方向へ移動(線上へ行くため) else if(SENSOR_1 < THRESHOLD && SENSOR_3 < THRESHOLD){ OnFwd(OUT_C); Off(OUT_A); Wait(240); } //右側が黒い線に入ると、右に曲がる。 else if(SENSOR_3 < THRESHOLD){ OnFwd(OUT_A); OnRev(OUT_C); Wait(4); } //左側が黒い線に入ると、左に曲がる。 else{ OnFwd(OUT_C); OnRev(OUT_A); Wait(4); } //ぶつかったときにタッチセンサーにより半回転 if(SENSOR_2 == 1){ OnRev(OUT_A+OUT_C); Wait(50); OnFwd(OUT_A); OnRev(OUT_C); Wait(84); until(SENSOR_1 <= THRESHOLD); } } Off(OUT_A+OUT_C); //END } **マリオの曲 [#p20ef682] #define E 330 #define So 392 #define SSo 415 #define Ra 440 #define RRa 466 #define Shi 494 #define Do 523 #define Re 587 #define RRe 622 #define Mi 659 #define Fa 698 #define FFa 740 #define Sol 784 #define r 880 #define C 1047 task play_music() { while (true) { PlayTone(Mi,10); Wait(15); PlayTone(Mi, 15); Wait(30); PlayTone(Mi,10); Wait(30); PlayTone(Do,10); Wait(15); PlayTone(Mi,20); Wait(30); PlayTone(Sol,20); Wait(60); PlayTone(So,20); Wait(60); PlayTone(Do,15); Wait(45); PlayTone(So, 15); Wait(45); PlayTone(E,15); Wait(45); PlayTone(Ra,25); Wait(30); PlayTone(Shi,25); Wait(30); PlayTone(RRa,10); Wait(15); PlayTone(Ra,20); Wait(30); PlayTone(So,15); Wait(20); PlayTone(Mi,15); Wait(20); PlayTone(Sol,15); Wait(20); PlayTone(r, 15); Wait(30); PlayTone(Fa,10); Wait(15); PlayTone(Sol,25);Wait(30); PlayTone(Mi,25); Wait(30); PlayTone(Do, 10); Wait(15); PlayTone(Re,10); Wait(15); PlayTone(Shi,15); Wait(45); PlayTone(Do,15); Wait(45); PlayTone(So, 15); Wait(45); PlayTone(E,15); Wait(45); PlayTone(Ra,25); Wait(30); PlayTone(Shi,25); Wait(30); PlayTone(RRa,10); Wait(15); PlayTone(Ra,20); Wait(30); PlayTone(So,15); Wait(20); PlayTone(Mi,15); Wait(20); PlayTone(Sol,15); Wait(20); PlayTone(r, 15); Wait(30); PlayTone(Fa,10); Wait(15); PlayTone(Sol,25);Wait(30); PlayTone(Mi,25); Wait(30); PlayTone(Do, 10); Wait(15); PlayTone(Re,10); Wait(15); PlayTone(Shi,15); Wait(75); PlayTone(Sol,10); Wait(15); PlayTone(FFa,10); Wait(15); PlayTone(Fa,10); Wait(15); PlayTone(RRe,15); Wait(30); PlayTone(Mi, 15); Wait(30); PlayTone(SSo,10); Wait(15); PlayTone(Ra,10); Wait(15); PlayTone(Do,15); Wait(30); PlayTone(Ra,10); Wait(15); PlayTone(Do,10); Wait(15); PlayTone(Re,10); Wait(45); PlayTone(Sol,15); Wait(15); PlayTone(FFa,15); Wait(15); PlayTone(Fa, 5); Wait(15); PlayTone(RRe,10); Wait(30); PlayTone(Mi,5);Wait(30); PlayTone(C,15); Wait(30); PlayTone(C,8); Wait(15); PlayTone(C,15); Wait(90); PlayTone(Sol,10); Wait(15); PlayTone(FFa,10); Wait(15); PlayTone(Fa,10); Wait(15); PlayTone(RRe,15); Wait(30); PlayTone(Mi, 15); Wait(30); PlayTone(SSo,10); Wait(15); PlayTone(Ra,10); Wait(15); PlayTone(Do,15); Wait(30); PlayTone(Ra,10); Wait(15); PlayTone(Do,10); Wait(15); PlayTone(Re,10); Wait(45); PlayTone(RRe,10); Wait(45); PlayTone(Re,10); Wait(45); PlayTone(Do,20); Wait(120); PlayTone(Sol,10); Wait(15); PlayTone(FFa,10); Wait(15); PlayTone(Fa,10); Wait(15); PlayTone(RRe,15); Wait(30); PlayTone(Mi, 15); Wait(30); PlayTone(SSo,10); Wait(15); PlayTone(Ra,10); Wait(15); PlayTone(Do,15); Wait(30); PlayTone(Ra,10); Wait(15); PlayTone(Do,10); Wait(15); PlayTone(Re,10); Wait(45); PlayTone(Sol,15); Wait(15); PlayTone(FFa,15); Wait(15); PlayTone(Fa, 5); Wait(15); PlayTone(RRe,10); Wait(30); PlayTone(Mi,5);Wait(30); PlayTone(C,15); Wait(30); PlayTone(C,8); Wait(15); PlayTone(C,15); Wait(90); PlayTone(Sol,10); Wait(15); PlayTone(FFa,10); Wait(15); PlayTone(Fa,10); Wait(15); PlayTone(RRe,15); Wait(30); PlayTone(Mi, 15); Wait(30); PlayTone(SSo,10); Wait(15); PlayTone(Ra,10); Wait(15); PlayTone(Do,15); Wait(30); PlayTone(Ra,10); Wait(15); PlayTone(Do,10); Wait(15); PlayTone(Re,10); Wait(45); PlayTone(RRe,10); Wait(45); PlayTone(Re,10); Wait(45); PlayTone(Do,20); Wait(120); PlayTone(Do,10); Wait(15); PlayTone(Do,15); Wait(30); PlayTone(Do, 15); Wait(30); PlayTone(Do,10); Wait(15); PlayTone(Re,25); Wait(30); PlayTone(Mi,10); Wait(15); PlayTone(Do,15); Wait(30); PlayTone(Ra,10); Wait(15); PlayTone(So,15); Wait(60); PlayTone(Do,10); Wait(15); PlayTone(Do,15); PlayTone(Do, 15); Wait(30); PlayTone(Do,10); Wait(15); PlayTone(Re,10);Wait(15); PlayTone(Mi,25); Wait(135); PlayTone(Do,10); Wait(15); PlayTone(Do,15); Wait(30); PlayTone(Do, 15); Wait(30); PlayTone(Do,10); Wait(15); PlayTone(Re,25); Wait(30); PlayTone(Mi,10); Wait(15); PlayTone(Do,15); Wait(30); PlayTone(Ra,10); Wait(15); PlayTone(So,15); Wait(60); }} task main() { SetSensor(SENSOR_1, SENSOR_TOUCH); start play_music ; OnFwd(OUT_A+OUT_B); until (SENSOR_1 == 1); stop play_music ; Off(OUT_A+OUT_B); } *苦労した点 [#ba6ef3b2] *がんばった点 [#l62f2a9d] *まとめ [#s43a627e] #comment