Arduino - Pololu Maestro Servo Controlle

Hallo,

Hat jemand von euch zufällig den Maestro Servo Controller im Einsatz?

Ich verzweifle hier gerade mit dem Ding. Wenn ich Ihn an den PC anschließe funktioniert alles wunderbar.

Verbinde ich jedoch TX vom Arduino mir RX vom Maestro und nutze die 5V und Masse vom Arduino am Maestro bekomme ich den Servo nicht zum bewegen.

Folgenden Code nutze ich aktuell dafür:

#include <SoftwareSerial.h>
#define txPin 4 
#define rxPin 3

SoftwareSerial mySerial(rxPin, txPin);
void setup()// run once, when the sketch starts
{
  pinMode(7,OUTPUT);
  pinMode(7,HIGH);
  delay(50);
  pinMode(7,LOW);
  
  mySerial.begin(9600);
  delay(1000);  
}

void loop()
{
   delay(1000);
   set_target(0, 8000);
   delay(1000);
   set_target(0, 4000);
}


void set_target(unsigned char servo, unsigned int target)
{
    mySerial.write(0xAA); //start byte
    mySerial.write((byte)0x00); //device id
    mySerial.write(0x84); //command number
    mySerial.write(servo); //servo number
    mySerial.write(target & 0x7F);
    mySerial.write((target >> 7) & 0x7F);
}

Hat jemand einen Tipp für mich?

Machst du nicht ein Durcheinander zwischen dem Compact und dem Pololu protocol.

void set_target(unsigned char servo, unsigned int target)
{
    mySerial.write(0x84); //command number
    mySerial.write(servo); //servo number
    mySerial.write(target & 0x7F);
    mySerial.write((target >> 7) & 0x7F);
}

Hall.

Danke für deine Hilfe. Hab es gestern dann auch noch gesehen. Auch dass ich ein Problem beim setzen des Reset hatte. Jetzt habe ich 3 Funktionen um das Target zu setzen, einmal MiniSSC, Compact und pololu.

Besteht hier Interesse an einer Bibliothek für den Pololu Servo Controller? Ich konnte bisher noch nichts richtiges finden.

Besteht hier Interesse an einer Bibliothek für den Pololu Servo Controller?

Ich denke das dies eine sehr gute Idee wäre, vielleicht kannst Du ja so etwas selber auf die Beine stellen !

Das ist genau das was ich mit der Anfrage jetzt vor hatte. Werd mich mal ran setzen heute für einen ersten Draft mit SoftwareSerial.

Gutes gelingen !

So der erste Draft der Library ist fertig. :grin:

Genutzt wird SoftwareSerial und verfügbar ist folgendes:

    MaestroServo(unsigned char rxPin, unsigned char txPin, int baudRate, unsigned char resetPin, unsigned char commandSendPin);
    void reset();
    
    void set_target(unsigned char servo, unsigned int target);
    void set_target(unsigned char device, unsigned char servo, unsigned int target);
    void set_target_minissc(unsigned char servoNumber, unsigned char servoPosition);
    
    void send_home();
    void send_home(unsigned char device);
    
    void set_speed(unsigned char servo, unsigned int speed);
    void set_speed(unsigned char device, unsigned char servo, unsigned int speed);

    void set_acceleration(unsigned char servo, unsigned char acceleration);
    void set_acceleration(unsigned char device, unsigned char servo, unsigned char acceleration);

    void set_servo_off(unsigned char servo);
    void set_servo_off(unsigned char device, unsigned char servo);
    
    char get_moving_state();
    char get_moving_state(unsigned char device);
    
    char get_errors();
    char get_errors(unsigned char device);

Ich denke damit ist schonmal ein guter Baustein gelegt.

Wenn Interesse daran besteht muss ich mir nur noch überlegen wie ich es sinnvoll veröffentlichen kann.

Das sieht doch schonmal sehr interessant aus, habe meinen Maestro 6 bisher nur zusammen mit dem PC benutzt aber noch nicht mit dem Arduino alleine !

Also ich benutze den Micro Maestro zur Zeit parallel am Arduino und PC.

Per USB seh ich die Position und Einstellungen am PC und kann so checken ob der Arduino alles richtig setzt.

Das kommt bei mir noch !

gloob:
wie ich es sinnvoll veröffentlichen kann.

sind gute Platformen dafür.