Yosuke Kirihata / Mbed 2 deprecated Nucleo_extended_servo

Dependencies:   mbed

Committer:
YosukeK
Date:
Sun Oct 26 05:12:20 2014 +0000
Revision:
6:8364e8639b4e
Parent:
5:8223f5a154e2
Fixed bug of moveServo(): reverse angle caluculation is wrong.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
YosukeK 0:916047fa0d8b 1 #ifndef __EXTENDEDSERVO_H__
YosukeK 0:916047fa0d8b 2 #define __EXTENDEDSERVO_H__
YosukeK 0:916047fa0d8b 3
YosukeK 0:916047fa0d8b 4 #include "PwmServo.h"
YosukeK 0:916047fa0d8b 5
YosukeK 5:8223f5a154e2 6 /**
YosukeK 5:8223f5a154e2 7 * 拡張サーボクラス
YosukeK 5:8223f5a154e2 8 * サーボに任意の原点、方向、角度の上下限を設定するクラス
YosukeK 5:8223f5a154e2 9 * @author yosuke kirihata
YosukeK 5:8223f5a154e2 10 */
YosukeK 3:198ec91cec19 11 class ExtendedServo : public PwmServo
YosukeK 0:916047fa0d8b 12 {
YosukeK 0:916047fa0d8b 13 public:
YosukeK 5:8223f5a154e2 14 /**
YosukeK 5:8223f5a154e2 15 * コンストラクタ
YosukeK 5:8223f5a154e2 16 */
YosukeK 0:916047fa0d8b 17 ExtendedServo(PinName pin);
YosukeK 5:8223f5a154e2 18
YosukeK 5:8223f5a154e2 19 /**
YosukeK 5:8223f5a154e2 20 * コンストラクタ
YosukeK 5:8223f5a154e2 21 */
YosukeK 0:916047fa0d8b 22 ExtendedServo(PinName pin, int upperLimit , int lowerLimit);
YosukeK 5:8223f5a154e2 23
YosukeK 5:8223f5a154e2 24 /**
YosukeK 5:8223f5a154e2 25 * コンストラクタ
YosukeK 5:8223f5a154e2 26 */
YosukeK 0:916047fa0d8b 27 ExtendedServo(PinName pin, int upperLimitAngle ,int lowerLimitAngle,
YosukeK 1:74a29b62a144 28 int offsetAngle, bool isReverse);
YosukeK 5:8223f5a154e2 29 /**
YosukeK 5:8223f5a154e2 30 * デストラクタ
YosukeK 5:8223f5a154e2 31 */
YosukeK 0:916047fa0d8b 32 ~ExtendedServo();
YosukeK 5:8223f5a154e2 33
YosukeK 0:916047fa0d8b 34 //setter,getter
YosukeK 0:916047fa0d8b 35 void setOffsetAngle(int angle);
YosukeK 0:916047fa0d8b 36 int getOffsetAngle();
YosukeK 0:916047fa0d8b 37 void setDirection(bool isReverse);
YosukeK 6:8364e8639b4e 38 bool getDirection();
YosukeK 0:916047fa0d8b 39 void setUpperLimit(int angle);
YosukeK 0:916047fa0d8b 40 int getUpperLimit();
YosukeK 0:916047fa0d8b 41 void setLowerLimit(int angle);
YosukeK 0:916047fa0d8b 42 int getLowerLimit();
YosukeK 5:8223f5a154e2 43
YosukeK 5:8223f5a154e2 44 /**
YosukeK 5:8223f5a154e2 45 * 角度変換
YosukeK 5:8223f5a154e2 46 * @param angle 角度
YosukeK 5:8223f5a154e2 47 * @return
YosukeK 5:8223f5a154e2 48 */
YosukeK 0:916047fa0d8b 49 int convertAngle(int angle);
YosukeK 5:8223f5a154e2 50
YosukeK 5:8223f5a154e2 51 /**
YosukeK 5:8223f5a154e2 52 * 角度反転
YosukeK 5:8223f5a154e2 53 * @param angle 角度
YosukeK 5:8223f5a154e2 54 * @param isReverse 方向フラグ
YosukeK 5:8223f5a154e2 55 * @return
YosukeK 5:8223f5a154e2 56 */
YosukeK 0:916047fa0d8b 57 int reverseAngle(int angle, bool isReverse);
YosukeK 5:8223f5a154e2 58
YosukeK 5:8223f5a154e2 59 /**
YosukeK 5:8223f5a154e2 60 * 角度設定
YosukeK 5:8223f5a154e2 61 * @param angle 目標角度
YosukeK 5:8223f5a154e2 62 * @return
YosukeK 5:8223f5a154e2 63 */
YosukeK 0:916047fa0d8b 64 int roundAngle(int angle, int upperLimit, int lowerLimit);
YosukeK 5:8223f5a154e2 65
YosukeK 5:8223f5a154e2 66 /**
YosukeK 5:8223f5a154e2 67 * 角度設定
YosukeK 5:8223f5a154e2 68 * @param angle 目標角度
YosukeK 5:8223f5a154e2 69 */
YosukeK 0:916047fa0d8b 70 void setAngle(int angle);
YosukeK 5:8223f5a154e2 71
YosukeK 5:8223f5a154e2 72 /**
YosukeK 5:8223f5a154e2 73 * 原点回帰
YosukeK 5:8223f5a154e2 74 */
YosukeK 0:916047fa0d8b 75 void backToStartPoint();
YosukeK 0:916047fa0d8b 76
YosukeK 0:916047fa0d8b 77 private:
YosukeK 5:8223f5a154e2 78 int mOffsetAngle; /** @brief 角度のオフセット値 */
YosukeK 5:8223f5a154e2 79 bool mIsReverse; /** @brief 方向フラグ */
YosukeK 5:8223f5a154e2 80 int mUpperLimit; /** @brief 角度上限値 */
YosukeK 5:8223f5a154e2 81 int mLowerLimit; /** @brief 角度下限値 */
YosukeK 0:916047fa0d8b 82 };
YosukeK 0:916047fa0d8b 83
YosukeK 0:916047fa0d8b 84 #endif /* __EXTENDEDSERVO_H__ */