目次
#contents

*最初 [#gf3144f3]

 作成日:11月18日
 作成者:Dezz 
 
 #define turn_TIME 104                   // 曲がる時間(変更                                                    
                                          // 可)
 
 sub turn_left()                          // 左に曲がる
 {
   SetPower(OUT_A,7);
   SetPower(OUT_C,7);
   OnRev(OUT_A);OnFwd(OUT_C);      
   Wait(turn_TIME);Off(OUT_A+OUT_C);Wait(50);
 }
 
 
 task main()
 { 
  SetSensor(SENSOR_1,SENSOR_TOUCH);      // 端子1タッチセンサ
  SetSensor(SENSOR_3,SENSOR_TOUCH);      // 端子3タッチセンサ 
   
   while(true)
   {
     if ( SENSOR_1 == 1 )                
      {
       SetPower(OUT_A,7);
       SetPower(OUT_C,7);
       OnRev(OUT_A+OUT_C);               // 1が押されると後退
       Wait(20);                         // 後退時間
       turn_left();                      // 左ターン
      }
     
     if ( SENSOR_3 == 1 )                // 3が押されると
      {
       SetPower(OUT_A,0);
       SetPower(OUT_C,7);
       OnFwd(OUT_A+OUT_C);               // 曲進
       Wait (20) ;                       // 曲進時間
      }
     
     else                                //1,3離れると
      {
       SetPower(OUT_A,7);
       SetPower(OUT_C,7);
       OnFwd(OUT_A+OUT_C);Wait(10)       //少し前進
       OnFwd(OUT_A);OnRev(OUT_C);        //左にターン
       OnFwd(OUT_A+OUT_C);Wait(10)       //少し前進
       Wait (30) ;                       //3が押されるまで
      }
   }                                     //繰り返し...
 }


*改良版 [#w7d12253]
  #define turn_TIME 104              
 
 sub turn_left()                      
 {
   OnRev(OUT_A);OnFwd(OUT_C);      
   Wait(turn_TIME);Off(OUT_A+OUT_C);Wait(50);
 }
 
 
 task main()
 { 
  SetSensor(SENSOR_1,SENSOR_TOUCH);     
  SetSensor(SENSOR_3,SENSOR_TOUCH);    
   
   while(true)
   {
     if (( SENSOR_1 == 0)&&( SENSOR_3 == 1 ))
      {
       OnFwd(OUT_A+OUT_C);
      }                    
     
     if ( SENSOR_1 == 1 )               
      {
       OnRev(OUT_A+OUT_C);               
       Wait (50) ;  
      }                    
     
     if (( SENSOR_3 == 0 ) &&  ( SENSOR_1 == 0 ))                   
      {      
       OnFwd(OUT_A);                  
      }
   }                                     
 }

*改良版2 [#o42fd717]
 #define turn_TIME 104              
 
 sub turn_left()                      
 {
  OnRev(OUT_A);OnFwd(OUT_C);      
  Wait(turn_TIME);Off(OUT_A+OUT_C);Wait(50);
 }
 
 task main()
 { 
 SetSensor(SENSOR_1,SENSOR_TOUCH);     
 SetSensor(SENSOR_3,SENSOR_TOUCH);    
  
  while(true)
  {
    if (( SENSOR_1 == 0)&&( SENSOR_3 == 1 ))
     {
      Off (OUT_A+OUT_C);
      OnFwd(OUT_C);Wait(10);Off (OUT_A+OUT_C); 
      OnFwd(OUT_C+OUT_A);
     }                    
    
    if ( SENSOR_1 == 1 )               
     {
      Off (OUT_A+OUT_C); 
      OnRev(OUT_A+OUT_C);               
      Wait (30) ;turn_left();
      OnFwd(OUT_A);Wait(20);OnFwd(OUT_C+OUT_A);
      until(SENSOR_3 == 1);
     }                    
    
    if (( SENSOR_3 == 0 ) &&  ( SENSOR_1 == 0 ))                   
     {
      Off (OUT_A+OUT_C);    
      OnFwd(OUT_A);                
     }
   }                                     
 }

[[戻る>2005/B5/dezz01]]

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