Roger Weng
/
MX106_Servo
MX106 servo control
main.cpp@0:1c2a151939d0, 2016-07-23 (annotated)
- Committer:
- roger5641
- Date:
- Sat Jul 23 13:52:03 2016 +0000
- Revision:
- 0:1c2a151939d0
MX106 practicing
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
roger5641 | 0:1c2a151939d0 | 1 | #include "mbed.h" |
roger5641 | 0:1c2a151939d0 | 2 | #include "Mx28.h" |
roger5641 | 0:1c2a151939d0 | 3 | |
roger5641 | 0:1c2a151939d0 | 4 | |
roger5641 | 0:1c2a151939d0 | 5 | #define SERVO_ID 0x01 // ID of which we will set Dynamixel too |
roger5641 | 0:1c2a151939d0 | 6 | #define SERVO_ControlPin D11 // Control pin of buffer chip, NOTE: this does not matter becasue we are not using a half to full contorl buffer. |
roger5641 | 0:1c2a151939d0 | 7 | #define SERVO_SET_Baudrate 115200 // Baud rate speed which the Dynamixel will be set too (1Mbps) |
roger5641 | 0:1c2a151939d0 | 8 | #define TxPin D10 |
roger5641 | 0:1c2a151939d0 | 9 | #define RxPin D2 |
roger5641 | 0:1c2a151939d0 | 10 | #define CW_LIMIT_ANGLE 0x001 // lowest clockwise angle is 1, as when set to 0 it set servo to wheel mode |
roger5641 | 0:1c2a151939d0 | 11 | #define CCW_LIMIT_ANGLE 0xFFF // Highest anit-clockwise angle is 0XFFF, as when set to 0 it set servo to wheel mode |
roger5641 | 0:1c2a151939d0 | 12 | |
roger5641 | 0:1c2a151939d0 | 13 | DynamixelClass dynamixelClass(SERVO_SET_Baudrate,SERVO_ControlPin,TxPin,RxPin); |
roger5641 | 0:1c2a151939d0 | 14 | |
roger5641 | 0:1c2a151939d0 | 15 | int main() |
roger5641 | 0:1c2a151939d0 | 16 | { |
roger5641 | 0:1c2a151939d0 | 17 | dynamixelClass.setMode(SERVO_ID, SERVO, CW_LIMIT_ANGLE, CCW_LIMIT_ANGLE); // set mode to SERVO and set angle limits |
roger5641 | 0:1c2a151939d0 | 18 | |
roger5641 | 0:1c2a151939d0 | 19 | while(1) |
roger5641 | 0:1c2a151939d0 | 20 | { |
roger5641 | 0:1c2a151939d0 | 21 | dynamixelClass.ledState(SERVO_ID, ON); |
roger5641 | 0:1c2a151939d0 | 22 | dynamixelClass.servo(SERVO_ID,0x001,0x040); // Move servo to angle 1(0.088 degree) at speed 100 |
roger5641 | 0:1c2a151939d0 | 23 | wait(8); |
roger5641 | 0:1c2a151939d0 | 24 | |
roger5641 | 0:1c2a151939d0 | 25 | dynamixelClass.ledState(SERVO_ID, OFF); |
roger5641 | 0:1c2a151939d0 | 26 | dynamixelClass.servo(SERVO_ID,0xFFF,0x3FF); // Move servo to max angle at max speed |
roger5641 | 0:1c2a151939d0 | 27 | wait(5); |
roger5641 | 0:1c2a151939d0 | 28 | } |
roger5641 | 0:1c2a151939d0 | 29 | } |