-         

Ergebnis 1 bis 8 von 8

Thema: Servos mit Bascom, internes

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731

    Servos mit Bascom, internes

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo,

    ich hab jetzt (wieder)mal mit Bascom und einem Servo rumprobiert,
    ich hab die Demo 1.11.8.1, auf dem RN-MiniCtrl, und RN-M8.

    Dabei ist mir aufgefallen, dass ein Servo, zwischendurch immer mal kurz Aussetzer hatte, man konnte ihn per Hand verdrehen, nur ganz kurz (da hab ich wohl auch einen Servo erwischt, der das etwas genauer nahm, denn nicht bei allen die ich hier hab war das so),
    deshalb hab mir mal angeschaut, was Bascom so macht mit dem PWM-Signal.

    Beim messen mit dem Oszi, ist mir aufgefallen, das das mit den 20ms nicht so ganz hinhaut, denn die Periodendauer ist länger als 20 ms. Das ist auch abhängig vom Takt des AVR, bei 16MHz war die Periode ca. 25ms, bei 7,3MHz schon mind. 30ms.

    Als nächstes hab ich mir den Code angeguckt, bei 16MHz wird der 8-Bit Timer0 mit 97 vorgeladen, was ca. 10µs entspricht.
    In der Timer-Overflow-ISR wird dieser Wert aber erst ganz zum Schluss wieder geladen, bevor die ISR beendet wird.

    Da ich schon mal davon gelesen habe das es zu Problemen kommt, wenn man mehrere Servos betreibt (ab 8, glaub ich), kann das doch etwas damit zu tun haben

    Vielleicht kann das mal jemand nachvollziehen !?

    Auf die Seite von MCS komme ich grad nicht drauf, denn dann hätte ich versucht herauszufinden ob sich seit 11.8.1 was in der Richtung getan hat.

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    bascom ist zu ungenau für die genaue servosteuerung.
    nimm winavr-c , dann geht es.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    Zitat Zitat von pebisoft
    Bascom ist zu ungenau für die genaue servosteuerung.
    nimm winavr-c , dann geht es.
    Bascom ist dafür schon genau genug, wenn man gewisse Dinge beachtet.
    Der Wechsel der Sprache ist defakto keine Lösung, da dieses in diesem Fall den Code nur unnötig verkomplizieren würde.
    Wie wäre es im übrigen, wenn du anstatt diverser "sinnfreier" Kommentare einfach die entsprechende Lösung liefern würdest ... wegen mir auch in C

    @linux_80:
    Es ist scheinbar alles eine Sache der richtigen Parameter.
    Schau dir mal den folgenden Post an, vielleicht hilft dir das ja.

    guggst du

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    @pebisoft (only)
    soll das heissen, wenn ich Winavr-c verwende, dann funktioniert das auf einmal mit Bascom ?
    Dann zeig mal wie ?! Ich starte Bascom, und dann ...

    @all
    Das man den Reload-parameter anpassen muss, hab ich schon herausgefunden, ich sehe das aber nur als Workaround, denn wenn man den Timer am Anfang der ISR lädt (so wie es sich gehört), sollte es grundsätzlich mal passen.
    Die wenigsten Bastler werden das mit dem Oszi überprüfen, um die 20ms hinzubekommen.
    Man merkt den unterschied nur, wenn man auf verschiedene AVRs (und MHz) unterschiedliche Werte angeben muss um die gleiche Position zu erhalten.

    Es ist ja nicht das erstemal, das ich mit Bascom einen Servo ansteuere, hatte auch noch keine Probleme bis jetzt, hab jetzt nur geforscht, weil der eine Servo gestottert hat.

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    34
    Beiträge
    979
    hast du die mini Servos von conrad? ich hatte auch mal ein problem mit einem.. und als ich es aufschraubte sah ich das sich der eine kondensator gelöst hatte... wieder anlöten, fertig könnte sein das es bei dir ein ähnliches problem ist... ist die versorgung stabil genug um deine Servos zu speisen? Servos ziehen ja recht viel strom unter belastung...

    gruss bluesmash

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Die Servos sind von robotikhardware, und davon auch nur bei einem der damit ein Problem hat, ich hab auch noch kleine Servos von 'nem Kollegen bekommen, die stören sich auch nicht dran.

    Aber jetzt unabhängig von dem, das hat doch nur aufgedeckt, das da etwas mit Bascom nicht ganz OK ist.
    Müssen wir mal bei MCS nachfragen ob das einen bestimmten Grund hat das so zu machen.

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.08.2004
    Ort
    Potsdam
    Beiträge
    190
    @pebisoft:
    Deine Aussage ist schlichtweg falsch und basiert auf Unwissenheit!
    Ich hab die Servoanteuerung unter Bascom selber geschrieben, und bin mit einer Abweichung von ca 30 bis 50ppm (Quarz) auf einen Impulsabstand von 19,9972ms gekommen.

    @linux:
    Die Abstände der Impulszeiten müssen sich verändern wenn Du verschiedene Freuquenzen zum betreiben des Controllers nutzt und die Prescaler der Timer nicht entsprechend anpasst.
    Du könntest aber auch die Hardware-PWM bestimmter Controller nutzen die einen passenden Prescaler besitzen. Wirf einfach mal einen Blick in die Datenblätter.

  8. #8
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    So'n Zufall. Wenn es wem interessiert, oder zum daran basteln
    http://www.roboternetz.de/wissen/ind...ide-Code#SERVO
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Berechtigungen

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