-         
Seite 1 von 6 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 60

Thema: servo initialisieren

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    23.10.2014
    Beiträge
    56

    servo initialisieren

    Anzeige

    Hallo, war einige Zeit nicht anwesend und begrüße alle Roboterspezialisten. Wahrscheinlich bin ich für diese Basteleien schon zu alt (79).
    Ich habe mir von der Firma Adeept den Hexapod Bausatz gekauft, komme aber mit der Einstellung der Servos (Tower Pro SG92R) nicht klar, ich verstehe das genaue Vorgehen nicht. Bei meinem vorherigen Bausatz Quadruped von der Firma Freenove konnte man nach der Initialisierung der Servos vor dem Zusammenbau, nach dem Zusammenbau die Servos calibrieren. Der Roboter war mir auch gut gelungen.
    Bei dem Hexapod von adeept steht lediglich man soll über die Platine die 19 Servos an Spannung legen. Sie würden dann rotieren und in einer Initialposition stehen bleiben. Danach wird das Servohorn (heißt hoffentlich so?) unter einem bestimmten Winkel befestigt, damit der Hexapod später auch richtig läuft. Bei adeept bekommt man nach Email-Anfrage lediglich die Antwort, daß alles in der Anleitung steht. Ganz anders Freenove. Der Mitarbeiter dort hatte mir innerhalb eines Tages wertvolle Tipps gegeben.
    Mein Problem:
    Die Initialposition hängt von der Vorgeschichte ab, also wie der Servoschaft vorher stand. Das ist bei jedem der 19 Servos anders, also nehmen sie auch alle andere Anfangspositionen ein. Leider steht dazu in der Anleitung nichts. Eigentlich kann ich mir nichts vorwerfen. Habe die Servos angeschlossen, die Spannung wieder getrennt und die Servohörner für jedes Servo mit den angegebenen Winkeln (90, minus 90, 180 Grad) befestigt.
    Der gesamte Zusammenbau war ziemlich aufwendig und einmal befestigt können sich die Servos nicht mehr verstellen allerdings stimmt jetzt beim Spannung anlegen an den fertigen Roboter gar nichts mehr.
    Mir ist klar, daß ich einen Denkfehler mache, kann mir jemand helfen?

    Vielen Dank!
    gruß recke

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    51
    Beiträge
    2.813
    bei einem RC-Servo hängt der Positionssollwert nicht davon ab wie der Servo vorher stand.
    Die Steuerung bekommt ja gar keine Positionsdaten vom Servo.

    Wenn man dem Servo ein Signal liefert, das ihn auf 0° (Mittelstellung) bringen soll, dann fährt er das an egal ob er vorher im Bereich bis -90° war oder im Bereich bis +90°.

    Eventuell wäre mal ein Bild hilfreich, wo man sehen kann wie die Stellungen sind nach dem Power up.

    Was ich mir vorstellen kann sind das ggf. Servos nicht an den steckern sind wo die Steuerung sie erwartet. damit bekommt dan der physikalisch falsche Servo eine Position die eigentlich zu einem anderen Servo gehört.
    und dann gäbe es noch die Möglichkeit, (wenn es den von der Geometrie möglich ist, das ein Servo falschrum eingebaut ist und so +90° und -90° Bereich vertauscht sind.

    Mal mögliche Defeke an Servos außen vor gelassen.


    https://de.wikipedia.org/wiki/Servo#Modellbauservos
    Geändert von i_make_it (22.03.2018 um 23:07 Uhr)

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    23.10.2014
    Beiträge
    56
    Hallo make, erstmal vielen Dank für Deine schnelle Antwort, denn gestern war ich ziemlich verzweifelt. Für mich waren Deine ersten zwei Sätze lehrreich und wichtig, weil die Servowelt für mich neu ist. Bei der Initialisierung der Servos ist es zunächst gleichgültig, wo die Servos angeschlossen sind. Die Software gibt an allen Anschlüssen das gleiche "Null"-Signal aus. Das kenne ich noch vom Quadruped. Nach der Initialisierung werden dann die Servohörner im geforderten Winkel auf das/den Servo gesteckt und dabei darf man die Servoposition nicht ändern. Nun haben aber einige der 19 Servos das Verhalten, daß sie bei jedem Neueinschalten während der Initialisierung einen Winkel weiter drehen, obwohl sie jedes mal das Nullsignal bekommen. Wenn die Servos dann eingebaut sind müssen sie an ihre besonderen Steckplätze, aber hier funktioniert bei einer Untermenge schon das Nullstellen nicht. Beim Quadruped hatte ich von 12 einen defekten, hier sieht es aber schlimmer aus. Mit Deinem Hinweis ist mir eigentlich klar, daß ich einige nachbestellen muß. Die Lieferung dauert ja immer sehr lange.
    gruß recke

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    51
    Beiträge
    2.813
    Vor dem Nachbestellen, einen Servo nehmen der an einer Position einwadnfrei läuft und den mal an die verschiedenen Positionen anschließen.
    Wenn es keine mechanische Kollisionsgefahr mit anderne Bauteilen gibt, reicht das rein elektrische Umstecken.
    Einen komplettne Kreuztest machst Du wenn du dann die problematischen Servos auf Positionen Steckst auf denen kene Probleme auftraten.
    Wandert der Fehler mit, ist es der Servo, bleibt der Fehler an dem Anschluß und tritt dort auch bei Servos auf die woanders keine Probleme machen, ist es der Anschluß/die Elektronik.

    Hast Du einen einfachen analogen Servotester?
    Damit kannst Du Servos unabhängig von ungetesteten Aufbauten bewegen und testen ob die zittern oder anderweitig komisches Verhalten an den Tag legen.

    Die Servos haben ja intern ein Potentiometer als Drehgeber für den istwert.
    Wegen Ungenauigkeiten beim Anfahren von unterschiedlichen Richtungen etc. kann es vorkommen das ein Servo in verschiedenen Position leicht zittert.
    (Hauptsächlich kommt Servozittern allerdings duch Spannungsspitzen -einbrüche vor).

    Also ggf. mal per Netzteil (das entsprechend belastbar ist) und ggf. Voltmeter (Multimeter) dne Servo bestromen und schauen ob bei den Problematischen Servos die Spannung einbricht, bzw. das Verhalten bei einer stabilen Versorgung verschwindet.
    Servos sind bekannt dafür, das sie ordentlich Strom ziehen können.

    Wenn ein Servo bei konstantem sollwert in eine Richtung driftet, dann ist der Servo vermutlich Müll.
    Bei teuren Servos kann man da versuchen ob man mit einer Austauschelektronik hin kommt.
    (habe ich aber noch nicht für Mikroservos gesehen)

    Also Servotester und mindestens ein Multimeter sind nützlich wenn man viel mit (oder mit vielen) Servos zu tun hat.
    Ein Stück Lochraster, auf dem man ein Stück Pfostenleiste und Pfostenbuchse (je 3 Pins) anbringt und Buchsen (und einen Jumper oder Schalter) für Spannung und Strommessung. Damit kann man bei jedem Servo einmal testen wie er sich am Tester verhällt und wie sich Spannung und Strom dabei verhalten.
    Wenn man ein Labornetzteil hat, oder eines wo man 6,0 bis 7,2V einstellen kann (9V 1A Netzteil und einstellbarer Spannungsregler dran).
    Kann man auch testen, ob betroffene Servos bei höheren Spannungen besser laufen.
    Geändert von i_make_it (23.03.2018 um 13:47 Uhr)

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    23.10.2014
    Beiträge
    56
    also schon die nächsten guten Tipps. Ein Netzteil wollte ich schon lange wieder mal anschaffen und den Servotester kannte ich gar nicht, auch gleich bestellt. Mir gefällt der hexapod, allerdings scheinen die schon elektrische Probleme zu haben. Warum beschreiben sie ansonsten auf 10 Seiten (erst jetzt gefunden) die Branntgefahr. Ich habe alle Servos abgeklemmt und fange nach Testung völlig von vorne an. Bei neuen Erkenntnissen melde ich mich. Jetzt warte ich erstmal auf die Pakete. Das, was eigentlich für einen Anfänger wichtig wäre, beschreibt adeept leider nicht und Profis kaufen sich solche billigen "Roboter" nicht.
    nochmals ein großes Dankeschön und Gruß
    recke

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    51
    Beiträge
    2.813
    So, komme nwir jetzt zum komplizierteren Teil.
    Die Servos (Tower Pro SG92R) die Du hast sind wohl Digitalservos.
    http://www.towerpro.com.tw/product/sg92r-7/

    Analogservos bekomme nalle 20ms eine Steuerinformation, Digitalservos alle 400µs. Also 50 mal so oft.
    Testen kann man die mit einem analogen Servotester trotzdem.
    Aber die Digitalservos ziehen mehr Strom als analoge Servos.
    Vermutlich deshalb die Brandgefahr.
    Weil bei gleicher Spannung, heist mehr Strom, mehr Leistung und somit auch mehr Verlustleistung = Wärme.
    Allerdings ist bei dem Servo die Spannung kleiner (4,8V) die 6,0 - 7,2V sind im RC-Modellbau üblich, da dort oft 6-Zellen Racing Packs = 6 * 1,2V = 7,2V oder 5 Zellen = 5 * 1,2V = 6V vorkommen.
    4,8V = 4 * 1,2V würde üblicherweise höchstens als Empfängerakku genommen.

    Also stimmen meine zuerst gemachten Spannungsangaben für den Servotyp nicht. Aber das Prinzip bleibt gleich.

    http://schriftzug-modellbau.blogspot...gital-und.html

    Das mit den Kreuztests würde ich als erstes empfehlen um schon mal einen ersten Überblick zu bekommen.
    Dann Spannungsmessungen um zu sehen ob da was in die Knie geht.
    Für genauere (Kurzzeitige Erignisse) Messungen würde man ein Osziloskop benötigen.
    Ob man das Geld investieren will, muß man sich genauer überlegen.
    Wenn es nur darum geht eins zwei Roboter einmalig zu prüfen, lohnt der Preis nicht, will man allerdings eh mehr mit Elektronik machen und öfters Fehlersuche betreiben oder gar Schaltungen entwicklen sieht es anders aus. Grade bei niedrigeren Frequenzen sind USB Osziloskope (Teilweise mit Logikanalyzer) mittlerweile recht günstig.

    Alternativ, im eigenen Umkreis nach Makerspace/Hackerspace/Reparaturkafee schauen und da mal anfragen.

    als Dritten Test würde ich einen Servo der anscheindne drifted mal nehmen, in ein Sück appe einen Ausschnitt machen durch den der Servo stramm geht und dann am Servohorn (ggf. mit einer Verlängerung) anzeichnen wo der beim Homing steht das dann 10-20 mal wiederholen, um zu sehen ob der Wirklich jedesmal immer weiter in eine Richtugn wandert oder ob der wegen Toleranzen öfters mal etwas nachrutscht aber insgesamt doch mehr oder weniger die gleiche Position anfährt.
    Geändert von i_make_it (23.03.2018 um 17:16 Uhr)

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    23.10.2014
    Beiträge
    56
    danke auch für diese Infos! Kannst Du mir sagen, wie ich diese Servos zerstören kann, mal die richtige Spannung vorausgesetzt? Schalten die nicht an den Anschlägen ab? Ich habe von den 19 Servos nur drei an der Platine gelassen. Drei Servos sind jeweils verschraubt und steuern ein Roboterbein des Hexapod. Die hatte ich ohne Arduino-Controller, nur mit der Servoplatine initialisiert, die Servo-Hörner im vorgeschriebenen Winkel aufgesetzt. Später mit Hilfe der Arduino-Software die Anwendung in den Controller geladen und anschließend Controller-Platine mit Servosteuerplatine verbunden. Dann die Funkfernbedienung aktiviert. Die Servos lassen sich dann auch steuern, allerdings ist die Beingeometrie des Roboterbeins abartig und die Servos laufen teilweise an Anschläge, obwohl die Übersetzungs- und Ladevorgänge in Fernbedienung und Roboter-Controller fehlerfrei abgeschlossen wurden. Wenn ein Bein schon nicht funktioniert brauche die anderen 5 nicht anschließen. Nun erhoffe ich mir etwas von der Servo-Testung. Dann baue ich mit drei fehlerfreien Servos ein Bein zusammen und gehe nochmals mit einem Roboter-Bein die Schritte durch.
    gruß recke

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    08.06.2017
    Beiträge
    37
    Zitat Zitat von i_make_it Beitrag anzeigen
    als Dritten Test würde ich einen Servo der anscheindne drifted mal nehmen, in ein Sück appe einen Ausschnitt machen durch den der Servo stramm geht und dann am Servohorn (ggf. mit einer Verlängerung) anzeichnen wo der beim Homing steht das dann 10-20 mal wiederholen, um zu sehen ob der Wirklich jedesmal immer weiter in eine Richtugn wandert oder ob der wegen Toleranzen öfters mal etwas nachrutscht aber insgesamt doch mehr oder weniger die gleiche Position anfährt.
    Wenn man es ganz genau wissen will kann man sich dafür auch eine richtige Vorrichtung basteln. In meinem Fall für Standard Servos (40mm x 20mm). Hat sich durchaus bewährt das Teil.



    Wenn du einen Arduino parat hast kannst du dir den Servotester auch schenken. Für die Ansteuerung von Servomotoren gibt es eine recht komfortable Bibliothek ("servo.h").
    Zum testen der Servomotoren dann einfach über den Befehl servo.writeMicroseconds(t) verschiedene Steuersignale ausgeben. Üblicherweise entsprechen 1500us der Mittelstellung, oberer und unterer Anschlag liegen dann irgendwo bei 2100us bzw. 900us.
    Geändert von Urinstein (23.03.2018 um 18:43 Uhr)

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    23.10.2014
    Beiträge
    56
    auch vielen Dank für diesen Hinweis. Das mit den Zeiten (us) hab ich noch nicht verstanden. Das sind sicher Werte aus dem Programm. Die Servos bergen noch Geheimnisse für mich, aber ich bin beim Lesen. Netzteil kommt heute schon, Tester braucht noch einige Tage und Schablone werde ich basteln. Allerdings macht das gesamte Zerlegen des Hexapod und dann der Beine, sowie das Wiedereinsortieren der Teile und Schrauben etliche Arbeit. Ich werde völlig von vorn anfangen. Das Böse daran ist, daß ich nicht weiß warum.
    Euch ein schönes Wochenende recke

    wenn ich das jetzt lese wird mir einiges klar!

    It seems not possible to obtain right position of arms with the tutorial assembly explanations.
    I will unmount all Servos (argh!) and then correct and update
    Geändert von recke (24.03.2018 um 08:09 Uhr)

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.053
    Die Servos bergen noch Geheimnisse für mich, aber ich bin beim Lesen
    So ein Geheimnis ist das gar nicht.
    Auf der Impulsleitung wird da ein positiver Rechteckimpuls erwartet.
    Dieser Impuls hat eine Länge zwischen ~1,0 und ~2,0 ms ( = 1000...2000µs ).
    Wobei 1ms einen vollen Linksausschlag bedeutet und 2ms ein voller Rechtsausschlag ist ( kann je nach Hersteller auch umgedreht sein ).
    1,5ms ist also die Servomitte. Der Ausschlag des Servos ist proportional zu den anliegenden Impulslänge.
    1,25ms entspräche also einem halben Linksausschlag.
    Zwischen 2 solchen Impulsen ist eine Pause von etwa 20ms.
    Neuere Digital Servos vertragen meistens auch kürzere Pausen so um die 10ms.

    Nur zur Info:
    Das mit der Pause ist den früher benutzten analogen Funkübertragungssystemen geschuldet.
    Dort wurden 8 Kanäle mit maximal 2ms Länge nacheinander gesendet = 16ms.
    Um den Empfänger zu Synchronisieren wurde dann noch eine Pause mit 4ms eingefügt.
    In der Summe ergibt das dann diese 20ms.

Seite 1 von 6 123 ... LetzteLetzte

Ähnliche Themen

  1. [ERLEDIGT] MPU6050 Initialisieren mit dem Netduino
    Von Robo-Hero im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 05.02.2013, 13:02
  2. LCD initialisieren
    Von Spitfire im Forum Software, Algorithmen und KI
    Antworten: 3
    Letzter Beitrag: 03.08.2012, 23:18
  3. structs initialisieren
    Von Siro im Forum C - Programmierung (GCC u.a.)
    Antworten: 12
    Letzter Beitrag: 18.02.2011, 09:53
  4. Adc initialisieren beim Atmega 16
    Von Destrono im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 25.05.2010, 13:16
  5. LCD - initialisieren im 4-Bit Modus
    Von henne im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 12.03.2005, 01:26

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •