Modified experiment example for lab 3 of 2.74
Dependencies: ExperimentServer MotorShield QEI_pmw
Diff: main.cpp
- Revision:
- 16:bbe4ac38c535
- Parent:
- 15:495333b2ccf1
- Child:
- 17:98e298577f09
--- a/main.cpp Thu Aug 27 14:55:58 2020 +0000 +++ b/main.cpp Sat Sep 12 16:10:06 2020 +0000 @@ -19,7 +19,7 @@ QEI encoderC(PC_6, PC_7, NC, 1200, QEI::X4_ENCODING); // MOTOR C ENCODER (no index, 1200 counts/rev, Quadrature encoding) QEI encoderD(PD_12, PD_13, NC, 1200, QEI::X4_ENCODING);// MOTOR D ENCODER (no index, 1200 counts/rev, Quadrature encoding) -MotorShield motorShield(12000); //initialize the motor shield with a period of 12000 ticks or ~20kHZ +MotorShield motorShield(12000); //initialize the motor shield with a period of 12000 clock ticks or ~20kHZ int main (void) { @@ -33,8 +33,8 @@ while(1) { if (server.getParams(input_params,NUM_INPUTS)) { - float v1 = input_params[0]; // Duty cycle for first second - float v2 = input_params[1]; // Duty cycle for second second + float d1 = input_params[0]; // Duty cycle for first second + float d2 = input_params[1]; // Duty cycle for second second // Setup experiment t.reset(); @@ -53,17 +53,17 @@ while( t.read() < 2 ) { // Perform control loop logic if (t.read() < 1) - motorShield.motorAWrite(v1, 0); //run motor A at "v1" duty cycle and in the forward direction + motorShield.motorAWrite(d1, 0); //run motor A at "v1" duty cycle and in the forward direction else - motorShield.motorAWrite(v2, 0); //run motor A at "v2" duty cycle and in the forward direction + motorShield.motorAWrite(d2, 0); //run motor A at "v2" duty cycle and in the forward direction // Form output to send to MATLAB float output_data[NUM_OUTPUTS]; output_data[0] = t.read(); - output_data[1] = encoderA.getPulses(); - output_data[2] = encoderA.getVelocity(); - output_data[3] = motorShield.readCurrentA(); + output_data[1] = 0; //MODIFY: COPY IN YOUR ANSWER FROM PART 1 + output_data[2] = 0; //MODIFY: COPY IN YOUR ANSWER FROM PART 1 + output_data[3] = motorShield.readCurrentA()*(30.0/65536.0)-15; // Send data to MATLAB server.sendData(output_data,NUM_OUTPUTS);