The function library of serial servo controller
Dependents: DR-ArmServoTest ros_button_2021 DR-ArmServoTest
LSCServo.h@2:acaaf1126d76, 2021-06-03 (annotated)
- Committer:
- stivending
- Date:
- Thu Jun 03 04:56:29 2021 +0000
- Revision:
- 2:acaaf1126d76
- Parent:
- 1:1398d9ddd4ef
add moveServos func
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
howanglam3 | 0:3b51e0118f2b | 1 | #ifndef LSC_SERVO |
howanglam3 | 0:3b51e0118f2b | 2 | #define LSC_SERVO |
howanglam3 | 0:3b51e0118f2b | 3 | //from mbed |
howanglam3 | 0:3b51e0118f2b | 4 | #include "mbed.h" |
howanglam3 | 0:3b51e0118f2b | 5 | //from ros |
howanglam3 | 0:3b51e0118f2b | 6 | #include "BufferedSerial.h" |
howanglam3 | 0:3b51e0118f2b | 7 | |
howanglam3 | 0:3b51e0118f2b | 8 | #include <vector> |
howanglam3 | 0:3b51e0118f2b | 9 | |
howanglam3 | 0:3b51e0118f2b | 10 | #define LOBOT_SERVO_FRAME_HEADER 0x55 |
howanglam3 | 0:3b51e0118f2b | 11 | #define LOBOT_SERVO_MOVE_TIME_WRITE 1 |
howanglam3 | 0:3b51e0118f2b | 12 | |
howanglam3 | 0:3b51e0118f2b | 13 | using namespace std; |
howanglam3 | 0:3b51e0118f2b | 14 | |
howanglam3 | 0:3b51e0118f2b | 15 | |
howanglam3 | 0:3b51e0118f2b | 16 | class LSCServo { |
howanglam3 | 1:1398d9ddd4ef | 17 | public: |
howanglam3 | 0:3b51e0118f2b | 18 | BufferedSerial serial; |
howanglam3 | 1:1398d9ddd4ef | 19 | void receive_buffer(char* destination, int length); |
howanglam3 | 0:3b51e0118f2b | 20 | LSCServo(PinName tx, PinName rx, uint32_t buf_size = 256, uint32_t tx_multiple = 4,const char* name=NULL); |
howanglam3 | 0:3b51e0118f2b | 21 | virtual ~LSCServo(); |
howanglam3 | 0:3b51e0118f2b | 22 | void LobotSerialoneServoMove(uint16_t id, int16_t position, uint16_t time); //control one serial servo move dedicated position |
howanglam3 | 0:3b51e0118f2b | 23 | void LobotSerialServoMove(vector<uint16_t> id, vector<int16_t> position, uint16_t time); //control list of serial servo move dedicated position |
howanglam3 | 0:3b51e0118f2b | 24 | void LobotSerialActionGroupRun(uint16_t id, uint16_t count);//Run Action Group in multiple time, 0 == infinity |
howanglam3 | 0:3b51e0118f2b | 25 | void LobotSerialActionGroupSpeed(uint16_t id, uint16_t speed);//Set Run speed Action Group in XXX%, 0xFF for all |
howanglam3 | 0:3b51e0118f2b | 26 | int LobotSerialGetBatteryVoltage();//get voltage of board in terms of mV |
howanglam3 | 0:3b51e0118f2b | 27 | void LobotSerialActionGroupStop();//Stop current action group |
stivending | 2:acaaf1126d76 | 28 | void LSCServo::moveServos(uint8_t Num, uint16_t Time, ...); |
howanglam3 | 0:3b51e0118f2b | 29 | }; |
howanglam3 | 0:3b51e0118f2b | 30 | #endif |