Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: Control/ControllerManager.cpp
- Revision:
- 20:6fbf1f50abda
- Parent:
- 12:8e39bb45c61c
- Child:
- 26:a53c3208ac35
--- a/Control/ControllerManager.cpp Wed May 11 03:02:10 2016 +0000 +++ b/Control/ControllerManager.cpp Mon May 30 07:19:34 2016 +0000 @@ -1,7 +1,6 @@ #include "mbed.h" #include "Global.h" #include "ControllerManager.h" -#include "Joystick.h" #include "Trim.h" /* @@ -12,7 +11,7 @@ ControllerManager::ControllerManager(PinName h, PinName v, PinName hTrimup, PinName hTrimdown) - : controller(NC, h, v), pitchtrim(hTrimup, hTrimdown){ + : controllerH(h), controllerV(v), pitchtrim(hTrimup, hTrimdown){ maxpitch = Global::getmaxpitch(); minpitch = Global::getminpitch(); maxyaw = Global::getmaxyaw(); @@ -60,8 +59,8 @@ Global::setpitch(getpitch()); Global::setyaw(getyaw()); - Global::setpitchdegree(controller.getV());//生データであることに注意 - Global::setyawdegree(controller.getH());//生データであることに注意 + Global::setpitchdegree(controllerV.read());//生データであることに注意 + Global::setyawdegree(controllerH.read());//生データであることに注意 Global::setinttrimpitch(pitchtrim.getint()); } @@ -78,19 +77,20 @@ return value; } } + //ニュートラル基準でピッチ、ヨーとも[-1,1]となるような値を返す(neutraldegreeの値をとったとき0を返す) double ControllerManager::pitchratio(){ - if(controller.getV() < neutralpitchdegree){ - return clamp((controller.getV() - neutralpitchdegree) / (neutralpitchdegree - minpitchdegree), -1, 0); + if(controllerV.read() < neutralpitchdegree){ + return clamp((controllerV.read() - neutralpitchdegree) / (neutralpitchdegree - minpitchdegree), -1, 0); }else{ - return clamp((controller.getV() - neutralpitchdegree) / (maxpitchdegree - neutralpitchdegree), 0, 1); + return clamp((controllerV.read() - neutralpitchdegree) / (maxpitchdegree - neutralpitchdegree), 0, 1); } } double ControllerManager::yawratio(){ - if(controller.getH() < neutralyawdegree){ - return clamp((controller.getH() - neutralyawdegree) / (neutralyawdegree - minyawdegree), -1, 0); + if(controllerH.read() < neutralyawdegree){ + return clamp((controllerH.read() - neutralyawdegree) / (neutralyawdegree - minyawdegree), -1, 0); }else{ - return clamp((controller.getH() - neutralyawdegree) / (maxyawdegree - neutralyawdegree), 0, 1); + return clamp((controllerH.read() - neutralyawdegree) / (maxyawdegree - neutralyawdegree), 0, 1); } } @@ -147,7 +147,7 @@ //ここでtrim値を加える -double ControllerManager::getpitch(){ +double ControllerManager::getpitch(){//trim値を加えた結果maxminを超えないようにclamp return clamp(doublepitch(pitchratio())+pitchtrim.get(Global::gettrimpitchrate()), minpitch, maxpitch); } double ControllerManager::getyaw(){