Simple program for introduction of mirror actuator.

Committer:
altb2
Date:
Wed Apr 28 13:10:16 2021 +0000
Revision:
12:8ea956a5c1d8
Parent:
8:49ac75c42da0
Template for students

Who changed what in which revision?

UserRevisionLine numberNew contents of line
altb2 5:768e10f6d372 1 #include "mbed.h"
altb2 5:768e10f6d372 2 #include "EncoderCounter.h"
altb2 5:768e10f6d372 3 #include "EncoderCounterIndex.h"
altb2 5:768e10f6d372 4 #include "DiffCounter.h"
altb2 5:768e10f6d372 5 #include "LinearCharacteristics.h"
altb2 5:768e10f6d372 6 #include "ThreadFlag.h"
altb2 5:768e10f6d372 7 #include "path_1d.h"
altb2 12:8ea956a5c1d8 8 #include "PID_Cntrl.h"
altb2 5:768e10f6d372 9 #include "Unwrapper_2pi.h"
altb2 6:9ebeffe446e4 10 #include "Mirror_Kinematic.h"
altb2 6:9ebeffe446e4 11 #include "data_structs.h"
altb2 8:49ac75c42da0 12 #include "GPA.h"
altb2 8:49ac75c42da0 13 #include "FastPWM.h"
altb2 5:768e10f6d372 14
altb2 5:768e10f6d372 15 extern EncoderCounter counter1,counter2;
altb2 5:768e10f6d372 16 extern EncoderCounterIndex index1,index2;
altb2 5:768e10f6d372 17 extern DiffCounter diff1,diff2;
altb2 5:768e10f6d372 18 extern path_1d *current_path;
altb2 6:9ebeffe446e4 19 extern LinearCharacteristics i2u;
altb2 8:49ac75c42da0 20 extern LinearCharacteristics u2i;
altb2 8:49ac75c42da0 21 //extern FastPWM i_des1;
altb2 8:49ac75c42da0 22 extern AnalogOut i_des1;
altb2 8:49ac75c42da0 23 extern AnalogOut i_des2;
altb2 5:768e10f6d372 24 extern DigitalOut i_enable;
altb2 8:49ac75c42da0 25 extern DigitalIn big_button;
altb2 5:768e10f6d372 26 extern Timer glob_ti;
altb2 7:942fd77d5e19 27 extern Mirror_Kinematic mk;
altb2 6:9ebeffe446e4 28 extern DigitalOut laser_on;
altb2 6:9ebeffe446e4 29 extern DATA_Xchange data;
altb2 8:49ac75c42da0 30 extern GPA myGPA;
altb2 8:49ac75c42da0 31 //extern AnalogIn i_act2;
altb2 5:768e10f6d372 32
altb2 5:768e10f6d372 33 // This is the loop class, it is not a controller at first hand, it guarantees a cyclic call
altb2 5:768e10f6d372 34 class ControllerLoop
altb2 5:768e10f6d372 35 {
altb2 5:768e10f6d372 36 public:
altb2 5:768e10f6d372 37 ControllerLoop(float Ts);
altb2 5:768e10f6d372 38 virtual ~ControllerLoop();
altb2 6:9ebeffe446e4 39 void start_loop(void);
altb2 6:9ebeffe446e4 40 void init_controllers(void);
altb2 6:9ebeffe446e4 41
altb2 5:768e10f6d372 42
altb2 5:768e10f6d372 43
altb2 5:768e10f6d372 44 private:
altb2 5:768e10f6d372 45 void loop(void);
altb2 5:768e10f6d372 46 Thread thread;
altb2 5:768e10f6d372 47 Ticker ticker;
altb2 5:768e10f6d372 48 ThreadFlag threadFlag;
altb2 5:768e10f6d372 49 Timer ti;
altb2 5:768e10f6d372 50 float Ts;
altb2 5:768e10f6d372 51 void sendSignal();
altb2 6:9ebeffe446e4 52 bool is_initialized;
altb2 6:9ebeffe446e4 53 void find_index(void);
altb2 12:8ea956a5c1d8 54 PID_Cntrl v_cntrl[2];
altb2 6:9ebeffe446e4 55 Unwrapper_2pi uw2pi1;
altb2 6:9ebeffe446e4 56 Unwrapper_2pi uw2pi2;
altb2 7:942fd77d5e19 57 float pos_cntrl(float);
altb2 7:942fd77d5e19 58 float Kv;
altb2 7:942fd77d5e19 59 DigitalOut dout1;
altb2 5:768e10f6d372 60 };