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:
6:1d8357775b6d
Parent:
5:0fd491357750
Child:
7:18a57f597ec4
--- a/Maestro.h	Mon Jan 06 11:14:19 2014 +0000
+++ b/Maestro.h	Mon Jan 06 13:16:37 2014 +0000
@@ -86,9 +86,9 @@
      * @param target - target values (the pulse width to transmit in units of
      *  quarter-microseconds) for each of the channels, in order by channel number
      */
-    void setMultipleTargets(uint8_t count, uint8_t firstChannel, uint16_t* targets);
-    
-    void setServosAngles(uint8_t count, uint8_t firstChannel, int8_t* angles);
+    void setMultipleTargets(uint8_t firstChannel, uint8_t count, uint16_t* targets);
+
+    void setServosAngles(uint8_t firstChannel, uint8_t count, int8_t* angles);
 
     /**
      * Limits the speed at which a servo channel's output value changes