Telesensorics / AX-12A

Dependents:   RobotArmDemo

Fork of AX-12A by robot arm demo team

Committer:
jepickett
Date:
Thu Dec 10 21:45:59 2015 +0000
Revision:
0:1a48094c99d1
Child:
1:d7642b2e155d
Initial check in for AX-12A servo. Depends on the dynamixel bus protocol library.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jepickett 0:1a48094c99d1 1 /* mbed AX-12+ Servo Library - External hardware version */
jepickett 0:1a48094c99d1 2
jepickett 0:1a48094c99d1 3 #include "AX12.h"
jepickett 0:1a48094c99d1 4 #include "mbed.h"
jepickett 0:1a48094c99d1 5
jepickett 0:1a48094c99d1 6 AX12::AX12( DynamixelBus* pbus, ServoId ID)
jepickett 0:1a48094c99d1 7 {
jepickett 0:1a48094c99d1 8 _pbus = pbus;
jepickett 0:1a48094c99d1 9 _ID = ID;
jepickett 0:1a48094c99d1 10 }
jepickett 0:1a48094c99d1 11
jepickett 0:1a48094c99d1 12 /*****/
jepickett 0:1a48094c99d1 13
jepickett 0:1a48094c99d1 14 StatusCode AX12::Ping()
jepickett 0:1a48094c99d1 15 {
jepickett 0:1a48094c99d1 16 return _pbus->Ping(_ID);
jepickett 0:1a48094c99d1 17 }
jepickett 0:1a48094c99d1 18
jepickett 0:1a48094c99d1 19 /*****/
jepickett 0:1a48094c99d1 20
jepickett 0:1a48094c99d1 21 StatusCode AX12::SetGoal(float degrees)
jepickett 0:1a48094c99d1 22 {
jepickett 0:1a48094c99d1 23 short goal = (short)((1023.0f * degrees) / 300.0f);
jepickett 0:1a48094c99d1 24
jepickett 0:1a48094c99d1 25 CommBuffer data;
jepickett 0:1a48094c99d1 26 data.push_back( goal & 0xff );
jepickett 0:1a48094c99d1 27 data.push_back( goal >> 8 );
jepickett 0:1a48094c99d1 28
jepickett 0:1a48094c99d1 29 // write the packet, return the error code
jepickett 0:1a48094c99d1 30 int offset = GoalPositionL;
jepickett 0:1a48094c99d1 31 return _pbus->Write(_ID, offset, data);
jepickett 0:1a48094c99d1 32 }
jepickett 0:1a48094c99d1 33
jepickett 0:1a48094c99d1 34 /*****/
jepickett 0:1a48094c99d1 35
jepickett 0:1a48094c99d1 36 bool IsMoving(void)
jepickett 0:1a48094c99d1 37 {
jepickett 0:1a48094c99d1 38 return false;
jepickett 0:1a48094c99d1 39 }
jepickett 0:1a48094c99d1 40
jepickett 0:1a48094c99d1 41 /*****/
jepickett 0:1a48094c99d1 42
jepickett 0:1a48094c99d1 43 float GetPosition()
jepickett 0:1a48094c99d1 44 {
jepickett 0:1a48094c99d1 45 return 0;
jepickett 0:1a48094c99d1 46 }
jepickett 0:1a48094c99d1 47
jepickett 0:1a48094c99d1 48 /*****/
jepickett 0:1a48094c99d1 49
jepickett 0:1a48094c99d1 50 float GetTemperature(void)
jepickett 0:1a48094c99d1 51 {
jepickett 0:1a48094c99d1 52 return 0;
jepickett 0:1a48094c99d1 53 }
jepickett 0:1a48094c99d1 54
jepickett 0:1a48094c99d1 55 /*****/
jepickett 0:1a48094c99d1 56
jepickett 0:1a48094c99d1 57 float GetSupplyVoltage(void)
jepickett 0:1a48094c99d1 58 {
jepickett 0:1a48094c99d1 59 return 0;
jepickett 0:1a48094c99d1 60 }