- 3D-Druck Einstieg und Tipps         
Seite 219 von 355 ErsteErste ... 119169209217218219220221229269319 ... LetzteLetzte
Ergebnis 2.181 bis 2.190 von 3542

Thema: Willas Shrediquette Tricopter / Quadrocopter / Hexacopter

  1. #2181
    Erfahrener Benutzer Begeisterter Techniker Avatar von Picojetflyer
    Registriert seit
    03.08.2004
    Ort
    Sauerland
    Beiträge
    247
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Sehe ich das richtig das du den Timer wert für das Servo überschreibst???

    Code:
    Servoirq:                                                         'Interrupt wird ausgelöst soweit OK
    If Portd.6 = 0 Then                                           'Port ist Low OK
    Timer1 = Servopwm                                         'Timervorwahl laden OK
    Portd.6 = 1                                                      'Port High Setzen auch OK
    
    In der Ersten Interrupt Runde wird nix weiter gemacht, Alles was folgt wird übersprungen weil die Bedingungen noch nicht verfüllt sind.
    Timerinterrupt läuft das erste mal über und hier gehts dann weiter.
    
    Else                                                                'Else bedingung wird erfüllt 
    Portd.6 = 0                                                      'Servo Port wird auf Low gezogen
    Incr Servo_nr_by                                              'Zähler Variable wird hochgezählt (ist jetzt 1)
    End If
    End If
    If Servo_nr_by = 1 Then                                  'Zähler Variable ist jetzt 1 und der Zweite Servoport wird auf High-Pegel gezogen.
    If Portb.2 = 0 Then
    Timer1 = Servo_roll_pwm                               ' Timer1 wird mit der Vorwahl für Portb.2 geladen.
    Portb.2 = 1
    
    'Timer läuft wieder über, Interrupt wird ausgelöst.
    
    Servoirq: 
    If Portd.6 = 0 Then                                          'Port ist wieder 0 also 
    Timer1 = Servopwm                                        'Timer laden 
    Portd.6 = 1                                                      'port auf 1 Setzen 
    Else                                                                'Else wird nicht erfüllt also überspringen 
    Portd.6 = 0 
    Incr Servo_nr_by 
    End If
    End If                                                             'Wofür ist eigendlich das zweite Endif??
    If Servo_nr_by = 1 Then                                  'hier gehts dann weiter
    If Portb.2 = 0 Then                                          'Port ist noch 1 also überspringen bis Else
    Timer1 = Servo_roll_pwm
    Portb.2 = 1
    Else 
    Portb.2 = 0                                                     'Port wird auf 0 gesetzt
    Incr Servo_nr_by                                            'Servozähler hochsetzen ist jetzt 2
    End If
    End If
    If Servo_nr_by = 2 Then                                  'Servozähler passt also weiter machen
    If Portb.3 = 0 Then                                          ' Port ist 0 also weiter
    Timer1 = Servo_nick_pwm                               'Da ist der Bock! Timer 1 wird überschrieben!! Wurde vorher mit Timerwert für Steuerservo gefüllt. 
    Portb.3 = 1
    Else
    Portb.3 = 0
    Incr Servo_nr_by
    End If
    End If
    Kann mich da ein Bascom Profi bestätigen??

    Mfg

    Matthias
    Geändert von Picojetflyer (27.06.2011 um 14:41 Uhr)

  2. #2182
    Erfahrener Benutzer Begeisterter Techniker Avatar von Picojetflyer
    Registriert seit
    03.08.2004
    Ort
    Sauerland
    Beiträge
    247
    Mir schoss es grade durch den Kopf beim Putzen

    Dir fehlt da was im code und zwar machte das zweite endif mich etwas stutzig.

    Servoirq:
    If Portd.6 = 0 Then
    Timer1 = Servopwm
    Portd.6 = 1
    Else
    Portd.6 = 0
    Incr Servo_nr_by
    End If
    End If <--- Das da!


    Kann es sein das du aus versehen eine Zeile gelöscht hast?


    Servoirq:

    If Servo_nr_by = 0 Then <-- Das fehlt dir glaube ich
    If Portd.6 = 0 Then
    Timer1 = Servopwm
    Portd.6 = 1
    Else
    Portd.6 = 0
    Incr Servo_nr_by
    End If
    End If

  3. #2183
    Erfahrener Benutzer Roboter-Spezialist Avatar von jevermeister
    Registriert seit
    20.01.2011
    Ort
    Kiel
    Beiträge
    393
    das fehlt nicht! das hat er irgendwie oben ans ende der Zeile gehängt: Sieht so aus wenn man es richtig einfügt :-/

    Code:
    '===SERVO CONTROL===============================================================
    Servoirq:                                                   'generate servo PWM pulse
    If Servo_nr_by = 0 Then
       If Portd.6 = 0 Then                                      'wenn port low
          Timer1 = Servopwm                                     'dann timer auf entsprechende verzögerung
          Portd.6 = 1                                           'und port anschalten
       Else                                                     'das hier passiert erst bei dem darauf folgenden interrupt
          Portd.6 = 0                                           'dann port wieder ausschalten
          Incr Servo_nr_by                                      'und den nächsten kanal bearbeiten
       End If
    End If
    If Servo_nr_by = 1 Then
       If Portb.2 = 0 Then
          Timer1 = Servo_roll_pwm
          Portb.2 = 1
       Else
          Portb.2 = 0
          Incr Servo_nr_by
       End If
    End If
    If Servo_nr_by = 2 Then
       If Portb.3 = 0 Then
          Timer1 = Servo_nick_pwm
          Portb.3 = 1
       Else
          Portb.3 = 0
          Incr Servo_nr_by
       End If
    End If
    
    
    If Servo_nr_by = 3 Then
      Timer1 = 40000                                            'eine pause von ca. 12ms bis zum nächsten interrupt. Bei guten Servos oder Brushlessreglern kann man hier bis auf 65530 gehen ==> ansteuerfrequenz von ~ 200Hz
      Servo_nr_by = 0
    End If

  4. #2184
    Erfahrener Benutzer Begeisterter Techniker Avatar von Picojetflyer
    Registriert seit
    03.08.2004
    Ort
    Sauerland
    Beiträge
    247
    Dann sehe ich da auch kein Fehler, sorry

  5. #2185
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.02.2011
    Beiträge
    183
    Hi,
    Ich brauche mal einen Tipp zu den Parametern.
    Heute bin ich nur kurz geflogen da mein Tricopter bei leichtem Wind von der Seite sich aufgeschüttelt hat und ist dann abgestürzt.
    Nach Reparatur habe ich es noch einmal probiert und dasselbe Problem zu viel Wind auf einer Seite und der Motor wird langsamer. ( sehr langsam)
    Aber danach sieht es nicht so aus als schafft es die Regelstrecke das auszugleichen, und es kommt zu Absturz. Im Hoovermod hatte ich das Gefühl es ist noch empfindlicher und es kommt gleich zu Absturz. Gestern bin ich auch geflogen da hatte sich das Problem so noch nicht gezeigt.
    Einziger Unterschied heute ist wärmer und etwas windiger.
    Was könnte ich Probieren, dass ich das Problem gelöst bekomme
    Grüße Sven

  6. #2186
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.02.2011
    Beiträge
    183
    Hi,
    ich bin ebbend nochmal geflogen, und konnte folgendes beobachten. Wenn ich mit dem Stick an der Funke schnell links rechts gehe (roll) macht der Tricopter eine Weile das mit, bis ein Motor kurz "ausgeht“. In den meisten Fällen ist es der rechte Motor, und er kippt weg.
    Dieses konnte ich schon früher beobachten wo der Tricopter noch "neu" war. Ich habe es auf die Parameter geschoben PID kann es daran liegen?
    Und welchen Parameter sollte ich dazu verändern?
    Dann noch eine Frage im Hoovermod muss ich die ganze zeit immer an der Funke den Stick nach vorne drücken (Nick), damit er mir nicht abhaut.
    Das kann man doch auch in den Parametern einstellen. Welchen ACC Offset x oder y muss ich verändern und wonach(Wert großer oder kleiner).
    Danke Grüße
    Sven

  7. #2187
    Erfahrener Benutzer Roboter-Spezialist Avatar von jevermeister
    Registriert seit
    20.01.2011
    Ort
    Kiel
    Beiträge
    393
    Hi,
    @ya: Hast du die ESCs so umprogrammiert das brake aus ist?

    @all:
    Ich hab mit dem Oszilloskop nochmal das Servosignal mit Standardparametern und Originalsoftware gemessen. Danach habe ich das signal direkt am Empfänger gemessen.

    Folgendes Ergebnis:
    1. Messung am Empfänger:
    Wenn ich den Stick bewege ändert sich die Breite des HIGH Impulses. Die positive Flanke des nächsten Impulses bleibt an ort und stelle, so wie ich das erwarte.

    2. Messung am TriGUIDE:
    Hier ändert sich auch die Breite des Impulses, ABER: Die positive Flanke des nächstes Impulses wird vor oder zurückgeschoben je nachdem wie ich den Stick bewege. Somit ändert sich ja die Wellenlänge und irgendwann habe ich garantiert einen Impuls doppelt oder verschluckt...
    Man sieht deutlich das je weiter ich von der getriggerten Flanke nach hinten gehe die verschiebung natürlich immer deutlich wird, da ja jede flanke um die vorherige impulslänge weiter geschoben wird.

    Man sieht auch das sich die Frequenz im Oszi ändert: von 56,2 bis 59,58Hz

    Ist das richtig?
    Ich hoffe ich habs einigermaßen verständlich ausgedrückt, ansonsten poste ich gerne Videos...

    Jetzt ist die Frage woher das jetzt kommt...

    nils

  8. #2188
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.02.2011
    Beiträge
    183
    Hi Nils,
    Bremse ist raus.

    Hier ist ein Bild zwecks Servo wie die Ansteuerung sein soll mit Impulslänge.

    Klicke auf die Grafik für eine größere Ansicht

Name:	3.png
Hits:	76
Größe:	30,7 KB
ID:	19195
    Grüße Sven

  9. #2189
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    hi,
    dass sich die frequenz ändert ist richtig. Denn die Pause zwischen zwei high-pulsen ist fix. wenn die high-pulse nun länger dauern, wird auch die frequenz geringer. man kann das mit relativ einfachen mitteln auch so programmieren, dass die frequenz immer gleich bleibt. aber nach meinen experimenten ist das egal. das servo oder der esc misst keine frequenz, die ist im sogar in gewissen rahmen total egal. was servo und esc messen ist nur die länge des high-pulses. Ich halte es für relativ unwahrscheinlich, dass dein Servo damit Probleme hat, aber du kannst es ja mal versuchen.
    Viele Grüße, William
    -> http://william.thielicke.org/

  10. #2190
    Erfahrener Benutzer Roboter-Spezialist Avatar von jevermeister
    Registriert seit
    20.01.2011
    Ort
    Kiel
    Beiträge
    393
    Hi,
    hi,
    dass sich die frequenz ändert ist richtig. Denn die Pause zwischen zwei high-pulsen ist fix. wenn die high-pulse nun länger dauern, wird auch die frequenz geringer. man kann das mit relativ einfachen mitteln auch so programmieren, dass die frequenz immer gleich bleibt. aber nach meinen experimenten ist das egal. das servo oder der esc misst keine frequenz, die ist im sogar in gewissen rahmen total egal. was servo und esc messen ist nur die länge des high-pulses. Ich halte es für relativ unwahrscheinlich, dass dein Servo damit Probleme hat, aber du kannst es ja mal versuchen.
    Ok, PWM /PPM, mach Sinn. Das Argument verstehe ich.
    Ich habe beim rumspielen aber gestern am Oszilloskop festgestellt, das tatsächlich am Ausgang das signal ziemlich tanzt. und zwar nur durch den Receiver beeinflusst.
    Ich hatte ja geschrieben, dass die Werte von Sempf(yawchannel) ständig um 1 wechseln, also ein paar zyklen liegt 0 and un ein paar 1 an.
    Durch die Skalierung der Parameter und die Verstärkungen im laufe der Servosignalvorbereitung wird das aber sehr verstärkt. Allerdings habe ich dieses Gezappel subjektiv ja erst seit einer Woche und dieses unruhige Eingangssignal um 1 ist ja wohl kein Problem oder? Darüber hinaus macht die 40MHz Funke das gleiche.

    Latein: ENDE!!

    Anbei ein Video vom Gezappel des Ausgangs.

    Die I²C umsetzer sind abgeklemmt, die Motoren bleiben also aus. Es sit kein servo angeschlossen sondern nur das Oszilloskop. Ich bin zunächst im IdleMode, somit bleibt servopwm in Mittelstellung bei 32000irgendwas, dann schalte ich in den Hovermode und das Signal beginnt zu zucken.



    Da mir die Erfahrung fehlt stellt sich nun die Frage ist das im Rahmen und ich stelle mich zu sehr an oder ist hier n Problem.

    Man müsste mal errechnen wie die Änderung von servopwm im Verhältnis zur Gesamtauslenkung stehen und das mit der Veränderung der Pulsweite vergleichen, ob da ein Zusammenhang besteht. Dann wüsste man ob das ein Softwareproblem oder ein Hardwareproblem ist. Aber es ist schon bemerkenswert, dass ein konstantes servopwm einen ruhigen Servo zur fogle hat, also schein eine Bewegung das Problem zu verursachen. Ich hab die Rampe gestern nicht mehr geschafft zu programmieren.

    Nils

Seite 219 von 355 ErsteErste ... 119169209217218219220221229269319 ... LetzteLetzte

Stichworte

Berechtigungen

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

LiFePO4 Speicher Test