Servo hacken

#4449279
Lesenswert?

Hallo Elektroniker

Wie man ein Servo hackt kann man ja auf unzähligen Webseiten nachlesen.
Zweck der Aktion ist, den Drehwinkel von meist 180°, auf unendlich zu 
erweitern.
Dazu wird Das Poti durch 2 Festwiderstände ersetzt und die mechanische 
Begrenzung entfernt.

Was ich jetzt noch nicht verstehe und auch nirgendwo erklärt finde ist,
ob ich das Servo jetzt um exakt 200° oder 400° drehen lassen kann.
Immer vorausgesetzt, das die Gradzahl mit den Servoschritten überhaupt 
erreichbar ist.

Angesteuert wird ein Servo ja über Pulsweiten, 1ms ganz links, 2ms ganz 
rechts.
Den Sprung über den Nullpunkt kann ja die Software machen.
Soweit verstanden.
Aber warum ist dann überhaupt ein Poti eingebaut?

Mit der Bitte um eine Antwort

Gruß Kolja
#4449327
Lesenswert?

Kolja L. schrieb:
> Wie man ein Servo hackt kann man ja auf unzähligen Webseiten nachlesen.

Der einzige Grund einen Modellbauservo zu "hacken" liegt darin, diesen 
als gewöhnlichen (Getriebe-)Motorantrieb zweck zu entfremden. Die 
Pulsweite gibt dann lediglich die Drehrichtung mehr vor, zur 
Positionierung - so benötigt - darfst Du Dir dann selbst was Neues 
überlegen.
#4449352
Lesenswert?

OK, dann habe ich es ja wenigstens richtig vermutet.
Somit bleibt ein 360° Servo, die sind nur etwas teurer.

Oder ein Schrittmotor mit Getriebe.

Kennt ihr zufällig einen der auf 5V (max7V) läuft
und 15kgcm an Drehmoment macht?
Die Geschwindigkeit ist völlig egal.

Preislich gilt es dieses Servo zu schlagen:
http://www.ebay.de/itm/SpringRC-SM-S4315R-15Kg-Grose-Kontinuierliche-Rotation-360-Grad-Metal-Servo-/171867647340?hash=item28041c2d6c:g:xdQAAOSwPcVVsKZS

Zum testen würde ich erstmal 2 Stk bestellen,
aber wenn das alles funktioniert brauen wir nochmal 20 - 40 Stk.

Gruß Kolja
Gast #4449428
Lesenswert?

Kolja L. schrieb:
> OK, dann habe ich es ja wenigstens richtig vermutet.
> Somit bleibt ein 360° Servo, die sind nur etwas teurer.

Die sind auch nichts anderes als die gehackten Servos für 
kontinuierliche Drehung. Getriebemotor wie oben schon erwähnt. Die sind 
auch nicht ohne weitere zusätzliche Einrichtungen positionierbar. Oder 
gibt es ein Datenblatt dazu?
(Firma: matzetronics) #4449472
Lesenswert?

Wenn man ein Servo mehrere Umdrehungen mit Positionsvorgabe machen 
lassen will, wechselt man dazu das vorhandene Poti gegen eines mit mehr 
Gängen aus - so wird das auch bei RC-Segelwinden gemacht. Vorher müssen 
natürlich die mechanischen Anschläge des Servos entfernt werden.

Man sieht am o.a. eBay Angebot ja auch, das das Servo mal 
auseinandergenommen wurde, zumindest die unterschiedlichen Spaltmaße 
lassen darauf schliessen. Hier wurde das Poti abgeklemmt und vermutlich 
durch einen Trimmer ersetzt.
Der Trimmer wird dann so justiert, das bei Neutralstellung der Motor 
gerade nicht läuft. Schiebt man dann den Steuerknüppel nach bspw. oben, 
läuft das Servo rechts rum und bei der anderen Stellung links rum. So 
kann man auch aus einer Servoelektronik einen 'Fahrtregler für Arme' 
machen.
Solange die Mechanik des Servos in Bezug auf die Anschläge das zulässt, 
geht das mit jedem.
(Firma: matzetronics) #4449484
Lesenswert?

Kolja L. schrieb:
> Und funktioniert die Positionierung dann noch exakt?

Es gibt, sobald man die Kopplung zwischen Kraftarm und Poti unterbricht, 
doch gar keine Rückmeldung über die Position mehr.
Man kann also nicht positionieren, sondern dann nur noch den Motor 
schneller oder langsamer laufen lassen, und in beide Richtungen.

Die Servoelektronik probiert normalerweise, das RC Signal und den 
internen Pulsgeber, kontrolliert vom Poti, zur Deckung zu bringen. Wenn 
die unterschiedlich sind, wird der Motor und damit das Poti gedreht, bis 
der Pulsunterschied null ist, dann bleibt der Motor stehen. (@Spezis: 
das ist etwas vereinfacht, ich weiss.)
Wird also die Kopplung unterbrochen, funktioniert dieser 
Regelmechanismus nicht mehr. Genau das haben die eBay Jungs gemacht - 
deswegen der Spruch 'Große Kontinuierliche Rotation'
#4449775
Lesenswert?

Mach es einfach so Sergio zerlegen.
Dann den stift im getriebe rausnehmen der den Drehwinkel mechanisch 
blockiert und verhindert,das das Getriebe das servo zerlegt.
Dann das Poti nach aussen legen und extern anbringen mit passender 
übersetzung.
Oder Poti ausbauen und 10gang Poti einbauen und Poti mit extra 
Widerständen seriell und parallel modifizieren.
#4449779
Lesenswert?

Um den Bereich des Servos zu vergrößern, kannst du auch zwei Widerstände 
in Reihe mit dem Poti des Servos schalten.

Das setzt natürlich voraus, dass du die Begrenzungen entfernen kannst.
Bei den meisten Servos mit Metallgetriebe muss dazu nur ein Stift 
entfernt werden. Eine Dremel hilft sonst auch, um die Anschläge beim 
Gehäuse zu entfernen, falls ersteres nicht geht.

Bilder und eine kurze Beschreibung findet sich auf 
https://www.temparus.ch/de/model-making/servo-modification
#4450061
Lesenswert?

Danke für die ganzen Antworten!

Die Servos von Dynamixel sind leider viel zu teuer...


Das Poti nach außen verlegen geht leider wegen der Einbausituation 
nicht.

Das Poti mit Widerständen ausstatten ist ne gute Idee,
aber die Potis, die ich hier habe lassen sich nicht um 360° drehen.

Wie muss ich denn die Lösung mit dem Tausch des Potis durch einen 
Trimmer verstehen?
Woher weiß der Trimmer denn, an welcher Stelle sich das Servo befindet?

Gruß Kolja
(Firma: matzetronics) #4450078
Lesenswert?

Kolja L. schrieb:
> Wie muss ich denn die Lösung mit dem Tausch des Potis durch einen
> Trimmer verstehen?
> Woher weiß der Trimmer denn, an welcher Stelle sich das Servo befindet?

Du hast dir selber den Link gar nicht durchgelesen, den du gepostet 
hast?

Kolja L. schrieb:
> Hab ne Anleitung gefunden:
> http://www.brooxes.com/newsite/downloads/ServoMods.pdf

Der Trimmer hat keine Ahnung, an welcher Stelle sich das Servo befindet, 
deswegen dreht das Servo 'continously', also andauernd, sobald du aus 
der Neutralstellung rausgehst. Genauso verhält sich das Servo, das du in 
der Bucht gefunden hast.

Wenn du positionierbar mehr Winkel brauchst, als das Servo kann, musst 
du, wie oben nun schon mehrfach geschrieben, ein Mehrgangpoti auf die 
Welle aufbringen oder, wenn wenig mehr als jetzt schon reicht, 
Widerstände in Reihe mit dem vorhandenen Poti schalten. Mehr als 270° 
geht dann aber nicht und selbst dabei riskiert man, das das Poti an den 
Anschlag fährt.
#4450090
Lesenswert?

Hi Matthias

Gelesen schon, aber eben nicht verstanden.
Daher die Nachfrage.

Dann ist die Trimmer Methode ja im Endeffekt nichts anderes als die mit 
den beiden Festwiderständen.

Da 270° nicht reichen, muss ich wohl das normale Poti durch ein 
Mehrgangpoti ersetzen.
Dafür brauche ich aber erstmal ein Servo um zu wissen was für ein Poti 
verbaut ist
und dann ein Mehrgangpoti finden was ich dort verbauen kann.

Danke nochmal :-)

Mist, die sind ja alle viel größer...
http://www.amazon.de/Mehrgangpotentiometer/s?ie=UTF8&page=1&rh=i%3Aaps%2Ck%3AMehrgangpotentiometer
(Firma: matzetronics) #4450263
Lesenswert?

Kolja L. schrieb:
> Mist, die sind ja alle viel größer...
> 
http://www.amazon.de/Mehrgangpotentiometer/s?ie=UTF8&page=1&rh=i%3Aaps%2Ck%3AMehrgangpotentiometer

Wieso sollte man sowas beim Buchhändler kaufen?
http://www.reichelt.de/Potis-Trimmer/2/index.html?&ACTION=2&LA=2&GROUPID=3124

Hier sind die Bereiche 'Mehrgangpotentiometer', 'Präzisionstrimmer' und 
'Spindeltrimmer' die interessantesten.
5 kOhm ist der Standardwert bei den in Servos verbauten Potis, achte 
darauf beim Kauf.
Gast #4450331
Lesenswert?

Kolja L. schrieb:
> Was ich jetzt noch nicht verstehe und auch nirgendwo erklärt finde ist,
> ob ich das Servo jetzt um exakt 200° oder 400° drehen lassen kann.

  Du suchst RC-Segelwinden.
  Diese sind vom Konzept her gleich wie standsrd RC-Servos aufgebaut, 
jedoch anstatt dass die Abtriebsachse (wo das Servohorn draufkommt) die 
Potiachse 1:1 mitnimmt, ist die Abtriebsachse 1-2 Getriebestufen vorher 
ausgeführt und kann mit einer Windentrommel versehen werden.

> Immer vorausgesetzt, das die Gradzahl mit den Servoschritten überhaupt
> erreichbar ist.

  Du denkst schon in die richtige Richtung: angenommen im standardfall 
kann man den Steuerpuls in 128 Schritte verstellen, so entspricht dies 
ca. 1 Winkelgrad pro Schritt (128# auf ca. 120 Winkelgrade)
  Bei einer Seiltrommel die 10 Umdrehungen im ganzen Bereich macht sind 
dies eher 30 Winkelgrad pro Schritt.
  Du siehst richtig dass das Steuersignal für eine Winde feiner 
aufgelöst zu generieren ist, wenn man auch "auf's Grad" positionieren 
will.

  Suche lange genug nach RC-Winden: es gibt (gab, zumindest) welche die 
10, 5 oder gar nur 3 Umdrehungen auf dem standard Steuersignalbereich 
machen.
#4450718
Lesenswert?

Nabend

Ja, sorry für die Amazon Links.
Aber da ist die Suche einfacher.

Was sich rächt, denn das hier ist wohl unser Produkt:
http://www.reichelt.de/Bauelemente/64W-5-0K/3/index.html?&ACTION=3&LA=2&ARTICLE=2706&GROUPID=3129&artnr=64W-5%2C0K


Obwohl 25 Drehungen für uns mehr als genug sind,
lass ich mir nochmal ne Lösung ohne Grenzen durch den Kopf gehen.

Da wären Lichtschranke oder Drehimpulsgeber.
Beide Benötigen natürlich zusätzliche Datenleitungen.

Seilwindenservos sind leider sehr teuer und ich habe keins in meiner 
Größenordnung (15kg) gefunden.
Danke trotzdem.

Gruß Kolja
#4450846
Lesenswert?

Kolja L. schrieb:

> Obwohl 25 Drehungen für uns mehr als genug sind,
> lass ich mir nochmal ne Lösung ohne Grenzen durch den Kopf gehen.

Vielleicht wäre es ja besser, Du würdest uns dein Problem schildern.
Dann könnte man vermutlich viel einfacher eine passende Lösung finden.
Man sollte nicht vergessen wozu Modellbauservos gebaut werden. Nämlich
dafür, in irgendwelchen Spielzeugen irgendwelche Bewegungen zu machen.
Für professionelle Aufgaben sind die normalerweise nicht robust genug.
(Firma: matzetronics) #4450997
Lesenswert?

Harald W. schrieb:
> Für professionelle Aufgaben sind die normalerweise nicht robust genug.

Und vor allem nicht für

Kolja L. schrieb:
> in meiner
> Größenordnung (15kg) gefunden.

Ich nehme mal an, das Servo soll 15kg heben? Dann vergiss das mit den 
kleinen RC Servos mal ganz schnell wieder und denke über richtige 
Getriebemotoren nach.
(Firma: matzetronics) #4451090
Lesenswert?

Kolja L. schrieb:
> Worauf soll ich mich verlasse,
> wenn nicht auf die Angaben des Herstellers?

Auf die eigene Vernunft. Kunststoffgetriebe und Zahnräder können mögl. 
ein paar mal die o.a. 15kg heben, aber dann sind sie kaputt. Du baust 
dir also besser dein Servo komplett selber mit DC-Getriebemotor und 
optionalem Poti.

Ich möchte nicht verallgemeinern, aber bei Angaben von Anbietern, die 
etwas verkaufen müssen, bin ich immer etwas vorsichtiger - vor allem, 
wenn der Gerichtsstand in Shenzhen oder so ist.
Am besten schreibst du also mal, was du wirklich bauen möchtest.
#4451127
Lesenswert?

Nein mit einem µC.

Ist ein Forschungsprojekt an unserer Uni.
Daher kann bzw. darf ich nicht über alles schreiben.

Find ich auch blöd, aber so verstehen die das dort mit "freiem 
Wissen"...

Das Servo soll relativ schwergängige Schrauben in verschiedene 
Positionen bringen.
Leider kann ich nicht alle Schrauben vorher durchmessen,
das max. ermittelte Drehmoment lag bei 7kg.
Gemessen mit einem Schraubenschlüssel und einer Waage.
Die zusätzlichen 100% Sicherheit sollten auf jeden Fall für die 
MEssfehler reichen
und auch hoffentlich für die Varianz der kommen den Schrauben.

Jede Schraube soll 4-8 Winkel (z.B. 0,60,120,...) anfahren können,
wobei es von vorteil wäre, wenn sie diese immer in einer Richtung 
anfahren könnte.
Zur Not kann sie auch nach x Umdrehungen wieder zurückdrehen.

Gruß aus der Bib

Kolja
(Firma: matzetronics) #4451145
Lesenswert?

Kolja L. schrieb:
> Leider kann ich nicht alle Schrauben vorher durchmessen,
> das max. ermittelte Drehmoment lag bei 7kg.

Jaja, dann vergiss das mit unseren kleinen Plastikservos. Selbst wenn es 
dir gelänge, da einen zuverlässigen Abtrieb zur Betätigung der Schrauben 
ranzupappen, hält das nicht lange.
Die optimale Lösung wäre ein Getriebemotor mit absolutem Drehgeber - 
notfalls nur inkrementeller Drehgeber und Nullsensor.
#4451146
Lesenswert?

Kolja L. schrieb:

> Das Servo soll relativ schwergängige Schrauben in verschiedene
> Positionen bringen.
> Ist ein Forschungsprojekt an unserer Uni.
> Daher kann bzw. darf ich nicht über alles schreiben.

Naja, das hört sich weder nach Raketentechnik
noch nach besonders neu an.

Da würde ich eher einen Getriebemotor
z.B. einen Scheibenwischermotor nehmen.
Mit einem µC kannst Du mit dessen AD-
Wandler eine Potistellung auch direkt
auswerten, wenn die Genauigkeit eines
Potis ausreicht. Zwischen Antriebsachse
und Poti baut man dann eine passende
mechanische Übersetzung. Es gibt aber
noch jede Menge andere Meßsyteme zur
Bestimmung von Positionen, die alle
von einem µC ausgewertet werden können.
Am bekanntesten sind da die Inkremental-
Geber.
#4451154
Lesenswert?

Moin

In der Hoffnung das die Servos mindestens die Hälfte ihres 
ausgeschriebenen Drehmomentes bringen können,
bleibt nicht viel anderes übrig.
Alle anderen Techniken sind schlicht weg zu teuer.
Es geht ja nicht um ein Servo, sondern um eine Größenordnung von 20- 50 
pro Anwenderfall.

Und Raketentechnik ist das nicht, dafür fehlt mir auch das Wissen.
Es geht ehr darum mit vorhandenen Produkten neue Lösungen für alte 
Probleme zu finden.

BTW, zumindest das MG996R hat ein Metallgetriebe und Kugellager.

Gruß Kolja

P.S.
Wenn ich ein Servo hier habe,
werde ich mal nen "Dauertest" machen
und hier kundtun.
Gast #4451167
Lesenswert?

Matthias S. schrieb:
> Die optimale Lösung wäre ein Getriebemotor mit absolutem Drehgeber -
> notfalls nur inkrementeller Drehgeber und Nullsensor.

Und dabei kannst Du Deine kleinen Abmessungen und die 5 V 
Versorgungsspannung vergessen. Ein kräftiger Motor mit 5 Nm wäre dieser 
hier: 
http://www.reichelt.de/Getriebemotore/BM-1-61-050-469/3/index.html?&ACTION=3&LA=2&ARTICLE=158294&GROUPID=6820&artnr=BM+1.61.050.469&SEARCH=Getriebemotore
Das Getriebe hat eine Untersetzung von 1:714 und die Motorachse ist 
rückseitig herausgeführt. Da läßt sich sehr einfach ein Drehgeber 
anschließen. Ein Magnet auf der Achse plus zwei versetzte Hallgeber 
(TLE4905) reichen, um Drehrichtung und relative Position zu erfassen.

Es gibt auch kleinere Ausführungen mit anderen Untersetzungen und auch 
mit 12 V. Welches Drehmoment Du tatsächlich brauchst, ist mir allerdings 
nicht klar. 7 Kg kenne ich nur, wenn ich Pflaumen wiege.
Habt Ihr an der Uni auch Pflaumen? ;-)
#4451170
Lesenswert?

Solange man sich relativ nahe dem Meeresspiegel auf unserer Erde 
befinde,
kann man ein Drehmoment auch mit der Gewichtskraft angeben.

Aber ich habe mich von der selben Faulheit wie die meisten Hersteller 
treiben lassen und den Hebelarm vernachlässigt.

Richtig ist natürlich kgcm, was 0,098Nm entspricht.
Ich kann mir vorstellen, das die Marketingabteilung große Zahlen will 
:-)
#4453452
Lesenswert?

So, das erste Servo ist angekommen.

Es ist ein SpringRC SM-S4315R: 
http://www.ebay.de/itm/SpringRC-SM-S4315R-15Kg-Grose-Kontinuierliche-Rotation-360-Grad-Metal-Servo-/171867647340?hash=item28041c2d6c:g:xdQAAOSwPcVVsKZS

Der erste Test zeigt es schafft mindestens 6kgcm,
mehr konnte ich gerade nicht testen.

Mit dem ArduinoIDE Servo Beispiel wurde es über einen Nano angesteuert,
Strom kam von 2x LiIo runter auf 5V über Spannungswandler.

Maximaler Strom waren ca. 600mA, dazu wurde das Servo mit dem Finger 
gebremst.

Das Skript sieht so aus:
1
#include <Servo.h> 
2
 
3
Servo myservo;  // create servo object to control a servo 
4
                // twelve servo objects can be created on most boards
5
 
6

7
void setup() 
8
{ 
9
  myservo.attach(2);  // attaches the servo on GIO2 to the servo object 
10
} 
11
 
12
void loop() 
13
{ 
14
  int pos;
15

16
  for(pos = 0; pos <= 180; pos += 1) // goes from 0 degrees to 180 degrees 
17
  {                                  // in steps of 1 degree 
18
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
19
    delay(15);                       // waits 15ms for the servo to reach the position 
20
  } 
21
  for(pos = 180; pos>=0; pos-=1)     // goes from 180 degrees to 0 degrees 
22
  {                                
23
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
24
    delay(15);                       // waits 15ms for the servo to reach the position 
25
  } 
26
}

Damit dreht das Servo eindeutig mehr als 180° und die 
Wiederholgenauigkeit ist auch nicht groß.
Woher weis das Servo aber, wann es wieder umdrehen soll?

Aufgeschraubt und das ist drin. (Anhang)

Das transparente Plastikteil hat keine elektronische Funktion...
Jemand ne Erklärung?
Und was stelle ich an dem Poti ein?

Danke und Gruß Kolja
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren