Library for Pololu Maestro Servo Controller http://www.pololu.com/docs/0J40

Library for Pololu Maestro Servo Controller

Library docs: https://developer.mbed.org/users/kochansky/code/Maestro/docs/f374c7b60318/classMaestro.html

Example usage:

#include "mbed.h"
#include "Maestro.h"

Maestro maestro(PTC4,PTC3);

int main()
{
    maestro.setBaudRate(9600);

    // limit speed for each servo
    for (uint8_t i = 0; i < 17; i++) {
        maestro.setSpeed(i, 10);
    }

    while (true) {
       // set servo on channel 0 to 90 degrees
       maestro.setServoAngle(0, 90);
       wait(2);

        // set servo on channel 0 to 45 degrees
       maestro.setServoAngle(0, 45);
       wait(2);
    }
}

Serial commands based on manual: http://www.pololu.com/docs/0J40/5.e

Device pinout:

/media/uploads/kochansky/maestro.jpg

Revision:
9:a15ea85b40ca
Parent:
8:c952ac46bd39
Child:
10:f374c7b60318
--- a/Maestro.cpp	Tue Jan 07 18:35:25 2014 +0000
+++ b/Maestro.cpp	Mon Aug 25 19:22:10 2014 +0000
@@ -84,6 +84,13 @@
     serial.putc((speed >> 7) & 0x7F);
 }
 
+void Maestro::setSpeed(uint16_t speed)
+{
+    for (uint8_t i = 0; i < 18; i++) {
+        setSpeed(speed);
+    }
+}
+
 void Maestro::setAcceleration(uint8_t channel, uint16_t acceleration)
 {
     serial.putc(SET_ACCELERATION);
@@ -92,6 +99,13 @@
     serial.putc((acceleration >> 7) & 0x7F);
 }
 
+void Maestro::setAcceleration(uint16_t acceleration)
+{
+    for (uint8_t i = 0; i < 18; i++) {
+        setAcceleration(acceleration);
+    }
+}
+
 void Maestro::setPWM(uint8_t channel, uint16_t time, uint16_t period)
 {
     serial.putc(SET_PWM);