Hallo Chris

Die Haube habe ich aus der Bastelecke, da gibt es solche Plexiglaskugeln die aus 2 Hälften bestehen.
Der Rest ist selbst gemacht. Der Grundrahmen besteht aus Karbon Rohren und Aluminium Teilen die mir ein Freund gedreht hat. Die Rohre sind mit 2K-Epoxid eingegklebt.

Übrigens, auf dem Quadrocopter habe ich noch ein Raspberry Pi A+ mit Kamera verbaut. Mit dem PI möchte ich einen Access-Point aufbauen und darauf soll ein Webserver für die Bedienung der Kamera laufen... Das ist meine nächste Baustelle

Alle 5ms wird der Sensor ausgelesen, die Winkel berechnet und die PID-Regler aufgerufen.
Der Komplementär Filter läuft mit 0.98*Gyro und 0.02*ACC.
Den Regler habe ich als Kaskade aufgebaut. Der innere Regelkreis (PID) Regelt nur auf die Gyro-werte und der äussere (PI) Regelt dann den Winkel. Im Video auf der Wippe ist es gut ersichtlich (In der ersten Hälfte läuft nur der Gyro-Regler und in der zweiten wird der äussere Regler hinzugeschaltet).

Auf dem Video ist es relativ schwierig zu erkennen, da man nicht sieht wann ich den Knüpel los lasse...
Am besten sieht man es im ersten Video ab 0:12 2mal nacheinander. Da gebe ich ihm nur einen kleinen "Schupf", in dem Moment wo er kurz zurückregelt lasse ich den Knüppel los und er fliegt schräg weiter.

Hier mal der relevante Teil des Codes vielleicht verstehts du etwas ich habe leider nur wenig dokumentiert...
Code:
   'Sensordaten einlesen
   Gosub MPU6050_read

   'Gyrowinkel berechnen
   'Offset abziehen
   Gyr_X = Gyr_X - Gyr_X_Offset
   Gyr_Y = Gyr_Y - Gyr_Y_Offset
   Gyr_Z = Gyr_Z - Gyr_Z_Offset
   'Winkel X-Achse
   Ist_Gyr_X = Gyr_X / 32.8
   Temp_s = Ist_Gyr_X * 0.005
   Winkl_Gyr_X = Temp_s
   'Winkel Y-Achse
   Ist_Gyr_Y = Gyr_Y / 32.8
   Temp_s = Ist_Gyr_Y * 0.005
   Winkl_Gyr_Y = Temp_s
   'Winkel Z-Achse
   Ist_Gyr_Z = Gyr_Z / 32.8
   Temp_s = Ist_Gyr_Z * 0.005
   Winkl_Gyr_Z = Temp_s

   'Beschleunigungen auf +/- 1g begrenzen    
   If ACC_X > 17000 Then ACC_X = 17000
   If ACC_X < -17000 Then ACC_X = -17000
   If ACC_Y > 17000 Then ACC_Y = 17000
   If ACC_Y < -17000 Then ACC_Y = -17000
   If ACC_Z > 17000 Then ACC_Z = 17000
   If ACC_Z < -17000 Then ACC_Z = -17000

   'ACC Winkel berechnen X-Achse
   Temp2_s = ACC_Y
   Temp_s = ACC_X * ACC_X
   Temp3_s = ACC_Z * ACC_Z
   Temp_s = Temp_s + Temp3_s
   Temp3_s = sqr(Temp_s)
   Temp_s = atn2(Temp2_s , Temp3_s)
   Winkl_ACC_X = rad2deg(Temp_s)
   'ACC Winkel berechnen Y-Achse
   Temp2_s = ACC_X
   Temp_s = ACC_Y * ACC_Y
   Temp3_s = ACC_Z * ACC_Z
   Temp_s = Temp_s + Temp3_s
   Temp3_s = sqr(Temp_s)
   Temp_s = atn2(Temp2_s , Temp3_s)
   Temp_s = Temp_s * -1
   Winkl_ACC_Y = rad2deg(Temp_s)

   'Komplementärfilter 0,98*Gyro + 0.02*ACC
   'X-Achse
   Temp_s = Winkel_X + Winkl_Gyr_X
   Temp2_s = Temp_s * Kompl_Faktor
   Temp_s = 1 - Kompl_Faktor
   Temp3_s = Winkl_ACC_X * Temp_s
   Winkel_X = Temp2_s + Temp3_s
   'Y-Achse
   Temp_s = Winkel_Y + Winkl_Gyr_Y
   Temp2_s = Temp_s * Kompl_Faktor
   Temp_s = 1 - Kompl_Faktor
   Temp3_s = Winkl_ACC_Y * Temp_s
   Winkel_Y = Temp2_s + Temp3_s

   'Trimm Wert verrechnen
   Winkel_X_T = Winkel_X + Winkel_X_Trimm
   Winkel_Y_T = Winkel_Y + Winkel_Y_Trimm