-         

Ergebnis 1 bis 4 von 4

Thema: Servo Ansteuerung HSR-8498HB oder "Servo in Serial Mode

  1. #1

    Servo Ansteuerung HSR-8498HB oder "Servo in Serial Mode

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo,

    ich hätte eine Frage zu der "Ansteuerung direkt über PC-COMport". Wie hier http://www.adrirobot.it/robozak/serv...HB%20Servo.pdf beschrieben, soll das Übertragen auch ohne PWM gehen. Und es sollen über das "Daisy-chain serial interface" bis zu 128 Servos darüber ansteuern lassen.

    Ok hier meine Fragen:
    Die Angaben die ich finde gehen alle von 19200bit/sek aus. Wenn man mehrere Servos darüber ansprechen möchte, wäre das viel zu langsam. Geht das schneller?

    Das Protokoll ist mir nicht klar. Also 0x80+command+param1+param2+checksum+return1+return 2 wird angegeben. Sehe ich das richtig das die Ansteuerung Byte 1-5 sendet und der Servo dann Byte 6+7? Oder wiederholt der Servo das Komplette Packet (wiederholt also 1-5 und seine Daten in 6-7)?

    Warum das ganze?

    Ich hoffe mehrere Servos über eine Art Datenbus ohne PWM ansteuern zu können und bin leider auf die HSR-8498HB festgelegt, da vorhanden.

    Gruß

    Samuel

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.02.2006
    Alter
    53
    Beiträge
    114
    Ja, das siehst du richtig. Der Servo setzt die Bytes 6 und 7. Der Grund ist die Beschränkung auf nur eine einzige Leitung für Tx und Rx in den Servos. Deshalb werden die Bytes 6 und 7 als 0 gesendet, welche der Open-Collector-Treiber des Servos auf 1 ziehen kann, wenn er möchte. (Im Grunde senden also beide gleichzeitig die Bytes 6 und 7. Nur die 1 Bits vom Servo stechen die vom Controller.) Der Controller empfängt aber alle 7 Bytes, da er den ganzen Datenstrom einliest. Die ersten 5 Bytes kann er gleich wieder vergessen, die hat er ja selber gesendet.

    Es gibt inzwischen aktuelle PDFs zum Protokoll. Ich nutze das hier: http://robosavvy.com/site/Builders/l...9-22.pdf<br />
    Schau dazu auch mal in diesen Thread:
    http://robosavvy.com/forum/viewtopic.php?t=1687

    Also ich habe das mal ausprobiert und kann sagen, dass die serielle Ansteuerung prinzipiell funktioniert.
    Ich hatte allerdings Probleme mit der Stabilität, d. h. nicht jedes Kommando wurde richtig erkannt. Kann aber auch an meinem improvisierten Schaltungsaufbau gelegen haben.
    Daisy Chaining habe ich nicht probiert, weil damals noch nicht bekannt war, wie man die ID eines Servos neu setzen kann und alle meine Servos dieselbe ID hatten.
    Aber der Grund, warum ich im Moment den Ansatz nicht weiter verfolge, ist, dass die Abfrage der Position genauso wie beim PWM-Modus dazu führt, dass der Motor kurz stromlos geschaltet wird. Nützt mir nichts.

    Ach so, das Killerkriterium: 19200 bps. Nein, ich glaube, es geht tatsächlich nicht schneller.

    Fazit für mich: Schöner Ansatz, hätte viel PWM-Gefummel und noch mehr Ports gespart. Aber leider von HiTec suboptimal (freundlich ausgedrückt) umgesetzt.

    Probier aber mal selbst ein wenig an der Sache rum. Kann schon nützlich sein und ist eigentlich viel eleganter als die PWM-Geschichte.

  3. #3
    Hallo

    und vielen Dank für die ausführliche Antwort. Noch bin ich nicht ganz abgeneigt von der Idee. Dann muss eben eine Serielle-Schnittstelle für jeden Servo her. Oder man implementiert eine passende Schnittstelle I/O Schnittstelle.

    Was mich aber stutzig macht ist:

    ... dass die Abfrage der Position genauso wie beim PWM-Modus dazu führt, dass der Motor kurz stromlos geschaltet wird.
    In dem verlinkten Thread stand nur was von 10% langsamer. Wie groß ist der Effekt wenn man den Servo z.B. für ein Roboterbein nehmen würde. Kannst Du mir sagen wie lange der Servo stromlos geschaltet wird? Eine Übertragung müsste ja ca. 4,1ms dauern (11bit x 7 bei 19200bit/s), das wäre gar nicht gut wenn der solange stromlos wäre.

    Gruß

    Samuel

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.02.2006
    Alter
    53
    Beiträge
    114
    Kann ich nicht genau sagen. Der Effekt ist glaube ich wirklich nicht so deutlich wie bei PWM. Ich kannte damals auch noch nicht alle Befehle. Es lohnt sich bestimmt, das noch mal auszuprobieren.

    Ja, serielle Schnittstelle für jeden Servo einzeln dürfte sich tatsächlich gut machen lassen. Der Takt kann ja für alle synchron generiert werden und nur jeweils verschiedene Datenbits auf die Ports gelegt werden. Könnte recht schnell werden.

Berechtigungen

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