A library for a servo controlled pan tilt
PanTilt.hpp@1:880e551fa457, 2017-10-21 (annotated)
- 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?
User | Revision | Line number | New 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 |