-         

Ergebnis 1 bis 4 von 4

Thema: Servo spinnt rum..

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.05.2007
    Alter
    28
    Beiträge
    305

    Servo spinnt rum..

    Anzeige

    Hi leute,

    Ich bin dabei mir ein bein eines hexapods zu bauen, erstmal zum testen.
    Aber irgendwie will mein servo nicht so wie ich das will.
    Am anfang als ich ihn getestet hatte hatte er so ca. 60 schritte bis zum anschlag.
    Mittlerweile kommts mir vor als obs nurnoch 7 sind!
    Ich steuer den servo über den internen Bascom servo(i) befehl an.
    Wenn ich nun zb etwas in der art mach:

    Code:
      
    Do
    Waitms 30
    Incr Winkel
    Servo(1) = Winkel
    If Winkel = 30 Then
    Winkel = 0
    End If
      Loop
    Ist bevor die 30 erreicht wurde schon lange der anschlag erreicht.
    Dabei habe ich gehört Servos sollen bei 50 ihren anfang haben, 100 mitte und 150 ende.
    Ausserdem ruckelt das teil manchmal wie sau, wenns auf den kopf steht bzw nicht ganz gerade... und das programm wird währenddessen auch unterbrochen!
    Der servo ist der VSD-1 von conrad.
    http://www1.conrad.de/scripts/wgate/...mmh_area_kz=LN

    Natürlich kann man für 5€ nicht viel erwarten, aber immerhin das der servo das macht was er machen soll.
    Wenn ich ihn über taster ansteuern will spinnt der völlig rum und macht eh was er will, kann aber auch sein weil ich nicht gemerkt hatte das der schrittbereich bis gerademal ca. 15~20 geht...
    Also mach ich was falsch oder ist es einfach ein scheiss servo der schon im eimer ist?

    gruß
    Raz
    //edit: zum glück les ich mich gerade in C rein... es nervt absolut keine kontrolle zu haben...

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Ausserdem ruckelt das teil manchmal wie sau, wenns auf den kopf steht bzw nicht ganz gerade... und das programm wird währenddessen auch unterbrochen!
    ......
    Natürlich kann man für 5€ nicht viel erwarten, aber immerhin das der servo das macht was er machen soll.
    Ja, aber im Gegenzug kann das Servo auch verlangen, dass man es richtig ansteuert und ausreichend füttert
    Dass der Servo deinen Programmablauf umprogrammiert ist recht unwahrscheinlich und wenn das Programm nicht richtig läuft und sogar stehen bleibt, wird der Servo wohl kaum noch die richtigen Steuerimpulse bekommen.
    Wenn der Servo nur müde zappelt und der Contoller resetted hört sich das für mich nach einer wackeligen, zu schwachen Stromversorgung an.

    Also mach ich was falsch oder ist es einfach ein scheiss servo der schon im eimer ist?
    An einer RC Fernbedienung machen meine 5€ Servos von Conrad bisher alle das was sie sollen und sind noch nicht auffällig schnell kaputt gegangen.

    //edit: zum glück les ich mich gerade in C rein... es nervt absolut keine kontrolle zu haben...
    Klingt ein bischen als hättest du dir deine vorherige Frage inzwischen selbst beantwortet, denn wenn es an den Servos läge, könnte eine andere Programmiersprache die auch nicht besser machen

    Was bewegt dich zu der Annahme, dass du in C mehr Kontrolle hast?
    Dass es in Bascom eine fertige Routine für Servos gibt, heisst nicht, dass du die unbedingt benutzen musst.
    Die kannst du dir in Bascom genauso mit einem Timer selber zusammen basteln wie in C.

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    Hallo

    Die 5€-Servos funktionieren zufriedenstellend. Ich tippe eher auf einen Fehler in der Servokonfiguration. Neben dem richtigen Reloadwert und freigegebenen Interrupts muss unbedingt die richtige Taktfrequenz des Kontrollers angegeben werden ($crystal = xxxxxxx) Der Drehbereich der Servos startet normaleweise nicht bei null, dies ist eigentlich schon ein Hinweis auf ein falsches Timeing. Hier ein Beispiel für einen Mega32 mit 8MHz:
    Code:
    $regfile = "M32def.dat"                                     ' RP6 mit Mega32
    $crystal = 8000000                                          ' taktet mit 8MHz
    
    Config Servos = 2 , Servo1 = Porta.0 , Servo2 = Porta.1 , Reload = 10
    Servo(1) = 90
    Servo(2) = 85
    Config Porta.0 = Output
    Config Porta.1 = Output
    Enable Interrupts
    (Servomitte ist hier etwa 90)

    Möglicherweise ist das Anschlusskabel im Servo nicht richtig angelötet. Bei einigen meiner Billigservos traten Kürzschlüsse auf, weil sich einzelne Kupferdrähtchen an den Lötpunkten berührten. Auch Kabelbrüche treten ungewöhnlich häufig auf, weil die Kabel so eng verlegt sind und keine vernünftige Zugentlastung eingebaut wurde.

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.05.2007
    Alter
    28
    Beiträge
    305
    Natürlich startet ein servo normalerweise nicht bei 0
    Das ist mir klar, aber nach meinen ganzen rumtesten hab ich gemerkt das der servo mit 0 für einen anschlag gut klar kommt, wenn der andere anschlag schon bei 20 ist.
    Mit dem code hier hab ich nochmal geschaut wo der servo sich nun wie bewegt.

    Code:
    While Winkel < 20
    Incr Winkel
    Servo(1) = Winkel * 10
    Waitms 100
    wend
    Das ganze läuft wie folgt ab:
    winkel = 10 rechter anschlag
    Winkel = 20 linker anschlag.
    Also nix mit 90 mitte (leider)
    Die Servos sind richtig eingestellt und der mega8 läuft auf 8mhz intern oszi.

    der servo hat etwa 10 schritte...

    Nun gut ab jetzt kann ich schreiben er hatte 10 schritte... hab die fuses nochmal gecheckt und siehe da ... er läuft (komischerweise) nur auf 1mhz.
    Das erklärt das rumgespinne

    Aber nicht das zucken wenn er "auf dem rücken" liegt.
    da es nicht bei aufrechter position ist kann es schlecht was mit unzureichender stromversorgung oder so zu tun haben...
    Wenigstens kann ich ihn nun richtig ansteuern

    LG raz

Berechtigungen

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