[[2004/A4]]

* 目次 [#y1555203]

#contents

ここでは4班が作成したプログラムを紹介しときます。
~正確な測定とかはまったくしないで本能の赴くままに作ったので、ロボットなのに野性の感で動いてます。(&color(#ff0000){おい!};
~ちなみに一度説明している命令は説明の必要がない限り、説明されていないはずなので自分で解読して下さいm(_ _)m
* ハートを描くロボット(必須) [#te935b8a]
これはホームページに載せるために手直ししたのでちゃんと綺麗に描いてくれますよ。
~始めはダメダメだったな~

 task main()
 {
     OnRev(OUT_A + OUT_C);//右下側の辺
     Wait(100);
     Off(OUT_A+OUT_C);//停止
     Wait(100);
 
     SetPower(OUT_C,7);Cに接続されているモーターのパワーを7にする。
     OnRev(OUT_C); //右上側のカーブ
     Wait(400);
     Off(OUT_A+OUT_C);
     Wait(100);
 
     SetPower(OUT_A,7);SetPower(OUT_C,1);
     OnFwd(OUT_A); //左上側のカーブ
     Wait(400);
     Off(OUT_A+OUT_C);
     Wait(100);
 
     SetPower(OUT_A,1); SetPower(OUT_C,1);
     OnFwd(OUT_A + OUT_C); //左下側の辺
     Wait(100);
     Off(OUT_A+OUT_C);
 }

* 台から落ちないロボット(必須) [#c9a7d7fb]
 これは比較的簡単に作れちゃいましたよ?どれくらい簡単かって言うとカップラーメン作るのと同じくらい簡単!!
 task main ()
 {
     SetSensor(SENSOR_1, SENSOR_LIGHT);//1に光センサーを認識させる
     SetSensor(SENSOR_3, SENSOR_LIGHT);//2に光センサーを認識させる
     repeat(10){                                         //以下の命令を10回繰り返す。(値を変えればそれだけ繰り返す)
     OnFwd(OUT_A+OUT_C);
     until (SENSOR_1 < 40)||(SENSOR_3 < 40);       //センサーの値が40未満
                                                                           //(適当に調節)になるまで
                                                                           // 次の命令を実行しない
     OnRev(OUT_A+OUT_C);
     Wait(50);
     OnFwd(OUT_A);OnRev(OUT_C);
     Wait(94);}
     Off(OUT_A+OUT_C);
    
 }

* ラインをトレースするロボット(必須) [#e3f49e3e]
これはラインを挟み込むタイプです。こっちの方が細い道や複雑なところも行けるオスス品です。
 task main ()
 {
    SetSensor(SENSOR_1,SENSOR_LIGHT); 
    SetSensor(SENSOR_3,SENSOR_LIGHT); 
    SetPower(OUT_A,1);SetPower(OUT_C,1);
 
    OnFwd(OUT_A+OUT_C);
    while(true){
             if(SENSOR_1<45) { 
             OnFwd(OUT_C); OnRev(OUT_A);
             until(SENSOR_1>45);
             OnFwd(OUT_C+OUT_A);}
 
             if(SENSOR_3<45) {
             OnFwd(OUT_A); OnRev(OUT_C);
             until(SENSOR_3>45);
             OnFwd(OUT_C+OUT_A);}
 
             }
 }

 task main ()
 {
    SetSensor(SENSOR_1,SENSOR_LIGHT); 
    SetSensor(SENSOR_3,SENSOR_LIGHT); 
    SetPower(OUT_A,7);SetPower(OUT_C,7);
 
    OnFwd(OUT_A+OUT_C);
    while(true){
             if(SENSOR_1>45) { 
             OnFwd(OUT_A); OnRev(OUT_C);
             until(SENSOR_1<45);
             OnFwd(OUT_C+OUT_A);}
  
             if(SENSOR_3>45) {
             OnFwd(OUT_C); OnRev(OUT_A);
             until(SENSOR_3<45);
             OnFwd(OUT_C+OUT_A);}
 
             }
 }

* 光を追いかけるロボット(必須) [#h3efe532]
 task main ()
 {
     #define RUNTIME 3000
     SetPower(OUT_A,1);SetPower(OUT_C,1);
     SetSensor(SENSOR_1, SENSOR_LIGHT);
 
     while(RUNTIME) {
              if(SENSOR_1>40){
                   OnFwd(OUT_A+OUT_C);
             }
 
              else{
                   OnFwd(OUT_A);OnRev(OUT_C);
             }
  
     }
     Off(OUT_A+OUT_C);
 }

* 演奏するロボット(必須) [#v018acde]
 #define Do 523
 #define Re 587
 #define Mi 659
 #define Fa 698
 #define So 784
 #define Ra 880
 #define Si 933
 #define Doh 1047
 
 task play_music()
 {
     while (true){
              PlayTone(Do,35);Wait(45);
              PlayTone(Re,20);Wait(25);
              PlayTone(Mi,40);Wait(45);
              PlayTone(Do,20);Wait(25);
              PlayTone(Mi,30);Wait(35);
              PlayTone(Do,30);Wait(35);
              PlayTone(Mi,35);Wait(45);
  
              Wait(20);
  
              PlayTone(Re,35);Wait(45);
              PlayTone(Mi,25);Wait(25);
              PlayTone(Fa,20);Wait(25);
              PlayTone(Fa,20);Wait(25);
              PlayTone(Mi,20);Wait(30);
              PlayTone(Re,20);Wait(30);
              PlayTone(Fa,45);Wait(50);
  
              Wait(20);
  
              PlayTone(Mi,35);Wait(45);
              PlayTone(Fa,20);Wait(25);
              PlayTone(So,40);Wait(45);
              PlayTone(Mi,20);Wait(25);
              PlayTone(So,30);Wait(35);
              PlayTone(Mi,30);Wait(35);
              PlayTone(So,35);Wait(45);
  
              Wait(20);
  
              PlayTone(Fa,35);Wait(45);
              PlayTone(So,25);Wait(25);
              PlayTone(Ra,20);Wait(25);
              PlayTone(Ra,20);Wait(25);
              PlayTone(So,20);Wait(30);
              PlayTone(Fa,20);Wait(30);
              PlayTone(Ra,45);Wait(50);
  
              Wait(20);
  
     }
 }
 
 task main()
 {
     start play_music;
     Wait(2000);
     stop play_music;
 }

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