-         

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

Thema: Code zur Ansteuerung eines Servos

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.08.2004
    Beiträge
    1.065

    Code zur Ansteuerung eines Servos

    Anzeige

    Moin zusammen
    hat jemand eine fertige Assemblerroutine oder eine C-Funktion um einen Modellbauservo anzusteuern? ich denke an etwas, dass einen wert von 0-255 bekommt und damit dann die verschiedenen positionen ansteuert. das ganze dann für 1 -2 Servos an einem PIC. Hat jemand sowas auf lager?

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    12.04.2005
    Beiträge
    7

    Re: Code zur Ansteuerung eines Servos

    Zitat Zitat von the_Ghost666
    Moin zusammen
    hat jemand eine fertige Assemblerroutine oder eine C-Funktion um einen Modellbauservo anzusteuern? ich denke an etwas, dass einen wert von 0-255 bekommt und damit dann die verschiedenen positionen ansteuert. das ganze dann für 1 -2 Servos an einem PIC. Hat jemand sowas auf lager?
    Hallo!

    Weiß nicht, ob Dir damit gehofen ist, aber ich habe mit dem CControl-BASIC einen einfachen rechts-links-Lauf für einen gehackten (Anschlag entfernt) Modelbauservo einfach mit ein paar FOR-Schleifen realisiert. Genauer gehts mit dem CControl BASIC-Ibterpreter geschwindigkeitsbedingt eh nicht.

    #vor
    for z=1 to 200
    port1=on
    port1=off
    next z
    return

    #rueck
    for z=1 to 100
    port1=on
    for c=1 to 1
    b=1
    next c
    port1=off
    for c=1 to 1
    b=1
    next c
    next z
    return

    OK - bei dem Listing sträuben sich wohl so manchem die Haare, war auch nur so auf die Schnelle eingehackt. aber es funktioniert. Die inneren FOR-Schleifen waren eigentlich zum genaueren Einstellen gedacht. Der "Vorlauf" ist beim CCBASIC schon so am Geschwindigkeitslimit, das innere Verzögerungsschleifen bereits die Impulse zu sehr verzögert hätten. Durch einen ähnlichen Aufbau in Assembler oder C und Experementieren mit den Durchlaufzahlen für innrere und äußere Schleife sollten schnell passable Werte herauszufinden sein. Durch ein (zugegebenermaßen primitives) Duplizieren und anpassen der Routinen lässt sich auch die Ansteueruzng mehrerer Servos realisieren. Die genaue Position wird dann ebenfalls durch Angleichen der Schleifendurchläufe erreicht.

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.08.2004
    Beiträge
    1.065
    hätte denn jemand einen fertigen Assembler oder C code? das würde das sehr vereinfachen, da ich kein basic verstehe

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Nun aber ehrlich: wenn du Assembler und C kannst, mußt du auch das Beispiel vom WireMeier lesen können und umsetzen, da hast du schließlich mehr davon.
    Oder bevorzugst du grundsätzlich "outsourcing" (man läßt andere schreiben)
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Gast
    nö,aber gerade mit dieser verdammten servoroutine hab ich seit wochen probleme, ich weiß nicht ob ich irgendwo einen denkfehler habe, aber ich bekomms nicht gebacken. ich hab mir alles selbst beigebracht und das mach ich , indem ich mir fertige sachen ansehe und dann nachbaue. copypaste hab ich noch nie gemacht

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    27.08.2004
    Beiträge
    159
    wie wärs du schaust dir den basic code von Wiremeier an...
    da ist kein Begriff, Befehl, etc. drin, der nicht genauso in C existiert...
    und dann baust du das ganze einfach in C nach...?

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Hi,
    ich nehme mal an, daß Du das gerne selber programmieren willst?
    Falls nicht, gibt es bei http://www.milinst.com unter "Animatronics -> Servo driver Board" einen 8-pinnigen Chip (etwas schwer zu finden, da kein Bild), der 3 Servos ansteuern kann und so weit ich weiß das macht, was du benötigst. Habe den vor Jahren mal ausprobiert.
    Angesteuert wird der Chip seriell, ich glaube mit 9600,n,8,1
    Auch Positionsrückmeldungen (wie steht das Servo gerade) kann man abfragen.


    Gruß
    Christopher

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.08.2004
    Beiträge
    1.065
    also, ich hab mir da was überlegt. ich würd gerne wissen ob das so klappt, dann mach ich mir nen code draus.
    ich habe nen PIC16F84 mit 4mhz. den vorteiler vom timer0 stell ich auf 4, damit ist jeder takt genau 4µs lang. 1ms durch 256 sind rund 4µs. jetzt stell ich nen timer0 interrupt ein. erst lass ich ihn einmal durchlaufen, macht 1ms.sobald der timer im zweiten durchgang meinen wunschwert x erreicht hat, schalt ich das signal ab, damit hab ich dann X+1ms erreicht. jetzt noch weitere 8 durchläufe und ich hab 20ms durch. dann beginnt das spiel von vorne. um den zweiten servo zu starten hab ich ja zeit wenn der timer vom anderen servo nicht benutzt wird. so, wo liegen meine denkfehler. ich glaub einer liegt darin, dass ich den timer ja überprüfen muss wann er x erreicht richtig?

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.08.2004
    Beiträge
    1.065
    also ich hab nochmal überlegt und gesucht, wenn ich assembler verwende, kann ich 250 schritte machen, weil jeder vergleich 4µs dauert. nur überleg ich grad wie ich 2 Servos steuer, denn ich hab ja den vorteiler schon auf 1. muss ich dafür etwa einen 8mhz quarz nehmen oder geht das noch anders?

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.08.2004
    Beiträge
    1.065
    was macht ein servomotor wenn ich ihm für eine oder 2 perioden von 20ms kein signal gebe?

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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