Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: Encoder MODSERIAL TextLCD mbed mbed-dsp
Revision 32:80fc2de5b511, committed 2014-11-05
- Comitter:
- JKleinRot
- Date:
- Wed Nov 05 18:29:00 2014 +0000
- Parent:
- 31:36fe36657f8d
- Commit message:
- 2014-11-05 Laatste versie PIPO 2 groep 4. Kalibratie positie en EMG compleet. Keuze maken in doel werkt. Snelheidsregelaar werkt niet, PWM gestuurd. Niet alle cases voor doelen kunnen controleren, werken niet allemaal goed. Case BBBB werkt wel.
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Tue Nov 04 00:33:35 2014 +0000
+++ b/main.cpp Wed Nov 05 18:29:00 2014 +0000
@@ -246,14 +246,14 @@
while(regelaar_ticker_flag != true); //Als geen flag opgestoken, dan niks doen, wel flag, dan uit de while loop en door naar volgende regel
regelaar_ticker_flag = false; //Flag weer naar beneden, zodat deze straks weer omhoog kan
- referentie_arm1 = referentie_arm1 + 180.0/200.0; //Referentie loopt in één seconde op tot het gewenste aantal pulsen
+ referentie_arm1 = referentie_arm1 + 203.0/200.0; //Referentie loopt in één seconde op tot het gewenste aantal pulsen
pc.printf("pulsmotorgetposition1 %d ", puls_motor_arm1.getPosition()); //Huidig aantal getelde pulsen van de encoder naar pc sturen
pc.printf("pwmmotor1 %f ", pwm_to_motor_arm1); //Huidige PWM waarde naar motor naar pc sturen
pc.printf("referentie1 %f\n\r", referentie_arm1); //Huidige referentie naar pc sturen
- if (puls_motor_arm1.getPosition() >= 180) { //Als het gewenste aantal pulsen behaald is
- referentie_arm1 = 180; //Blijft de referentie op dat aantal pulsen staan
+ if (puls_motor_arm1.getPosition() >= 203) { //Als het gewenste aantal pulsen behaald is
+ referentie_arm1 = 203; //Blijft de referentie op dat aantal pulsen staan
state = KALIBRATIE_ARM2; //Door naar de volgende state
}
}
@@ -891,15 +891,15 @@
while(regelaar_ticker_flag != true); //Als geen flag opgestoken, dan niks doen, wel flag, dan uit de while loop en door naar volgende regel
regelaar_ticker_flag = false; //Flag weer naar beneden, zodat deze straks weer omhoog kan
- while(puls_motor_arm1.getPosition() > -84) {
- referentie_arm1 = referentie_arm1 - 264.0/200.0; //Referentie arm 1 loopt af in een seconden naar de gewenste waarde
+ while(puls_motor_arm1.getPosition() > -107) {
+ referentie_arm1 = referentie_arm1 - 287.0/200.0; //Referentie arm 1 loopt af in een seconden naar de gewenste waarde
pc.printf("referentie arm 1 %f ", referentie_arm1); //Referentie naar pc sturen
pc.printf("get position 1 %d ", puls_motor_arm1.getPosition()); //Positie naar pc sturen
pc.printf("pwm motor 1 %f\n\r", pwm_to_motor_arm1); //PWM naar pc sturen
}
- if(puls_motor_arm1.getPosition() <= -84) {
- referentie_arm1 = -84;
+ if(puls_motor_arm1.getPosition() <= -107) {
+ referentie_arm1 = -107;
}
while(puls_motor_arm2.getPosition() < 211) {
@@ -909,10 +909,10 @@
pc.printf("pwm motor 2 %f\n\r", pwm_to_motor_arm2); //PWM naar pc sturen
}
ticker_motor_arm2_pid.detach();
- pwm_to_motor_arm2 = 1;
+ pwm_to_motor_arm2 = 0.8;
pwm_motor_arm2.write(pwm_to_motor_arm2);
dir_motor_arm2.write(0);
- while(puls_motor_arm2.getPosition() > 36) {
+ while(puls_motor_arm2.getPosition() > -306) {
pc.printf("referentie arm 2 %f ", referentie_arm2); //Referentie naar pc sturen
pc.printf("get position 2 %d ", puls_motor_arm2.getPosition()); //Positie naar pc sturen
@@ -964,15 +964,15 @@
while(regelaar_ticker_flag != true); //Als geen flag opgestoken, dan niks doen, wel flag, dan uit de while loop en door naar volgende regel
regelaar_ticker_flag = false; //Flag weer naar beneden, zodat deze straks weer omhoog kan
- while(puls_motor_arm1.getPosition() > -84) {
- referentie_arm1 = referentie_arm1 - 264.0/200.0; //Referentie arm 1 loopt af in een seconde naar gewenste waarde
+ while(puls_motor_arm1.getPosition() > -107) {
+ referentie_arm1 = referentie_arm1 - 287.0/200.0; //Referentie arm 1 loopt af in een seconde naar gewenste waarde
pc.printf("referentie arm 1 %f ", referentie_arm1); //Referentie naar pc sturen
pc.printf("get position 1 %d ", puls_motor_arm1.getPosition()); //Positie naar pc sturen
pc.printf("pwm motor 1 %f\n\r", pwm_to_motor_arm1); //PWM naar pc sturen
}
- if(puls_motor_arm1.getPosition() <= -84) {
- referentie_arm1 = -84;
+ if(puls_motor_arm1.getPosition() <= -107) {
+ referentie_arm1 = -107;
}
while(puls_motor_arm2.getPosition() < 211) {
@@ -982,10 +982,10 @@
pc.printf("pwm motor 2 %f\n\r", pwm_to_motor_arm2); //PWM naar pc sturen
}
ticker_motor_arm2_pid.detach();
- pwm_to_motor_arm2 = 1;
+ pwm_to_motor_arm2 = 0.9;
pwm_motor_arm2.write(pwm_to_motor_arm2);
dir_motor_arm2.write(0);
- while(puls_motor_arm2.getPosition() > 36) {
+ while(puls_motor_arm2.getPosition() > -306) {
pc.printf("referentie arm 2 %f ", referentie_arm2); //Referentie naar pc sturen
pc.printf("get position 2 %d ", puls_motor_arm2.getPosition()); //Positie naar pc sturen
@@ -1018,15 +1018,15 @@
while(regelaar_ticker_flag != true); //Als geen flag opgestoken, dan niks doen, wel flag, dan uit de while loop en door naar volgende regel
regelaar_ticker_flag = false; //Flag weer naar beneden, zodat deze straks weer omhoog kan
- while(puls_motor_arm1.getPosition() > -84) {
- referentie_arm1 = referentie_arm1 - 259.0/200.0; //Referentie arm 1 loopt af in een seconde naar gewenste waarde
+ while(puls_motor_arm1.getPosition() > -107) {
+ referentie_arm1 = referentie_arm1 - 287.0/200.0; //Referentie arm 1 loopt af in een seconde naar gewenste waarde
pc.printf("referentie arm 1 %f ", referentie_arm1); //Referentie naar pc sturen
pc.printf("get position 1 %d ", puls_motor_arm1.getPosition()); //Positie naar pc sturen
pc.printf("pwm motor 1 %f\n\r", pwm_to_motor_arm1); //PWM naar pc sturen
}
- if(puls_motor_arm1.getPosition() <= -84) {
- referentie_arm1 = -84;
+ if(puls_motor_arm1.getPosition() <= -107) {
+ referentie_arm1 = -107;
}
while(puls_motor_arm2.getPosition() < 211) {
@@ -1039,7 +1039,7 @@
pwm_to_motor_arm2 = 1;
pwm_motor_arm2.write(pwm_to_motor_arm2);
dir_motor_arm2.write(0);
- while(puls_motor_arm2.getPosition() > 36) {
+ while(puls_motor_arm2.getPosition() > -306) {
pc.printf("referentie arm 2 %f ", referentie_arm2); //Referentie naar pc sturen
pc.printf("get position 2 %d ", puls_motor_arm2.getPosition()); //Positie naar pc sturen
@@ -1136,15 +1136,15 @@
while(regelaar_ticker_flag != true); //Als geen flag opgestoken, dan niks doen, wel flag, dan uit de while loop en door naar volgende regel
regelaar_ticker_flag = false; //Flag weer naar beneden, zodat deze straks weer omhoog kan
- while(puls_motor_arm1.getPosition() > 48) {
- referentie_arm1 = referentie_arm1 - 132.0/200.0; //Referentie arm 1 loopt af in een seconde naar gewenste waarde
+ while(puls_motor_arm1.getPosition() > 25) {
+ referentie_arm1 = referentie_arm1 - 155.0/200.0; //Referentie arm 1 loopt af in een seconde naar gewenste waarde
pc.printf("referentie arm 1 %f ", referentie_arm1); //Referentie naar pc sturen
pc.printf("get position 1 %d ", puls_motor_arm1.getPosition()); //Positie naar pc sturen
pc.printf("pwm motor 1 %f\n\r", pwm_to_motor_arm1); //PWM naar pc sturen
}
- if(puls_motor_arm1.getPosition() <= 48) {
- referentie_arm1 = 48;
+ if(puls_motor_arm1.getPosition() <= 25) {
+ referentie_arm1 = 25;
}
while(puls_motor_arm2.getPosition() < 167) {
@@ -1154,11 +1154,11 @@
pc.printf("pwm motor 2 %f\n\r", pwm_to_motor_arm2); //PWM naar pc sturen
}
ticker_motor_arm2_pid.detach();
- pwm_to_motor_arm2 = 1;
+ pwm_to_motor_arm2 = 0.8;
pwm_motor_arm2.write(pwm_to_motor_arm2);
dir_motor_arm2.write(0);
- while(puls_motor_arm2.getPosition() > -8) {
+ while(puls_motor_arm2.getPosition() > -370) {
pc.printf("referentie arm 2 %f ", referentie_arm2); //Referentie naar pc sturen
pc.printf("get position 2 %d ", puls_motor_arm2.getPosition()); //Positie naar pc sturen
@@ -1207,15 +1207,15 @@
while(regelaar_ticker_flag != true); //Als geen flag opgestoken, dan niks doen, wel flag, dan uit de while loop en door naar volgende regel
regelaar_ticker_flag = false; //Flag weer naar beneden, zodat deze straks weer omhoog kan
- while(puls_motor_arm1.getPosition() > 48) {
- referentie_arm1 = referentie_arm1 - 132.0/200.0; //Referentie arm 1 loopt af in een seconde naar gewenste waarde
+ while(puls_motor_arm1.getPosition() > 25) {
+ referentie_arm1 = referentie_arm1 - 155.0/200.0; //Referentie arm 1 loopt af in een seconde naar gewenste waarde
pc.printf("referentie arm 1 %f ", referentie_arm1); //Referentie naar pc sturen
pc.printf("get position 1 %d ", puls_motor_arm1.getPosition()); //Positie naar pc sturen
pc.printf("pwm motor 1 %f\n\r", pwm_to_motor_arm1); //PWM naar pc sturen
}
- if(puls_motor_arm1.getPosition() <= 48) {
- referentie_arm1 = 48;
+ if(puls_motor_arm1.getPosition() <= 25) {
+ referentie_arm1 = 25;
}
while(puls_motor_arm2.getPosition() < 167) {
@@ -1225,11 +1225,11 @@
pc.printf("pwm motor 2 %f\n\r", pwm_to_motor_arm2); //PWM naar pc sturen
}
ticker_motor_arm2_pid.detach();
- pwm_to_motor_arm2 = 1;
+ pwm_to_motor_arm2 = 0.9;
pwm_motor_arm2.write(pwm_to_motor_arm2);
dir_motor_arm2.write(0);
- while(puls_motor_arm2.getPosition() > -8) {
+ while(puls_motor_arm2.getPosition() > -370) {
pc.printf("referentie arm 2 %f ", referentie_arm2); //Referentie naar pc sturen
pc.printf("get position 2 %d ", puls_motor_arm2.getPosition()); //Positie naar pc sturen
@@ -1263,15 +1263,15 @@
while(regelaar_ticker_flag != true); //Als geen flag opgestoken, dan niks doen, wel flag, dan uit de while loop en door naar volgende regel
regelaar_ticker_flag = false; //Flag weer naar beneden, zodat deze straks weer omhoog kan
- while(puls_motor_arm1.getPosition() > 48) {
- referentie_arm1 = referentie_arm1 - 132.0/200.0; //Referentie arm 1 loopt af in een seconde naar gewenste positie
+ while(puls_motor_arm1.getPosition() > 25) {
+ referentie_arm1 = referentie_arm1 - 155.0/200.0; //Referentie arm 1 loopt af in een seconde naar gewenste positie
pc.printf("referentie arm 1 %f ", referentie_arm1); //Referentie naar pc sturen
pc.printf("get position 1 %d ", puls_motor_arm1.getPosition()); //Positie naar pc sturen
pc.printf("pwm motor 1 %f\n\r", pwm_to_motor_arm1); //PWM naar pc sturen
}
- if(puls_motor_arm1.getPosition() <= 48) {
- referentie_arm1 = 48;
+ if(puls_motor_arm1.getPosition() <= 25) {
+ referentie_arm1 = 25;
}
while(puls_motor_arm2.getPosition() < 167) {
@@ -1285,7 +1285,7 @@
pwm_motor_arm2.write(pwm_to_motor_arm2);
dir_motor_arm2.write(0);
- while(puls_motor_arm2.getPosition() > -8) {
+ while(puls_motor_arm2.getPosition() > -370) {
pc.printf("referentie arm 2 %f ", referentie_arm2); //Referentie naar pc sturen
pc.printf("get position 2 %d ", puls_motor_arm2.getPosition()); //Positie naar pc sturen
@@ -1320,11 +1320,11 @@
regelaar_ticker_flag = false; //Flag weer naar beneden, zodat deze straks weer omhoog kan
ticker_motor_arm2_pid.detach();
- pwm_to_motor_arm2 = 1;
+ pwm_to_motor_arm2 = 0.8;
pwm_motor_arm2.write(pwm_to_motor_arm2);
dir_motor_arm2.write(0);
- while(puls_motor_arm2.getPosition() < -175) {
+ while(puls_motor_arm2.getPosition() > -414) {
pc.printf("referentie arm 2 %f ", referentie_arm2); //Referentie naar pc sturen
pc.printf("get position 2 %d ", puls_motor_arm2.getPosition()); //Positie naar pc sturen
@@ -1335,7 +1335,7 @@
pwm_motor_arm2.write(pwm_to_motor_arm2);
dir_motor_arm2.write(1);
- while(puls_motor_arm2.getPosition() >= 0) {
+ while(puls_motor_arm2.getPosition()<= 123) {
pc.printf("referentie arm 2 %f ", referentie_arm2); //Referentie naar pc sturen
pc.printf("get position 2 %d ", puls_motor_arm2.getPosition()); //Positie naar pc sturen
pc.printf("pwm motor 2 %f\n\r ", pwm_to_motor_arm2); //PWM naar pc sturen
@@ -1380,7 +1380,7 @@
pwm_motor_arm2.write(pwm_to_motor_arm2);
dir_motor_arm2.write(0);
- while(puls_motor_arm2.getPosition() < -175) {
+ while(puls_motor_arm2.getPosition() > -414) {
pc.printf("referentie arm 2 %f ", referentie_arm2); //Referentie naar pc sturen
pc.printf("get position 2 %d ", puls_motor_arm2.getPosition()); //Positie naar pc sturen
@@ -1391,7 +1391,7 @@
pwm_motor_arm2.write(pwm_to_motor_arm2);
dir_motor_arm2.write(1);
- while(puls_motor_arm2.getPosition() >= 0) {
+ while(puls_motor_arm2.getPosition()<= 123) {
pc.printf("referentie arm 2 %f ", referentie_arm2); //Referentie naar pc sturen
pc.printf("get position 2 %d ", puls_motor_arm2.getPosition()); //Positie naar pc sturen
pc.printf("pwm motor 2 %f\n\r ", pwm_to_motor_arm2); //PWM naar pc sturen
@@ -1420,7 +1420,7 @@
pwm_motor_arm2.write(pwm_to_motor_arm2);
dir_motor_arm2.write(0);
- while(puls_motor_arm2.getPosition() < -175) {
+ while(puls_motor_arm2.getPosition() > -414) {
pc.printf("referentie arm 2 %f ", referentie_arm2); //Referentie naar pc sturen
pc.printf("get position 2 %d ", puls_motor_arm2.getPosition()); //Positie naar pc sturen
@@ -1431,7 +1431,7 @@
pwm_motor_arm2.write(pwm_to_motor_arm2);
dir_motor_arm2.write(1);
- while(puls_motor_arm2.getPosition() >= 0) {
+ while(puls_motor_arm2.getPosition()<= 123) {
pc.printf("referentie arm 2 %f ", referentie_arm2); //Referentie naar pc sturen
pc.printf("get position 2 %d ", puls_motor_arm2.getPosition()); //Positie naar pc sturen
pc.printf("pwm motor 2 %f\n\r ", pwm_to_motor_arm2); //PWM naar pc sturen
@@ -1454,11 +1454,11 @@
pc.printf("pwm motor 2 %f\n\r ", pwm_to_motor_arm2); //PWM naar pc sturen
}
- while(puls_motor_arm1.getPosition() < 180) {
+ while(puls_motor_arm1.getPosition() < 203) {
while(regelaar_ticker_flag != true); //Als geen flag opgestoken, dan niks doen, wel flag, dan uit de while loop en door naar volgende regel
regelaar_ticker_flag = false; //Flag weer naar beneden, zodat deze straks weer omhoog kan
- referentie_arm1 = referentie_arm1 + 132.0/200.0; //Referentie arm 1 loopt op in een seconde naar gewenste waarde
+ referentie_arm1 = referentie_arm1 + 155.0/200.0; //Referentie arm 1 loopt op in een seconde naar gewenste waarde
pc.printf("referentie arm 1 %f ", referentie_arm1); //Referentie naar pc sturen
pc.printf("get position 1 %d ", puls_motor_arm1.getPosition()); //Positie naar pc sturen
pc.printf("pwm motor 1 %f\n\r ", pwm_to_motor_arm1); //PWM naar pc sturen
@@ -1479,11 +1479,11 @@
pc.printf("pwm motor 2 %f\n\r ", pwm_to_motor_arm2); //PWM naar pc sturen
}
- while(puls_motor_arm1.getPosition() < 175) {
+ while(puls_motor_arm1.getPosition() < 203) {
while(regelaar_ticker_flag != true); //Als geen flag opgestoken, dan niks doen, wel flag, dan uit de while loop en door naar volgende regel
regelaar_ticker_flag = false; //Flag weer naar beneden, zodat deze straks weer omhoog kan
- referentie_arm1 = referentie_arm1 + 259.0/200.0; //Referentie arm 1 loopt op in een seconde naar gewenste waarde
+ referentie_arm1 = referentie_arm1 + 287.0/200.0; //Referentie arm 1 loopt op in een seconde naar gewenste waarde
pc.printf("referentie arm 1 %f ", referentie_arm1); //Referentie naar pc sturen
pc.printf("get position 1 %d ", puls_motor_arm1.getPosition()); //Positie naar pc sturen
pc.printf("pwm motor 1 %f\n\r ", pwm_to_motor_arm1); //PWM naar pc sturen