2014-10-15 Arm 1 naar thuispositie. Eerste poging, fout in keep_in_range
Dependencies: Encoder MODSERIAL TextLCD mbed mbed-dsp
Diff: main.cpp
- Revision:
- 32:80fc2de5b511
- Parent:
- 31:36fe36657f8d
--- 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