- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 36

Thema: Quadrocopter

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    42
    Beiträge
    982
    Ich werde mal ein paar Messungen zum Vergleich machen.

    Was verstehst du unter PLL Source? Ich finde es komisch das der einte Gyro praktisch keinen Drift hat und der andere so extrem.

    Eine Idee wäre noch, nicht die Fixe Kurve zu verwenden, sondern beim Start den Start Offset und Temperatur speichern und danach anhand der Temperaturdifferenz zum Start und dem Start Offset den korrigierten Offset anhand der Kurve berechnen. Ich hoffe du verstehst was ich meine

    Das Problem ist mir auch erst jetzt aufgefallen mit dem kleinen ACC Anteil (0.001) beim Komplementärfilter, jetzt hat der ACC-Anteil zu wenig "Kraft" den Winkel zu korrigieren und er läuft mir langsam davon wenn der Gyro wegdriftet... bei einem Anteil von 0.02 hatte der ACC genug "Kraft" den Absoluten Winkel zu korrigieren, obwohl der Gyro langsam wegdriftete....

    Ja es wäre sehr intresssant einen Vergleich zu haben. Ich mache einfach einmal pro Sekunde einen Mittelwert und zeichne diesen auf
    Hier mal ein paar Code Ausschnitte:

    Code:
    Dim LSB as Byte
    Dim MSB as Byte
    Dim Gyr_X as Integer
    Dim Gyr_Y as Integer
    Dim Gyr_Z as Integer
    Dim Temperatur as Integer 
    Dim Gyr_X_Offset as Integer
    Dim Gyr_Y_Offset as Integer
    Dim Gyr_Z_Offset as Integer
    Dim Gyr_X_Offset_Sum as Long
    Dim Gyr_Y_Offset_Sum as Long
    Dim Gyr_Z_Offset_Sum as Long
    Dim i as Word 
    
    
    'Offset berechnen, Mittelwert aus 300 Messungen
       Gyr_X_Offset_Sum = 0
       Gyr_Y_Offset_Sum = 0
       Gyr_Z_Offset_Sum = 0
       For i = 1 to 300
          gosub  MPU6050_READ
          Gyr_X_Offset_Sum = Gyr_X_Offset_Sum + Gyr_X
          Gyr_Y_Offset_Sum = Gyr_Y_Offset_Sum + Gyr_Y
          Gyr_Z_Offset_Sum = Gyr_Z_Offset_Sum + Gyr_Z
       next
       decr i
       Gyr_X_Offset = Gyr_X_Offset_Sum / i
       Gyr_Y_Offset = Gyr_Y_Offset_Sum / i
       Gyr_Z_Offset = Gyr_Z_Offset_Sum / i
    
    
    '----------   Beschleunigungssensor auslesen   ----------
    MPU6050_read:
    
       I2cstart
       I2cwbyte &HD0                       'Schreibadresse
       I2cwbyte &H3B                       'Register h43 auswählen
       I2cstop
    
       I2cstart
       I2cwbyte &HD1                       'Leseadresse
    
       I2crbyte Msb , Ack                  'ACC X (Register 3B + 3C)
       I2crbyte Lsb , Ack
       ACC_X = Makeint(Lsb,Msb)
       I2crbyte Msb , Ack                  'ACC Y (Register 3D + 3E)
       I2crbyte Lsb , Ack
       ACC_Y = Makeint(Lsb,Msb)
       I2crbyte Msb , Ack                  'ACC Z (Register 3F + 40)
       I2crbyte Lsb , Ack
       ACC_Z = Makeint(Lsb,Msb)
    
       I2crbyte Msb , Ack                  'Temperatur (Register 41 + 42)
       I2crbyte Lsb , Ack
       Temperatur = Makeint(Lsb,Msb)
       Temperatur = Temperatur / 34
       Temperatur = Temperatur + 365
    
       I2crbyte Msb , Ack                  'Gyro X (Register 43 + 44)
       I2crbyte Lsb , Ack
       Gyr_X = Makeint(Lsb,Msb)
       I2crbyte Msb , Ack                  'Gyro Y (Register 45 + 46)
       I2crbyte Lsb , Ack
       Gyr_Y = Makeint(Lsb,Msb)
       I2crbyte Msb , Ack                  'Gyro Z (Register 47 + 48)
       I2crbyte Lsb , Nack
       Gyr_Z = Makeint(Lsb,Msb)
    
    Return
    
    
    '----------   Beschleunigungssensor Initialisieren   ----------
    MPU6050_init:
    
       'Sensor aktivieren
       I2cstart
       I2cwbyte &HD0                       'Schreibadresse
       I2cwbyte &H6B                       'Register h6B Powermanagement
       I2cwbyte &H00                       'Wert 0 schreiben
       I2cstop
    
       waitms 200
       Toggle LED_R
       toggle LED_H
    
       'Filter konfigurieren
       '     ACC                  Gyro
       'Wert Bandbreite  Delay    Bandbreite  Delay
       '0    260Hz       0.0ms    256Hz       1.0ms
       '1    184Hz       2.0ms    188Hz       1.9ms
       '2     94Hz       3.0ms     98Hz       2.8ms
       '3     44Hz       4.9ms     42Hz       4.8ms
    
       I2cstart
       I2cwbyte &HD0                       'Schreibadresse
       I2cwbyte &H1A                       'Register h1A Filter
       I2cwbyte 6                         'Wert schreiben
       I2cstop
    
       waitms 200
       Toggle LED_R
       toggle LED_H
    
       'Gyro Bereich festlegen
       'Wert    Bereich
       '0       +/-  250°/s
       '8       +/-  500°/s
       '16      +/- 1000°/s
       '24      +/- 2000°/s
    
       I2cstart
       I2cwbyte &HD0                       'Schreibadresse
       I2cwbyte &H1B                       'Register h1B Gyro konfig
       I2cwbyte 16                         'Wert schreiben
       I2cstop
    
       waitms 200
       Toggle LED_R
       toggle LED_H
    
       'ACC Bereich festlegen
       'Wert    Bereich
       '0       +/-  2g
       '8       +/-  4g
       '16      +/-  8g
       '24      +/- 16g
    
       I2cstart
       I2cwbyte &HD0                       'Schreibadresse
       I2cwbyte &H1C                       'Register h1C ACC konfig
       I2cwbyte 0                          'Wert schreiben
       I2cstop
    
       waitms 200
       Toggle LED_R
       Toggle LED_H
    
    Return
    Gruss Bluesmash
    Geändert von Bluesmash (01.05.2015 um 19:44 Uhr)

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    42
    Beiträge
    982
    Hallo Chris

    Ich habe jetzt mal testweise die Temperaturkompensation anhand der gemessenen Kurven implementiert.
    In ein paar Testversuchen zwischen ca. 23°C und 45°C bleibt der Absolute Kopterwinkel sehr stabil +/-0.1-0.2° (Der Kopter stand immer unbewegt auf dem Boden)
    Ohne die Kompensation hatte ich bei einer Erwärmung von 23°C auf ca. 40°C eine Abweichung von ca. 4° auf der X-Achse...

    Ich hoffe jetzt mal, der Temperatur-Drift bleibt in der nächsten Zeit konstant damit man dies nicht alle paar Tage anpassen muss... Natürlich muss man den Drift bei jedem einzelnen MPU6050 separat bestimmen...
    Mal sehen wie sich der Drift über einen längeren Zeitraum verhält.
    Ich habe nur einen kurzen Flug in der Küche absolviert und abgesehen von den Turbulenzen die in einem kleinen Raum entstehen, fliegt der Kopter jetzt sehr stabil

    gruss Bluesmash

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    42
    Beiträge
    982
    Hallo

    In letzter Zeit habe ich noch einige Optimierungen am Code vorgenommen. Ich habe jetzt noch das Problem, dass wenn wenig Last auf den Motoren ist (Sinkflug) die Regler sich ein wenig aufschaukeln und er in der Luft ein wenig "zappelt". Da muss ich noch an den PID-Parameter schrauben. Hat da gerade jemand eine Idee in Welche Richtung ich schrauben soll? P und I verkleinern?

    Ich habe jetzt auch den Luftdruck Sensor (MS5611) in Betrieb genommen und berechne damit die Höhe. Wenn er ruhig auf dem Boden steht schwankt die Höhe so um ca. +/- 10cm. Wenn ich jetzt aber die Motoren starte (Copter steht auf dem Boden) fällt die Höhe um ca. 1-2m. Durch die Propeller gibt es unter dem Copter einen Überdruck und dadurch sinkt natürlich die Höhe. Den Drucksensor habe ich mit Schaumstoff eingepackt.
    Nun meine Frage, wie verhält sich das dann in der Luft? Wie sind da so die Erfahrungen? Ändert sich der Druck auch bei mehr oder weniger Schub?
    Und wie sind die Erfahrungen bei einem Höhenregler? Reicht es auf den Luftdruck zu Regeln oder sollte ich den Luftdruck über einen Komplementärfilter mit den ACC-Sensoren koppeln?

    Gruss Bluesmash

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    42
    Beiträge
    982
    Hallo Zusammen

    Da mein Grosser schon relativ gut fliegt brauchte ich eine neue Herausforderung.
    Daher habe ich mir noch einen kleinen Quad für indoor gebaut.
    Die Platine habe ich selber gezeichnet und geätzt.

    Dies ist aber schon die zweite Version. Bei der ersten habe ich einige Design-Fehler bei der Platine gemacht und die Motoren hatte ich nur mit einer Lasche befestigt. Diese sind aber nach und nach durch die Vibrationen abgebrochen...

    Mit den Motoren bin ich aber nicht 100% zufrieden. Irgendwie machen einige komische Geräusche. Wie wenn die Lager bereits defekt wären, dabei haben sie erst ein paar Flugminuten.... Irgendwelche komischen Resonanzgeräusche, auf dem Video kann man es hören...

    Hier einige Eckdaten:
    - Motoren: AP03 7000kv
    - ESC: SuperMicro Systems Mi-3A
    - Empfänger: Orange
    - Akku: Turnigy nano-tech 750mah 1s
    - Propeller: 3020 von Hobbyking
    - Empfänger: OrangeRX NanoReceiver R616XN
    - IMU: MPU6050
    - Prozessor: Atmega328P

    Hier ein paar Bilder:

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

Name:	20151011_124913.jpg
Hits:	16
Größe:	87,0 KB
ID:	30787

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

Name:	20151011_125012.jpg
Hits:	13
Größe:	118,6 KB
ID:	30788

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

Name:	20151011_125048.jpg
Hits:	12
Größe:	93,3 KB
ID:	30789

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

Name:	20151011_125057.jpg
Hits:	12
Größe:	120,4 KB
ID:	30790

    https://youtu.be/94cC_pz9oFk

Ähnliche Themen

  1. Quadrocopter (Dimensionierung)
    Von crabtack im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 54
    Letzter Beitrag: 24.03.2015, 16:44
  2. Quadrocopter Höhenbegrenzung
    Von Che Guevara im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 19.10.2011, 23:55
  3. Quadrocopter
    Von Thalhammer im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 16
    Letzter Beitrag: 10.02.2011, 12:06
  4. -=4C=- Quadrocopter
    Von Salvador im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 42
    Letzter Beitrag: 15.05.2009, 19:43
  5. quadrocopter
    Von goara im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 257
    Letzter Beitrag: 27.12.2008, 21:07

Stichworte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress