Opis znajduje sie w main.cpp

Dependencies:   mbed Motordriver

Files at this revision

API Documentation at this revision

Comitter:
kociol1994
Date:
Sun Mar 03 16:41:45 2019 +0000
Parent:
3:5b09cb69d476
Child:
5:765e3090ce0c
Commit message:
Opis w main.cpp

Changed in this revision

main1.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main1.cpp	Sat Mar 02 21:31:05 2019 +0000
+++ b/main1.cpp	Sun Mar 03 16:41:45 2019 +0000
@@ -1,24 +1,25 @@
-/*                                      PROBLEM
-    Należy utworzyć wektor ze zmiennych X, Y pozwalający przypisać odpowiednie wartośc PWM do mostka H
-    Wartości te muszą umożliwiać jazde robota w wybranym kierunku     
+/*                            KocioŁ
+          
+    Program pobiera stan aktualny z Joy i przetwarza go na porządane wartości PWM
+    umożliwiające przemieszczanie się pojazdu w kierunkach wskazanych przez operatora. 
 */
 
-
 #include "mbed.h"
 #include "motordriver.h"
     
 float X0, X1, X;
 float Y0, Y1, Y;    
+int dzielnik = 2;  //dzielnik prędkosci PWM
+
     
-Motor mot_A(D6, D7, D4, 1); // pwm, fwd, rev, can brake 
-Motor mot_B(D5, D2, D3, 1); // pwm, fwd, rev, can brake
+Motor mot_A(D6, D4, D7, 1); // pwm, fwd, rev, can brake 
+Motor mot_B(D5, D3, D2, 1); // pwm, fwd, rev, can brake
 
-
+    // Pobranie pozycji Joy-a
 AnalogIn joy_X(A0);
 AnalogIn joy_Y(A1);
-InterruptIn SW(USER_BUTTON);
 
-
+    // inicjacja portu szeregowego 
 Serial pc(SERIAL_TX, SERIAL_RX);
 
 
@@ -36,27 +37,28 @@
         Y0 = joy_Y.read()*256;
         
     //--------mapowanie zmiennych ----------
-        //po wykonaniu tej części otrzymujemy zmienną X i Y z wartościami w zakresie -1 do 1
+        // po wykonaniu tej części otrzymujemy zmienną X i Y z wartościami w zakresie -1 do 1
+        // oraz zmienne X1 i Y1 używane w diagnostyce z wartościami w zakresie -255 do 255
         
             //ZMIENNA X
-        if(X0>100 && X0<150){  //uwzględniam drganie styków
+        if(X0>180 && X0<200){  //uwzględniam drganie styków
             X1=0;
-        }else if((X0)<100){
-            X1=map(X0,0, 100, -256, 0);               
-        }else if((X0)>150){
-            X1=map(X0,150, 256, 0, 256);                    
+        }else if((X0)<180){
+            X1=map(X0,0, 180, -256, 0);               
+        }else if((X0)>200){
+            X1=map(X0,200, 256, 0, 256);                    
         } 
-        X=X1/512;  
+        X=X1/256;  // zmiana wartości na zakres od -1 do 1
         
             //ZMIENNA Y
-        if(Y0>100 && Y0<150){  //uwzględniam drganie styków
+        if(Y0>180 && Y0<200){  //uwzględniam drganie styków
             Y1=0;
-        }else if((Y0)<100){
-            Y1=map(Y0,0, 100, -256, 0);               
-        }else if((Y0)>150){
-            Y1=map(Y0,150, 256, 0, 256);                    
+        }else if((Y0)<180){
+            Y1=map(Y0,0, 180, -256, 0);               
+        }else if((Y0)>200){
+            Y1=map(Y0,200, 256, 0, 256);                    
         } 
-        Y=Y1/512;  
+        Y=Y1/256;  // zmiana wartości na zakres od -1 do 1
                   
     //----------wyświetl diagnostyke---------
             /*
@@ -65,25 +67,24 @@
             X /Y  wartość PWM z zakresu -1   do 1 
             */
         printf("Pomiar: ");
-        printf("X0=%.0f    ", X0);
-        printf("X1=%.0f    ", X1);
-        printf("X =%.0f    ", X);
+        printf("X0=%.0f    ",      X0);
+        printf("X1=%.0f    ",      X1);
+        printf("X =%.0f    ",      X );
         
         printf("     Y0=%.0f    ", Y0);
-        printf("Y1=%.0f    ", Y1);
-        printf("Y =%.0f    \r\n", Y);
+        printf("Y1=%.0f    ",      Y1);
+        printf("Y =%.0f    \r\n ", Y );
         
         wait_ms(50);    
     
-    // ------------wpisz wartosc PWM--------
-    
+    // --------wpisz wartosc PWM-----------
     
-       if(SW!=1){
-            mot_A.speed(Y); 
-            mot_B.speed(Y); 
-        }else{
-            mot_A.speed(0); 
-            mot_B.speed(0);
-        }
+            //zależność między położeniem Joy a obrotami kół
+            float L = Y + (X/2);
+            float P = Y - (X/2);
+            
+            mot_A.speed(L/dzielnik); 
+            mot_B.speed(P/dzielnik); 
+        
     }
 }
\ No newline at end of file