Werkt dit?

Dependencies:   mbed QEI HIDScope biquadFilter MODSERIAL FastPWM

Revision:
11:1166af209e55
Parent:
10:b8c60fd468f1
--- a/main.cpp	Sun Oct 06 13:14:40 2019 +0000
+++ b/main.cpp	Mon Oct 07 08:45:03 2019 +0000
@@ -25,11 +25,11 @@
 
 class motor_state {                 // Een emmer met variabelen die je hierna motor gaat noemen.
     public:                         //variabelen kunnen worden gebruikt door externe functies
-    float pwm1;                     //pwm of 1st motor
-    float pwm2;                     //pwm of 2nd motor
+    float dutycycle1;                     //pwm of 1st motor
+    float dutycycle2;                     //pwm of 2nd motor
     int dir1;                       //direction of 1st motor
     int dir2;                       //direction of 2nd motor
-};
+} ;
 motor_state motor;                  //Een emmer met variabelen met motor.iets als naam bijv. motor.speed1
 
 bool state_changed = false;         // wordt gebruikt in de state functies, om te kijken of de state net begint
@@ -44,7 +44,7 @@
 float x_movement = 0;
 float y_movement = 0;
 float angle = 0;
-float extention = 0;
+float extension = 0;
 
 void calibration() {                //kalibratie van de sensoren (de nulstand invoeren)
     letter = pc.getc()              // krijg de letter vanuit de keyboard
@@ -60,7 +60,9 @@
     while (letter == d) {
         x_movement = 1;
     }
-    robot_kinematics()                  // hoe dat dit precies moet geen idee. Dit lijkt me een goed begin of iig een begin
+    while (int pc.getc() != 'p') {
+        robot_kinematics()                  // hoe dat dit precies moet geen idee. Dit lijkt me een goed begin of iig een begin
+    }
     x_movement = 0;
     y_movement = 0;    
     
@@ -68,7 +70,7 @@
 
 }
 void robot_kinematics() {           //hoe de motoren moeten draaien als er een x of y richting als input is. 
-    [motor.dir1, motor.dir2; motor.speed1, motor.speed2] = H^-1 *[x_movement, y_movement; angle]        // Zoiets
+    [motor.dir1, motor.dir2; motor.speed1, motor.speed2] = H^-1 *[x_movement, y_movement; angle, extension]        // Zoiets
     
     
 }
@@ -76,10 +78,13 @@
 
 // the funtions needed to run the program
 void measure_signals() {
+    /*
     x_input = joystick_x.read();
+    pc.printf("X reading is %f" x_input);
     y_input = joystick_y.read();
+    pc.printf("Y reading is %f", y_input);
 
-    /*
+    
     letter = pc.getc()          // krijg de letter vanuit de keyboard
     if (letter == w){
         y_movement = 1;
@@ -95,24 +100,22 @@
     }    
     
     angle = (encoder1.getPulses()-angle_0)/8400*360; //kijkt op welke stand encoder 1 nu staat (dat hoort dus de basis motor te zijn!) /8400 signalen per rotatie * 360 graden
-    extention = encoder2.getPulses()-extention_0/8400*8*5.05; //kijkt hoever de arm is uitgeschoven (/8400 per rotatie *8mm per rotatie aan verschuiving * 5.05 de gear ratio) 
+    extension = encoder2.getPulses()-extention_0/8400*8*5.05; //kijkt hoever de arm is uitgeschoven (/8400 per rotatie *8mm per rotatie aan verschuiving * 5.05 de gear ratio) 
     
     
     */
     
     pot_1 = Pot1.read();
-    pc.printf("pot_1 = %f",pot_1);  // Dit doet hij niet, waarom niet? Er scheelt niet veel aan, maar toch
-    motor.speed1 = pot_1*0.75;      //pod_read * 0.75 (dus max 75%)
+    motor.dutycycle1 = pot_1*0.75;      //pod_read * 0.75 (dus max 75%)
     
     pot_2 = Pot2.read();
-    pc.printf("pot_2 = %f",pot_2);  // Dit doet hij niet, waarom niet? Er scheelt niet veel aan, maar toch
-    motor.speed2 = pot_2*0.75;      //pod_read * 0.75 (dus max 75%)
+    motor.dutycycle2 = pot_2*0.75;      //pod_read * 0.75 (dus max 75%)
     return;
     }
 
 void do_nothing() {
-    motor.speed1 = 0;
-    motor.speed2 = 0;
+    motor.dutycycle1 = 0;
+    motor.dutycycle2 = 0;
     
     
     //state guard
@@ -134,8 +137,9 @@
     motor.dir1 = 1;             //todo: check if this is actually clockwise
     motor.dir2 = 1;             //todo: check if this is actually clockwise
     
-    motor.pwm1 = x_input;       //nog niet echt de x, maar de rotatie, moet later met kinematics gefixt worden
-    motor.pwm2 = y_input;       // ook nog niet echt de y dus
+    /// motor.dutycycle1 = x_input;       //nog niet echt de x, maar de rotatie, moet later met kinematics gefixt worden
+    /// motor.dutycycle2 = y_input;       // ook nog niet echt de y dus
+    
     //state guard
     if (!state_changed && but1_pressed) { //state wasnt just changed, button 1 has been pressed -> change state
         current_state = ccw;
@@ -154,8 +158,8 @@
     motor.dir1 = 0;
     motor.dir2 = 0;
     
-    motor.pwm1 = x_input;       //nog niet echt de x
-    motor.pwm2 = y_input;       //nog niet echt de y
+    /// motor.dutycycle1 = x_input;       //nog niet echt de x
+    /// motor.dutycycle2 = y_input;       //nog niet echt de y
     
     //state guard
     if (!state_changed && but1_pressed) { //state niet veranderd, button 1 gepressd -> state verandert
@@ -168,11 +172,11 @@
 void motor_controller() {
 
     motor1_direction = motor.dir1;              // Zet de richting goed
-    motor1_pwm.write(motor.pwm1);             // Zet het op de snelheid van motor.speed1
-    
+    motor1_pwm.write(motor.dutycycle1);         // Zet het op de snelheid van motor.speed1
+   
 
     motor2_direction = motor.dir2;
-    motor2_pwm.write(motor.pwm2);             
+    motor2_pwm.write(motor.dutycycle2);             
     return;
 }