robot

Dependencies:   Encoder HIDScope MODSERIAL TouchButton mbed-dsp mbed

Fork of Robot2false by BMT M9 Groep01

Revision:
48:5b1b90260239
Parent:
47:8cef7b0badea
Child:
49:7ae21c58ba92
--- a/main.cpp	Sun Nov 02 13:49:12 2014 +0000
+++ b/main.cpp	Sun Nov 02 14:13:22 2014 +0000
@@ -81,7 +81,7 @@
 
 /*bool stop;*/
 float pwm;
-float new_pos;
+float new_pwmpos;
 float new_pwm;
 float PWM2 = 0.3; //PWM voor instellen hoek batje
 int toestand = WACHTEN; //terugkeren?
@@ -440,6 +440,7 @@
             pc.printf("detachMotor1\n");
 
             pwm_motor1.write(0);
+            toestand = WACHTEN; //hierheen verplaatst vanaf motor1aansturingdeel2. Belangrijk!! niet weghalen!!
 
             myled1=1;
             myled2=1;
@@ -692,19 +693,12 @@
 
 void motor1aansturing()
 {
-    /*if (motor1.getPosition()>= ANGLEMIN && toestand != SLAAN) {
-        toestand = WACHTEN;
-        pc.printf("if1\n");
-    }--------------------------misschien komt hij niet op 0 pos met gebruik stok! dan zal hij niet gaan wachten en slaan!!, moet dus aan eind 2e ticker toestand wachten weer terugkrijgen!*/
     switch(toestand) {
         case SLAAN:
             pc.printf("SLAAN\n");
-            new_pwm = pid(setspeed, motor1.getSpeed(),false);
+            new_pwm = pid(setspeed, motor1.getSpeed());
             pwm_motor1.write(new_pwm);
             motordir1 = 1;
-            pidpositie(ANGLEMAX, motor1.getPosition());//dit is nu alleen een waarde, moet vervolgens in een functie terugkomen toch
-            //?? motor1.getPosition(nieuwe positie);
-            
             if (motor1.getPosition() <= ANGLEMAX) {
                 toestand = TERUGKEREN;
                 pwm_motor1.write(0);//arvid had hier 0,0 gezet?!
@@ -737,6 +731,9 @@
                 }//end switch
             } //end if
             break;
+        case TERUGKEREN:
+            //positieregeling rond anglemax!!!
+            break;
     } //end switch
     scope.set(0,motor1.getPosition());
     scope.set(1,motor1.getPosition());
@@ -759,32 +756,22 @@
 void motor1aansturingdeel2()
 {
     switch(toestand) {
-        case TERUGKEREN:
-            if (motor1.getPosition()>= ANGLEMIN) {//moet arm hier niet naar beginpositie? als het te ver naar achteren is gegaan bijvoorbeeld
-                //pidpositie(ANGLEMIN, motor1.getPosition())
-                //?? motor1.getPosition(nieuwe positie);
-                toestand = WACHTEN;
-                //motor1.setPosition(0);
-                pid(0,0,true);
+        case TERUGKEREN: //deze case moet blijven ookal is het de enige case
+            if (motor1.getPosition()<=ANGLEMIN) {
+                new_pwmpos = pidpositie(ANGLEMIN, motor1.getPosition());//new_PWM benaming zorgt mogelijk voor problemen.
+                pwm_motor1.write(new_pwmpos); //mogelijk moet dit -new_pwm zijn???
+                motordir1 = 0;
+                //pc.printf("motor2.getPosition %d\r\n", motor2.getPosition());
+            }
+            if (motor1.getPosition()>= ANGLEMIN) {
+                new_pwmpos = pidpositie(ANGLEMIN, motor1.getPosition());
+                pwm_motor1.write(new_pwmpos); //mogelijk moet dit -new_pwm zijn???
+                motordir1 = 1;
                 //pc.printf("if2\n");
             }
-            if (motor1.getPosition()<=ANGLEMIN) {
-                pidpositie(ANGLEMIN, motor1.getPosition());//dit is nu alleen een waarde, moet vervolgens in een functie terugkomen toch
-                //?? motor1.getPosition(nieuwe positie);
-                pwm_motor1.write(0.3);
-                motordir1 = 0;
-        
-                pc.printf("motor2.getPosition %d\r\n", motor2.getPosition());
-            }
-            break;
-        case WACHTEN:
-            pwm_motor1.write(0);
-            //pidpositie(ANGLEMIN, motor1.getPosition());
-            pc.printf("new position %f\r\n", new_pos);
-            //pc.printf("ifwachten2\n");
             break;
     } //end switch
     scope.set(0,motor1.getPosition());        //ruwe data
     scope.set(2,motor1.getPosition());     //filtered...
     scope.send();
-}
\ No newline at end of file
+}//let op. Geen pidposition(0,0,true) deze moet zelf zorgen dat hij 0 wordt, en daar genoeg tijd voor hebben!!!
\ No newline at end of file