PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Servos proggen(I2C)



sulu
26.06.2006, 15:57
Hi
bin jetzt bei neuem Projekt (Hexapod) mit der Mechanik und den 12Servos so gut wie fertig. Nun geht es um die Steuerung. Ich habe vor dieses Servoboard(www.roboter-teile.de/Shop/themes/kategorie/detail.php?artikelid=23&source=2 )über den I2C-Bus der Rn-control zu steuern(bzw. die Servos)
Wie funktioniert das mit der programmierung? Bisher hab ich ja iommer gesagt:z.b Servo(1)=Pinb.1 , reload = 20
servo1=100
waitms 1000

Wie progge ich jetzt die Servos über das Servoboard?

Vielen Dank

sulu
27.06.2006, 13:26
Dazu wäre vielleicht zu sagen, dass ich das Servooboard nur nehme weil 12 Servos für die Rncontrol zu ist.
Weiß denn niemand was über die Steuerung per Bus(bzw.Servoboard)?

linux_80
27.06.2006, 22:01
Hallo,
wie mächtig bist Du schon der engl. Sprache ?

In der PDF-Datei, die auf der Seite oben zu bekommen ist, ist auf Seite 3 eine gelbe Tabelle, mit den Registern die man braucht.
Auf Seite 5, den grünen Absatz, findet sich die Reihenfolge, wie man die einzelen Bytes über I2C senden soll, damit man den richtigen Servo erreicht.

In Bascom könnte das in etwa so aussehen (nicht getestet):

...
' Daten vorbeireiten
Dim Servo1(4) As Byte

' I2C-Slave-Adresse des SD21
Const Slave = &HC2

Dim Position As Word

Position = 1500 ' Servo in die Mitte

' Datensatz zusammenstellen
Servo6(1) = 15 ' Servo6
Servo6(2) = 0 ' Speed
Servo6(3) = Low(position)
Servo6(4) = High(position)

' Alles zusammen an den SD21 senden
I2csend Slave , Servo6(1) , 4
...

Vorher noch I2C initialisieren usw.

Wenn Speed 0 ist, fährt der Servo mit maximaler Geschwindigkeit die neue Position an, ansonsten dauerts entsprechend länger, je kleiner der Wert ist.
Steht am Ende von Seite 3 und am Anfang von Seite 4.