- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 16

Thema: Winkelgeschwindigkeit Integrieren

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    32
    Beiträge
    1.578
    Hallo,

    ich selbst kann zwar kein C programmieren (bzw. nur schlecht), aber etwas fällt mir schon auf:
    In deiner Offset-Routine addierst du 500 mal den gleichen Wert und teilst dann durch 500. Das macht wenig Sinn, du müsstet in deiner For-Schleife den Sensor immer wieder neu auslesen. Ich benutze in meinen Koptern auch den MPU60X0 und bestimme den Offset wie folgt:
    1. Ich sample 50 Werte von jeder Achse (gyrox, gyroy und gyroz)
    2. Ich vergleiche alle Werte miteinander (also Gyrox(1) mit Gyrox(2), Gyrox(2) mit Gyrox(3), usw...) für jede Achse (also jeweils Gyrox, Gyroy & Gyroz)
    3. Wenn der Unterschied zwischen zwei benachbarten Werten eine bestimmte Schwelle überschreitet (bei mir: 3 (bei 2000°/s und 42Hz DLPF)), sample ich wieder neue 50 Werte
    4. Wenn der Unterschied geringer ist, addiere ich die 50 Werte und teile durch 50, so kann ich eine minimale Abweichung, welche die Grenze nicht überschreitet, trotzdem einigermassen ausgleichen

    Die Rohdaten musst du, bis auf das Abziehen des Offsets, nicht weiter aufbereiten. Welche Einstellungen hast du den im MPU gemacht bzgl. Empfindlichkeit und DLPF?

    Gruß
    Chris

    EDIT:
    Dass bei schnellen Drehungen die Winkeländerung zu langsam erfolgt, könnte daran liegen, dass du innerhalb der Main-loop Schleife die Daten über die serielle Schnittstelle ausgibst. Evtl. wäre es sinnvoller, dies nur alle xx-Durchläufe zu machen, etwa so (Pseudocode):
    Code:
    Byte: Cnt
    
    Mainloop:
       getSensorData()
       gz = gz - gz_null
       winkel = winkel + gz
       cnt = cnt + 1
       wenn cnt = 100 dann
          cnt = 0
          serialport.write(winkel)
       ende wenn
    Springe zu Mainloop
    Außerdem fällt mir noch das dt auf: IMHO braucht man das nicht zwingend, zumindest funktionierts in meinen Koptern auch hervorragend ohne diesen Parameter.
    Geändert von Che Guevara (10.06.2012 um 16:43 Uhr)

Ähnliche Themen

  1. PID-Regler regelt Winkel anstatt Winkelgeschwindigkeit
    Von Che Guevara im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 0
    Letzter Beitrag: 21.05.2011, 22:35
  2. ISP auf Platine integrieren....
    Von Cybered im Forum AVR Hardwarethemen
    Antworten: 13
    Letzter Beitrag: 12.02.2008, 20:31
  3. Gyrosignal integrieren?
    Von Hendrix85 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 04.01.2008, 17:04
  4. C compiler in AVR Studio 4.11 integrieren??
    Von Redsox im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 16.09.2005, 11:55
  5. avr-gcc in MSVC integrieren
    Von hahoyer im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 07.07.2005, 09:22

Berechtigungen

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

12V Akku bauen