mech / Mbed 2 deprecated Line_Trace_Pro_NEW11

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
isshikiyuya
Date:
Thu Jan 10 03:17:28 2019 +0000
Parent:
4:282471928d78
Commit message:
aa

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Thu Dec 20 04:11:51 2018 +0000
+++ b/main.cpp	Thu Jan 10 03:17:28 2019 +0000
@@ -35,9 +35,9 @@
     flipper.attach(&flip3,0.05);//0.1秒ごとに回転数cを更新
     
     while(1) {
-        if(  led_count1 + led_count2 > 43*2*12){ //200mm毎にLEDを点滅
+        if(  led_count1 + led_count2 > 1000){ //200mm毎にLEDを点滅
         LED = 1.0f;
-        wait(0.05f);
+        wait(0.01f);
         LED = 0;
         led_count1 = 0;
         led_count2 = 0;
@@ -65,7 +65,8 @@
 /////////////////
         n = judge1 + judge2*2 + judge3*4;
         distance = (distance1 + distance2) / 2;
-        if(distance < 43*12*10 ){
+        
+        if(distance < 43*12*10 ){//直線
             
             switch(n){
               case(2)://白黒白ゆっくり進む
@@ -74,9 +75,9 @@
               dif2 = g - c2;
               gain1 = 0.0006f;
               gain2 = 0.0006f;
-              pwm11.write(0.80f + dif1*gain1);
+              pwm11.write(0.70f + dif1*gain1);
               pwm12.write(0.30f);
-              pwm21.write(0.80f + dif2*gain2);
+              pwm21.write(0.70f + dif2*gain2);
               pwm22.write(0.30f);
               break;
               
@@ -153,9 +154,9 @@
               gain1 = 0.0002f;
               gain2 = 0.0002f;
               
-              pwm11.write(0.80f + dif1*gain1);
+              pwm11.write(0.70f + dif1*gain1);
               pwm12.write(0.30f);
-              pwm21.write(0.80f + dif2*gain2);
+              pwm21.write(0.70f + dif2*gain2);
               pwm22.write(0.30f);
               break;
                
@@ -169,7 +170,7 @@
         }
     }
         
-        else if(43*12*10< distance && distance< 43*12*13 ){
+     /*   else if(43*12*10< distance && distance< 43*12*13 ){
             
             switch(n){
               case(2)://白黒白ゆっくり進む
@@ -272,18 +273,121 @@
               
         }
     }
-    
-    else if(43*12*13 < distance && distance < 43*12*18){
+    */
+    else if(43*12*10 < distance && distance < 43*12*18){
             switch(n){
               case(2)://白黒白ゆっくり進む
               g = 500.0f;
               dif1 = g - c1;
               dif2 = g - c2;
+              gain1 = 0.0013f;
+              gain2 = 0.0013f;
+              pwm11.write(0.45f + dif1*gain1);
+              pwm12.write(0.30f);
+              pwm21.write(0.45f + dif2*gain2);
+              pwm22.write(0.30f);
+              break;
+              
+              case(0)://白白白バック
+              g = 500.0f;
+              dif1 = g - c1;
+              dif2 = g - c2;
+              gain1 = 0.002f;
+              gain2 = 0.002f;
+              
+              pwm11.write(0.10f);
+              pwm12.write(0.30f +dif1*gain1);
+              pwm21.write(0.10f);
+              pwm22.write(0.30f +dif2*gain2);
+              break;
+              
+              
+            
+              case(1)://黒白白左回転かなり強
+              g = 500.0f;
+              dif1 = g - c1;
+              dif2 = g - c2;
+              gain1 = 0.001f;
+              gain2 = 0.001f;
+              
+              pwm11.write(0.20f + dif1*gain1);
+              pwm12.write(0.20f);
+              pwm21.write(0.55f + dif2*gain2);
+              pwm22.write(0.20f);
+              break;
+            
+              case(4)://白白黒右回転かなり強
+              g = 500.0f;
+              dif1 = g - c1;
+              dif2 = g - c2;
               gain1 = 0.001f;
               gain2 = 0.001f;
-              pwm11.write(0.40f + dif1*gain1);
+              
+              pwm11.write(0.55f + dif1*gain1);
+              pwm12.write(0.20f);
+              pwm21.write(0.20f);
+              pwm22.write(0.20f + dif2*gain2);
+              break;
+              
+              case(3)://黒黒白左回転強
+              g = 500.0f;
+              dif1 = g - c1;
+              dif2 = g - c2;         
+              gain1 = 0.001f;
+              gain2 = 0.001f;
+                  
+              pwm11.write(0.20f);
+              pwm12.write(0.20f);
+              pwm21.write(0.55f + dif2*gain2);
+              pwm22.write(0.20f);
+              break;
+              
+              case(6)://白黒黒右回転強
+              g = 500.0f;
+              dif1 = g - c1;
+              dif2 = g - c2; 
+              gain1 = 0.001f;
+              gain2 = 0.001f;
+              
+              pwm11.write(0.55f + dif1*gain1);
+              pwm12.write(0.20f);
+              pwm21.write(0.20f);
+              pwm22.write(0.20f);
+              break;
+              
+              case(7)://黒黒黒ゆっくり
+              dif1 = g - c1;
+              dif2 = g - c2;
+              gain1 = 0.0013f;
+              gain2 = 0.0013f;
+              
+              pwm11.write(0.45f + dif1*gain1);
               pwm12.write(0.30f);
-              pwm21.write(0.40f + dif2*gain2);
+              pwm21.write(0.45f + dif2*gain2);
+              pwm22.write(0.30f);
+              break;
+               
+              default://それ以外(多分ないけど)
+              pwm11.write(0.10f);
+              pwm12.write(0.50f);
+              pwm21.write(0.10f);
+              pwm22.write(0.50f);
+              break;
+        }
+        }
+        
+        
+    else if(43*12*18 < distance && distance < 43*12*24){//第二直線
+            switch(n){
+              case(2)://白黒白ゆっくり進む
+              g = 500.0f;
+              dif1 = g - c1;
+              dif2 = g - c2;
+              gain1 = 0.0007f;
+              gain2 = 0.0007f;
+              pwm11.write(0.70f + dif1*gain1);
+              pwm12.write(0.30f);
+              pwm21.write(0.70f + dif2*gain2);
               pwm22.write(0.30f);
               break;
               
@@ -360,112 +464,9 @@
               gain1 = 0.001f;
               gain2 = 0.001f;
               
-              pwm11.write(0.40f + dif1*gain1);
-              pwm12.write(0.30f);
-              pwm21.write(0.40f + dif2*gain2);
-              pwm22.write(0.30f);
-              break;
-               
-              default://それ以外(多分ないけど)
-              pwm11.write(0.10f);
-              pwm12.write(0.50f);
-              pwm21.write(0.10f);
-              pwm22.write(0.50f);
-              break;
-        }
-        }
-        
-        
-    else if(43*12*18 < distance && distance < 43*12*24){
-            switch(n){
-              case(2)://白黒白ゆっくり進む
-              g = 500.0f;
-              dif1 = g - c1;
-              dif2 = g - c2;
-              gain1 = 0.0007f;
-              gain2 = 0.0007f;
-              pwm11.write(0.80f + dif1*gain1);
+              pwm11.write(0.60f + dif1*gain1);
               pwm12.write(0.30f);
-              pwm21.write(0.80f + dif2*gain2);
-              pwm22.write(0.30f);
-              break;
-              
-              case(0)://白白白バック
-              g = 500.0f;
-              dif1 = g - c1;
-              dif2 = g - c2;
-              gain1 = 0.0018f;
-              gain2 = 0.0018f;
-              
-              pwm11.write(0.10f);
-              pwm12.write(0.30f +dif1*gain1);
-              pwm21.write(0.10f);
-              pwm22.write(0.30f +dif2*gain2);
-              break;
-              
-              
-            
-              case(1)://黒白白左回転かなり強
-              g = 500.0f;
-              dif1 = g - c1;
-              dif2 = g - c2;
-              gain1 = 0.0007f;
-              gain2 = 0.0007f;
-              
-              pwm11.write(0.20f + dif1*gain1);
-              pwm12.write(0.20f);
-              pwm21.write(0.50f + dif2*gain2);
-              pwm22.write(0.20f);
-              break;
-            
-              case(4)://白白黒右回転かなり強
-              g = 500.0f;
-              dif1 = g - c1;
-              dif2 = g - c2;
-              gain1 = 0.0007f;
-              gain2 = 0.0007f;
-              
-              pwm11.write(0.50f + dif1*gain1);
-              pwm12.write(0.20f);
-              pwm21.write(0.20f);
-              pwm22.write(0.20f + dif2*gain2);
-              break;
-              
-              case(3)://黒黒白左回転強
-              g = 500.0f;
-              dif1 = g - c1;
-              dif2 = g - c2;         
-              gain1 = 0.0007f;
-              gain2 = 0.0007f;
-                  
-              pwm11.write(0.20f);
-              pwm12.write(0.20f);
-              pwm21.write(0.50f + dif2*gain2);
-              pwm22.write(0.20f);
-              break;
-              
-              case(6)://白黒黒右回転強
-              g = 500.0f;
-              dif1 = g - c1;
-              dif2 = g - c2; 
-              gain1 = 0.0007f;
-              gain2 = 0.0007f;
-              
-              pwm11.write(0.50f + dif1*gain1);
-              pwm12.write(0.20f);
-              pwm21.write(0.20f);
-              pwm22.write(0.20f);
-              break;
-              
-              case(7)://黒黒黒ゆっくり
-              dif1 = g - c1;
-              dif2 = g - c2;
-              gain1 = 0.001f;
-              gain2 = 0.001f;
-              
-              pwm11.write(0.80f + dif1*gain1);
-              pwm12.write(0.30f);
-              pwm21.write(0.80f + dif2*gain2);
+              pwm21.write(0.60f + dif2*gain2);
               pwm22.write(0.30f);
               break;
                
@@ -487,11 +488,11 @@
               g = 500.0f;
               dif1 = g - c1;
               dif2 = g - c2;
-              gain1 = 0.0006f;
-              gain2 = 0.0006f;
-              pwm11.write(0.50f + dif1*gain1);
+              gain1 = 0.0013f;
+              gain2 = 0.0013f;
+              pwm11.write(0.45f + dif1*gain1);
               pwm12.write(0.30f);
-              pwm21.write(0.50f + dif2*gain2);
+              pwm21.write(0.45f + dif2*gain2);
               pwm22.write(0.30f);
               break;
               
@@ -499,8 +500,8 @@
               g = 500.0f;
               dif1 = g - c1;
               dif2 = g - c2;
-              gain1 = 0.0018f;
-              gain2 = 0.0018f;
+              gain1 = 0.002f;
+              gain2 = 0.002f;
               
               pwm11.write(0.10f);
               pwm12.write(0.30f +dif1*gain1);
@@ -514,12 +515,12 @@
               g = 500.0f;
               dif1 = g - c1;
               dif2 = g - c2;
-              gain1 = 0.0007f;
-              gain2 = 0.0007f;
+              gain1 = 0.0011f;
+              gain2 = 0.0011f;
               
               pwm11.write(0.20f + dif1*gain1);
               pwm12.write(0.20f);
-              pwm21.write(0.70f + dif2*gain2);
+              pwm21.write(0.60f + dif2*gain2);
               pwm22.write(0.20f);
               break;
             
@@ -527,10 +528,10 @@
               g = 500.0f;
               dif1 = g - c1;
               dif2 = g - c2;
-              gain1 = 0.0007f;
-              gain2 = 0.0007f;
+              gain1 = 0.0011f;
+              gain2 = 0.0011f;
               
-              pwm11.write(0.70f + dif1*gain1);
+              pwm11.write(0.60f + dif1*gain1);
               pwm12.write(0.20f);
               pwm21.write(0.20f);
               pwm22.write(0.20f + dif2*gain2);
@@ -540,12 +541,12 @@
               g = 500.0f;
               dif1 = g - c1;
               dif2 = g - c2;         
-              gain1 = 0.0007f;
-              gain2 = 0.0007f;
+              gain1 = 0.0011f;
+              gain2 = 0.0011f;
                   
               pwm11.write(0.20f);
               pwm12.write(0.20f);
-              pwm21.write(0.70f + dif2*gain2);
+              pwm21.write(0.60f + dif2*gain2);
               pwm22.write(0.20f);
               break;
               
@@ -553,10 +554,10 @@
               g = 500.0f;
               dif1 = g - c1;
               dif2 = g - c2; 
-              gain1 = 0.0007f;
-              gain2 = 0.0007f;
+              gain1 = 0.0011f;
+              gain2 = 0.0011f;
               
-              pwm11.write(0.70f + dif1*gain1);
+              pwm11.write(0.60f + dif1*gain1);
               pwm12.write(0.20f);
               pwm21.write(0.20f);
               pwm22.write(0.20f);
@@ -565,12 +566,12 @@
               case(7)://黒黒黒ゆっくり
               dif1 = g - c1;
               dif2 = g - c2;
-              gain1 = 0.0002f;
-              gain2 = 0.0002f;
+              gain1 = 0.0013f;
+              gain2 = 0.0013f;
               
-              pwm11.write(0.50f + dif1*gain1);
+              pwm11.write(0.45f + dif1*gain1);
               pwm12.write(0.30f);
-              pwm21.write(0.50f + dif2*gain2);
+              pwm21.write(0.45f + dif2*gain2);
               pwm22.write(0.30f);
               break;
                
@@ -580,7 +581,6 @@
               pwm21.write(0.10f);
               pwm22.write(0.50f);
               break;
-              
         }
     }