[[2005/A2]]

**あーむ [#da71c8aa]

task main(){
 task main(){
  SetPower(OUT_C,4);
  OnRev(OUT_C);Wait(5);Off(OUT_C);	//C is neck
  OnRev(OUT_A);Wait(20);Off(OUT_A);	//A is finger

 
  while(true){
    ClearMessage();
    until(Message() != 0);
      if(Message() == 1){	//at box
        PlaySound(SOUND_UP);Wait(50);
        OnFwd(OUT_A);	//A_catch
        Wait(100);
        OnFwd(OUT_C);	//C_up
        Wait(100);
        
      PlaySound(SOUND_CLICK) ;Wait(10);
        SendMessage(1);
        Wait(100);
      }
      
      if(Message() == 2){	//at goal
      PlaySound(SOUND_UP) ;Wait(50);
        OnRev(OUT_C);	//C_down
        Wait(100);Off(OUT_C);
        
        OnRev(OUT_A);	//A_release
        Wait(100);Off(OUT_A);
        
        OnFwd(OUT_C);	//C_up
        Wait(100);Off(OUT_C);
        
        PlaySound(SOUND_CLICK) ;Wait(10);
        SendMessage(2);
        Wait(100);
      }
    }
}
 }

**トレースだけ [#w394f77a]

#define ikiti 44
task main(){
 #define ikiti 44
 task main(){
  SetSensor(SENSOR_1,SENSOR_LIGHT);
  SetSensor(SENSOR_2,SENSOR_LIGHT);
  Wait(50);
    
  SendMessage(1);Wait(100);
  ClearMessage();
  until (Message() != 0);			//do catch!
  if ( Message() == 1 ){			//gj!
    OnRev(OUT_A);OnFwd(OUT_C);
    until(SENSOR_1 < ikiti);
    OnFwd(OUT_A);
    until(SENSOR_2 < ikiti);
    until(SENSOR_2 > ikiti+5);
    until(SENSOR_1 < ikiti);
    
    while(SENSOR_1 > ikiti || SENSOR_2 > ikiti){	//trace start
      OnFwd(OUT_C);Off(OUT_A);
      until(SENSOR_2 < ikiti);
      Off(OUT_C);OnFwd(OUT_A);
      until(SENSOR_1 < ikiti);
    }
    PlaySound(SOUND_CLICK);Wait(50);


**火曜どうでしょう [#zd1f14f3]
 #define ikiti 44
 
 task main()
 {
    SetSensor(SENSOR_1,SENSOR_LIGHT);//SENSOR1 set
    SetSensor(SENSOR_2,SENSOR_LIGHT);//SENSOR2 set
    SetSensor(SENSOR_3,SENSOR_LIGHT);//SENSOR3 set
    Wait(50);
    
    
    
 //   ClearMessage(); 
 //   SendMessage(1);Wait(100);
 //   ClearMessage();
 //   until (Message() != 0);
 //   if (Message() == 1){
 //        OnFwd(OUT_C);OnRev(OUT_A);Wait(95);
 //        Off(OUT_A+OUT_C);
 //        ClearMessage();
 //        PlaySound(SOUND_CLICK);Wait(50);
 //        }
 //   
 //   repeat(2){
 //      if(SENSOR_2>45){
 //          OnFwd(OUT_A+OUT_C);
 //          }
 //      if(SENSOR_2<45){
 //          Off(OUT_A+OUT_C)
 //      Off(OUT_A+OUT_C);
    
    
    SendMessage(1);Wait(100);
    ClearMessage();
    until (Message() != 0);                        //do catch!
    if ( Message() == 1 ){                 //gj!
      OnRev(OUT_A+OUT_C);Wait(20);
      OnRev(OUT_A);OnFwd(OUT_C);
      until(SENSOR_1 < ikiti);
      OnFwd(OUT_A);
      until(SENSOR_2 < ikiti);
      until(SENSOR_2 > ikiti+5);
      until(SENSOR_1 < ikiti);
      }
    Off(OUT_A+OUT_C);Wait(100);
    
    
    OnFwd(OUT_C);OnRev(OUT_A);Wait(18);
    Off(OUT_A+OUT_C);
    
    
    while(SENSOR_1>45||SENSOR_2>45)
     {                    
         if(SENSOR_1< 43){
            Off(OUT_A+OUT_C);
            OnFwd(OUT_C);
            until(SENSOR_2<45);
            }
         
         
         if(SENSOR_2< 43){
            Off(OUT_A+OUT_C);
            OnFwd(OUT_A);
            until(SENSOR_1<45);
            }
            
         
         if((SENSOR_1>43) && (SENSOR_2>43)){   //SENSOR(1&2) Line in
            OnFwd(OUT_A+OUT_C);                 //Go a head
            }
      
      
     }
   
    
    
  //kagohe//
    
    
    
    if(SENSOR_3>50){
        Off(OUT_A+OUT_C);Wait(100);
        OnFwd(OUT_A+OUT_C);Wait(225);
        OnFwd(OUT_A);OnRev(OUT_C);Wait(95);
        Off(OUT_A+OUT_C);
        
        
        
        ClearMessage();
        SendMessage(2);
        until(Message()==2);
        
        
        if(Message()==2){
            OnFwd(OUT_A);OnRev(OUT_C);Wait(120);
            OnFwd(OUT_A+OUT_C);Wait(250);
            }
        }
    
    
    
    if(SENSOR_3<40){
        Off(OUT_A+OUT_C);Wait(100);
        OnFwd(OUT_A+OUT_C);Wait(400);
        OnFwd(OUT_A);OnRev(OUT_C);Wait(95);
        Off(OUT_A+OUT_C);
        
        
        ClearMessage();
        SendMessage(2);
        until(Message()==2);
        
        
        if(Message()==2){
            OnFwd(OUT_A);OnRev(OUT_C);Wait(120);
            OnFwd(OUT_A+OUT_C);Wait(375);
            }
        }
        
        
        
    else{    
        Off(OUT_A+OUT_C);Wait(100);
        OnFwd(OUT_A+OUT_C);Wait(75);
        OnFwd(OUT_A);OnRev(OUT_C);Wait(95);
        Off(OUT_A+OUT_C);
        
        
        ClearMessage();
        SendMessage(2);
        until(Message()==2);
        
        
        if(Message()==2){
            OnFwd(OUT_A);OnRev(OUT_C);Wait(120);
            OnFwd(OUT_A+OUT_C);Wait(100);
            }
        }
    
    
    
    //modottekitaze//
    
    
    
    
    
    while(SENSOR_1>45||SENSOR_2>45)
     {                    
         if(SENSOR_1< 43){
            Off(OUT_A+OUT_C);
            OnFwd(OUT_C);
            until(SENSOR_2<45);
            }
         
         
         if(SENSOR_2< 43){
            Off(OUT_A+OUT_C);
            OnFwd(OUT_A);
            until(SENSOR_1<45);
            }
            
          
         if((SENSOR_1>43) && (SENSOR_2>43)){   //SENSOR(1&2) Line in
            OnFwd(OUT_A+OUT_C);                 //Go a head
            }
      
      
     }
     
    Off(OUT_A+OUT_C);Wait(100); 
 
 }



**プログラムについて [#e0fbf862]
 「ロボが動かせる段階」になるまで時間がかかったため、
 ロボの性能を活かしきるプログラムは書ききれなかった。
 一番下のプログラムがコンテスト当日に書いた「ドライブベース用」
 一番上のプログラムが完成している「アーム用」
 
 ロボのサイズを「一応」考えたライントレースのプログラム。
  →怪しい動きだった。
 とりあえず箱1個を識別し戻ってくるまでは書けたと思っていたが......
 
 
 
 1回目  
 苦労したライントレースする線に乗るプログラムが機能せず、
 障害物の缶の上に箱を置こうとする。
 
 2回目
 箱1個をカゴに入れることに成功!
 その後、予定では箱を回収しに戻るはずが、腕を広げ「勝ち名乗り?」をあげ回転
 
 
 
 すいません、プログラムにオチを書いたつもりはないです。ハイ。

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