PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SD21 Servoboard am RP6



baer56
01.07.2010, 00:18
Hallo Leute ! =;

Bin neu in diesem Forum! Habe einen RP6 seit ein paar Monaten und komme ganz gut klar! Habe mir jetzt ein SD21 Servoboard gekauft und habe probleme mit dem beschreiben der Register über I2C! Programmiere in C++!

Wäre toll wenn mir jemand den Programmteil der Übertragung beschreiben könnte!!
Zur Info es gibt pro Servo 3 Register eines für Geschw., eines für Position LowByte und eines für Position HighByte!
Beim Sharp GP2D12 hatte ich keine probleme die beiden Werte (Lowbyte & Highbyte) in einen floatwert umzuwandeln und in cm auszugeben!
Aber umgekehrt steh ich irgendwie auf der Leitung!
Wäre toll wenn mir wer helfen könnte!!

TobiKa
01.07.2010, 08:53
Hi

So hab ich das mal gemacht:

void setServoPos(uint8_t servo, uint16_t stellung)
{
twiStart();
twiWriteByte(0xC2, 0);
twiWriteByte((servo-1)*3+1, 0);
twiWriteByte((unsigned char)(stellung & 0xFF), 0);
twiWriteByte((unsigned char)(stellung >> 8), 0);
twiStop();
}

void setServoSpeed(uint8_t servo, uint8_t speed)
{
twiStart();
twiWriteByte(0xC2, 0);
twiWriteByte((servo-1)*3, 0);
twiWriteByte(speed, 0);
twiStop();
}

baer56
01.07.2010, 23:03
Dankeschön!! =;
Habs jetzt auch hinbekommen!! Bin wirklich ordentlich auf da Leitung gestanden!!!!!!!
Aber eine Frage Hab ich noch, kann man die 3 Servo Register auch mit einem Befehl, wo man alle drei Daten reinpackt, beschreiben?
Und weiß wer wo ich billig einen HItec Roboter-Gelenk Servo und Servohalter für einen Roboterarm, wenn möglich billig, bekomme? Weil befor ich 7 - 10 Euro für ein Teil bezahle, mach ich es selber!!!
Danke nochmal!! :!: