Forum: Mikrocontroller und Digitale Elektronik Hobby-servos: Befehl-Signale einlesen


von Lys A. (jazz_89)


Lesenswert?

Hallo zusammen,

ich benutze einen Mikrocontroller um mehrere Servos gleichzeitig 
anzusteuern. Mit einem Datenerfassungsgerät würde ich gerne das 
Befehlsignal vom Mikrocontroller an die Servos aufzeichnen.
Mir wurde gesagt, dass man dafür einen PWM-Eingang am Messgerät braucht. 
Allerdings werden diese Servos mit 560Hz-PPM angesteuert. Meine Frage 
ist, ob ein konventioneller analoger oder digitaler Eingang für das 
Messen dieses Signals ausreicht und was ich sonst beachten muss.

Danke im Voraus
Jazz89

von posti (Gast)


Lesenswert?

Hi

Du hast doch 'nur' ein (oder mehrere) Impulse mit um die 1ms Länge.
Wie gleichzeitig sieht die Ansteuerung aus?
Beginnt bei allen Servos das Signal gleichzeitig und je nach Stellwert 
endet Es zu verschiedenen Zeitpunkten?
Triggern auf Low->High-Flanke

Ansonsten kannst Du doch eh jedes Servo-Signal einzeln betrachten-

MfG

von RP6conrad (Gast)


Lesenswert?

Fast jeden µ-controller can mit ein "Input-capture" solche 
servo-signalen einlesen. Wen es mehrere signalen sind braucht du 
naturlich µ-controller die oder mehrere Timer mit Input-capture haben, 
oder mehrere Kanalen pro Timer. Wen es ein Messgerat sein soll, ist ein 
Oszilloscope geignet.

von Theor (Gast)


Lesenswert?

Falls es interessiert oder wenn man einen kompetenten Eindruck machen 
will:

Das Wort "Befehls-Signal" ist ein Pleonasmus. "Signal" ist völlig 
ausreichend, weil es gerade und genau bedeutet, dass eine Information 
transportiert wird.

von Theor (Gast)


Lesenswert?

Hm. Naja. Das mit dem Pleonasmus nehme ich zurück. Aber "Steuersignal" 
ist einfach üblicher.

von Lys A. (jazz_89)


Lesenswert?

posti schrieb:
> Hi
>
> Du hast doch 'nur' ein (oder mehrere) Impulse mit um die 1ms Länge.
> Wie gleichzeitig sieht die Ansteuerung aus?
> Beginnt bei allen Servos das Signal gleichzeitig und je nach Stellwert
> endet Es zu verschiedenen Zeitpunkten?
> Triggern auf Low->High-Flanke
>
> Ansonsten kannst Du doch eh jedes Servo-Signal einzeln betrachten-
>
> MfG


Ich möchte ein MKS HBL-Servo verwenden.
http://www.mttec.de/HBL880-HV-Digital-Servo-brushless

Steuer System: Positives Breitensignal
Arbeitsfrequenz: 760µs / 333-560Hz


Aber wie sehen denn jetzt konkret die Steuersignale aus? Ist es ein 
echtes digitales Signal oder blos PWM oder PPM

Danke

von seho85 (Gast)


Lesenswert?

Hey,

Lys A. schrieb:
> Aber wie sehen denn jetzt konkret die Steuersignale aus? Ist es ein
> echtes digitales Signal oder blos PWM oder PPM

Die RC-Servos werden per PWM "angepulst".

Wobei ein Highpegel von 1ms dem Servo sagt es soll in die Mittelposition 
fahren.

Wird der Pegel kürzer als 1ms so fährt es nach links, wird der Pegel 
länger als 1ms fährt es nach rechts.

Die Grenzen gibt das Servo vor, (vorsichtig ausprobieren wenn nichts in 
Datenblatt steht)

Siehe:
http://rn-wissen.de/wiki/index.php/Servos

MfG
Sebastian

von seho85 (Gast)


Lesenswert?

seho85 schrieb:
> Wird der Pegel kürzer als 1ms so fährt es nach links, wird der Pegel
> länger als 1ms fährt es nach rechts.

Sorry, das stimmte so nicht.

Bei 1.5ms geht das Servo in Mittelstellung. Bei kürzeren dreht es nach 
links, und bei längeren nach rechts.

Gruß
Sebastian

von Lys A. (jazz_89)


Lesenswert?

seho85 schrieb:
> seho85 schrieb:
>> Wird der Pegel kürzer als 1ms so fährt es nach links, wird der Pegel
>> länger als 1ms fährt es nach rechts.
>
> Sorry, das stimmte so nicht.
>
> Bei 1.5ms geht das Servo in Mittelstellung. Bei kürzeren dreht es nach
> links, und bei längeren nach rechts.
>
> Gruß
> Sebastian

Okay, und was bedeutet bei einem digital Servo (HBL MKS 880)

Steuer System: Positives Breitensignal
Arbeitsfrequenz: 760µs / 333-560Hz

Ist das wirklich ein digitals Servo oder wird dies auch mit PPM 
angesteuert?

Vielen Dank
Jazz89

von posti (Gast)


Lesenswert?

Hi

Bei 2ms Maximal-Länge wären wir, bei direkter Neuaussendung (oder eben 
beim 2ms-Signal bei Dauer-High) bei 500Hz 'Wiederholung'.

Da das Servo bis zu 560Hz 'kann', denke ich, ist Das nicht die korrekte 
Ansteuerung - für mehr als 500Hz ist bei 2ms Maximal-Länge einfach 'kein 
Platz'.

Aber nettes Spielzeug hast Du Dir da ausgesucht - finde nur einen Preis 
auf eBay (200$ + 13$ Versand).

Datenblatt spuckte meine Suchmaschine zumindest nicht direkt aus, also 
mir ist noch Keines unter gekommen.

MfG

von c-hater (Gast)


Lesenswert?

Lys A. schrieb:

> Okay, und was bedeutet bei einem digital Servo (HBL MKS 880)
>
> Steuer System: Positives Breitensignal
> Arbeitsfrequenz: 760µs / 333-560Hz

Das bedeutet, dass er eben nicht wie ein üblicher Modellbauservo 
angesteuert wird.

Statt ~20ms Zykluszeit und Pulsbreite ~1..2ms werden hier deutlich 
kürzere Zeiten verwendet und die Zykluszeit darf variabel sein (muss es 
aber nicht).

Also im Prinzip kann kann man sich zwischen zwei Ansteuermethoden 
entscheiden, einmal mit konstanter Zykluszeit, das entspricht dann etwa 
dem PWM Signal von den üblichen Servos, bloß halt mit deutlich 
geringeren Zeiten. Nämlich Zykluszeit ~1,7ms, Pulsbreite ~0,4..1,1ms.

Man kann aber auch einfach eine variable Frequenz mit konstant ~50% duty 
im Bereich ~450..1200Hz zur Ansteuerung benutzen.

Auch Zwischenformen zwischen den beiden Extremen der Ansteuerung sind 
möglich (aber eher selten sinnvoll).

von Wolfgang (Gast)


Lesenswert?

Lys A. schrieb:
> Aber wie sehen denn jetzt konkret die Steuersignale aus? Ist es ein
> echtes digitales Signal oder blos PWM oder PPM

Die Spannungspegel sind digital, die Pulsdauer ist analog.

von Wolfgang (Gast)


Lesenswert?

c-hater schrieb:
> Das bedeutet, dass er eben nicht wie ein üblicher Modellbauservo
> angesteuert wird.
>
> Statt ~20ms Zykluszeit und Pulsbreite ~1..2ms werden hier deutlich
> kürzere Zeiten verwendet und die Zykluszeit darf variabel sein (muss es
> aber nicht).

Einem "üblicher Modellbauservo" ist die Pausendauer des Signals ziemlich 
schnuppe. Der Stellung orientiert sich einzig an der Dauer des H-Pulses, 
wobei die Mittenstellung üblicherweise bei 1,5ms liegt. Die 20ms 
Zykluszeit sind ein Relikt aus der Analogübertragung, bei der im 
Summensignal nacheinander die Pulse für mehrere Kanäle übertragen 
werden.

Für den HBL880 liegt diese Mittenposition eben bei 760µs und die 
Wiederholfrequenz für die Pulse kann zwischen 333 und 560Hz liegen. Der 
wird also fast genauso wie ein "üblicher Modellbauservo" angesteuert, 
nur ist die Pulsdauer halb so groß und die Update-Frequenz für die 
Position ist deutlich höher.

Wenn ich eine Spezifikation lese, in der zusammen mit "Frequenz" die 
Einheit "s" auftaucht, wird mir immer schon etwas komisch ;-)

Und "Steuer System: Positives Breitensignal" soll wohl bedeuten "Breite 
des positiven Pulses". Das hätte Google auch nicht untreffender 
übersetzten können :-(

von Lys A. (jazz_89)


Lesenswert?

Wolfgang schrieb:
> c-hater schrieb:
>> Das bedeutet, dass er eben nicht wie ein üblicher Modellbauservo
>> angesteuert wird.
>>
>> Statt ~20ms Zykluszeit und Pulsbreite ~1..2ms werden hier deutlich
>> kürzere Zeiten verwendet und die Zykluszeit darf variabel sein (muss es
>> aber nicht).
>
> Einem "üblicher Modellbauservo" ist die Pausendauer des Signals ziemlich
> schnuppe. Der Stellung orientiert sich einzig an der Dauer des H-Pulses,
> wobei die Mittenstellung üblicherweise bei 1,5ms liegt. Die 20ms
> Zykluszeit sind ein Relikt aus der Analogübertragung, bei der im
> Summensignal nacheinander die Pulse für mehrere Kanäle übertragen
> werden.
>
> Für den HBL880 liegt diese Mittenposition eben bei 760µs und die
> Wiederholfrequenz für die Pulse kann zwischen 333 und 560Hz liegen. Der
> wird also fast genauso wie ein "üblicher Modellbauservo" angesteuert,
> nur ist die Pulsdauer halb so groß und die Update-Frequenz für die
> Position ist deutlich höher.
>
> Wenn ich eine Spezifikation lese, in der zusammen mit "Frequenz" die
> Einheit "s" auftaucht, wird mir immer schon etwas komisch ;-)
>
> Und "Steuer System: Positives Breitensignal" soll wohl bedeuten "Breite
> des positiven Pulses". Das hätte Google auch nicht untreffender
> übersetzten können :-(


Okay, das schaft schon mal klarheit! Danke an euch alle

Und angenommen ist will jetzt dieses Signal in einem 
Echtzeitbetriebssystem einlesen (z.B. SPS oder PXI von National 
Instruments). Um das Signal vernünftig aufzulösen, muss ich den Fall 
abdecken können, bei dem das Servo den sehr schmalen Puls von ca. 
760µs/2=380µs aufnimmt. Das würde einen vollen Ausschlag in die eine der 
zwei Richtung bedeuten. Also wäre eine Abtastfrequenz mit Faktor 10, 
sprich 38µs ausreichend (würde ca 2.6kHz ergeben)?

von Joe F. (easylife)


Lesenswert?

Wäre es nicht einfacher, dem uC der die Servos ansteuert beizubringen 
die aktuellen Servo-Daten parallel über ein UART Interface 
rauszuschicken?
Dann könnte man den Datenlogger einfach per RS232 anschließen und müsste 
sich nicht erst mühsam die Informationen aus den Servo-Signalen 
zusammenpfriemeln.

von Lys A. (jazz_89)


Lesenswert?

Joe F. schrieb:
> Wäre es nicht einfacher, dem uC der die Servos ansteuert beizubringen
> die aktuellen Servo-Daten parallel über ein UART Interface
> rauszuschicken?
> Dann könnte man den Datenlogger einfach per RS232 anschließen und müsste
> sich nicht erst mühsam die Informationen aus den Servo-Signalen
> zusammenpfriemeln.

Ja das wäre natürlich einfacher, aber wir machen eine 
Hardware-in-the-Loop Analyse und möchten deshalb mit diesen Pulsen ein 
virtuelles Servo füttern, dessen Dynamik auf einem 
Echtzeitbetriebssystem läuft. Der Mikrocontroller "denkt", dass das 
Servo noch angeschlossen ist, aber in der Realität lesen wir das 
Steuersignal aus und verarbeiten es weiter...

von Wolfgang (Gast)


Lesenswert?

Lys A. schrieb:
> Um das Signal vernünftig aufzulösen, muss ich den Fall
> abdecken können, bei dem das Servo den sehr schmalen Puls von ca.
> 760µs/2=380µs aufnimmt.

Nein, um es vernünftig aufzulösen, musst du dir überlegen, wie genau du 
die Position des Servos aus dem Signal rauslesen möchtest. Bei 2.6kHz 
Abtastung kannst du nur mit 385µs auflösen, d.h. gerade mal drei 
Bereiche der Position unterscheiden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.