- 3D-Druck Einstieg und Tipps         
Seite 4 von 6 ErsteErste ... 23456 LetzteLetzte
Ergebnis 31 bis 40 von 85

Thema: RP6Control M32: Library für 8 Servos

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Meine Frau hat eben die Lösung gehabt, indem sie selber die Leitungen durchgemessen hat.
    Gut, dass es Frauen gibt ... und das am Vatertag ...

    Gruß Dirk

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hi dirk,

    ich habe die drei dateien vom anfang des thread im projektverzeichnis abgespeichert (ich verwende eclipse unter linux) zusammen mit

    RP6Config.h
    RP6Control.c +h
    RP6ControlLib.c +h
    RP6Uart.c +h

    kompiliert, lief ohne fehlermeldung ab.
    *.hex geladen...
    beim start erscheint im LCD

    #####
    RP6 control
    LC-Display
    Servo-Test 1
    Version 1.00

    dann wird die servopos abgezählt von 1 bis 162(?)

    die zwei Servos sind am pin 1 und 3 des IO steckers angeschlossen..

    wie gesagt, im display wird abgezählt, an den Servos passiert aber nix. Hätte ich die demo.c ändern müssen?

    danke

    EDIT: korrektur:

    wenn ich servo I an control- I/O pin 7 (PC2) anschliesse, wir der servo I nach rechts bewegt und dann schrittweise nach links

    wenn ich servo II zusätzlich an pin 5 (PC3) anschliesse passiert an servo II nichts

    wenn ich servo III am pin 6 (PC4) anschliesse fahren alle 3 Servos auf den rechten anschlag und das programm in m32 board muss neu gestartet werden
    gruß inka

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    die zwei Servos sind am pin 1 und 3 des IO steckers angeschlossen.. wie gesagt, im display wird abgezählt, an den Servos passiert aber nix. Hätte ich die demo.c ändern müssen? danke
    An Pin 1 und 3 von I/O wären das ja die Servos 6 und 4 an PC7 und PC5.
    Also wäre die Initialisierung in der Demo:
    initSERVO(SERVO4 | SERVO6);
    wenn ich servo I an control- I/O pin 7 (PC2) anschliesse, wir der servo I nach rechts bewegt und dann schrittweise nach links
    Das ist ok.
    wenn ich servo II zusätzlich an pin 5 (PC3) anschliesse passiert an servo II nichts
    Wenn die Demo unverändert ist, müßte das funktionieren.
    wenn ich servo III am pin 6 (PC4) anschliesse fahren alle 3 Servos auf den rechten anschlag und das programm in m32 board muss neu gestartet werden
    Wenn du SERVO3 initialisiert hast, sollte das auch funktionieren.
    Wichtig wäre eine getrennte Stromversorgung für die Servos, weil sonst evtl. die M32 immer wegen Spannungseinbrüchen ein Reset fährt.

    Gruß Dirk

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hi Dirk,

    habe jetzt die zugehörigen Servos initialisiert (PC7,PC5,PC3 <-> servo 6,4,2) und habe nun ein anderes problem, bekomme beim kompilieren folgende fehlermeldung:
    --------------------
    Severity and Description Path Resource Location Creation Time Id
    ../../../../crt1/gcrt1.S undefined reference to `main' m32_control_servo_dirk line 193 1281799492208 4852
    ------------------

    was kann das denn sein?
    gruß inka

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    die antwort habe ich jetzt selber: im namen der "RP6ControlServo.c" war durch copy und paste ein blank hinter dem "c", die datei wurde somit nicht als *.c erkannt.

    so weit so gut, die stromversorgung der Servos habe ich getrennt vom RP, einen wackler in meiner verdrahtung beseitigt.

    jetzt lässt sich die datei kompilieren, beim kontaktieren der Servos zu den pins PC7,PC5,PC3 (egal welches servo an welchem pin) fährt der servo zum linken anschlag (von vorne gesehen) und zuckt dann dort vor sich hin, als wollte er noch weiter.

    ein fortschritt, aber ganz richtig kanns ja noch nicht sein, oder?
    gruß inka

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    30.12.2009
    Ort
    Koblenz
    Alter
    45
    Beiträge
    78
    Hast Du die Masse der externen Stromversorgung an die an des RP6 gekoppelt ? Dem sollte so sein. Steht irgendwo oben in diesem Thread
    Ich habe bereits bis Unendlich gezählt. Zweimal, und zurück

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    jetzt habe ich die massen von RP6 und der externen servoversorgung verbunden.

    servo 2 an pin 5 / PC3 tut das erwartete, auch die beiden anderen servos, wenn ich sie an diesem pin anschliesse. Am pin 3 / PC5 und pin 1 / PC7 fahren die Servos an einen anschlag und bleiben dort. sie zucken auch nicht.

    in der demodatei habe ich nur die initialisierung in

    initSERVO(SERVO2 | SERVO4 | SERVO6);

    geändert. Muss ich noch etwas ändern?

    Hat es schon jemand in der praxis mit drei oder mehr Servos getestet?

    Ein anderes programm, mit 3 servos, allerdings mit dieser funktion
    -----------------------------
    for(c=0; c<50; c++)
    {
    PORTC |= IO_PC7; // Impulsstart servo I
    sleep(12); // 1 = 0.1ms warten = Servoposition 1
    PORTC &= ~IO_PC7; // Impulsende
    sleep(150); //50ms warten
    }
    -------------------------------

    funktionieren alle drei servos!
    gruß inka

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.04.2009
    Beiträge
    523
    Also ich benutze die Lib mit allen acht Servos ohne Probleme.
    Acht gleichzeitig ist halt auch mit externer Versorgung etwas kritisch, aber prinzipiell geht es.

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Am pin 3 / PC5 und pin 1 / PC7 fahren die Servos an einen anschlag und bleiben dort. sie zucken auch nicht.
    Wenn du die Servos 2, 4, 6 benutzt, must du natürlich auch die Variablen servo2_position, servo4_position, servo6_position in der Demo verwenden, um diese Servos anzusteuern.

    Es sieht so aus, als ob du servo4_position und servo6_position gar nicht änderst.

    Gruß Dirk

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hi Dirk,

    danke für den entscheidenden hinweis - es läuft!!!!
    gruß inka

Seite 4 von 6 ErsteErste ... 23456 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress