2月25日
Dependencies: Encoder
Dependents: NHK2020-m2-2-ros_2_25
Diff: SpeedController.h
- Revision:
- 4:ee0ac8415639
- Parent:
- 3:58a298386879
- Child:
- 5:fddbe92ca86f
--- a/SpeedController.h Fri Aug 09 06:28:06 2019 +0000 +++ b/SpeedController.h Fri Aug 09 07:15:35 2019 +0000 @@ -24,7 +24,7 @@ double initial_Db_; double duty_limit_; Ec *ec_; - + public: PwmOut pwm_F_; PwmOut pwm_B_; @@ -45,6 +45,31 @@ * 負の数を代入すれば逆回転することができる * * @param target_omega 目標角速度 + * @section SAMPLE + * @code + * //プログラム例 + * #include "mbed.h" + * #include "EC.h" //Encoderライブラリをインクルード + * #include "SpeedController.h" //SpeedControlライブラリをインクルード + * #define RESOLUTION 500 + * Ec4multi EC(p11,p12,RESOLUTION); + * SpeedControl motor(p21,p22,50,EC); + * int main(){ + * motor.setEquation(0.0062,0.0045,-0.0061,0.0091); //求めたC,Dの値を設定 + * motor.setPDparam(0.1,0.0); //PIDの係数を設定 + * int kai=0; + * for(int i=0;i<100000000;i++){ + * motor.Sc(10); //10[rad/s]でモーターを回転 + * kai++; + * if(kai>1000){ + * printf("omega=%f\r\n",EC.getOmega()); + * kai=0; + * } + * } + * motor.stop() + * while(1); + * } + * @endcode * * @section CAUTION(printfについて) * printfはプログラム的に大きな負担がかかり、かなり時間がかかってしまうものである。 @@ -84,7 +109,7 @@ void setEquation(double cf,double df,double cb,double db); /** 出力duty比の上限を決める関数 * 0 ~ 0.95の範囲内で設定する - * @param duty_limit 出力duty比の上限 + * @param duty_limit 出力duty比の上限 */ void setDutyLimit(double duty_limit); @@ -95,6 +120,27 @@ /** duty(-1 ~ 1)比でモーターを回転させる関数 * 負の値を入れたら逆回転する * @param duty 出力duty比 + * @section SAMPLE + * @code + * #include "mbed.h" + * #include "EC.h" //Encoderライブラリをインクルード + * #include "SpeedController.h" //SpeedControlライブラリをインクルード + * #define RESOLUTION 500 + * Ec4multi EC(p11,p12,RESOLUTION); + * SpeedControl motor(p21,p22,50,EC); + * int main(){ + * while(1){ + * motor.turn(0.5); + * wait(1); + * motor.turn(0); + * wait(1); + * motor.turn(-0.5); + * wait(1); + * motor.turn(0); + * wait(1); + * } + * } + * @endcode */ void turn(double duty); ///Encoderや速度制御の値をresetする関数