kani

Dependencies:   2017NHKpin_config FEP omni_wheel PID R1307 ikarashiMDC

classDiagram

    \ ̄\                   / ̄/ 
/l     \  \             /  / lヽ  
| ヽ  ヽ   |           |  /  / | 
\ ` ‐ヽ  ヽ  ●        ●         /  / ‐  / 
  \ __ l  |  ||___|| /  l __ / 
     \  \ /      \/ 
      /\|   人__人  |/\    <ズワイガニ  
    //\|             |/\\     
    //\|   ケガニ            |/\\     
    /     . \_____/         \ 

                               ┏┓        ┏━┓┏┓              
     ┏┓         ┏┓┏┓   ┏┓    ┏┓┗┛     ┏┓ ┗┓┃┗┛              
┏┛┗━┓  ┃┃┃┃    ┃┃┏━┛┗┓┏┓┏┛┗━┓┃┃┏┓┏┓┏━━━┓ 
┗┓┏━┛  ┃┃┗┛    ┃┃┗━┓┏┛┗┛┗┓┏┓┃┗┛┗┛┃┃┗━━━┛    
┏┛┃┏━┓┃┗━━┓┃┃┏━┛┗┓      ┏┛┃┃┃        ┃┃              
┃┏┛┗━┛┗━━┓┃┃┃┃┏┓┏┛      ┗━┛┃┃        ┃┃┏┓          
┃┃┏━━┓┏━━┛┃┃┃┃┗┛┃         ┏┛┃        ┃┃┃┗━━┓    
┗┛┗━━┛┗━━━┛┗┛┗━━┛         ┗━┛        ┗┛┗━━━┛  
Revision:
1:845af5425eec
Child:
3:369d9ee17e84
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bot/PIDcontroller/PID_controller.h	Tue Sep 05 16:11:20 2017 +0900
@@ -0,0 +1,79 @@
+/**
+* @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"
+
+// const double M_PI = 3.141592653589793;
+const double KC = 5.0;
+const double TI = 0.0;
+const double TD = 0.0;
+const float INTERVAL  = 0.05;
+const float INPUT_LIMIT = 180.0;
+const float OUTPUT_LIMIT = 0.4;
+const float 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() const;
+    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