PID controll for the robot motors.
Dependencies: BioroboticsMotorControl MODSERIAL mbed
Diff: main.cpp
- Revision:
- 6:cc3e47c7aac2
- Parent:
- 5:fd4eaf3cb09d
- Child:
- 7:12fedc93c6ad
diff -r fd4eaf3cb09d -r cc3e47c7aac2 main.cpp --- a/main.cpp Fri Oct 19 10:51:16 2018 +0000 +++ b/main.cpp Fri Oct 19 11:21:40 2018 +0000 @@ -1,7 +1,6 @@ #include "mbed.h" #include "MODSERIAL.h" -#include "pid.h" #include "motor.h" const float pid_period = 0.001; // PID sample period in seconds. @@ -14,7 +13,8 @@ AnalogIn potmeter2(A2); // Analoge input van potmeter 2 -> Motor 2 Serial pc(USBTX, USBRX); -Motor motor(D6, D7, D13, D12, &pc); +Motor motor1(D6, D7, D13, D12, &pc); +Motor motor2(D5, D4, D10, D11, &pc); // Normalizes a potmeter value from it's original range of [0, 1] to [-1, 1] @@ -28,16 +28,25 @@ { pc.baud(115200); pc.printf("Starting."); - motor.set_pid_k_values(Kp, Ki, Kd); + motor1.set_pid_k_values(Kp, Ki, Kd); + motor2.set_pid_k_values(Kp, Ki, Kd); // Start the motor controller at the desired frequency. - motor.start(pid_period); + motor1.start(pid_period); + motor2.start(pid_period); while(true){ // reads out value potmeter 1 between 0-1 - double pot = potmeter2.read(); + double pot = potmeter1.read(); double desired_angle = normalize_pot(pot) * PI; // Scale the potmeter to [-PI, PI] // Update the motor controller with the new angle. - motor.set_target_angle(desired_angle); + motor1.set_target_angle(desired_angle); + + // reads out value potmeter 1 between 0-1 + pot = potmeter2.read(); + desired_angle = normalize_pot(pot) * PI; // Scale the potmeter to [-PI, PI] + // Update the motor controller with the new angle. + motor2.set_target_angle(desired_angle); + wait(0.1); } //Lege while loop zodat functie niet afloopt } \ No newline at end of file