2022_Ateam_MOTORprogramをscrp_slaveでメインマイコンからコントローラー状況を読み取れるように改良。 また、モータに0以外のpwmが送られている場合に基盤付属のledが点灯するようにした。
Dependencies: SBDBT arrc_mbed BNO055
PIDco.hpp@12:894e5ac49810, 2022-04-08 (annotated)
- Committer:
- guesta
- Date:
- Fri Apr 08 07:35:55 2022 +0000
- Revision:
- 12:894e5ac49810
- Parent:
- 10:ad8fced7d6b6
2022/04/08;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kazumayamanaka | 0:a1238c4cd105 | 1 | #ifndef PID_CO_H |
kazumayamanaka | 0:a1238c4cd105 | 2 | #define PID_CO_H |
kazumayamanaka | 0:a1238c4cd105 | 3 | #include "mbed.h" |
kazumayamanaka | 0:a1238c4cd105 | 4 | |
guesta | 5:1a850f68a06c | 5 | //#define Kp 0.0001 |
guesta | 5:1a850f68a06c | 6 | //#define Ki 0.0000014 |
guesta | 5:1a850f68a06c | 7 | //#define Kd 0.0000001 |
kazumayamanaka | 0:a1238c4cd105 | 8 | #define co (108 * 3.1415926535897) / 500 |
kazumayamanaka | 0:a1238c4cd105 | 9 | |
kazumayamanaka | 0:a1238c4cd105 | 10 | |
kazumayamanaka | 0:a1238c4cd105 | 11 | class PIDco{ |
kazumayamanaka | 0:a1238c4cd105 | 12 | |
kazumayamanaka | 0:a1238c4cd105 | 13 | public://use in main.cpp |
kazumayamanaka | 0:a1238c4cd105 | 14 | PIDco(); |
kazumayamanaka | 0:a1238c4cd105 | 15 | double obt_spd(); |
guesta | 7:a0375e6dc8ca | 16 | double output; |
guesta | 5:1a850f68a06c | 17 | void pass_val(double PULSE,double TARGET,double p_gain,double i_gain,double d_gain); |
guesta | 10:ad8fced7d6b6 | 18 | void wheel_ctl(PinName PIN_A,PinName PIN_B,double Regulation); |
guesta | 10:ad8fced7d6b6 | 19 | void pid_ctl(double now_angle,double target_angle,double p_gain,double i_gain,double d_gain); |
kazumayamanaka | 0:a1238c4cd105 | 20 | |
kazumayamanaka | 0:a1238c4cd105 | 21 | private: |
kazumayamanaka | 0:a1238c4cd105 | 22 | void cal_spd(); |
kazumayamanaka | 0:a1238c4cd105 | 23 | void cal_Error(); |
kazumayamanaka | 0:a1238c4cd105 | 24 | void renew_Error(); |
kazumayamanaka | 0:a1238c4cd105 | 25 | void cal_Pval(); |
kazumayamanaka | 0:a1238c4cd105 | 26 | void cal_Ival(); |
kazumayamanaka | 0:a1238c4cd105 | 27 | void cal_Dval(); |
kazumayamanaka | 0:a1238c4cd105 | 28 | void cal_pwm(); |
kazumayamanaka | 0:a1238c4cd105 | 29 | |
kazumayamanaka | 0:a1238c4cd105 | 30 | double spd; |
kazumayamanaka | 0:a1238c4cd105 | 31 | double Target,Error_a,Error_b; |
kazumayamanaka | 0:a1238c4cd105 | 32 | double Pval,Ival,Dval,Pwm; |
kazumayamanaka | 0:a1238c4cd105 | 33 | double Integral,dt; |
kazumayamanaka | 0:a1238c4cd105 | 34 | double diff,pulse_a,pulse_b; |
kazumayamanaka | 0:a1238c4cd105 | 35 | double v1p_set,v1m_set; |
guesta | 5:1a850f68a06c | 36 | double Kp; |
guesta | 5:1a850f68a06c | 37 | double Ki; |
guesta | 5:1a850f68a06c | 38 | double Kd; |
guesta | 12:894e5ac49810 | 39 | |
guesta | 12:894e5ac49810 | 40 | |
kazumayamanaka | 0:a1238c4cd105 | 41 | }; |
kazumayamanaka | 0:a1238c4cd105 | 42 | |
kazumayamanaka | 0:a1238c4cd105 | 43 | #endif |
kazumayamanaka | 0:a1238c4cd105 | 44 | |
kazumayamanaka | 0:a1238c4cd105 | 45 | |
kazumayamanaka | 0:a1238c4cd105 | 46 | |
kazumayamanaka | 0:a1238c4cd105 | 47 | |
kazumayamanaka | 0:a1238c4cd105 | 48 | |
kazumayamanaka | 0:a1238c4cd105 | 49 |