NHK2017Ateamかにろぼ
Dependencies: 2017NHKpin_config mbed FEP HMC6352 MotorDriverController PID QEI omni
\ ̄\ / ̄/ /l \ \ / / lヽ | ヽ ヽ | | / / | \ ` ‐ヽ ヽ ● ● / / ‐ / \ __ l | ||___|| / l __ / \ \ / \/ /\| 人__人 |/\ //\| |/\\ //\| |/\\ / . \_____/ \ ┏┓ ┏━┓┏┓ ┏┓ ┏┓┏┓ ┏┓ ┏┓┗┛ ┏┓ ┗┓┃┗┛ ┏┛┗━┓ ┃┃┃┃ ┃┃┏━┛┗┓┏┓┏┛┗━┓┃┃┏┓┏┓┏━━━┓ ┗┓┏━┛ ┃┃┗┛ ┃┃┗━┓┏┛┗┛┗┓┏┓┃┗┛┗┛┃┃┗━━━┛ ┏┛┃┏━┓┃┗━━┓┃┃┏━┛┗┓ ┏┛┃┃┃ ┃┃ ┃┏┛┗━┛┗━━┓┃┃┃┃┏┓┏┛ ┗━┛┃┃ ┃┃┏┓ ┃┃┏━━┓┏━━┛┃┃┃┃┗┛┃ ┏┛┃ ┃┃┃┗━━┓ ┗┛┗━━┛┗━━━┛┗┛┗━━┛ ┗━┛ ┗┛┗━━━┛
bot/PIDcontroller/PID_controller.h
- Committer:
- uchitake
- Date:
- 2017-09-04
- Revision:
- 21:b2c1d73b0ee9
- Parent:
- 19:3a62cbc6fee9
- Child:
- 22:bb6afe7332c3
File content as of revision 21:b2c1d73b0ee9:
/** * @file PID_controller.h * @brief コンパスセンサを使ったPIDコントローラ * * Example : * @code * #include "mbed.h" * #include "PID_controller.h" * * PIDC pidc; * * int main() * { * while(1) { * pidc.confirm(); * pc.printf("Hi, %f\r\n", pid.getCo()); * } * } * @endcode */ #ifndef PID_CONTROLLER_H #define PID_CONTROLLER_H #include "mbed.h" #include "pin_config.h" #include "PID.h" #include "HMC6352.h" #define M_PI 3.141592653589793 #define KC 5.0 #define TI 0.0 #define TD 0.0 #define INTERVAL 0.05 #define INPUT_LIMIT 180 #define OUTPUT_LIMIT 0.4 #define BIAS 0.0 /** * @brief コンパスセンサを使ったPIDコントローラ */ class PIDC : public PID, HMC6352, Ticker { public : /** * @brief defaultコンストラクタ,タイマ割り込みでの計算開始 */ PIDC(); /** * @brief コンストラクタ * @param sda sda HMC6352 * @param scl scl HMC6352 * @param kc KC * @param ti TI * @param td TD * @param interval interval */ PIDC(PinName sda, PinName scl, float kc, float ti, float td, float interval); void confirm(); float getCo(); void calibration(int mode); private : void updateOutput(); int rawDegree; int offSetDegree; int turnOverNumber; int beforeDegree; protected : float co; float processValue; int initDegree; }; #endif//PID_CONTROLLER_H