A library for a servo controlled pan tilt

Committer:
Cornelius Bezuidenhout
Date:
Sat Oct 21 22:26:13 2017 +0200
Revision:
1:880e551fa457
Parent:
0:624433cd59dd
Initial version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Cornelius Bezuidenhout 1:880e551fa457 1 #ifndef _PANTILT_
Cornelius Bezuidenhout 1:880e551fa457 2 #define _PANTILT_
Cornelius Bezuidenhout 1:880e551fa457 3
Cornelius Bezuidenhout 1:880e551fa457 4 #include "mbed.h"
Cornelius Bezuidenhout 1:880e551fa457 5
Cornelius Bezuidenhout 1:880e551fa457 6 /**
Cornelius Bezuidenhout 1:880e551fa457 7 * Library for a sevo controlled pan tilt
Cornelius Bezuidenhout 1:880e551fa457 8 *
Cornelius Bezuidenhout 1:880e551fa457 9 * @author CA Bezuidenhout
Cornelius Bezuidenhout 1:880e551fa457 10 */
Cornelius Bezuidenhout 1:880e551fa457 11 class PanTilt {
Cornelius Bezuidenhout 1:880e551fa457 12
Cornelius Bezuidenhout 1:880e551fa457 13 public:
Cornelius Bezuidenhout 1:880e551fa457 14 /**
Cornelius Bezuidenhout 1:880e551fa457 15 * @param panPin : PWM pin of pan servo
Cornelius Bezuidenhout 1:880e551fa457 16 * @param tiltPin : PWM pin of tilt servo
Cornelius Bezuidenhout 1:880e551fa457 17 */
Cornelius Bezuidenhout 1:880e551fa457 18 PanTilt(PinName panPin, PinName tiltName);
Cornelius Bezuidenhout 1:880e551fa457 19
Cornelius Bezuidenhout 1:880e551fa457 20 /**
Cornelius Bezuidenhout 1:880e551fa457 21 * Sets pan, tilt angles in degrees
Cornelius Bezuidenhout 1:880e551fa457 22 * @param pan : Pan angle in degrees
Cornelius Bezuidenhout 1:880e551fa457 23 * @param tilt : Tilt angle in degrees
Cornelius Bezuidenhout 1:880e551fa457 24 */
Cornelius Bezuidenhout 1:880e551fa457 25 void Set(float pan, float tilt);
Cornelius Bezuidenhout 1:880e551fa457 26
Cornelius Bezuidenhout 1:880e551fa457 27 /**
Cornelius Bezuidenhout 1:880e551fa457 28 * Sets the pan angle in degrees
Cornelius Bezuidenhout 1:880e551fa457 29 * @param pan : Pan angle in degrees
Cornelius Bezuidenhout 1:880e551fa457 30 */
Cornelius Bezuidenhout 1:880e551fa457 31 void SetPan(float pan);
Cornelius Bezuidenhout 1:880e551fa457 32
Cornelius Bezuidenhout 1:880e551fa457 33 /**
Cornelius Bezuidenhout 1:880e551fa457 34 * Sets tilt angle in degrees
Cornelius Bezuidenhout 1:880e551fa457 35 * @param tilt : Tilt angle in degrees
Cornelius Bezuidenhout 1:880e551fa457 36 */
Cornelius Bezuidenhout 1:880e551fa457 37 void SetTilt(float tilt);
Cornelius Bezuidenhout 1:880e551fa457 38
Cornelius Bezuidenhout 1:880e551fa457 39 /**
Cornelius Bezuidenhout 1:880e551fa457 40 * Moves the pan, tilt with specified degrees relative to current position
Cornelius Bezuidenhout 1:880e551fa457 41 * @param pan : Relative pan angle in degrees
Cornelius Bezuidenhout 1:880e551fa457 42 * @param tilt : Relative tilt angle in degrees
Cornelius Bezuidenhout 1:880e551fa457 43 */
Cornelius Bezuidenhout 1:880e551fa457 44 void Move(float pan, float tilt);
Cornelius Bezuidenhout 1:880e551fa457 45
Cornelius Bezuidenhout 1:880e551fa457 46 /**
Cornelius Bezuidenhout 1:880e551fa457 47 * Moves the pan with specified degrees relative to current position
Cornelius Bezuidenhout 1:880e551fa457 48 * @param pan : Relative pan angle in degrees
Cornelius Bezuidenhout 1:880e551fa457 49 */
Cornelius Bezuidenhout 1:880e551fa457 50 void MovePan(float pan, float tilt);
Cornelius Bezuidenhout 1:880e551fa457 51
Cornelius Bezuidenhout 1:880e551fa457 52 /**
Cornelius Bezuidenhout 1:880e551fa457 53 * Moves the tilt with specified degrees relative to current position
Cornelius Bezuidenhout 1:880e551fa457 54 * @param tilt : Relative tilt angle in degrees
Cornelius Bezuidenhout 1:880e551fa457 55 */
Cornelius Bezuidenhout 1:880e551fa457 56 void MoveTilt(float pan, float tilt);
Cornelius Bezuidenhout 1:880e551fa457 57
Cornelius Bezuidenhout 1:880e551fa457 58 float GetPan();
Cornelius Bezuidenhout 1:880e551fa457 59 float GetTilt();
Cornelius Bezuidenhout 1:880e551fa457 60
Cornelius Bezuidenhout 1:880e551fa457 61 void Off();
Cornelius Bezuidenhout 1:880e551fa457 62 void PanOff();
Cornelius Bezuidenhout 1:880e551fa457 63 void TiltOff();
Cornelius Bezuidenhout 1:880e551fa457 64
Cornelius Bezuidenhout 1:880e551fa457 65 void SetZero(float panZero, float tiltZero);
Cornelius Bezuidenhout 1:880e551fa457 66 void SetPanZero(float panZero);
Cornelius Bezuidenhout 1:880e551fa457 67 void SetTiltZero(float tiltZero);
Cornelius Bezuidenhout 1:880e551fa457 68
Cornelius Bezuidenhout 1:880e551fa457 69 void SetMin(float panMin, float tiltMin);
Cornelius Bezuidenhout 1:880e551fa457 70 void SetPanMin(float panMin);
Cornelius Bezuidenhout 1:880e551fa457 71 void SetTiltMin(float tiltMin);
Cornelius Bezuidenhout 1:880e551fa457 72
Cornelius Bezuidenhout 1:880e551fa457 73 float GetPanMin();
Cornelius Bezuidenhout 1:880e551fa457 74 float GetTiltMin();
Cornelius Bezuidenhout 1:880e551fa457 75
Cornelius Bezuidenhout 1:880e551fa457 76 float GetPanMax();
Cornelius Bezuidenhout 1:880e551fa457 77 float GetTiltMax();
Cornelius Bezuidenhout 1:880e551fa457 78
Cornelius Bezuidenhout 1:880e551fa457 79 private:
Cornelius Bezuidenhout 1:880e551fa457 80 Servo _panServo;
Cornelius Bezuidenhout 1:880e551fa457 81 Servo _tiltServo;
Cornelius Bezuidenhout 1:880e551fa457 82 };
Cornelius Bezuidenhout 1:880e551fa457 83 #endif