Yosuke Kirihata / Mbed 2 deprecated Nucleo_CaitSith_Firmware_added_delayServo

Dependencies:   mbed

Fork of Nucleo_CaitSith_Firmware by Yosuke Kirihata

Committer:
YosukeK
Date:
Sat Feb 28 12:02:38 2015 +0000
Revision:
6:a3829299dfd5
Parent:
3:9ac9fdf1856e
Roomba??

Who changed what in which revision?

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