2006a/A1

タッチセンサーを使ったプログラム

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);
   }
   }
   }

最も明るい方向を向くロボットのプログラム

 

 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);
      }

カエルの歌?

 #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);
   }

}

光を追う

#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
Last-modified: 2006-07-07 (金) 14:14:21