Forum: Mikrocontroller und Digitale Elektronik Controller für Servo - brauche Hilfe -


von Ludwig W. (ludwig_w)


Lesenswert?

Hallo und einen schönen Tag,
bei einer Recherche im Internet bin ich auf ihre Seite gestoßen. 
Vielleicht können sie mir helfen. Wie gesagt hatte ich im Internet nach 
einer einfachen Lösung für die Steuerung eines Servomotors gesucht. Ja, 
da gibt es Informationen ohne Ende, aber für mein Vorhaben habe ich 
nichts gefunden. Im Elektronikbereich bin ich totaler Neuling und mit 75 
Jahren habe ich keine Nerven und auch nicht mehr die Zeit mir alles im 
einzelnen anzueignen. Programmierungen mit Arduino oder Ählichen sind 
für mich unverständlich. Vielleicht haben sie eine Lösung und jemand 
kann mir soetwas bauen.

Was ich vorhabe:
Es soll ein Servomotor (180°) per Drehregler gesteuert werden.
Der Ausschlag soll auf 140° begrenzt werden.
Ich möchte erreichen das sich das Servo ohne Unterbrechung nach links 
und rechts als Pendel bewegt (also wie im Automatik-Modus). Dabei soll 
ein Drehregler die Ausschlagweite regulieren. Z.B. Regler aus = 0°, 
Regler bei 50%= 35°, Regler 100%=70° je Seite.
Die Winkelbereiche sollen jeweils rechts und links als Pendelbewegung 
ohne Unterbrechung erfolgen.
Per 2. Poti soll die Geschwindigkeit reguliert werden können.

Was ich probiert habe:
Mit kleinen Servos und einen Servotester habe ich folgendes 
festgestellt. Im manuellen Betrieb ist die Ausschlagweite einstellbar 
und bleibt an dem gewählten Punkt stehen. In Normalstellung geht das 
Servo in 0 Stellung, im Automatikmodus pendelt der Motor hin und her 
(jedoch ohne Wirkung des Poti).
Also der Automatikmodus ist eigentlich das was ich möchte, aber leider 
ohne regulierung des Winkels. Wie könnte das gelöst werden?

Die getesteten Servos sind nicht die welche ich zum Einsatz bringen 
möchte, aber das Prinzip sollte das Gleiche sein.

Mein gewählter Motor:
DS51150-12V
Servo mit hohem Drehmoment: 150 kg 180 Grad
Impulsbreitenbereich: 1000 – 2000 μs
Totbandbreite 3 Mikrosekunden
Wasserdichte Leistung: IP67
Betriebsspannung: 10V-12,6V
Frequenz: 50 - 330 Hz
Geschwindigkeit:
▶0,24 Sek./60 Grad bei 10 V
▶0,21 Sek./60 Grad bei 12 V
▶0,19 Sek./60 Grad bei 12,6 V
Drehmoment:
▶150kg.cm.@10V
▶165kg.cm.@12V
▶173kg.cm.@12,6V


Es würde mich freuen wenn sie antworten und vielleicht eine Lösung parat 
hätten.


freundliche Grüße aus Leipzig Ludwig Winternheimer

von Michael B. (laberkopp)


Lesenswert?

Ludwig W. schrieb:
> Wie könnte das gelöst werden?

So was gibt es nicht von der Stange weil sonst niemand so was braucht.

Zumal Modellbauservos zwar billig sind aber nicht besonders lang halten, 
die sind nicht für dauerndes rumrühren gebaut.

Die Ansteuerung  per 1-2msec langem Impuls alle 20msec wiederholt  ist 
aber sehr einfach. Eine Schaltung, die das automatisch verändert, z.B. 
in einer Dreieck oder Sinuskurve, besteht aber aus mehr als 1 Bauteil.

Daher wird man heute klugerweise eine fertige Platine mit 
programmierbarem Controller nutzen wie einen Arduino Uno.

An den kann man 2 Potis anschliessen und 1 Servo, und den Controller so 
programmieren dass er abhängig von den Potistellungen ein Servosignal 
rauswirft.

Aber dazu muss man programmieren lernen, was dur h die Arduino-Umgebung 
aber kinderleicht gemacht wurde.

ChatGPT sagt:
1
#include <Servo.h>
2
3
const int servoPin = 2;
4
const int anglePotPin = A1;
5
const int timePotPin = A2;
6
7
Servo servo;
8
9
// Wertebereiche
10
const int angleMin = 0;
11
const int angleMax = 90;
12
13
const float timeMin = 0.25;  // Sekunden
14
const float timeMax = 10.0;  // Sekunden
15
16
const int updateInterval = 25; // ms, Zeit zwischen Servosignalen
17
18
// Bewegung
19
float currentAngle = 0;
20
float targetAngle = 0;
21
float stepSize = 0;
22
int direction = 1;
23
24
unsigned long lastUpdate = 0;
25
26
void setup() {
27
  servo.attach(servoPin);
28
}
29
30
void loop() {
31
  unsigned long now = millis();
32
  if (now - lastUpdate >= updateInterval) {
33
    lastUpdate = now;
34
35
    // 1. Maximalen Winkel einlesen (0° bis 90°)
36
    int rawAngle = analogRead(anglePotPin);
37
    float maxAngle = map(rawAngle, 0, 1023, angleMin, angleMax);
38
39
    // 2. Zeitdauer für eine Hin- und Rückbewegung einlesen (0.25s bis 10s)
40
    int rawTime = analogRead(timePotPin);
41
    float moveTime = map(rawTime, 0, 1023, timeMin * 1000, timeMax * 1000) / 1000.0;
42
43
    // 3. Berechnen, wie viel der Servo pro updateInterval bewegen soll
44
    // Eine Strecke von -maxAngle bis +maxAngle und zurück hat 2*maxAngle Strecke
45
    // moveTime gibt Zeit für eine volle Hin- und Rückbewegung
46
    float stepsPerCycle = (moveTime * 1000) / updateInterval;
47
    if (stepsPerCycle == 0) stepsPerCycle = 1; // Division durch 0 verhindern
48
49
    float angleRange = 2 * maxAngle; // -maxAngle bis +maxAngle
50
    stepSize = angleRange / stepsPerCycle;
51
52
    // 4. Bewegung aktualisieren
53
    currentAngle += direction * stepSize;
54
55
    if (currentAngle >= maxAngle) {
56
      currentAngle = maxAngle;
57
      direction = -1;
58
    } else if (currentAngle <= -maxAngle) {
59
      currentAngle = -maxAngle;
60
      direction = 1;
61
    }
62
63
    // 5. Umrechnen auf Servo-Winkel (-90° bis +90° → 1ms bis 2ms)
64
    int servoAngle = map(currentAngle, -90, 90, 0, 180);
65
    servo.write(servoAngle);
66
  }
67
}
irgendwie so sieht also das Programm aus.

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Ludwig W. schrieb:
> Es soll ein Servomotor (180°) per Drehregler gesteuert werden.
> Der Ausschlag soll auf 140° begrenzt werden.

> Mein gewählter Motor:
> DS51150-12V

Das ist ein kompletter Modellbau-Servo inklusive Steuerelektronik und 
mit digitaler Schnittstelle. Die Pulsbreite des Signals bestimmt die 
Position.

> Also der Automatikmodus ist eigentlich das was ich möchte, aber leider
> ohne regulierung des Winkels. Wie könnte das gelöst werden?

Und ohne Regulierung der Geschwindigkeit ...

> Per 2. Poti soll die Geschwindigkeit reguliert werden können.

Mit einem Mikrocontroller bist du da schon richtig. Der muss deinem 
Bewegungsprofil entsprechen die Steuerpulse mit der richtigen Länge 
ausgeben. Maximal kann der Sollwert der Position alle 3 ms aktualisiert 
werden, der Standardwert aus dem Modellbau sind 20 ms.

Wie schnell soll die Bewegung maximal erfolgen?

Michael B. schrieb:
> Die Ansteuerung  per 1-2msec langem Impuls alle 20msec wiederholt  ist
> aber sehr einfach.

Schon ins Datenblatt geguckt?
Das geht deutlich schneller, wenn es denn so sein soll.

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Rainer W. schrieb:
> Michael B. schrieb:
>> Die Ansteuerung  per 1-2msec langem Impuls alle 20msec wiederholt  ist
>> aber sehr einfach.
>
> Schon ins Datenblatt geguckt

Ja, 1000us-2000us steht dort, das habe ich mal in 1ms-2ms umgerechnet, 
hat dich das verwirrt ?

von Georg G. (df2au)


Lesenswert?

Rainer W. schrieb:
> Maximal kann der Sollwert der Position alle 3 ms aktualisiert
> werden, der Standardwert aus dem Modellbau sind 20 ms.

Etliche Servos reagieren auf größere Abweichungen ( > 20% ) mit 
Arbeitsverweigerung.

von Rainer W. (rawi)


Lesenswert?

Michael B. schrieb:
> Ja, 1000us-2000us steht dort, das habe ich mal in 1ms-2ms umgerechnet,
> hat dich das verwirrt ?

Trink erstmal einen Kaffee zum Aufwachen. 1ms-2ms liegt mitten in dem 
Bereich von 500~2500µsec, den der Servo kann.

Aber vielleicht ist dir aufgefallen, dass der Kehrwert von 330Hz, der 
maximalen Arbeitsfrequenz, einer Pulswiederholrate von 3ms entspricht.

Georg G. schrieb:
> Etliche Servos reagieren auf größere Abweichungen ( > 20% ) mit
> Arbeitsverweigerung.

Schon ins Datenblatt des Servos geguckt, um den es hier geht?
Oder sollte es sich nicht um den im Datenblatt zum DS51150 beschriebenen 
handeln?

: Bearbeitet durch User
von Reinhard R. (reirawb)


Lesenswert?

Rainer W. schrieb:
> Und ohne Regulierung der Geschwindigkeit ...

Was IMHO das größere Problem ist. Wenn man die Zielwerte rechts/links 
ausgibt, fährt der Servo mit seiner maximalen Geschwindigkeit zur 
jeweiligen Stellung. Soll das langsamer gehen, müsste man den Servo über 
den gesamten Weg mit entsprechenden Zwischenwerten versorgen.

von Rainer W. (rawi)


Lesenswert?

Reinhard R. schrieb:
> Soll das langsamer gehen, müsste man den Servo über
> den gesamten Weg mit entsprechenden Zwischenwerten versorgen.

Ja, so ist das. Der µC wird trotzdem immer noch Langeweile haben. Die 
Pulse erzeugt man sinnigerweise mit einem Timer des µC.

von Norbert (der_norbert)


Lesenswert?

Ludwig W. schrieb:
> Es würde mich freuen wenn sie antworten und vielleicht eine Lösung parat
> hätten.

Mit einem (Modellbau) Servo wird das gleich aus mehreren Gründen nicht 
funktionieren.
Denen gibt man nämlich durch die Länge des Pulses eine einzunehmende 
Position vor.
Man kann nicht (oder nur in sehr begrenztem Maße) eine Geschwindigkeit 
vorgeben. Des weiteren gibt es eine natürliche Abhängigkeit zwischen 
Pendellänge und Frequenz/Periode. Trifft man die, pendelt es sich fast 
von allein. Alles andere braucht (je nach Differenz) deutlich erhöhte 
Kräfte.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ludwig W. schrieb:
> Ich möchte erreichen das sich das Servo ohne Unterbrechung nach links
> und rechts als Pendel bewegt
Ein Pendel schwingt sinusförmig, also bräuchest du einen Sinusverlauf in 
der Ansteuerung. Sonst sieht der Bewegungsablauf nicht wie eine 
Pendelschwingung aus, sondern nur wie ein "Hin- und Her-Bewegen".

von Rainer W. (rawi)


Lesenswert?

Norbert schrieb:
> Mit einem (Modellbau) Servo wird das gleich aus mehreren Gründen nicht
> funktionieren.

Unsinn - das ist eine Frage der (unbekannten) Sollgeschwindigkeit. Bei 
einer Updaterate von 330 Hz und nicht zu schneller Bewegung, kann der 
Ablauf schon recht flüssig sein.

> Denen gibt man nämlich durch die Länge des Pulses eine einzunehmende
> Position vor.

Ach nee

Lothar M. schrieb:
> Ein Pendel schwingt sinusförmig, also bräuchest du einen Sinusverlauf in
> der Ansteuerung.

Annähernd und ja, den müsste man durch eine Folge von Sollpositionen 
approximieren.

von Norbert (der_norbert)


Lesenswert?

Rainer W. schrieb:
> Unsinn - das ist eine Frage der (unbekannten) Sollgeschwindigkeit. Bei
> einer Updaterate von 330 Hz und nicht zu schneller Bewegung, kann der
> Ablauf schon recht flüssig sein.

WENN: Bei einer Updaterate von 330 Hz
UND WENN: nicht zu schneller Bewegung
DANN KANN: schon recht flüssig sein

Hätte ich selbst auch nicht eleganter formulieren können.
Wird also eine mehr oder wenige "eckige" Hau-Ruck Pendelbewegung.

Wenn Frequenz und Länge passen, würde hingegen eine weiche Feder zur 
Übertragung der Kraft das Ganze sogar in akzeptable Bahnen lenken.

von Rainer W. (rawi)


Lesenswert?

Norbert schrieb:
> Hätte ich selbst auch nicht eleganter formulieren können.

Warum schließt du dann aus, dass es funktioniert, obwohl du gar nicht 
weißt, worum es genau geht?

Da ist erstmal der TO gefragt.

von Norbert (der_norbert)


Lesenswert?

Rainer W. schrieb:
> Warum schließt du dann aus, dass es funktioniert

Ich würde doch sehr darum bitten, mir keine (falschen) Worte in den Mund 
zu legen. Dazu zählen auch arg verkürzte Interpretationen.

Es liegt IN DER NATUR DES SYSTEMS, dass keine kontinuierlichen 
Kräfteverläufe generiert werden können. Mehr muss man dazu nicht wissen.

Aber, Rainer, auch nicht weniger!

: Bearbeitet durch User
von Cartman E. (cartmaneric)


Lesenswert?

Ludwig W. schrieb:

> Was ich vorhabe:
> Es soll ein Servomotor (180°) per Drehregler gesteuert werden.
> Der Ausschlag soll auf 140° begrenzt werden.
> ...

Das ist nicht das was du vor hast.
Das beschreibt nur, wie du denkst dein Problem zu lösen.
Ein Modellbauservo würde wohl sehr schnell das Handtuch werfen.

> Es würde mich freuen wenn sie antworten und vielleicht eine Lösung parat
> hätten.

Schreib erstmal was die Anordnung tun soll.
Ein Pendel pendeln lassen?

von Rahul D. (rahul)


Lesenswert?

Cartman E. schrieb:
> Ein Modellbauservo würde wohl sehr schnell das Handtuch werfen.

Warum?
Prinzipiell kann man einem Winkel eine Pulsdauer zuordnen.
Die Pulsdauer ist dann der Anschlag.

von Rainer W. (rawi)


Lesenswert?

Norbert schrieb:
> Es liegt IN DER NATUR DES SYSTEMS, dass keine kontinuierlichen
> Kräfteverläufe generiert werden können.

Ob der Kraftverlauf kontinuierlich ist, hängt von ganz anderen Dingen 
ab.
Beim Servo ist durch den Motor eine endliche Verstellgeschwindigkeit 
vorgegeben. Die Position ändert sich damit schon mal nicht sprunghaft.

Norbert schrieb:
> Rainer W. schrieb:
>> Warum schließt du dann aus, dass es funktioniert
>
> Ich würde doch sehr darum bitten, mir keine (falschen) Worte in den Mund
> zu legen.

Was soll ich dir in den Mund gelegt haben?

Norbert schrieb:
> Mit einem (Modellbau) Servo wird das gleich aus mehreren Gründen nicht
> funktionieren.

: Bearbeitet durch User
von Jack V. (jackv)


Lesenswert?

Michael B. schrieb:
> Zumal Modellbauservos zwar billig sind aber nicht besonders lang halten,
> die sind nicht für dauerndes rumrühren gebaut.

… das sehen die in meinen Helis verbauten Servos allerdings völlig 
anders. Die 4,99€-Plastikdinger aus den billigen chinesischen RC-Autos 
sollte man nicht unbedingt als Referenz für „Modellbauservos“ ansehen.

Norbert schrieb:
> Man kann nicht (oder nur in sehr begrenztem Maße) eine Geschwindigkeit
> vorgeben. Des weiteren gibt es eine natürliche Abhängigkeit zwischen
> Pendellänge und Frequenz/Periode.

On-Topic: Die minimale Schrittweite und damit wird von der (zeitlichen) 
Auflösung des Controllers im Servo vorgegeben (digitale Servos 
vorausgesetzt – was Anderes verbaut heute aber auch keiner mehr), und 
wie schnell die die Eingabe ausgewertet wird, von der Frequenz der 
Pulse. In diesem Rahmen kann man eine kontinuierliche Bewegung, 
bestehend aus der resultierenden Anzahl der Einzelschritte in der 
gegebenen Zeit, erreichen. Da der TE ja schrieb, dass sein Servotester 
den Job bis auf den Winkel zu seiner Zufriedenheit tun würde, lässt sich 
das natürlich auch mit einem μC nachbauen (im Servotester arbeitet 
schließlich nix Anderes).

Allerdings halte ich hier ein XY-Problem für möglich bis wahrscheinlich, 
und für die eigentliche Aufgabe wäre ein anderer Ansatz zielführender. 
Da wär’s schön, wenn der TE, Herr W., das kurz umreißen könnte.

: Bearbeitet durch User
von Norbert (der_norbert)


Lesenswert?

Rainer W. schrieb:
> Ob der Kraftverlauf kontinuierlich ist, hängt von ganz anderen Dingen
> ab.
> Beim Servo ist durch den Motor eine endliche Verstellgeschwindigkeit
> vorgegeben. Die Position ändert sich damit schon mal nicht sprunghaft.

Aber eben auch nicht von außen in irgendeiner Weise kontrollierbar.
Zumal die Motordrehgeschwindigkeit auch noch mit der relativen Distanz 
zum Sollwert verändert wird. UND der Belastung. UND auch noch ein 
Totbereich spezifiziert ist.

Das können wir jetzt noch Jahre diskutieren, ein Modellbau-Servo wird 
gestellt, nicht geregelt**.
Du sagst dem Ding: Gehst du jetzt da rüber oder nicht?
Dann geht es da rüber oder nicht!

Du bekommst keinerlei Informationen aus dem Ding aus denen du irgend 
etwas ableiten könntest. Weder Geschwindigkeit, noch Position.
Na ja, bis auf eine. Wenn kein Strom fließt, steht's wahrscheinlich 
still.

**: Nicht von außerhalb, innerhalb natürlich schon. Mit unbekannten und 
unkontrollierbaren Parametern.

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Norbert schrieb:
> Das können wir jetzt noch Jahre diskutieren, ein Modellbau-Servo wird
> gestellt, nicht geregelt**.

Früher (tm) bei den analogen Servos kam der Soll-Wert für die Position 
über die Pulslänge und der Ist-Wert von einem internen Potentiometer. 
Dazwischen saß der Regler. Was du mit "innerhalb" und "außerhalb" 
meinst, ist mir aus Sicht der Regelungstechnik nicht klar.

Modellbauservos bekommen eine Position vorgegeben und fahren die mit 
endlicher Geschwindigkeit an, fertig.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Norbert schrieb:
> Das können wir jetzt noch Jahre diskutieren, ein Modellbau-Servo wird
> gestellt, nicht geregelt
Klar wird es geregelt: man gibt eine Wunschposition an und es fährt 
selbständig dorthin (solange es nicht überlastet wird). Wenn du das 
Servo verdrehst, dann regelt es die Position so aus, dass sie der 
Wunschposition entspricht. Wenn das Modellbauservo gut ist, erfolgt die 
Positionierung sogar über Rampen und wegabhängige Geschwindigkeiten.

> Du bekommst keinerlei Informationen aus dem Ding aus denen du irgend
> etwas ableiten könntest.
Das ist bei den vielen Reglern der Fall: man gibt einen Wert vor und 
verlässt sich darauf, dass der Rest erledigt wird.

von Rahul D. (rahul)


Lesenswert?

Norbert schrieb:
> Das können wir jetzt noch Jahre diskutieren, ein Modellbau-Servo wird
> gestellt, nicht geregelt**.

Klingt nach Wissen aus den 1970er, als man noch mit Tippanlagen 
gearbeitet hat, die nur "Ein" und "Aus" für einen Kanal kannten, und man 
Antriebe beobachten musste, ob sie ihr Ziel erreicht haben.
Mit der Einführung von Proportionalsteuerungen war das dann erledigt.

Analoge Servos könnten ihre Position prinzipiell unendlich stark 
auflösen. Bei digitalen ist aufgrund des AD-Wandlers, des Potis 
irgendwann schluss - merkt man bloß nicht und die Dinger haben mehr 
"Bums".

von Sebastian W. (wangnick)


Lesenswert?

Wo ist denn der TE hin?

LG, Sebastian

von Cartman E. (cartmaneric)


Lesenswert?

Rahul D. schrieb:
> Proportionalsteuerungen

Ja eben. Steuerungen.

Noch deutlicher wird das bei Servos mit optischem Encoder.
Für einen Positionswechsel bekommt der Motor eine Anlauframpe,
läuft eine gewisse Zeit, gefolgt von einer Rampe die ihn
hoffentlich rechtzeitig zum stehen bringt.
Alle 3 Zeiten werden gesteuert.
Nur wenn die Steuerinformation falsch war, wird korrigiert.
Es erscheint mir etwas hoch gegriffen, diese Korrektur als
Regelung zu qualifizieren.


Sebastian W. schrieb:
> Wo ist denn der TE hin?
>
> LG, Sebastian

Der hat schon das Weite gesucht. ☺

: Bearbeitet durch User
von Ludwig W. (ludwig_w)


Lesenswert?

ohje, ohje, ohje.

mir lag es wirklich fern eine solche Diskussion vom Zaun zu brechen, 
aber das sagt mir das ich in diesem Forum richtig bin und sich jede 
Menge Fachleute meines Problems annehmen.
Ich habe jeden Beitrag gelesen wobei viele für mich zu hoch sind. Wenn 
das in chinesisch geschrieben wäre hätte das den gleichen Erfolg.
Eines habe ich aber erkannt, und zwar das meine Anfrage nicht konkret 
genug war.
Die qualitative Anforderung für die Ansteuerung des Servos sind relativ 
gering. Ich benötige keine millimetergenaue Reglung. Ebenfalls keine 
Pendelbewegung (hier habe ich das nur sinnbildlich gemeint) - eine hin 
und her- Bewegung ist das was ich möchte, aber eben kontinuierlich.  Das 
soetwas funktioniert habe ich in einem Video gesehen, aber nur mit 
ToolKitRC M8 Mutifunction Charger. 
(https://www.youtube.com/watch?v=x2Man_ZAO6g ab 2:05)
Auch brauche ich keine Fernsteuerung oder dergl., eine manuelle 
Bedienung über 2 Potis sind für meine Zwecke völlig ausreichend.
Übrigens, nur weil hier öfter von billigen Modellbauservos gesprochen 
wird, so billig war mein Servo nicht. Immerhin über 50€. Ob er gut ist 
und lange hält? Nun das kann ich nicht beurteilen, bei dem Preis setze 
ich das aber voraus.
Sollten noch Fragen sein, dann bitte nachhaken.

von Rahul D. (rahul)


Lesenswert?

Cartman E. schrieb:
> Ja eben. Steuerungen.

Mir ist bis jetzt noch keine (Funk-) Fersteuerung mit einer haptischen 
Rückmeldung untergekommen.

Cartman E. schrieb:
> Es erscheint mir etwas hoch gegriffen, diese Korrektur als
> Regelung zu qualifizieren.

Wo fängt denn bei dir eine Regelung an?

von Rahul D. (rahul)


Lesenswert?

Ludwig W. schrieb:
> Auch brauche ich keine Fernsteuerung oder dergl., eine manuelle
> Bedienung über 2 Potis sind für meine Zwecke völlig ausreichend.

Das hatte ich nur erwähnt, weil man die Dinger bis zum Aufkommen der 
Maker-Szene überwiegend für den Funktionsmodellbau benutzt hat.

Die Firma Faller hat übrigens eine Servo-Steuerung für 
Modellbahn-Gebäude.

Für Arduinos gibt es eine fertige Funktion zur Positionsansteuerung von 
Servos.
Etwas Hirnschmalz wirst du investieren müssen.
Es ist aber keine Raktentechnik.

von Ludwig W. (ludwig_w)


Lesenswert?

Rahul D. schrieb:

> Für Arduinos gibt es eine fertige Funktion zur Positionsansteuerung von
> Servos.
> Etwas Hirnschmalz wirst du investieren müssen.
> Es ist aber keine Raktentechnik.

Danke für deine Hinweise, aber ich bin Handwerker und kenne Leute welche 
keinen Nagel in ein Brett bringen. Denen sage ich auch immer wieder das 
sei alles kein Problem. Jedenfalls können die immer noch nicht nageln. 
Und ich begreife genauso wenig von den Dingen welche du als simpel 
abstempelst. Deshalb suche ich ja jemanden der mir solch eine Sache 
bauen (programmieren) würde.

von Falk B. (falk)


Lesenswert?

Ludwig W. schrieb:
> Deshalb suche ich ja jemanden der mir solch eine Sache
> bauen (programmieren) würde.

Ich hab dir eine Nachricht geschrieben.

von Norbert (der_norbert)


Lesenswert?

Rahul D. schrieb:
> Klingt nach Wissen aus den 1970er, als man noch mit Tippanlagen
> gearbeitet hat, die nur "Ein" und "Aus" für einen Kanal kannten, und man
> Antriebe beobachten musste, ob sie ihr Ziel erreicht haben.

Ich mag ja alt sein, aber so alt nun auch wieder nicht. ;-)

Rahul D. schrieb:
> Analoge Servos könnten ihre Position prinzipiell unendlich stark
> auflösen. Bei digitalen ist aufgrund des AD-Wandlers, des Potis
> irgendwann schluss - merkt man bloß nicht und die Dinger haben mehr
> "Bums".

Der Unterschied zwischen Prinzipiell und Real ist dagegen sofort 
sichtbar, wenn man ein analoges Servo mit langsam anwachsenden 
Pulszeiten (1µs pro Sekunde) untersucht.
Dann stellt man nämlich fest, dass die Dinger einen interessanten 
Totbereich haben. Da habe ich bis ca. 15µs schon alles gesehen.
Das können alte Schätzchen von zB. Graupner oder auch neue Modelle sein.

Das heißt, man verlängert die Pulsbreite allmählich und es passiert – 
nichts!
Bis plötzlich, nach summierten …15µs das Ding in eine neue Position 
ruckt. Bei den als ›genormt‹ angesehenen 1000µs … 2000µs ist die 
unendliche Auflösung auf 667 limitiert.

Beitrag #7945434 wurde vom Autor gelöscht.
von Rainer W. (rawi)


Lesenswert?

Cartman E. schrieb:
> Es erscheint mir etwas hoch gegriffen, diese Korrektur als
> Regelung zu qualifizieren.

Regelung bezieht sich auf die Beziehung zwischen Servo-Position und 
Pulsbreite.

Norbert schrieb:
> Dann stellt man nämlich fest, dass die Dinger einen interessanten
> Totbereich haben.

Das ist eine Stromsparmaßnahme, weil niemand daran Interesse hat, den 
Motor ständig mit dem Rauschen hin und her juckeln zu lassen. Immerhin 
ist der Servo u.a. eine mechanisch Vorrichtung die auch Getriebespiel 
besetzt.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Rainer W. schrieb:
> Regelung bezieht sich auf die Beziehung zwischen Servo-Position und
> Pulsbreite.

Nö.

Steuerung: Reine Stellwertvorgabe durch das Stellglied (Leistungsstufe)
Regelung: Soll-Ist Vergleich und Korrektur des Stellgliedes, im 
Normalfall bis zum Abgleich von Soll-Ist auf Null (keine 
Regelabweichung).

Der Ami beschreibt es als open loop (Stellbetrieb) und closed loop 
(Regelung) control

von Rainer W. (rawi)


Lesenswert?

Falk B. schrieb:
> Rainer W. schrieb:
>> Regelung bezieht sich auf die Beziehung zwischen Servo-Position und
>> Pulsbreite.
>
> Nö.

Soll-Wert: Pulsbreite
Ist-Wert: Position Abgangsachse (über Poti o.ä. gemessen)
-> Regelung

Ludwig W. schrieb:
> - eine hin und her- Bewegung ist das was ich möchte, aber eben kontinuierlich.
> ...
> Sollten noch Fragen sein, dann bitte nachhaken.

Bleibt immer noch die Frage, wie schnell.

Skizziere doch einmal, wie die Bewegung bei maximaler Geschwindigkeit 
und maximaler Amplitude aussehen soll (x-Achse: Zeit in Sekunden, 
y-Achse: Position in °)

: Bearbeitet durch User
von Cartman E. (cartmaneric)


Lesenswert?

Rahul D. schrieb:
> Cartman E. schrieb:
>> Ja eben. Steuerungen.
>
> Mir ist bis jetzt noch keine (Funk-) Fersteuerung mit einer haptischen
> Rückmeldung untergekommen.
>
> Cartman E. schrieb:
>> Es erscheint mir etwas hoch gegriffen, diese Korrektur als
>> Regelung zu qualifizieren.
>
> Wo fängt denn bei dir eine Regelung an?

Bei Motor-Poti-Servos, ist der mechanische Ausgang typisch durch
geeignete Auslegung entkoppelt. Im allgemeinen kann eine Kraft den
Servomotor eben nicht zurückdrehen. Und reicht die Kraft nicht,
läuft der Motor wegen bleibender Abweichung ständig ohne das
Ergebnis verbessern zu können.
Die aufgewandte Motorleistung steht zu keinem Zeitpunkt in
irgendeinem Verhältnis zur tatsächlich benötigten Kraft und
ist blosses Hilfsmittel der Positionierung.

Würde das nach einem Galvanometerprinzip funktionieren, wäre es
wohl eine richtige Regelung.

von Falk B. (falk)


Lesenswert?

Cartman E. schrieb:
> Bei Motor-Poti-Servos, ist der mechanische Ausgang typisch durch
> geeignete Auslegung entkoppelt. Im allgemeinen kann eine Kraft den
> Servomotor eben nicht zurückdrehen.

Nö. Die Selbsthemmung des Getriebes entkoppelt da gar nichts.

> Und reicht die Kraft nicht,
> läuft der Motor wegen bleibender Abweichung ständig ohne das
> Ergebnis verbessern zu können.

Blödsinn! Da ist keine Rutschkupplung drin! Er ist vielleicht dauerhaft 
bestromt und liefert Drehmoment, aber DREHEN tut er sich nicht!

> Die aufgewandte Motorleistung steht zu keinem Zeitpunkt in
> irgendeinem Verhältnis zur tatsächlich benötigten Kraft und
> ist blosses Hilfsmittel der Positionierung.

Quark. Aber wir wissen ja, von wlechem Experten das kommt.

> Würde das nach einem Galvanometerprinzip funktionieren, wäre es
> wohl eine richtige Regelung.

Es IST eine richtige Regelung!

https://www.youtube.com/watch?v=qC7hrYJVvD8

Natürlich kann man JEDEN Servo überlasten, sodaß er den Positionsfehler 
nicht mehr ausgleichen kann. Das ist aber gar nicht das Thema. Innerhalb 
seiner zulässigen Last (Drehmoment, Trägheitsmoment), kann er das!

von Cartman E. (cartmaneric)


Lesenswert?

Falk B. schrieb:
> Cartman E. schrieb:
 >> Die aufgewandte Motorleistung steht zu keinem Zeitpunkt in
>> irgendeinem Verhältnis zur tatsächlich benötigten Kraft und
>> ist blosses Hilfsmittel der Positionierung.
>
> Quark. Aber wir wissen ja, von wlechem Experten das kommt.

Ach ja?
Die Motorleistung wird abhängig von der benötigen Kraft geregelt?


Du bist schon so ein Experte.


Deine übrigen Missverständnisse werde ich nicht kommentieren.
Die darfst du gerne behalten.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Cartman E. schrieb:
>> Quark. Aber wir wissen ja, von wlechem Experten das kommt.
>
> Ach ja?
> Die Motorleistung wird abhängig von der benötigen Kraft geregelt?

Ja sicher, warum den nicht?

von Jack V. (jackv)


Lesenswert?

Cartman E. schrieb:
> Die Motorleistung wird abhängig von der benötigen Kraft geregelt?

Mal so aus der Praxis: Stromlos kann man den Arm problemlos bewegen. Ist 
der Servo versorgt und hat ein Steuerungssignal anliegen, fährt er die 
geforderte Stellung an, wobei er je nach mechanischem Widerstand bzw. 
entgegengesetzt wirkender Kraft mehr oder weniger viel Strom aufnimmt. 
Beim Halten der Stellung hängt der Strom dann davon ab, ob und wieviel 
Kraft von außen auf den Arm einwirkt – wenn nichts den Servo aus der 
geforderten Stellung zu drehen versucht, dann nimmt er auch kaum 
nennenswert Strom auf. Entsprechend kann man schon sagen, dass die 
Leistungsaufnahme direkt von der benötigten Kraft abhängig ist.

von Nemopuk (nemopuk)


Lesenswert?

Falk B. schrieb:
> Blödsinn! Da ist keine Rutschkupplung drin!

Ich weiß nicht, welche Servos du kennst. Meine haben jedenfalls alle 
keine Rutschkupplung. Gut, dass nicht alle Servos gleich sind.

: Bearbeitet durch User
von Rahul D. (rahul)


Lesenswert?

Cartman E. schrieb:
> Rahul D. schrieb:
>> Wo fängt denn bei dir eine Regelung an?
>
> Bei Motor-Poti-Servos, ist der mechanische Ausgang typisch durch
> geeignete Auslegung entkoppelt. Im allgemeinen kann eine Kraft den
> Servomotor eben nicht zurückdrehen. Und reicht die Kraft nicht,
> läuft der Motor wegen bleibender Abweichung ständig ohne das
> Ergebnis verbessern zu können.
> Die aufgewandte Motorleistung steht zu keinem Zeitpunkt in
> irgendeinem Verhältnis zur tatsächlich benötigten Kraft und
> ist blosses Hilfsmittel der Positionierung.
Niemand interessiert sich bei Modellbauservos für eine 
Drehmomentregelung-
Die Motoren und die Leistungselektronik sind immer auf volle Leistung 
ausgelegt. Wobei die sich je nach geplanter Anwendung und Baugröße 
unterscheiden. Daher wird bei den Dinger auch immer das maximale 
Drehmoment angegeben.

von Nemopuk (nemopuk)


Lesenswert?

Rahul D. schrieb:
> Niemand interessiert sich bei Modellbauservos für eine
> Drehmomentregelung-
> Die Motoren und die Leistungselektronik sind immer auf volle Leistung
> ausgelegt.

Meine Servos verhalten sich so: Je weiter der Drehwinkel vom Soll 
abweicht, umso stärker (auch schneller) dreht sich der Motor. Gut, dass 
nicht alle Servos gleich sind.

: Bearbeitet durch User
von Jack V. (jackv)


Lesenswert?

Nemopuk schrieb:
> Meine Servos verhalten sich so: Je weiter der Drehwinkel vom Soll
> abweicht, umso stärker (auch schneller) dreht sich der Motor. Gut, dass
> nicht alle Servos gleich sind.


Heutzutage™ gibt es gar Servos, die man (auch) dahingehend programmieren 
kann. Tatsächlich gibt es auch Servos mit Telemetrie, die also ihren 
Zustand zurückmelden (via SBUS2).

Ist schon ’ne tolle Zeit, wenn man mal so drüber nachdenkt.

: Bearbeitet durch User
von Norbert (der_norbert)


Lesenswert?

Nemopuk schrieb:
> Meine Servos verhalten sich so: Je weiter der Drehwinkel vom Soll
> abweicht, umso stärker (auch schneller) dreht sich der Motor.

Das ist absolut korrekt und deckt sich auch zu 100% mit meiner 
Erfahrung.

Aber einmal mehr kann man hier in dieser Diskussion sehen, dass es in 
diesem Forum nicht darauf ankommt korrekte Dinge zu sagen.
Viel lustiger und leider auch zielführender scheint es zu sein, Falsches 
zig-fach zu wiederholen und Dinge möglichst extrem zu 
fehlinterpretieren. Plus ein wenig zu phantasieren. Man passt sich da 
wohl mittlerweile der AI an.

von Rahul D. (rahul)


Lesenswert?

Nemopuk schrieb:
> Meine Servos verhalten sich so: Je weiter der Drehwinkel vom Soll
> abweicht, umso stärker (auch schneller) dreht sich der Motor.

Die "Stärke" kannst du messen?

von Cartman E. (cartmaneric)


Lesenswert?

Jack V. schrieb:
> Cartman E. schrieb:
>> Die Motorleistung wird abhängig von der benötigen Kraft geregelt?

Das ist keine Behauptung von mir, sondern eine Frage.
Behauptet hat es ein Anderer.

> Mal so aus der Praxis: Stromlos kann man den Arm problemlos bewegen.

Hier arbeitet ein Ritzel auf ein Stirnrad. Da dreht sich nichts.

> Ist
> der Servo versorgt und hat ein Steuerungssignal anliegen, fährt er die
> geforderte Stellung an, wobei er je nach mechanischem Widerstand bzw.
> entgegengesetzt wirkender Kraft mehr oder weniger viel Strom aufnimmt.
> Beim Halten der Stellung hängt der Strom dann davon ab, ob und wieviel
> Kraft von außen auf den Arm einwirkt – wenn nichts den Servo aus der
> geforderten Stellung zu drehen versucht, dann nimmt er auch kaum
> nennenswert Strom auf. Entsprechend kann man schon sagen, dass die
> Leistungsaufnahme direkt von der benötigten Kraft abhängig ist.

Das ist eine Eigenschaft des Motors und keine Regelung.
Da ist ein gewisser Unterschied. ☺

von Norbert (der_norbert)


Lesenswert?

Rahul D. schrieb:
> Die "Stärke" kannst du messen?

Muss man nicht. Die Tatsache kann man im Datenblatt erfahren. Es ist 
einfach eine analoge PWM mit Mindest-Pulsweite um ein ›Losbrechen‹ des 
Motors zu gewährleisten.
1
Motor speed control
2
3
Introduction
4
In the motor speed control application the
5
IC is used as a linear pulse width amplifier.
6
The dc motor is driven via a power amplifier with
7
a train of pulses whose mark/space ratio can vary
8
between zero and one to control the motor speed
9
from zero to maximum.

von Rahul D. (rahul)


Lesenswert?

Cartman E. schrieb:
> Hier arbeitet ein Ritzel auf ein Stirnrad. Da dreht sich nichts.

Weil Stirnradgretriebe ja auch so viel Selbstmhemmung haben.
Bis jetzt konnte ich noch jedes meiner Servos im stromlosen Zustand 
verdreheh.

von Cartman E. (cartmaneric)


Lesenswert?

Rahul D. schrieb:
> Cartman E. schrieb:
>> Hier arbeitet ein Ritzel auf ein Stirnrad. Da dreht sich nichts.
>
> Weil Stirnradgretriebe ja auch so viel Selbstmhemmung haben.

Das haben sie ganz zweifellos. Das Ritzel ist ja kein kleines
Zahnrad, sondern greift seitlich in das Stirnrad.
Wobei Ritzel trifft es ja auch nicht. Es ist eine Schnecke.

> Bis jetzt konnte ich noch jedes meiner Servos im stromlosen Zustand
> verdreheh.

Dir würde ich kein Werkzeug von mir ausleihen.
Was Mann ja auch sonst nicht tun sollte...

: Bearbeitet durch User
von Ludwig W. (ludwig_w)


Lesenswert?

Das ist jetzt nur noch eine interne Diskussion. Da klinke ich mich aus. 
Es hat sich ein Forenmitglied bereit erklärt mir solch eine Steuerung zu 
bauen. Wenn das erfolgt ist und funktioniert gebe ich Bescheid.
Danke nochmals für euere Beiträge.

von Nemopuk (nemopuk)


Lesenswert?

Rahul D. schrieb:
> Die "Stärke" kannst du messen?

Kannst du auch. Der Effekt ist (bei Produkten die sich so verhalten) 
auch ohne komplexes Messinstrumente offensichtlich.

von Rahul D. (rahul)


Lesenswert?

Cartman E. schrieb:
> Es ist eine Schnecke.

Zeig mir mal bitte ein Modellbau-Servo (um die es hier geht) mit 
Schneckengetriebe!
Ich schrieb "Stirnradgetriebe". Das sind Getriebe, die nur radial eine 
Verzahnung besitzen. Die kann gerade, schräg oder doppelt-schräg 
ausgelegt sein.

Cartman E. schrieb:
> Dir würde ich kein Werkzeug von mir ausleihen.
> Was Mann ja auch sonst nicht tun sollte...

Wozu sollte ich mir Dein Werkzeug ausleihen? Ich habe selber welches.

von Jack V. (jackv)


Lesenswert?

Cartman E. schrieb:
> Das ist eine Eigenschaft des Motors und keine Regelung.

Wenn man den Arm aus seiner Stellung drückt, und der Controller im Servo 
den Strom entsprechend erhöht, um dem entgegenzuwirken, dann könnte man 
durchaus von einer Regelung sprechen. Gleiches gilt beim Strom bei der 
Bewegung, um eine vorgegebene Drehgeschwindigkeit zu erreichen.

Worauf möchtest du eigentlich hinaus?

von Rahul D. (rahul)


Lesenswert?

Ludwig W. schrieb:
> Da klinke ich mich aus.

Verständlich.

Ludwig W. schrieb:
> Es hat sich ein Forenmitglied bereit erklärt mir solch eine Steuerung zu
> bauen.

Nett von Falk.

von Mi N. (msx)


Lesenswert?

Mich hätte ja die Anwendung interessiert und auch welches Drehmoment 
(mit korrekter Dimension) tatsächlich benötigt wird.
Vielleicht hätte sich dann gezeigt, ob ein (Getriebe-)Schrittmotor nicht 
besser geeignet gewesen wäre. Der erwähnte DS51150 wirkt auf mich ein 
wenig wie Spielzeug.

von Cartman E. (cartmaneric)


Lesenswert?

Jack V. schrieb:
> Cartman E. schrieb:
>> Das ist eine Eigenschaft des Motors und keine Regelung.
>
> Wenn man den Arm aus seiner Stellung drückt, und der Controller im Servo
> den Strom entsprechend erhöht, um dem entgegenzuwirken, dann könnte man
> durchaus von einer Regelung sprechen. Gleiches gilt beim Strom bei der
> Bewegung, um eine vorgegebene Drehgeschwindigkeit zu erreichen.
>
> Worauf möchtest du eigentlich hinaus?

Es ist nicht der Controller der mehr Strom fliessen lässt.
Es ist der Motor selbst. Das würde er auch ganz ohne Controller so tun.
Der Controller kennt für den Motor nur ein Ein oder Aus, und die
Drehrichtung.

von Nemopuk (nemopuk)


Lesenswert?

Cartman E. schrieb:
> Der Controller kennt für den Motor nur ein Ein oder Aus, und die
> Drehrichtung.

Wie war das mit der variablen Pulsbreite?

Norbert schrieb:
> In the motor speed control application the
> IC is used as a linear pulse width amplifier.
> The dc motor is driven via a power amplifier with
> a train of pulses whose mark/space ratio can vary
> between zero and one to control the motor speed
> from zero to maximum.

von Rahul D. (rahul)


Lesenswert?

Jack V. schrieb:
> Worauf möchtest du eigentlich hinaus?

Zeigen, dass er gerne am Thema vorbei redet.

von Jack V. (jackv)


Lesenswert?

Cartman E. schrieb:
> Es ist der Motor selbst. Das würde er auch ganz ohne Controller so tun.
> Der Controller kennt für den Motor nur ein Ein oder Aus, und die
> Drehrichtung.

Es handelt sich in diesen Servos in der unteren Preisklasse um normale 
Bürstenmotoren, gehobenere haben bürstenlose Gleichstrommotoren („BLDC“) 
– keine Schrittmotoren. Die Motoren in den Servos haben von sich aus 
kein Haltemoment und insbesondere wissen sie nix von der Stellung des 
Servoarms. Auch nix von Geschwindigkeiten, Rampen und so weiter. Das 
regelt alles der Controller im Inneren der Servos.

Mag sein, dass es bei den analogen Servos anders war, und du dich darauf 
beziehst – die Dinger wurden vor meiner Zeit genutzt, da weiß ich nix 
von. Aber hier geht es um digitale Servos, und die haben eine Regelung. 
Isso.

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Cartman E. schrieb:
> Es ist nicht der Controller der mehr Strom fliessen lässt.

Ja, der Motor besitzt eine eigene Regelung für die Geschwindigkeit, die 
über die Gegen-EMK als Messwert funktioniert und als Stellwert den Strom 
verwendet.

Mit dem Titel des Threads hat diese Diskussion aber nun wirklich nichts 
mehr zu tun. Dem TO ging es um Hilfe bei einer Steuerung für seinen 
Servo.

: Bearbeitet durch User
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.