-         

Ergebnis 1 bis 3 von 3

Thema: Servos proggen(I2C)

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.07.2005
    Ort
    3. Planet
    Alter
    26
    Beiträge
    547

    Servos proggen(I2C)

    Anzeige

    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(http://www.roboter-teile.de/Shop/the...id=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

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.07.2005
    Ort
    3. Planet
    Alter
    26
    Beiträge
    547
    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)?

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    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):
    Code:
    ...
    ' 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.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •