PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Und schon wieder ein Servotester, aber ein erweiterter



Searcher
11.07.2013, 23:19
Ich möchte einen Servotester bauen, der die Stellgeschwindigkeit eines Servos messen kann. Denkbar sind Erweiterungen wie Strommessungen und Ansprechgeschwindigkeit; veränderbare Versorgungsspannung für Servo. Brauch ich jedoch (noch) nicht und es soll bei der Stellgeschwindigkeit bleiben.

Auf die Idee kam ich schon vor längerer Zeit, als ich an einem Modelcraft Top Line Mini Servo ES-05 festzustellen glaubte, daß die Auslenkung von der Mittenstellung nach links länger dauerte als von der Mitte nach rechts (kann auch umgekehrt gewesen sein).

Vermutlich wird es, wie meistens bei mir, bei einem Prototypen bleiben, der mir jedoch Klarheit verschaffen soll. Außer der Stellgeschwindigkeitsmessung sollen noch die maximalen Auslenkungen festgestellt werden können und die Totzeit abgeschätzt werden können.

Weil ich auch noch gesehen hatte, daß das 50Hz Servosteuersignal in eine PWM mit gleicher Frequenz umgesetzt wird und dann zu Ansteuerung des Motors genutzt wird, soll auch das 50Hz Steuersignal in der Frequenz veränderbar sein. Da gibt es auch Auswirkungen auf die Stellgeschwindigkeit und Stellbereich, zumindest bei dem ES-05.

Realisierung: Das Servo wird auf eine Platte mit Winkelskala geschraubt. Ein paar Zentimeter gegenüber des Servos wird in der Skala von unten eine CNY-70 Reflexlichtschranke angebracht. Aus Pappe wird ein 60° Winkel ausgeschnitten und auf dem Servohorn angebracht. 60° weil die Herstellerangaben der Stellgeschwindigkeiten sich meist auf 60° beziehen. Jeder andere Winkel ist schnell hergestellt. Zur Stellgeschwindigkeitsmessung wird das Servo in Mittelstellung gebracht (1,5ms Pulse) und der Pappwinkel auf dem Servohorn per Hand so verdreht, daß er mit einem Schenkel gerade über dem CNY-70 steht. Eine Kontroll LED zeigt den Schaltzustand des CNY an. Nun kann die Messung per Knopfdruck gestartet werden. Servo dreht und die Zeit, bis der andere Schenkel des Winkels den CNY erreicht, genommen. Ausgabe der Meß/Einstellwerte auf LCD oder über UART zum PC.

Maximale Auslenkungen werden einfach auf der Skala abgelesen. Zur Totzeitabschätzung soll es einen Feineinstellungsregler geben, der die Servopulse in 1µs Schritten ändern kann und man horchen muß, ob sich schon was rührt.

µC: ATtiny44A mit BASCOM programmiert

Hauptbedienelemente:
Ein Poti zu Änderung der Servosignalpulsfolge von 5ms bis 50ms (Standard sind 20ms)
Ein Poti zum Grobeinstellen der Pulsweite von 500µs bis 2500µs in 10µs Schritten.
Ein Feineinstellungsregler zum Ändern der Pulsweite in 1µs Schritten.
Mindestens zwei Tasten für Messung nach links und Messung nach rechts.

Mehr wird sich wahrscheinlich bei der Programmierung ergeben.

Hier ein Photo der Platte noch ohne Skala aber mit eingebautem CNY-70, Servo und Papp/Papierwinkel.
25992

Gruß
Searcher

Zameer
12.07.2013, 03:31
Ich würde da eventuell noch etwas bezüglich der (Rück-)stellgenauigkeit einbauen.

Searcher
12.07.2013, 06:37
Ah, gute Idee Zameer! Danke. Dabei fällt mir auch noch ein, daß bei Erwärmung durch Dauerbetrieb sich auch noch Eigenschaften ändern könnten.

Manf
12.07.2013, 07:38
Für eine Drehung von 180° hat man wohl allgemein eine Änderung der Impulsdauer von 1000µs.
Bei 1µs hat man so eine Winkeländerung von 0,18°.

180° sind "Pi" x Radíus, also etwa 3,14 x 100mm. Ein Tausendstel davon entsprechen dann 0,314mm, mal sehen was bei der Messung herauskommt.

Zameer
12.07.2013, 07:44
Gibt bei den Servos nämlich auch bei den Markenherstellern einige Krücken bezüglich der Rückstellgenauigkeit.
Interessant wäre auch vor allem die Stellgeschwindigkeit unter Last.
Meist sind die Angaben der Stellgeschwindigkeit ohne Last - mit kann das gerne mal deutlich weniger sein und ein Servo was kräftiger ist aber auf dem Papier langsamer ist unter Last trotzdem schneller.
Je, nachdem was für einen Aufwand du machen möchtest könnte man noch die Stromaufnahme bei z.B. 6V und 0-50-100% Last hernehmen.

oberallgeier
12.07.2013, 08:07
Gibt bei den Servos nämlich auch bei den Markenherstellern einige Krücken ...Krücken? Lücken - vermute ich, das sieht man ja schon an den Datenblättern. Und dann muss man selbst Zeit opfern. Aber mit etwas Aufwand sind die Ergebnisse dann doch recht interessant - aber teilweise auch furchterregend (klick mal). (https://www.roboternetz.de/community/threads/61379-Kopfsache-und-ein-m1284-etliche-Servos-viel-Alu?p=579801&viewfull=1#post579801)

Leider habe ich bisher noch nie in Markenservos investiert. Vielleicht sind die besser ? ? ?

Searcher
12.07.2013, 20:14
Hallo,

@Manf: Ich habe keine Erfahrung mit verschiedenen Servos und die einzigen, die ich zur Zeit besitze, sind die ES-05. Die drehen in dem Standardpulslängenbereich von 1000µs bis 2000µs um ca. 90°. Das scheint mir auch der Standard zu sein. Aber auch dabei ist bei einer Änderung der Pulsweite um 1µs eine Lupe sicher hilfreich beim Beobachten. Wie der CNY-70 und die folgende Schaltung (wird zunächst nach dem RN-Wissen Artikel zum CNY-70 beschaltet) reagiert weis ich noch nicht. Als Zeitmeßauflösung sind die 1µs angedacht. Die Öffnung des Sensors nach oben ist sicher auch risikoreich für die Aufnahme von Fremdlicht.

Die Winkelschenkel auf dem Foto sind vom Servohornmittelpunkt aus ca. 7cm lang, bis zur CNY-70 Mitte nur etwa 5,5cm. Ich hatte mir den Weg vorher nicht durchgerechnet und bin von der Herstellerangabe für die Stellzeit von 0,17 Sekunden für den Winkel von 60° bei 4,8V ausgegangen und geschätzt, daß ich Unterschiede zwischen Rechts- und Linkslauf rausmessen können müßte.

Allerdings ist es bestimmt besser, die Form des Winkels so zu wählen, daß die gleiche Flanke des CNY zur Starteinstellung und Stopmessung hergenommen werden kann. Dabei würde eine Hell-Dunkelphase bzw. Dunkel-Hellphase durchlaufen, die man SW-mäßig ausblenden müßte. Außerdem könnte sich der Aufbau nach grober manueller Einstellung des Winkels vor der Messung noch selbst kalibrieren um möglichst genau den Schaltpunkt des CNY zu erwischen. Die absolute Genauigkeit, die ich aber erstmal nicht so sehr ausreizen will, hängt auch noch von der Exaktheit des Winkels und dessen Montage ab ...

EDIT: Manf, ich glaub ich weis nicht wirklich, was Du mir mit der Rechnung sagen möchtest. Zu große Fehlermöglichkeit beim Messen?

Haaach, es stehen noch einige Versuche an und es wird wie immer wieder komplizierter als gedacht.

@Zameer,@oberallgeier: Lastmessung. *stöhn* Intressiert mich auch und hatte ich absichtlich nicht erwähnt, da es eigentlich ein einfacher Aufbau werden sollte. Das erste, das mir zur Realisierung dazu einfällt, und das hab ich vermutlich irgendwo aus dem Roboternetz, ist eine Umlenkrolle, die einen Faden mit einem angehängten definierten Gewicht über die Tischkante leitet. Das andere Ende des Fadens wickelt sich auf eine Rolle mit definiertem Durchmesser auf dem Servohorn.

Anders wüßte ich jetzt nicht, wie ich eine praktikabele, gleichmäßig definierte und zum allgemeinen Aufbau des Servotesters passende Belastung des Servos hinbekomme.? Etwaige kaufbare Bremsen mit Drehmomenteinstellung würden den Rahmen des Projektes sprengen.

Strommessung erstmal nicht "automatisiert", vielleicht zwischendurch mit Oszi an einem Shunt.

Danke für die Vorschläge und Anmerkungen
Gruß
Searcher

oberallgeier
12.07.2013, 22:26
... Lastmessung. *stöhn* ... Umlenkrolle ... Faden ... Gewicht über die Tischkante leitet ...Diese Methode nach Ramses III. ist prima - hab ich andernorts schon erfolgreich gegen high sophisticated-nonwörking (Klugsch...er-) Methoden praktiziert. Beim Servo gehts p..ieinfach: Servo "flachlegen" - auf die Seite, auf ner festen, höhengenauen Unterlage. Servo wird mit ner Schraubzwinge oder so zusammen mit der in der Höhe genau abgemessenen Unterlage - siehe ">anderen< Ende" - am Tisch befestigt, Tisch ist Auflage für die Waage, siehe unten. Abtriebsachse steht horizontal, das Servohorn steht etwa auf Mitte Schwenkbereich, fast horizontal, leicht abwärts geneigt. Länge Hebelarm so im Bereich um die zehn bis zwanzig ZENTImeter - durch ne Verlängerung die am Servohorn stabil befestigt ist. Der Hebelarm hat am >andern< Ende ne feste, stabile Kante - notfalls irgendeine Blechkante. Damit liegt er auf ner kleinen, modernen Küchenwaage auf - Wägebereich (bei mir) 5000g/1g. Das ist in meinem Link so beschrieben. Diese Waage hat kaum Weg beim Wägen, damit ist die Auflagekraft des Servos praktisch immer am gleichen Hebelarm; sie variiert nur aufgrund der Ansteuerung.

War das verständlich? Der Rest ist gesunder Menschenverstand, das kriegt Searcher bestens hin.

Searcher
13.07.2013, 07:21
Hallo,

War das verständlich?
Ich bin vorsichtig und sag mal: ich glaube, ja. Werd ich sehen, wenn ich es versuche aufzubauen:cry::)


Der Rest ist gesunder Menschenverstand, das kriegt Searcher bestens hin.
Vielen Dank, aber da möchte ich erstmal selbst sehen, was dabei bei mir am Ende wirklich rausgekommen sein wird:confused:

Scherz an die Seite. Danke nochmal für die Beschreibung. Denke doch, daß ich das nachvollzogen habe. Ich sollte jetzt aber so langsam anfangen den Aufbau gebrauchsfertig zu machen und die ersten Programmzeilen zu schreiben. Irgendwann kommt bei mir der Punkt, an dem ich ein Ergebnis haben möchte.

Gruß
Searcher

Klebwax
13.07.2013, 07:49
Eins der Probleme ist ja, den Servowinkel zu messen. Dazu könnte man theoretisch den Servowinkelsensor a.K.a das Poti im Servo anzapfen. Für einen Tester ist das sicher keine Lösung, man könnte aber ein Poti mit dem Servo koppeln, und dann mit dem ADC den Winkel messen.

MfG Klebwax

Zameer
13.07.2013, 09:47
Den Servowinkel kann man schon messen und wenns nur eine aufsteckbare Verlängerung des Servohorns wäre gepaart mit einer Skala.

Sternthaler
13.07.2013, 13:32
Grüß euch.

Klebwax hat schon gesagt was auch ich schon gemacht hatte.
Ich hatte im Januar diesen Jahres angefangen. Wurde dann aber durch oberallgeier abgelenkt ;)

Auch meine Idee ging davon aus, dass ich erst einmal die Geschwindigkeit, Stellgenauigkeit und Positionierung feststellen wollte ohne auf die Leistungsdaten unter Belastung einzugehen. Das hat oberallgeier ja schön gezeigt wie man es relativ einfach machen kann.

In meinem 'Tester' ist angedacht, dass die Servos ausgetauscht werden können und die Messmaschine konstant bleibt.
Die gezeigte Version hat aktuell das 'Problem', dass das Servohorn in der Messmaschine eingeklebt ist und somit nur zu Servos passt bei denen die Zahnanzahl kompatibel ist. Das hübsche Metallband der Messmaschine ist so flexibel, dass bis jetzt alle meine Servos gut festgehalten werden und messbar sind.

Der 'Schaltplan' ist eine Idee, wie man die 'Einspeispunkte' vom Messpoti so justieren kann, dass die Endpunkte bei der Servohorndrehung dann mit 0 V bzw. 5 V eingestellt werden können. Damit kann somit der komplette Messbereich im AVR mit seinen 10 Bits komplett genutzt werden auch wenn der Drehwinkel eben nicht die 270 Grad eines normalen Potis hat.
Das aber ist bis jetzt nur Theorie.

Nun fehlt mir 'nur noch' ein 3D-Drucker um damit Adapter zwischen beliebigem Servohorn und Messmaschine zu drucken. Da könnte natürlich auch gleich der Hebelarm von oberallgeier zur Kraftmessung drangedruckt werden.
siehe bei Reichelt: http://www.reichelt.de/3D-Drucker/3D-PRINTER-K8200/3/index.html?;ACTION=3;LA=446;ARTICLE=132351;GROUPID =5994;artnr=3D+PRINTER+K8200

Meine Messmaschine:
Bild 1: http://www.asuro-sternthaler.de/asuro/servotester/IMG_8406.JPG
Bild 2:http://www.asuro-sternthaler.de/asuro/servotester/IMG_8407.JPG
Bild 3: http://www.asuro-sternthaler.de/asuro/servotester/IMG_8408.JPG
Bild 4:http://www.asuro-sternthaler.de/asuro/servotester/IMG_8411.JPG
Plan : http://www.asuro-sternthaler.de/asuro/servotester/IMG_8415.JPG

Software in C: http://www.asuro-sternthaler.de/asuro/servotester/cmd_messen.c
Ist nur der Teil zum Servofahren und Poti auslesen und an den PC senden. KEINE Pulserzeugung für das Servosignal.

Messdaten mit Graph: http://www.asuro-sternthaler.de/asuro/servotester/001-000-255-15.xlsx

Viel Erfolg für alle Servostesterbauer wünscht
Sternthaler

Manf
13.07.2013, 14:54
Ein Tausendstel davon entsprechen dann 0,314mm, mal sehen was bei der Messung herauskommt.

Manf, ich glaub ich weis nicht wirklich, was Du mir mit der Rechnung sagen möchtest. Zu große Fehlermöglichkeit beim Messen?
Es geht mir wirklich darum mal zu sehen was der Servo macht wenn er mit einer Änderung der Impulsdauer von 1µs oder wenigen µs angesteuert wird.

Haaach,
Mach mal, wir sind auf alle Fälle gespannt, was dabei herauskommt. Irgendetwas lernt man eigentlich immer, auch wenn das Ziel mal nicht am Weg liegt.

Klebwax
13.07.2013, 15:48
Ich habe oben zwar "Poti" geschrieben, eigentlich geht meine Idee etwas weiter. Ich dachte an einen magnetischen Winkelsensor so wie den AS5040. Für jeden benutzten Servoabtrieb ein Ruderhorn nehmen oder bearbeiten, mit dem man die Kraft (das Drehmoment) messen kann, und auf das man einen Magneten klebt, mit dem man den Winkel misst. Dazu eine Aufnahme, kann aus Holz sein, in die man nahezu beliebige Servos einspannen kann.

MfG Klebwax

Searcher
13.07.2013, 17:28
Eins der Probleme ist ja, den Servowinkel zu messen...
Ja, hatte ich jedoch schnell abgehakt, als mir das mit den vorgefertigten Pappwinkeln einfiel. Damit messe ich die Stellzeit.
Zum Feststellen des Stellbereichs wollte ich einfach eine Skala, die auf der Platte aufgeklebt ist, benutzen. Mit den Potis das (den???) Servo einstellen bis es knirscht und dann ablesen. Nicht so elegant und nicht sehr genau, hab aber im Augenblick keine höheren Anforderungen. Ein Poti anzuflanschen tauchte bisher noch gar nicht in meinem Horizont auf.

@Zameer: Jap.

@Sternthaler: Ich kann es nicht zugeben, aber je länger ich darüber nachdenke, desto mehr gefällt mir die Methode mit dem angeflanschten Poti besser als meine :-) Auf jeden Fall flexibler und eröffnet auch noch die Möglichkeit Kurven zum Verhalten des Servos bei Ansteuerung mit Rampen aufzunehmen. Grob überschlagen läßt sich der Winkel mit 270°Poti und dem 10Bit ADC auf 270°/1024=0,26 Grad bestimmen. Mit letztem Bit unsicher sind es immer noch 0,5°, was mir ganz sicher ausreichen würde. Einzig, das mein Prototyp schon steht (und Manf :) ) hält mich davon ab, mein Konzept zu verwerfen. Vielleicht beim nächsten Servotesterprojekt. Danke für den informativen Beitrag.

Um verschiedene Servos zu testen dachte ich bei meinem Aufbau daran, die Servos auf eine für die verschiedenen Servos passende Adapterplatten zu befestigen und dann den Adapter in den Meßtisch zu schieben/schrauben. Winkel basteln und auf geht es. Zum Glück hab ich den Thread angefangen.


... auch wenn das Ziel mal nicht am Weg liegt.
:)


...eigentlich geht meine Idee etwas weiter...
Da kommen ja immer mehr gute Ideen zu Tage ...

... und ich bin immer noch nicht weiter. Heute soll zumindest die Schaltung auf Steckbrett und der CNY zum Schalten gebracht werden.

Gruß
Searcher

Sternthaler
13.07.2013, 18:40
UPPS Korrektur:
Zameer hatte die Idee mit der Skala.
Noch ne' Korrektur:
Die Idee ist doch schon von Searcher im ersten Eintrag!


@Searcher und Zameer
Klar, einen begonnen / geplanten Aufbau sollte man unbedingt erst einmal in Fahrt bringen.
Der Gedankengang, dass eine Winkelskala integriert wird, zum direkten ablesen der angefahrenen Winkel, ist goldrichtigt. Das ist genau das was bei mir komplett fehlt, da ich dann zwar vom Poti "etwas ablesen kann", aber da ich ja die Fehlerquote vom Poti nicht kenne, weiss ich nicht wirklich welcher Winkel das ist.

Also Winkelskala in Verbindung mit Mess-Dingsda (will nicht Poti sagen)
Erst ein paar Messpunkte "optisch kontrolliert" auf der Skala anfahren; die mit gemessenen (Poti-)Werten als Korrekturwerteliste für das Poti (upps) sammeln und das dann im AVR hinterlegen.
Dann kann man schön einige Fahrten vom AVR kontrolliert machen lassen, dabei messen und gegen diese Korrekturliste rechnen.
Meiner Meinung sollte man so den erwarteten Potifehler entsorgen / reduzieren können.

@Klebwax
Hmmm, das mit dem Magneto-Chip würde bei der Idee, ein 'Koppeldingsda' für unterschiedliche Servos, mechanisch recht aufwändig machen.
Im Datenblatt zum Chip steht so bei Seite 23 etwas vom "displacement radius Rd of 0,25mm". Wenn ich meinem Englisch vertrauen kann, bedeutet dies eine recht präzise Positionierung vom sich drehenden Magneten zum Chip.
Ich schliesse solch eine Mechanik bei meinen 'Bastelkünsten' jedenfalls aus.


Und dann kommt noch der 'Wunsch' von Manf, im 1us-Bereich zu positionieren, um zu sehen was überhaupt geht.
Solch ein Ergebnis würde mich auch recht heftig interessieren.
Mein 'System' ist eher so ausgelegt, dass ich wegen der 'nur' 10 Bit im ADC (und natürlich dessen Messfehler) dazu geneigt bin, die Positionierung eher 'runterzuschrauben'. Es bleibt dann die Möglichkeit, diese, sagen wir mal 256 Positionen, wiederholt anzufahren und dem ADC dann noch 'Spielraum' von 2 Bits für Messfehler zu geben. Genau aus diesem Grund ist der 'Plan' gemalt worden, um auch den Messbereich vom AVR-ADC 'füllen' zu können.
Bei mehrfachen Wiederholungen auf die gleiche Position bekommt man dann eine lustige Streuung des Messwertes. Ein wenig vom ADC und bestimmt einiges vom Servo. Aktuell hätte ich keine Möglichkeit zu Bestimmen von wo der Fehler kommt.
Somit bliebe noch die Möglichkeit einen ADC mit mehr Bits Auflösung und mehr Präzision anzuschliessen. Das ist aber auch nichts für mich ;)

Schönes Wochenende und weitere gute Ideen wünscht
Sternthaler

Geistesblitz
14.07.2013, 01:08
Was wir auch schon im Praktikum gemacht haben: möglichst genauen Sensor anschließen (wir hatten optische Encoder mit irgendwas bei 1600 Strichen prü Umdrehung, macht also 6400 Schritte bei Quadraturauswertung) und dann einmal nach und nach den Stellbereich abfahren und wieder zurück, zwischendurch die Messwerte vom Encoder auslesen. In der Darstellung Winkel über Servosignal kann man dann wunderschön das vorhandene Spiel sehen. Wenn man das Ganze automatisiert, könnte man sogar dynamische Tests machen mit Sprungantworten oder Reaktionen auf harmonische Signale (dabei lässt sich auch die Geschwindigkeit ermitteln). Da gibts auf jeden Fall einiges, was sich da machen lässt. Richtig advanced wäre es, wenn man noch eine einstellbare Bremse mit einbauen könnte, um eine Last zu simulieren. Im Praktikum hatten wir dazu eine stromerregte Hysteresebremse, die ein konstantes, von der Drehzahl unabhängiges Lastmoment bereitstellt. Sowas ist aber wohl nicht wirklich etwas, was man günstig erstehen könnte.

RoboHolIC
14.07.2013, 01:46
... stromerregte Hysteresebremse ...
Damit kenne ich mich nicht aus, aber ich kenne den Effekt, dass ein mit DC betriebener Spaltpolmotor (230VAC-Zimmerlüfter, klassischer Plattenspielermotor o.ä.) recht schön bremst. Manko hier: das Trägheitsmoment des Rotors.

Vielleicht geht aber was mit Festplattenspindel, Datenträgerscheibe und Magnetkreis der Kopfpositionierung; Regulierung durch variables Schwenken des Magnets über die Scheibe.

Searcher
15.07.2013, 08:38
Kurzes, mit gemischten Gefühlen geschriebenes Update zu meinem Testaufbau:
Zur Zeit größtes "Problem" ist der gebastelte Winkel. Durch das manuelle Verdrehen auf dem Servoabtrieb leiert er aus und bleibt dann nicht mehr zuverlässig in seiner eingestellten Position. Muß mich mal nach anderem Material umsehen, wenigstens für die Verbindung zum Servoabtrieb.

Schnell und "schmutzig" programmiert laufen die Hauptfunktionen.
Servopulseinstellbereich wurde noch erweitert, da das ES-05 noch auf Pulse kürzer 500ms reagiert. Schwenkbereich etwas größer als 180°. Mit schrittweiser Veränderung der Pulslänge um 1µs rührt sich das Servo ca. alle 5µs. Für die Umkehrung der Drehrichtung braucht es ca. 10µs Veränderung. Später genaueres. Nur soviel: Hier könnte eine Strommessung interessant werden, da das Servo dann ungleichmäßige Sprünge macht, so als wenn im Getriebe Reibungen überwunden werden würden.

Servopulsabstand kann von 3ms bis 66ms verändert werden. Stellgeschwindigkeit wird von 20ms bis etwa 10ms Pulsabstand herunter erheblich größer. Darunter praktisch nicht mehr.

Es scheinen wirklich Unterschiede, wenn auch kleine in der Stellgeschwindigkeit zwischen Rechts- und Linkslauf zu bestehen. Genauere Messungen nachdem ich die Winkelmechanik verfeinert habe. Außerdem ergibt sich die Frage nach der Meßmethode. Kommt das Servo in die Nähe der Endposition, wird es langsamer. Läßt man nun den Winkel von 60° mit Fullspeed durchlaufen oder programmiert man einen Stellwinkel von 60°. Im letzteren Fall mißt man eine längere Zeit für den Durchlauf der 60°. Es muß auch eine Anlaufzeit geben, die man eventuell vernachlässigen könnte? Nicht nur hier wär ein Sensor, der die Aufnahme vieler Meßpunkte erlaubt, wie Poti oder Encoder oder...? sehr vorteilhaft.

Versuche beziehen sich alle auf mein analoges Modellcraft ES-05 Servo bei 5V Spannung und ohne Belastung.

Mittlerweile sind 2 Potis (Grobeinstellung Pulsweite, Pulsfrequenz), ein Drehencoder (Feineinstellung Pulsweite), Zwei Tasten, eine LED, das Servo, Serielle Datenausgabe und der CNY-70 am Tiny44 angeschlossen. Mal sehen, wie ich schaffe, da noch einen Quarz anzubringen oder welchen Einfluß auf die Meßergebnisse ein genauer Takt hat, im Vergleich zum internen Oszillator.

Entschuldigt, wenn ich auf weitere interessante Ideen hier im thread nicht eingehen kann; bin noch damit ausgelastet herauszufinden, wie lang die Sackgasse ist :-) und was praktisch in Servoanwendungen relevant ist?

Gruß
Searcher

Klebwax
15.07.2013, 09:29
Servopulseinstellbereich wurde noch erweitert, da das ES-05 noch auf Pulse kürzer 500ms reagiert. Schwenkbereich etwas größer als 180°. Mit schrittweiser Veränderung der Pulslänge um 1µs rührt sich das Servo ca. alle 5µs. Für die Umkehrung der Drehrichtung braucht es ca. 10µs Veränderung. Später genaueres. Nur soviel: Hier könnte eine Strommessung interessant werden, da das Servo dann ungleichmäßige Sprünge macht, so als wenn im Getriebe Reibungen überwunden werden würden.

Das sind ja doch schon mal interessante Erkentnisse. In den Datenblättern der verschiedenen Servo-ICs findet man Dead-Band Angaben von 1µs bis 5µs, das passt ja.


Servopulsabstand kann von 3ms bis 66ms verändert werden. Stellgeschwindigkeit wird von 20ms bis etwa 10ms Pulsabstand herunter erheblich größer. Darunter praktisch nicht mehr.

Da laufen dann die Ansteuerpulse für den Motor ineinander, er ist also dauernd an. Schneller gehts nicht.


Mal sehen, wie ich schaffe, da noch einen Quarz anzubringen oder welchen Einfluß auf die Meßergebnisse ein genauer Takt hat, im Vergleich zum internen Oszillator.

Das wird keine neuen Erkenntnisse bringen. Die Zeiten in der Servoelektronik werden nach den Datenblättern mit Kondensatoren erzeugt, zum Teil mit Elektrolyten. Die haben dann schon mal eine Genauigkeit von +-20%. Da ist der interne Oszillator von deinem Tiny, der außerdem noch bei "Labortemperatur" betrieben wird, viel besser. Man könnte höchstens, wenn man viele Servos misst, die Exemplarstreuung ausmessen.

MfG Klebwax

Manf
15.07.2013, 16:56
Das sind doch schon einmal ganz schöne Ergebnisse.
Gefühlsmäßig wird die größte Relevanz eine Belastung haben, wobei dann bei der Präzision schon die Aufhängung berücksichtigt werden muss.
Für die Winkelmessung habe ich beim Testen ganz gute Erfahrung mit dem AS5030 gemacht, es ging damit überraschend einfach.

https://www.roboternetz.de/community/threads/29796-Magnetischer-Drehwinkelgeber/page3?p=295855&viewfull=1#post295855

Alternativ könnte man bei konstanter Ansteuerung des Servos über eine Kurbel und eine Feder eine wechselndes Moment auf die Servoachse aufbringen und die Stromaufnahme des Servos beim Halten der Position messen.

Searcher
16.07.2013, 09:09
Super, hier kommen ja immer mehr prima Ideen und Infos zusammen. Man sollte doch mehr in den Tiefen der RN Foren und des RN-Wissens graben.

Mich beschäftigt es noch zu einer halbwegs zuverlässigen Zeitmeßreihe zu kommen. Die im Eröffnungspost angedachte Methode, den vorgefertigten Winkel per Hand und Kontrolle über eine LED auf die Zeitmeßstartposition zu bringen, ist unzuverlässig. Auch Selbstkalibrierung bzw Einstellversuche über den 1µs Regler geht nicht, da man es nicht schafft, den Schaltpunkt des CNY exakt zu treffen, da der Servo einfach nicht so fein einstellbar ist. Mag für viele trivial sein - für mich zeigt es wieder zum x-ten Mal die Diskrepanz zwischen Vorstellung und Realität, die mich immer wieder erwischt.

Zum Befestigen des Winkels auf dem Servoabtrieb nehme ich nun ein kleines Stück 1mm starke Teichfolie. Mit einem Lochdurchmesser minimal kleiner als der Servoabtrieb sitzt das fest genug und leiert nicht gleich aus, wenn man sie gegen den Abtrieb ein paar Mal hin und her verdreht.

Nun soll noch der Winkel so geformt werden, daß in einer Drehrichtung die gleiche Schaltflanke des CNY zur Messung hergenommen werden kann. Die Schenkel werden etwas breiter gemacht.

Zeitmessung beginnt dann einfach über ICP Interrupt bei laufendem Servo, wenn der erste Schenkel den CNY passiert und stoppt, wenn der zweite Schenkel erreicht ist.

Bisher hatte ich auch noch herumgetüfftelt, wann denn die Zeitnahme eigentlich SW-mäßig beginnt. Um da zu halbwegs vergleichbaren Ergebnissen zu kommen, wird der Zeitmessungsstart mit den Servopulsen synchronisiert. Soll heißen: Bei einer bestimmten Ruheposition bekommt das Servo gleichmäßige Pulse bestimmter Länge im Abstand von 20ms. Soll das Servo eine neue Position anfahren, wird die Pulslänge verändert. Exakt mit erstem veränderten Puls wird Zeitnahme gestartet. Wird später eventuell nochmal interessant, falls Ansprechverhalten getestet werden soll.

Gruß
Searcher

Searcher
19.07.2013, 14:39
Trotz Wetter habe ich noch ein wenig weiter gemacht und ein paar Meßwerte vom Hyperterminal in angehangene Datei kopiert.
Das (noch nicht ausgereifte) Meßprogramm ist auch angehangen. Falls jemand Lust hat, kann er sich da mal durchwühlen und Feedback geben.

Es läuft folgendermaßen:
Timer1 im Tiny44 wird im Mode15 mit 1Mhz betrieben (fast PWM, OCR1A as TOP, OC1B als PWM Ausgang)
Mit einem Poti und Drehencoder wird OCR1B gesetzt um die Länge des Servopulses zu beeinflussen. Servo ist an OC1B angeschlossen. Mit dem anderen Poti wird OCR1A gesetzt um die PWM Frequenz einzustellen.

Mit einer Taste wird die Zeit des Durchlaufs eines 60° Winkels im Linkslauf gemessen. Mit einer zweiten Taste das Gleiche im Rechstslauf. Dazu ist der Winkel so angebracht, daß im Linkslauf die fallende Flanke der Reflexlichtschranke, die am Input Capture Pin des Tiny angeschlossen ist, als Start- und Stopsignal hergenommen werden kann. Im Rechtslauf die steigende Flanke.



Vor Beginn der Messung zB für Linksdrehung, wird eine sinnvolle Pulsweite zB. 1800µs eingestellt. Das Servo dreht entsprechend in seine Stellung.
Dann wird der linke Winkelschenkel von Hand über die Lichtschranke gebracht - Ausgang Lichtschranke = LOW. LED auf Breadboard erlischt.
Taste für Linksdrehungsmessung drücken.
Servo dreht nach rechts bis Ausgang Lichtschranke high ist.
Die aktuelle Pulsweite, die nun etwas mehr als 1800µs beträgt wird nochmals um 200µs verlängert - Servo dreht noch weiter nach rechts, quasi als Anlauf für die folgende Linksdrehung.
Die aktuelle Pulsweite wird um 1000µs reduziert und dadurch die Linksdrehung begonnen.
Passiert die linke Kante des linken Winkelschenkels den CNY-70 beginnt die Zeitnahme.
Passiert die linke Kante des rechten Winkelschenkels den CNY-70 stoppt die Zeitnahme, Linksdrehung stoppt und Servo auf die Ausgangsposition (Pulsweite zB. 1800µs) zurückgefahren.
Meßwert ausgegeben und noch auf einen Tastendruck gewartet um den Meßmodus zu beenden.


Rechtsdrehungstest funktioniert sinngemäß mit 1200µs und Start mit rechtem Winkelschenkel über dem CNY-70.

Youtubelink: Video zur Verdeutlichung für eine Linksdrehmessung. (http://www.youtube.com/watch?v=-nOVUDwunRE)

Die Zeit wird mit dem Input Capture Feature des Timer1 genommen, indem bei ICP Interrupts das ICR Register gesichert wird und zusammen mit den gezählten Timeroverflows seit Meßstart verrechnet wird.

Im Meßprotokoll wird außer der Laufzeit noch die ungefähre Position des Servos zum Start der Zeitmessung in µs (die festgestellte Pulsweite bei dem die Lichtschranke high wurde, siehe Punkt 4. weiter oben) und der Pulsabstand in ms ausgegeben.

Abgesehen von der Streuung der Meßwerte sehe ich folgendes:
Rechtslauf ist langsamer als Linkslauf
Meßserien zu verschiedenen Zeitpunkten (nach Einschalten der Meßapparatur oder bei warmgelaufenem Servo oder nach Kaffeepause oder...) gestartet bringen nahe beieinander liegende Zeiten, die aber insgesamt von einer anderen Serie größere Abweichungen haben können.

Ein noch nicht sicher erkannter Effekt bei langen Pulszeiten:
Bei der Justierung von Hand des Winkels über der Lichtschranke vor Meßbeginn ist es nicht egal, wie weit die Kante vom Schaltpunkt des CNY entfernt ist. Im Meßprotokoll ist der Abstand erkennbar an den StartPW Werten. Je weiter diese von 1800µs entfernt sind, desto weiter war die Kante des Winkel von dem Zeitmeßstart (Schaltpunkt des CNY) entfernt.
Dann werden die Laufzeiten länger?
Progamm? Methode? Ungenauer Aufbau?
Fremdlicht spielt keine Rolle!
Noch nicht bei kurzen Pulszeiten beobachtet.

Gruß
Searcher

RoboHolIC
19.07.2013, 21:09
Hallo Searcher.

Was hältst du davon, bei der anfänglichen Justierung den toten Gang des Getriebes rauszunehmen durch Anfahren der Startposition in der Messrichtung (verzeih, wenn das schon geschieht und ich nicht kapiert haben sollte) und die Lichtschranke zu bewegen anstelle der Verdrehung des Winkels?
Das wäre zumindest eine kleine Verbesserung

Searcher
20.07.2013, 09:10
Hallo RoboHolIC,

...verzeih, wenn das schon geschieht...
Kein Problem - doppelt genäht hält besser.

Ein toter Gang sollte während des Meßvorgangs eigentlich nicht vorhanden sein. Wenn eine Messung für Linksdrehung durchgeführt werden soll, wird der Winkel von der händischen Einstellung aus zunächst vom Meßprogramm nach rechts bewegt (bei diesem Servo bedeutet das eine Pulsverlängerung), solange bis am µC Pin, an dem der CNY-70 angeschlossen ist, ein high erkannt wird.

Danach wird der Puls nochmals um 200µs verlängert, also nochmals weiter nach rechts bewegt. Das soll für die folgende Linksdrehung, bei der dann die Zeit genommen wird, einen ungefähr definierten Beschleunigungsweg einstellen. Der ist dann ca. 200µs Pulsweite von dem Zeitnahmestart entfernt.

Von da aus wird dann der Meßlauf nach links gestartet indem die Pulsweite schlagartig um 1000µs verkürzt wird (ca. 90° nach links, 60° würden ca. 600µs Pulsänderung entsprechen). Der Zeitnahmestart und Zeitnahmestopp werden also in einer Drehrichtung und hoffentlich mit höchstmöglicher Geschwindigkeit durchlaufen.

Für Messung im Rechtslauf passiert sinngemäß das Gleiche.

Kann auch sein, daß ich Dich jetzt nicht verstanden habe.

Hier liegt ein Schwachpunkt der Konstruktion. Ich kann nicht sagen, ob die 200µs Beschleunigungsweg ausreichen und ob nahe dem Zeitmeßstopp nicht schon eine Verlangsamung der Drehbewegung einsetzt. Besser wäre, wenn man eine Geschwindigkeitskurve aufnehmen könnte.

Habe ein Servo gleichen Typs genommen und gemessen. Eigenschaften gleich. Interessant war, daß das ungebraucht war und zu Beginn im Schnitt ca. 8ms schneller war. Nach geschätzten 30 Testläufen ist es langsamer geworden und ich kann nun keinen Unterschied zu dem ersten Servo ausmachen. Hätte eher das Gegenteil erwartet.

Wird Zeit, daß ich mir mal ein hochwertiges beschaffe und sehe, was damit los ist. Und im Hintergrund lauert auch immer noch die Aufgabe der Tests unter Last :-)

Gruß
Searcher

Manf
20.07.2013, 16:01
Habe ein Servo gleichen Typs genommen und gemessen. Eigenschaften gleich. Interessant war, daß das ungebraucht war und zu Beginn im Schnitt ca. 8ms schneller war. Nach geschätzten 30 Testläufen ist es langsamer geworden und ich kann nun keinen Unterschied zu dem ersten Servo ausmachen. Hätte eher das Gegenteil erwartet.


Das ist so wohl noch nicht nachvollziehbar. Wie wäre es mit einer Erklärung über die Erwärmung (des Motors, dabei eher der Ankerwicklung als eine Schwächung der Magnete oder es ist die Erwärmung der Elektronik).
Bei einem Auto war früher nach 30 Nutzungen ja auch eher nur der Aschenbecher voll.

oberallgeier
20.07.2013, 17:13
Erstmal grosses Lob für die schöne Arbeit!


... einen ungefähr definierten Beschleunigungsweg einstellen ...Darin sehe ich für verschiedene Servos selbst des gleichen Typs Probleme. Ich habe ja den vom BigC gekauften, nicht mehr erhältlichen ES-2 seziert und getestet (https://www.roboternetz.de/community/threads/32293-DC-Kleinstmotor-mit-Getriebe-Drehsensor-5V-510-Upm/page2?p=401963#post401963); nicht als Servo sondern als Getriebemotor. Die Motorzeitkonstante hatte ich natürlich auch bestimmt - allerdings im System eingebaut bei Dottie und später MiniD0. Diese Werte waren beim Dottie deutlich unterschiedlich (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=400881&viewfull=1#post400881) bei den zwei verbauten Motoren mit 8 ms und 12 ms (Messdiagramm oberhalb des verlinkten Postings). Dem entsprechend bin ich sicher, dass ähnliche (Billig-) Servos, auch wenn Dein RS-2 ein grosser Bruder ist, sich im Anlaufverhalten doch auch ändern, zumindest bei verschiedenen Mustern gleichen Typs - eben weil das Beschleunigungsverhalten ja durch die Motorzeitkonstante charakterisiert wird - selbst in Deinem lastlosen Fall. Ob das drehrichtungsabhängig ist kann ich aber leider nicht sagen.

Korrektur: Der Servotyp "ES-2" existiert nicht, das ist ein Schreibfehler, die erwähnten Servos heißen ES-5, vollständig TOP-LINE MINI SERVO ES-05. Danke Searcher für die Aufmerksamkeit.

Searcher
21.07.2013, 08:31
Danke für das Interesse!

Das ist so wohl noch nicht nachvollziehbar. Wie wäre es mit einer Erklärung über...
Ich finde keine, die sich bei meinem Erfahrungsstand logisch anhören würde. Das Servo, das im Neuzustand schneller war, zeigt jetzt Werte, die nicht deutlich abgrenzbar von dem ersten Servo sind. Die ersten gemessenen Werte habe ich leider nicht aufgezeichnet und kann mich nur erinnern, wie überrascht ich war, weil sie deutlich unter den Herstellerangaben waren. (Hersteller: 4,8V, 60°- 0,17s; gemessen bei 5V, 60° - deutlich unter 0,17s, jetzt immer etwas über 0,17s)

Ich bereite gerade eine automatisierte Testreihe vor. Positionieren für Linkslauf, Linkslaufmessung, Positionieren für Rechtslauf, Rechtslaufmessung, Positionieren für Linkslauf, Linkslaufmessung ... usw. Vielleicht 20 Paare?

Dazu hab ich gestern Abend doch mal einen ext. 8MHz Quartz am Tiny angeschlossen und weil ich das nur ganz selten mache, etwas geschwitzt. Hatte die Debounce Kommandos, die die XTAL Pins abfragen, an denen die Tasten angeschlossen waren, noch nicht aus dem Programm rausgenommen. Der Tiny hat dann wohl nach der Fuseumstellung versucht die 8MHz zu entprellen :-) und keine Zeit mehr gefunden die anderen Aufgaben in der Hauptschleife zu erledigen wie zB die CNY Status LED zu aktualisieren; und manchmal doch. Nach gefühlten Stunden des Rätselns, warum IDE Zugriff auf Tiny funktioniert und unverändertes Programm nicht laufen will, ist jetzt der Weg frei um wenigstens den Einfluß der Temperaturdrift des µC internen RC Oszillators auf die Meßergebnisse auszuschließen. Mal sehen ob ich auch noch eine Meßwertausgabe hinbekomme, die einem EXCEL .csv Format entspricht.

@oberallgeier: Danke für das Lob. Hoffentlich kann man die ganzen Beobachtungen und Detaillösungen in einem anderen ultimativen Servotester einfließen lassen :-) Ich war öfter in Deinen Threads und Beiträgen unterwegs und kann erst jetzt so langsam ermessen, wieviel Arbeit in solchen Auswertungen steckt. Wenn ich mal genügend Vertrauen in meine Messungen gewonnen habe, werd ich bei Dir noch mal tiefer für Vergleiche einsteigen. PS: Meine Servos sind ES-05, auch vor löngerer Zeit vom C für 5€/Stück und den ES-2 wohl vergleichbar.

Gruß
Searcher

oberallgeier
21.07.2013, 08:58
... PS: Meine Servos sind ES-05 ... und den ES-2 wohl vergleichbar ...Vergleichbar ist gut *gg* - es ist (m)ein Schreifehler und der gleiche Servotyp (habs oben nachgetragen).

Na ja, ein bisschen Aufwand hatte ich schon. Aber ich weiß ja auch meist gerne wo´s lang geht. Und die Herstellerangaben sind ja extrem dünn, viele reden sich auf gelegentliche Fertigungsstreuungen hinaus. Und teure Servos (auch keine viel besseren Datenblätter!) habe ich bisher nicht verwendet - bisher gings so ganz ordentlich.

Klebwax
22.07.2013, 00:59
Vor Beginn der Messung zB für Linksdrehung, wird eine sinnvolle Pulsweite zB. 1800µs eingestellt. Das Servo dreht entsprechend in seine Stellung.
Dann wird der linke Winkelschenkel von Hand über die Lichtschranke gebracht - Ausgang Lichtschranke = LOW. LED auf Breadboard erlischt.
Taste für Linksdrehungsmessung drücken.
Servo dreht nach rechts bis Ausgang Lichtschranke high ist.
Die aktuelle Pulsweite, die nun etwas mehr als 1800µs beträgt wird nochmals um 200µs verlängert - Servo dreht noch weiter nach rechts, quasi als Anlauf für die folgende Linksdrehung.
Die aktuelle Pulsweite wird um 1000µs reduziert und dadurch die Linksdrehung begonnen.
Passiert die linke Kante des linken Winkelschenkels den CNY-70 beginnt die Zeitnahme.
Passiert die linke Kante des rechten Winkelschenkels den CNY-70 stoppt die Zeitnahme, Linksdrehung stoppt und Servo auf die Ausgangsposition (Pulsweite zB. 1800µs) zurückgefahren.
Meßwert ausgegeben und noch auf einen Tastendruck gewartet um den Meßmodus zu beenden.


Wenn ich das jetzt richtig interpretiere, misst du "fliegende 60°", also eigentlich die maximale Drehzahl des Servomotors bei 5V. Das ist für ein Servo schon ein wichtiger Wert, schneller geht's nimmer. Es hat aber mit dem wirklichen Einsatz eines Servos, wo es darauf ankommt, eine bestimmte Position anzufahren und dort auch anzuhalten, wenig gemein.

MfG Klebwax

oberallgeier
22.07.2013, 07:57
... die maximale Drehzahl ... bei 5V.... hat mit dem wirklichen Einsatz ... wenig gemein ...Genau so sehe ich das auch. Allerdings ist das eine gute und schnelle Möglichkeit, Fertigungsstreuungen festzustellen. Dazu zählt natürlich genau die Beschleunigung, die Searcher hier korrekterweise ausblendet; die hat für die Motorzeitkonstante Bedeutung. Wichtige Punkte wären noch die Positioniergenauigkeit/Reproduzierbarkeit sowie die Positionierauflösung (welche Pulsbreitenänderung kann der Servo nachweisbar unterscheiden bzw. getrennt anfahren). Und, für uns Roboterbauer, für den Einsatz als Aktor, ist natürlich die Regelabweichung unter verschiedenen Lasten (Nachgiebigkeit des Reglers) von zentraler Bedeutung - von der spricht kein Hersteller, die kennen nur Dreh-/Haltemomentwerte und so. Die lastabhängige Regelabweichung hat beim billigen RS-2 einen Wert, der eine jämmerliche Güte zeigt, wie ich schon früher festgestellt hatte. (https://www.roboternetz.de/community/threads/61379-Kopfsache-und-ein-m1284-etliche-Servos-viel-Alu?p=579801&viewfull=1#post579801)


... eine bestimmte Position anzufahren und dort auch anzuhalten, wenig gemein ...Genau. Allerding ist das für den ursprünglichen Einsatz der Servos als Aktoren, die von Fernsteuerungen (mannbedient, sicht-/ergebniskontrolliert) verstellt werden, ausreichend. Der Mensch am Bedienungshebel der Fernsteuerung "regelt" nämlich "auf Sicht" nach - und kann meist auch das "Übersetzungsverhältnis" an seinem Hebelklavier einstellen.

Ein zentrales Thema das hier sichtbar wird, ist das unterschiedliche Anforderungsprofil der Modellbauer (sichtkontrolliert oder ergebniskontrolliert) und der Roboterbauer (meist autonom - also vorgabeorientiert). Und da kommt der Wunsch nach der Stellungsrückmeldung per Hard- und Software und nach Rampenstellmöglichkeit etc . . . opens.. lässt grüßen.

Searcher
22.07.2013, 08:43
Wenn ich das jetzt richtig interpretiere, misst du "fliegende 60°", also eigentlich die maximale Drehzahl des Servomotors bei 5V. Das ist für ein Servo schon ein wichtiger Wert, schneller geht's nimmer. Es hat aber mit dem wirklichen Einsatz eines Servos, wo es darauf ankommt, eine bestimmte Position anzufahren und dort auch anzuhalten, wenig gemein

Hallo Klebwax,
ja, stimmt. Ich bin immer noch auf der Suche nach verläßlichen und vergleichbaren Meßwerten. Das für mich überraschende Verhalten der Servos und das nicht darauf eingerichtete Meßverfahren erschweren mir das.

Um die Positionierungszeit, also Anfahren und dann Stoppen für bestimmte Drehwinkeln zu messen, ist mein Aufbau auch nicht geeignet. Auch wenn ich mich auf die 60° des vorgefertigten Winkels beschränken würde (oder andere Hardwarewinkel), sind die Streuungen innerhalb mehrmaliger Meßläufe ziemlich groß. Liegt, so meine ich, daran, daß ich den Winkel zum Meßstart genau auf den Schaltpunkt der Reflexlichtschranke positionieren müßte. Das krieg ich händisch nicht genau genug hin bzw sind mir die Toleranzen zu groß und das Servo ist auch nicht genau genug steuerbar dafür. Deshalb bin ich zunächst mal auf die Höchstgeschwindigkeitsmessung ausgewichen.

Aber auch hier sieht es so aus, daß die Meßmethode sich nicht wirklich eignet. Mir ist es auch immer noch ein Rätsel, warum ich gegenwärtig mit der Höchstgeschwindigkeitsmethode konstant unterschiedliche Zeiten bekomme, je nachdem wie weit die Winkelkante zu Beginn der Messfahrt vom CNY Schaltpunkt entfernt ist, obwohl danach ja noch 200µs Pulsweitenänderung "Anlauf" genommen wird, wie früher mal beschrieben nur bei langen Pulszeiten. Hab so 'ne Vermutung, die, wenn sie stimmt, das Verhalten nur bei analogen Servos auftritt.

Positioniergeschwindigkeit könnte ein Meßunterprogramm sein, zur Zeit experimentiere ich mit Meßunterprogramm Höchstgeschwindigkeit über 60°. Die beiden können auch noch unter Last durchgeführt werden...

Wenn ich mir meinen eigenen Text jetzt so durchlese, müßte ich eigentlich alles verwerfen und einen Aufbau mit Poti, Winkelmesser oder so etwas suchen, bei dem die Positionierung zu Meßbeginn keine so große Rolle spielt und mit dem es möglich ist auch Geschwindigkeitsverläufe über den Drehwinkel aufzunehmen.

Ganz sicher werde ich aber auch da auf mir noch unbekannte Effekte treffen und gehe nicht davon aus, daß dann alle Probleme gelöst wären. Es werden vermutlich nur andere sein.

Der größte Vorteil meines jetzigen Aufbaus ist, daß er übersichtlich :-) ist und schon was geht, viel mehr wohl nicht :(. Im Augenblick kann ich mir aber noch nicht vorstellen auf Winkelmessung umzustellen, zum Teil auch, weil Probleme , die eigentlich nicht da sein sollten wie zB. das Kantenpositionierungsrätsel oder Neuservoeinfahrrätsel und die neuen unbekannten Probleme im neuen Aufbau mich davon abhalten.

@oberallgeier: Gerade ist Deine Antwort vor meine gerutscht. Muß ich mir später anschauen.

:Strahl Einen schönen Tag und
Gruß
Searcher

Manf
22.07.2013, 16:55
Es klingt ein Bisschen so wie wenn die Präzision der Zeitmessung Messung recht hoch ist aber die Anzahl der Parameter den Vorgang nicht klar genug beschreiben lässt.

Was wäre ein Vorgang? Vielleicht eine Winkeländerung um 60°. Der Vorgang könnte besser Aufgenommen werden wenn eine Lochscheibe eine Codescheibe, ein Zahnrad eben mehrere Aufnahmen über den Winkelbereich zulässt. (Speicher-Oszilloskop ...)

Offen ist dabei vielleicht noch der Startpunkt, die Synchronisation. Wie wäre es wenn man das Servo relativ langsam in kleinen Schritten bewegt und beim Überschreiten der Schwelle (eine der Marken Loch, Zahn) die Messung startet?

Searcher
22.07.2013, 22:06
Hallo,
@oberallgeier: Hab nichts hinzuzufügen und bin mir auch bewußt, daß diese Servos eigentlich für Fernsteuermodelle gedacht sind.


Was wäre ein Vorgang? Vielleicht eine Winkeländerung um 60°. Der Vorgang könnte besser Aufgenommen werden wenn eine Lochscheibe eine Codescheibe, ein Zahnrad eben mehrere Aufnahmen über den Winkelbereich zulässt. (Speicher-Oszilloskop ...)

Danke! Das hab ich gleich aufgenommen und es hat mir den letzten Anstoß gegeben nochmal an der HW zu murksen. Hat glaub ich schon was gebracht. Leider paßt der 60° Winkel da so eben nicht mehr drunter und muß da noch was machen. Mal sehen, was es dann für weitere Möglichkeiten gibt.

Das Servo wurde mit Pulsweite 1800µs versorgt und dann auf 1200µs gesetzt was ganz grob den 60° entspricht. Also Beschleunigung und Abbremsen innerhalb der 60°. Nur ganz oberflächliche Aufzeichnung zum Testen der Gabellichtschranke.

Hatte noch eine Codescheibe aus einem CD-Rom mit Gabellichtschranke. Etwas geringe Auflösung, aber man kann sehen, daß die Beschleunigung über ca. 50ms geht. Könnte bei meinen bisherigen Tests zu kurz geschätzt gewesen sein. Beide Oszillogramme unter gleicher Ansteuerung des Servos mit unterschiedlicher Zeitbasis genommen.

26066 26067 26068

Hatte nicht gedacht, daß der thread solche Ausmaße annimmt.

Gruß
Searcher

oberallgeier
06.09.2013, 17:19
... Aufbau mit Poti ... suchen ... auch Geschwindigkeitsverläufe ... aufzunehmen ...Genau. Ich bin mittlerweile so weit, dass bei mir erste Messungen laufen (https://www.roboternetz.de/community/threads/62904-Servomesstester-%28Servotester-und-%C2%96messaufbau%29?p=585556#post585556) und ich muss sagen, die Ergebnisse sind nicht selbstverständlich. Auch (noch) nicht wirklich überraschend - die Geschwindigkeitsverläufe finde ich aber richtig interessant.

Searcher
06.09.2013, 20:16
@oberallgeier: Tolles Ding was Du da aufgebaut hast!

Bei meinem Tester ging es nicht so richtig weiter, weil mir der Aufwand immer höher wurde auch eben aufgrund unerwarteter Ergebnisse. Für die Geschwindigkeitsverläufe hatte ich mal dran gedacht eine Encoderscheibe von einem Drucker zu benutzen. Hab hier eine aus einem HP Tintenstrahler, bei der ich die Striche kaum mit bloßem Auge erkennen kann. Allerdings ist die so groß, daß mein bisheriger HW Aufbau ungeeignet ist. Ein Poti hatte ich noch nicht wirklich in Planung, da mir die erreichbare Auflösung nicht ausreichend erschien. Gut zu wissen, daß Du damit gute Erfahrung gemacht hast.

Mal sehen wann es hier weiter geht ... Außer gutem Wetter gibt es ja noch mein anderes Projekt (https://www.roboternetz.de/community/entries/224-Weitere-Aufr%C3%A4umarbeiten-mit-neuem-Batteriehalter) :-)

Gruß
Searcher