[[2008a/A3]]~ 08T2100A 08A1010A 
#contents
*黒い線に沿って動くロボット [#ka7d8a69]
**プログラム [#fca55faa]
***音 [#s5ad8584]
とおりゃんせ
 #define la 440
 #define Si 494
 #define Do  523
 #define Re  587
 #define Mi  659
 #define Fa  698
 #define Sol 784
 #define La 880
 
 
  
 task play_music()                               // 音楽を演奏するタスク
 {
 while(true)
     {  PlayTone(Mi,100); Wait(100);               //ミ 
        PlayTone(Mi,50); Wait(50);               //ミ 
        PlayTone(Re,50); Wait(50);               //レ
        PlayTone(Mi,50); Wait(50);               //ミ 
        PlayTone(Mi,25); Wait(25);               //ミ 
        PlayTone(Re,25); Wait(25);               //レ
        PlayTone(Si,100); Wait(100);               //シ
    
        PlayTone(Fa,50); Wait(50);               //ファ
        PlayTone(Fa,25); Wait(25);               //ファ
        PlayTone(Fa,25); Wait(25);               //ファ
        PlayTone(La,50); Wait(50);               //ラ
        PlayTone(Fa,25); Wait(25);               //ファ
        PlayTone(Mi,25); Wait(25);               //ミ 
        PlayTone(Fa,25); Wait(25);               //ファ
        PlayTone(Mi,25); Wait(25);               //ミ 
        PlayTone(Re,25); Wait(25);               //レ
        PlayTone(Re,25); Wait(25);               //レ
        PlayTone(Mi,100); Wait(100);               //ミ 
      
        PlayTone(Fa,50); Wait(50);               //ファ
        PlayTone(Fa,25); Wait(25);               //ファ
        PlayTone(Fa,25); Wait(25);               //ファ
        PlayTone(La,50); Wait(50);               //ラ
        PlayTone(Fa,25); Wait(25);               //ファ
        PlayTone(Mi,25); Wait(25);               //ミ 
        PlayTone(Fa,25); Wait(25);               //ファ
        PlayTone(Mi,25); Wait(25);               //ミ 
        PlayTone(Re,25); Wait(25);               //レ
        PlayTone(Re,25); Wait(25);               //レ
        PlayTone(Mi,100); Wait(100);               //ミ 
      
        PlayTone(Do,75); Wait(75);               //ド
        PlayTone(Do,25); Wait(25);               //ド
        PlayTone(Mi,50); Wait(50);               //ミ 
        PlayTone(Do,25); Wait(25);               //ド
        PlayTone(Si,25); Wait(25);               //シ
        PlayTone(Do,25); Wait(25);               //ド
        PlayTone(Si,25); Wait(25);               //シ
        PlayTone(la,25); Wait(25);               //ラ
        PlayTone(la,25); Wait(25);               //ラ
        PlayTone(Si,100); Wait(100);               //シ
     } 
 } 
***メイン [#j1bf46cf]
 #define THRESHOLD 42 //光センサーの閾値 
 #define  RUN_TIME  1600 //走行時間

       task main()
 {
     start play_music ;    // 演奏を開始
 }


 task line_trace() { //ライントレース開始

  SetSensor(SENSOR_1,SENSOR_LIGHT); //光センサー1
  SetSensor(SENSOR_3,SENSOR_LIGHT); //光センサー3
  SetSensor(SENSOR_2,SENSOR_TOUCH); // タッチセンサー
  SetPower(OUT_A+OUT_C,7); //移動スピード
  ClearTimer(0);  //タイマーon


  while (Timer(0)<= RUN_TIME){  //タッチセンサーが作動したら止まる。
    if (SENSOR_2 ==1 ){                                         
      Off(OUT_A+OUT_C);
      Wait(150);}
      
      else{
           if ((SENSOR_1> THRESHOLD) &&(SENSOR_3> THRESHOLD)){ //光センサーが閾値以上で前進
            OnFwd(OUT_A); 
            OnFwd(OUT_C);} 
      else{
           if (SENSOR_1> THRESHOLD){ //光センサー1が閾値以上で右に旋回
             OnFwd(OUT_A);
             Off(OUT_C);}
      else{ 
           if (SENSOR_3> THRESHOLD){ //光センサー3が閾値以上で左に旋回
             Off(OUT_A);
             OnFwd(OUT_C);} 
      else{
           if ((SENSOR_1< THRESHOLD ) &&(SENSOR_3< THRESHOLD)){ //光センサーが閾値以下で一時停止
           Off(OUT_A+OUT_C);
           Wait(80);
           OnFwd(OUT_A+OUT_C);  
           Wait(150);}
                            }
                   }
            }
       }
    }
    Off(OUT_A+OUT_C); //コースを3周した後に完全停止
     Wait(150);}
**プログラム全体の流れ [#p99ae854]
基本的には、黒いラインをトレースして、コースから外れた場合元のコースに戻る。
***コース [#j7a22ba0]
#ref(2008a/A3/課題2右/couse.jpg,100%,)      
**ロボットの種々の機能 [#vab30fef]
#ref(2008a/A3/課題2右/front.jpg,100%,)
1左光センサー 1由来~
2右光センサー 3由来~
3左センサー 2由来~
4右センサー 2由来~
#ref(2008a/A3/課題2右/back2.jpg,100%,)
1右タイヤ C由来~
2左タイヤ A由来~
**使ったセンサーの働き [#rbe5d055]
光センサー:黒いラインをトレースする。
タッチセンサー:もう一方のチームのマシンにあたったら止まる。
**困った点 [#ee78bdfe]
うまくタイマーが使えずに、マシンが止まらなかったこと。
**工夫した点 [#j7249b59]
センサーが誤作動を起こさないように、できるだけコースの紙に光センサーを近づけた。
光センサーとタッチセンサーをマシンの前につけると不安定だったので、部品をくつけて安定させた。
**コメントをお願いします [#pd04b238]
#comment
全体的にもう少し詳しく書いてください。例えば、ライントレースの原理を説明したり、工夫した点です。そうすれば、○になります。 F.I.
---------------

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS