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
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
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.
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.
Hm. Naja. Das mit dem Pleonasmus nehme ich zurück. Aber "Steuersignal" ist einfach üblicher.
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
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
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
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
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
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).
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.
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 :-(
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)?
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.
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.