- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 11

Thema: 9 Servos, Auflösung 1µs --> Wie löse ich das?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    18.10.2011
    Beiträge
    44

    9 Servos, Auflösung 1µs --> Wie löse ich das?

    Hi Zusammen,

    möchte mich mal kurz vorstellen, ich habe erst vor kurzem begonnen mit mit Mikrocontrollern und den Möglichkeiten zu beschäftigen, habe viel gelesen, noch mehr gelesen und bin gerade dabei auf einem Breadboard meine ersten "Hallo Welt" Programme zu testen. Also Led leuchten, blinken und so weiter.

    In weiterer Folge möchte ich mal 9 Servos ansteuern können mit einer Auflösung von 1µs bei mind. 50Hz und maximal 330Hz. Nur frage ich mich wie ich das anstellen soll denn mit Soft-PWM wird das wohl nicht so leicht zu lösen sein. Bei einem Prozessor mit 16Mhz ist eine µs gerade mal 16 Taktlängen lang. Neben den 9 Servosausgängen brauche ich noch zumindest einen Eingang am µC.

    Habt ihr eine Idee wie ich das lösen könnte? Oder welche Bauteile es vielleicht gibt die solchen Aufgaben gewachsen sind?

    Danke Euch und liebe Grüße
    PuraVida

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    16.03.2011
    Ort
    Dresden
    Alter
    37
    Beiträge
    1.937
    Ich habe es zwar noch nicht verwendet, aber das Pololu Mini Maestro scheint für solche Aufgaben wie geschaffen zu sein. Damit sollte man dem µC auf jeden Fall einiges an Arbeit abnehmen können. Bei einer reinen µC-Lösung müsste man viel mit Timern arbeiten. Ich hatte mir auch schon gedacht, dass es theoretisch funktionieren könnte, wenn man einen Ausgang mittels Timer für die Pulsweite High stellt und für den Rest der Periode wieder Low. Während dieser restlichen Zeit könnte man dann die Pulsweiten für die anderen Servos setzen, sodass jeder nacheinander seinen Puls bekommt. Ist aber wie gesagt nur so eine Idee von mir, sowas würde ich zumindest ausprobieren. Bei 20ms Periodenlänge könnte man also 10 Servos ansteuern, der Timer lässt sich eigentlich auch auf µs genau einstellen.
    Musst du halt wissen, ob du die einfache Lösung oder die Bastellösung bevorzugst. Bei Letzterer lernt man aber denk ich mal mehr.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    18.10.2011
    Beiträge
    44
    Hi Geistesblitz!

    Danke für den Tipp mit dem Pololu Board. Das löst ja super genau auf.

    Da ich aber eine eigene Anwendung basteln will und auch noch ein User-Interface mit vier Tasten brauche sowie eine 5 stellige LED Anzeige würde ich das gerne selbst basteln damit ich das genau auf meine Bedürfnisse zuschneidern kann.

    Was die wohl für einen Controller für ihr Board verwenden? Vielleicht wäre ja der was für mich...??

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    16.03.2011
    Ort
    Dresden
    Alter
    37
    Beiträge
    1.937
    Naja, das Pololu-Board lässt sich auch über UART per µC ansprechen. Allerdings muss ich mich damit auch selbst erst noch auseinandersetzen. Bei sowas ist es halt sinnvoll, die Aufgaben aufzuteilen. Es ist einfach besser, wenn der µC zum Rechnen den "Kopf frei hat" und die Generierung der Servosignale vom Pololu übernommen wird. Ansonsten würde ich die Variante probieren, die ich oben vorgestellt hab. Ich werd das auf jeden Fall auch noch mal probieren, wenn ich mein µC-Board wieder zum laufen bekomm. Wahrscheinlich haben die anderen hier auch noch ein paar Vorschläge, ich bin ja selbst uch noch nicht so erfahren in der Materie.

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.05.2005
    Ort
    Berlin
    Beiträge
    316
    Was bedeutet: [zitat]bei mind. 50Hz und maximal 330Hz[/zitat]

    Meinst du damit die Refreshrate?

    Ich sag mal, 32 Servos mit 1us Auflösung ist kein Problem. Ich mach das so, dass ich mir ne Wertetabelle vorberechne und die dann einfach auf die Ports haue. Die Tabelle muss nur neu berechnet werden, wenn sich ein Servo bewegen soll.
    Problem: Der uC ist bei jedem Refhresh-Vorgang (bei mir alle 10ms) für maximal 1ms blockiert.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    18.10.2011
    Beiträge
    44
    Hi lokirobotics!

    Ja, ich meine die Refreshrate.

    Mein Servosignal soll von 750µs bis 2250 µs in 1µs Schritten einstellbar sein. Bei Analogservos alle 20ms (50Hz) und bei DigitalServos alle 3ms (330Hz) wiederholt sich das Signal - der Refresh sozusagen.

    Was ich vorhabe soll in etwa so funktionieren: Es bilden immer drei Servos eine Gruppe. Der Benutzer stellt für jeden Servo eine Start und eine Stoppposition ein. Dann stellt er ein mit welcher Geschwindigkeit der Servo von der Start zur Stoppposition fährt. Und außerdem noch, wie lange der 2. Servo wartet nachdem der erste seine Position angefahren ist. All diese Infos sollen in den EEProm.


    Wie wirfst Du das Signal auf die Ports? Und wieso ist dann der µC blockiert?

    LG

    Dann kommt ein Startsignal und der 1. (u. ev. 3.) Servo fährt langsam in seine Endposition, es vergeht eine Pause, und der 2. Servo fährt in seine Endposition.

Ähnliche Themen

  1. ADC-Auflösung ATmega8
    Von Tido im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 24.08.2008, 14:39
  2. Auflösung berechnen
    Von Tido im Forum Sensoren / Sensorik
    Antworten: 6
    Letzter Beitrag: 23.01.2008, 10:15
  3. 32-Bit-Timer mit 1mS Auflösung
    Von ACDC im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 13.11.2006, 09:09
  4. mit KTY Auflösung von mehr als 1°C
    Von ba4_philipp im Forum Sensoren / Sensorik
    Antworten: 5
    Letzter Beitrag: 22.05.2006, 13:16
  5. Kleinste Auflösung bei Servos?
    Von Roberto im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 22
    Letzter Beitrag: 13.11.2004, 19:55

Berechtigungen

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

LiFePO4 Speicher Test