![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
control for robotic arm that can play chess using a granular gripper
Dependencies: Encoder mbed HIDScope Servo MODSERIAL
Fork of chessRobot by
Diff: actuators.cpp
- Revision:
- 91:6bbbbc6643c8
- Parent:
- 84:df770ec4df61
- Child:
- 93:a8898eb80edc
- Child:
- 98:25528494287d
diff -r df770ec4df61 -r 6bbbbc6643c8 actuators.cpp --- a/actuators.cpp Tue Oct 20 15:07:51 2015 +0200 +++ b/actuators.cpp Wed Oct 21 10:13:10 2015 +0000 @@ -133,7 +133,6 @@ motor1PID.Compute(); // calculate PID outputs, output changes automatically motor2PID.Compute(); // write new values to motor's - if (motor1SetSpeed=0){direction1=!direction1;} // change direction to cause braking. if (motor1SetSpeed > 0 ){ // CCW rotation direction1 = false; motor1PID.SetOutputLimits(0,1); // change pid output direction @@ -141,7 +140,6 @@ direction1 = true; // CW rotation motor1PID.SetOutputLimits(-1,0); } - if (motor2SetSpeed=0){direction2=!direction2;} // change direction to cause braking. if (motor2SetSpeed > 0 ){ // CCW rotation direction2 = false; motor2PID.SetOutputLimits(0,1); @@ -169,36 +167,32 @@ } void calibrateMotors(){ - // bool calibrating1 = true; - // bool calibrating2 = true; - // float motorCalSpeed = 0.1; // %PWM - // motor1Dir.write(false); - // motor2Dir.write(false); - // // move motors CCW until they reach outer most position - // // setmotorspeed contant - // // first move motor 1 using PID - // // wait until motor hits pin - // // switch direction - // // set motor speed1 0 - // // repeat for motor 2 - // while (calibrating1 || calibrating2){ - // if(motor1AnglePin == 0){ - // motor1.write(0.3f); - // }else{ - // motor1.write(0); - // calibrating1 = false; - // } - // if(motor2AnglePin == 0){ - // motor2.write(0.3f); - // }else{ - // motor2.write(0); - // calibrating2 = false; - // } - // wait(0.2f); - // } - // // set the encoder values for angle. - // encoder1.setValue(0); - // encoder2.setValue(0); +// safetyOn = false; +// bool calibrating1 = true; +// bool calibrating2 = true; +// double motorCalSpeed = 10; // deg/sec +// while (calibrating1 || calibrating2){ +// if (calibrating1){ +// motor1SetSpeed = motorCalSpeed; // deg/sec +// if(safetyIn.read() !=1){ // check if arm reached safety position +// calibrating1 = false; // done +// motor1SetSpeed = 0; // brake motor +// encoder1.setPosition(0); // set motor 1 cal angle +// // move away +// } +// } +// if (calibrating1){ +// motor2SetSpeed = motorCalSpeed; // deg/sec +// if(safetyIn.read() !=1){ // check if arm reached safety position +// calibrating2 = false; // done +// motor2SetSpeed = 0; // brake motor +// encoder2.setPosition(0); // set motor 2 cal angle +// // move away +// } +// } +// writeMotors(); +// wait(0.01f); +// } safetyOn = true; // turn safety on after callibration } @@ -207,8 +201,6 @@ if (safetyOn){ if (safetyIn.read() != 1){ motorsEnable = false; - motor1Dir.write(!direction1); - motor2Dir.write(!direction2); } } }