-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Vier Servos steuern

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    13.10.2006
    Ort
    Kohlenpott
    Alter
    30
    Beiträge
    263

    Vier Servos steuern

    Anzeige

    Hallo,
    Ich habe einen kleinen Modellbagger mit Servos ausgerüstet welcher nun von alleine ein automatisches Baggerprogramm abspielen soll.
    Also Schaufel öffnen, Arm runter lassen, Schaufel zu, Arm hoch dann den Oberwagen drehen.. Schaufel wieder öffnen usw.
    Das ganze wollte ich mit Bascom und einer sehr langen Case-If Anwendung realisieren.
    Eine Variable wird hochgezählt und für jeden Wert der Variable wird dem Servo ein Wert zu gewiesen. Diese Wertetabelle wird manuel eingetragen (viel Arbeit) welche ich mit Funktionen brechene, Zeichne und dann eine Wertetabelle erstellen lasse. So kann ich z.b ein Servo langsam beschleunigen und abbremsen lassen (Z.b für die Drehfunktion)
    Um diese Kurve in echtzeit berechnen zu lassen ist der Chip vermutlich zu lahm bzw. man müsste auch verschiedene Intervalle definieren usw.

    So weit mein Plan.
    Falls Jemand eine bessere Idee hat, bitte raus damit

    Nun zur Frage: Ich wollte den Atmega8 nehmen da alle andere viel zu viele Pins haben (brauche ja eigentlich nur 4 I/Os)
    Allerdings bin ich mir nicht sicher ob der Chip es schafft simultan vier lange Case-If Tabellen auszuwerten und gleichzeit noch die Signale sauber erzeugen kann.
    Ich hatte mal aus spaß ein Servo nach einer Sinuskurve fahren lassen, die vom Atmega8 berechnet wurde.. da hat der Servo schon geruckelt. Ist es von vorteil mit einem Ext. Quarz dne Chip mit einer höheren Frequenz zu betreiben?

    Ansonsten müsste ich mit zwei Chips arbeiten. Einer berechnet die Werte, der andere erzeugt die Impulse. Allerdings habe ich keien Ahnung von der Kommunikation zwischen zwei Chips

    Gruss

    Alex

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    ..sehr langen Case-If Anwendung realisieren. Eine Variable wird hochgezählt und für jeden Wert der Variable wird dem Servo ein Wert zu gewiesen
    geht einfacher , Beispiel
    Code:
    dim variable as byte 
    FOR variable = 1 TO max 
        servo[1] = LOOKUP(variable, SERVO1_TAB)
        servo[2] = LOOKUP(variable, SERVO2_TAB)
        servo[3] = LOOKUP(variable, SERVO3_TAB)
        servo[4] = LOOKUP(variable, SERVO4_TAB)
     NEXT
    
    SERVO1_TAB:
       DATA   100, 110,  .........   
    SERVO2_TAB:
       DATA   100, 110,  .........   
    SERVO3_TAB:
       DATA   100, 110,  .........   
    SERVO4_TAB:
       DATA   100, 110,  .........
    Da die Servobefehle von Bascom in Interrupts passieren und das Wertesetzen in der Hauptschleife , sollte keine Beeinflussung erfolgen.

    Also eigentlich auch nicht, wenn du komplizierte Berechnungen machst.
    Details hier:
    http://www.roboternetz.de/wissen/ind...ide-Code#SERVO

    Bedenke, dass ein Servo nur alle ~20mS einen neuen Wert übernehmen kann, das ist also bei langsamen Bewegungen schon ruckelig.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.08.2007
    Ort
    Oberhofen im Inntal (Tirol)
    Alter
    43
    Beiträge
    377

    Re: Vier Servos steuern

    Zitat Zitat von Brantiko
    Ist es von vorteil mit einem Ext. Quarz dne Chip mit einer höheren Frequenz zu betreiben?
    Hallo Alex!

    Also mit 1 MHz waren meine Servos sehr schwach. Das liegt vielleicht daran, dass Bascom bei 1 MHz kein genaues Timing zustande bringt. Erst ab 8 MHz hatten sie volle Leistung. Ich würde einen 16 Mhz Quarz anschließen um genug Reserven für dein Programm übrig zu haben.

    mfg
    Gerold
    :-)

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.269
    Hi!
    Vielleicht ist für dich auch das Servoboard von robotikhardware.de interessant. Dort kannst du im POLULU Mode dem Servo nicht nur eine neue Position sagen, sondern auch die Geschwindigkeit mit der es dort hin fahren soll. Würde dir eine Menge arbeit ersparen.

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    13.10.2006
    Ort
    Kohlenpott
    Alter
    30
    Beiträge
    263
    Hallo,
    Ich habe mir mal den Code von PicNick angesehen.
    Bascom meint den zweiten Teil (Werzuweisung) müsste ich hinter das END vom Programm packen. Soll ich das ganz in die Timer Routine tun? Ich denke mehr als 50Hz vom Timer macht keinen sinn? Denn öfter kann der Servo ja ein Signal nicht verarbeiten.

    Gruss

    Alex

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    13.10.2006
    Ort
    Kohlenpott
    Alter
    30
    Beiträge
    263
    Ich habe mir jetzt doch mal diesen Servotreiber angesehen..
    Sehe ich das richtig dass ich nur ein Kabel zwischen AVR und Servocontroller brauche?

    Gruss

    Alex

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.269
    Ja, du brauchst nur ein 2-adriges Kabel.
    Gruß, William

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    13.10.2006
    Ort
    Kohlenpott
    Alter
    30
    Beiträge
    263
    Verstehe und wie heißt die Übertragungsart?

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.269
    Naja, RS232 oder UART, kann man wohl beides nutzen... Lies dir halt mal die Anleitung durch. Könntest deinen Bagger dann auch vom PC steuern.

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    13.10.2006
    Ort
    Kohlenpott
    Alter
    30
    Beiträge
    263
    Habs soeben bestellt, schau mal weiter wenn ich den Krempel hier haben, Danke.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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