Total control sjoel robot
Dependencies: HIDScope MODSERIAL QEI TextLCD mbed
Diff: main.cpp
- Revision:
- 37:090ba5b1e655
- Parent:
- 36:549d1ce7b96b
--- a/main.cpp Tue Oct 20 09:06:18 2015 +0000 +++ b/main.cpp Tue Oct 20 13:54:54 2015 +0000 @@ -15,7 +15,7 @@ PwmOut servo(D3); // PwmOut servo AnalogIn emgL(A0), emgR(A1); // Analog input of EMG, left and right AnalogIn potL(A2), potR(A3); // Potential meter left and right -AnalogIn KS(A4); // Killswitch +AnalogIn KS(A5); // Killswitch HIDScope scope(6); // Hidscope, amount of scopes Ticker EMGticker, tickerControl, tickerBreak, tickerLcd; // Ticker for EMG, regulator and break // QEI Encoder(port 1, port 2, ,counts/rev @@ -35,7 +35,7 @@ int maxCounts = 13000; // max richt motor counts Aim motor int breakPerc = 0; const double servoL = 0.001, servoR = 0.0011; // Range servo,between servoL en servoR (= pulsewidth pwm servo) -const double tControl = 0.005, tBreak = 0.1, tLcd = 1; // tickers +const double tControl = 0.005, tBreak = 0.1, tLcd = 2; // tickers const double Fs = 50; //Sample frequency Hz double t = 1/ Fs; // time EMGticker double thresholdlowL= 0, thresholdmidL = 0, thresholdhighL= 0; @@ -224,27 +224,29 @@ case CALIBRATE_AIM: { pwmM2.period(1/100000); // period motor 2 printf("Position is kalibrating\r\n"); // terminal - PRINT("Wait a moment, please"); // LCD + PRINT("Wait a moment, please"); // LCD dirM2.write(0); // direction aim motor - pwmM2.write(0.25); // percentage motor power + pwmM2.write(0.1); // percentage motor power bool calibrated = false; // while(state==CALIBRATE_AIM){ pc.printf("Killswitch: %f\r\n", KS.read()); // terminal - if(KS.read() > 0.5 && !calibrated){ // Killswitch? + if(KS.read() > 0.5){ // Killswitch? //2* gedaan, zodat breuk uit de if-statement is pwmM2.write(0); // Aim motor freeze enc2.reset(); // Reset encoder PRINT("Aim calibrated"); // LCD calibrated = true; // - dirM2.write(0); // direction aim motor - pwmM2.write(0.25); // percentage motor power, turn it on - } + state = CALIBRATE_PEND; // next state + //dirM2.write(1); // direction aim motor + //pwmM2.write(0.25); // percentage motor power, turn it on + } + /* if(controlFlag && calibrated){ // motor regelen op GoFlag - controlFlag = false; + controlFlag = false; if(enc1.getPulses() > maxCounts/2){ // rotate aim motor to midi position pwmM2.write(0); // Aim motor freeze state = CALIBRATE_PEND; // next state } - } + } */ } break; }