#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

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS