[[2006a/A1]]
*タッチセンサーを使ったプログラム [#mfef1a5e]

 task main()
 {
  SetSensor(SENSOR_1,SENSOR_TOUCH);
  OnFwd(OUT_A+OUT_C);
  
  while(true)
  {
   if(SENSOR_1==1)
   {
    OnRev(OUT_A+OUT_C);
    Wait(200);
    OnFwd(OUT_A);
    Wait(340);
    OnFwd(OUT_C);
    }
    }
    }

*最も明るい方向を向くロボットのプログラム [#i58bf271]

 
  int lightmax=0;
  int timemax=0;
  #define turntime 200
 task main()
  {
   SetSensor(SENSOR_1,SENSOR_LIGHT);
   ClearTimer(0);
   
   OnRev(OUT_C);OnFwd(OUT_A);
   
   while(FastTimer(0)<turntime)
   {
    if(SENSOR_1>lightmax)
    { lightmax=SENSOR_1;
      timemax=FastTimer(0); }
      }
       
       OnRev(OUT_A);OnFwd(OUT_C);
       Wait(turntime-timemax);
       Off(OUT_A+OUT_C);
       }

*カエルの歌? [#dfc6d5d2]

 #define Do  523
 #define Re  587
 #define Mi  659
 #define Fa  698
 #define Sol 784
 #define Ra    880

task play_music()   
{
    while (true)
    {
        PlayTone(Do,20); Wait(25);  
        PlayTone(Re,20); Wait(25);  
        PlayTone(Mi,20); Wait(25);  
        PlayTone(Fa,20); Wait(25);
        PlayTone(Mi,20); Wait(25);
        PlayTone(Re,20); Wait(25);
        PlayTone(Do,20); Wait(25);

        PlayTone(Mi,20); Wait(25);
        PlayTone(Fa,20); Wait(25);
        PlayTone(Sol,20); Wait(25);
        PlayTone(Ra,20); Wait(25);
        PlayTone(So,20); Wait(25);
        PlayTone(Fa,20); Wait(25);
        PlayTone(Mi,20); Wait(25);
        
        PlayTone(Do,30); Wait(35);
        PlayTone(Do,30); Wait(35);
        PlayTone(Do,30); Wait(35);
        PlayTone(Do,30); Wait(35);
        
        PlayTone(Do,5); Wait(10);
        PlayTone(Do,5); Wait(10);

        PlayTone(Re,5); Wait(10);
        PlayTone(Re,5); Wait(10);
        
        PlayTone(Mi,5); Wait(10);
        PlayTone(Mi,5); Wait(10);
        
        PlayTone(Fa, 5); Wait(10);
        PlayTone(Fa, 5); Wait(10);
        
        PlayTone(Mi,10); Wait(15);
        PlayTone(Re,10); Wait(15);
        PlayTone(Do,10); Wait(15);
        
        Wait(20);
    }
}


*光を追う [#r31f2bfb]

 #define left(t) OnRev(OUT_A);OnFwd(OUT_C);Wait(t);Off(OUT_A+OUT_C);
 #define front(j) OnFwd(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
 #define back(j) OnRev(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
 #define right(j) OnRev(OUT_C);OnFwd(OUT_A);Wait(j);Off(OUT_A+OUT_C);
 #define turntime 200
 int lightmax=0;
 int timemax=0;
 task main()
 {   while(true)
    {
     SetSensor(SENSOR_1,SENSOR_LIGHT);
     ClearTimer(0);
     
    OnRev(OUT_C);OnFwd(OUT_A);
     
     while(FastTimer(0) < turntime)
     {
         if(SENSOR_1 > lightmax)
         {lightmax=SENSOR_1;
          timemax=FastTimer(0);}
     }
     
     left(200 - timemax);
     
     front(100);
     }
 }


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