-         
Ergebnis 1 bis 10 von 10

Thema: Servosteuerung fast fertig

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.06.2004
    Ort
    HDN
    Alter
    36
    Beiträge
    102

    Servosteuerung fast fertig

    Anzeige

    Hat mal wieder Zeit mich um mein lieblingsobjekt zu kümmern.
    Ich will möglichst den ds20 kopieren zumindest die softwäre.
    Mir ist es schon gelungen eine genauigkeit von 20,009 ms bei der schleife zu ereichen.Die Servos haben leider wegen den 4 MHZ bloß 100 stellmöglichkeiten aber das sind schon 1,8 grad genauigkeit bei 180 grad drehungen.von 0,650 bis 2,750 mit 21 µs abständen bei 3 Servos zur zeit.
    Genau wie ein Schrittmotor in vollschrittbetrieb

    Idee ist es einen pic 8pin 3 Servos eines beins zu steuern der die befehle vom master erhält.Welches bussystem ist gut????

    Mir schwebt RS232 vor da es kurz ist und bloß 2 pins brauch.3 gahen auch noch für spi oder iic.find aber das die com den chip ausbremst da ich max 15-18 ms zeit hab Daten zu empfangen !!

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.07.2004
    Ort
    Zwingenberg (Bergstraße)
    Alter
    29
    Beiträge
    136
    Hi!

    Hab auch schon versucht eine Servo-Steuerung auf Basis des PIC12F675 zu proggen. Das Problem war bei mir auch die com mit dem master. Ich hab dann ein eigenes Protokoll gebaut, was die Daten wie bei RS232 überträgt. Allerdings war meine Steuerung lang nicht so genau wie deine, sodass ich die Zeiten nicht so genau eingehalten hab.
    Bei meiner Lösung legt der master die sendeleitung für die dauer eines Schleifendurchlaufes auf 1. Dies erkennt der Controller und wechselt in den Empfangsmodus. Dabei zieht der Controller die Empfangsleitung auf 1, was wiederum für den Master heißt: du darsft senden. der master sendet also die Pos.daten an den Controller und der Controller übernimmt sie und wechselt in den Schleifenmodus. Beide müssen natürlich die Leitungen wieder auf 0 setzten, sonst hängt das ganze.
    Hoffe das hat geholfen, Matthias

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.06.2004
    Ort
    HDN
    Alter
    36
    Beiträge
    102
    Hatte noch vor die ganz sache noch genauer zu machen mit 8mhz aber beim kleinen lieber 4.
    Ich Hab mir jetzt zuhause auch ein protokoll uberlegt.

    Eine mischung von spi und iwire mit einer cs leitung die gleichzeitig Clock ist.Nach neinem überschlägen mußten die 16 ms ausreichen mehr als 3 byte zu senden.bro bit 4µs

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.06.2004
    Ort
    HDN
    Alter
    36
    Beiträge
    102
    Ach ja ich hab den INTERUPT nicht zum SERVOSTEUERN genommen.
    Vorher hat ich 30 STellung weil der interupt nicht aller 0,015 µs alles abarbeiten kann.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.06.2004
    Ort
    HDN
    Alter
    36
    Beiträge
    102
    So das progg läuft jetzt auf meinem 12f683 Fehlerfrei.Ich haß0e die Pins bei dem kleinen.Hab zuerst GPIO und TRISIO Vertauscht und mich gewundert wieso error.Naja die Routienen für die übertragung ist auch schon fertig und lauft 15ms lang in den 20ms Servo Pulsen.Die 3 Byte sind in 180µs übertragen.Jetzt kommen die letzten testläufe und verbesserungen aber werde bals ergebnisse presentieren können.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.06.2004
    Ort
    HDN
    Alter
    36
    Beiträge
    102
    das ganze ist fas so weit muß die übertragung nur noch syncronisieren das sie nicht so mastertaktabhängig (geiles wort ne) ist dachte so steuerbar von 2 mhz bis open end.spiel auch noch mit dem verbleibenden Pin I oder O das ist hier die frage. Eine Rückmeldung des Beinkontacktes
    für das ich das progge wäre schön aber eine sende routine zu implementieren wird knapp.kann mir bis jetzt ja noch alles vorstellen aber wie lange genau die empfangsroutine brauch weiß ich nicht 100% kann der softwäresimulator nicht und hardwäredebug is nicht.Schade.
    noch ein Servo währe kein Problem.

    @Mahtias
    Hattest du nur 1 Richtung oder 2 Für die daten.

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.07.2004
    Ort
    Zwingenberg (Bergstraße)
    Alter
    29
    Beiträge
    136
    Theoretisch 2, ich hab allerdings nur eine benutzt

    mfG Matthias

  8. #8
    Gast
    ich hab jetzt schon versucht einen 0ne wire slave daraus zu machen bis jetzt allerdings ohne erfolg.Hab da 2 pins noch frei!

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.06.2004
    Ort
    HDN
    Alter
    36
    Beiträge
    102
    So die One Wire Kom. in eine richtung steht.
    Kann alle 3 Servos genau stellen und die anderen werden nicht beeinflüßt.
    Sas One Wire Timing stimmt. Reset Byte1 Reset Byte2 Reset Byte3.
    Ein weiterer servo wähe eine sache von 5 min.Die sache ansich steht schon und ich poste sie zum testen.Was jetzt noch in meiner vorstellung liegt.
    Das ganze auf 8 statt 4 MHz obwohl ausreichend
    Die Komonikation in die andere richtung fehlt noch als kollisionsabfrage des beines.Ein 5ter servo geht leider nicht da pin3 bloß reset oder input sein kann aber ich will ja input

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.06.2004
    Ort
    HDN
    Alter
    36
    Beiträge
    102
    So wie verschprochen die asm der servosteuerung.
    Die Smiwire_Slave.asm in *.inc umbenennen und kompelieren.
    ist fur den 12f683.
    One wire geht orginal

    Reset Byte Reset Byte Reste Byte

    Pinbelegung steht in der asm datei.
    Angehängte Dateien Angehängte Dateien

Berechtigungen

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