MultiWiiCopter - erstes Einfliegen/Trimmung/Übung

-Ralf-

Erfahrener Benutzer
#41
ESC habe ich nun über MultiWii kalibriert. 3 ESCs werden dabei kalibriert, der betroffene ESC reagiert darauf nicht.
Dann hat der möglicherweise ne Macke ..... ich würde ihn austauschen.

Kannst ja mal testen, wenn du die ESC an den Pins tauschst,
ob immer der gleiche nicht initialisiert. Oder ob immer am gleichen Pin
nicht initialisiert wird; dann hat das Board ne Macke.
 
#42
Definitiv ist der Fehler wohl im FC.
2 ESCs auf den FC Pins getauscht, kalibriert und getestet, nun piepst der andere Regler.

Kann ich mir wirklich nicht erklären. Der FC ist zwar nicht neu, wurde aber noch nie richtig geflogen und wirklich über Nacht, ohne äußere Einwirkung, ist das passiert! Unfassbar :( ...aber Danke für die TOP Unterstützung soweit!
 

-Ralf-

Erfahrener Benutzer
#43
Jetzt kannst du nur noch die Leiterbahn vom Pin zum Controller durchmessen.
Wenn sie unterbrochen ist, kannst du eventuell noch eine Brücke löten.
 
#45
Bei meinem FC (DroFly Pro) ist das der PIN6.
PIN7 benötige ich für meinen QuadX ja nicht.
Also könnte ich ja mal die Signale für PIN6 und PIN7 tauschen.

Im MultiWii Code finde ich in der def.h einige PIN Deklarationen.
Was gibt es da denn alles zu beachten?
 

-Ralf-

Erfahrener Benutzer
#46
Das geht nicht so einfach, da jeder Pin am Microcontroller nur bestimmte Funktionen
aufweist. Und hier ist wichtig, das der Pin PWM ausgeben kann. Und das muss explizit
eingestellt werden (Register des µC müssen anders definiert werden).
 
#47
Der FC ist ja auch für Hexa- oder sogar Octocopter ausgelegt. PIN7 ist normalerweise für einen weiteren Motor einer größeren Copterkonfiguration vorgesehen. Also sollte der PIN ja alle notwendigen Eigenschaften definiert haben? Oder werden diese Eigenschaften erst definiert, wenn der entsprechende Coptertyp eingestellt wurde?
 

-Ralf-

Erfahrener Benutzer
#48
Der FC ist ja auch für Hexa- oder sogar Octocopter ausgelegt. PIN7 ist normalerweise für einen weiteren Motor einer größeren Copterkonfiguration vorgesehen. Also sollte der PIN ja alle notwendigen Eigenschaften definiert haben? Oder werden diese Eigenschaften erst definiert, wenn der entsprechende Coptertyp eingestellt wurde?
Ja, kannst machen, mußt aber den Motor-Mixer anpassen .... siehe hier ...

http://www.multiwii.com/forum/viewtopic.php?f=8&t=1625
 
#49
Danke für den Hinweis!
Aber so wie das aussieht, lasse ich davon lieber mal die Finger.
Ist wohl einiges zu beachten, da fehlt mir noch der richtige Durchblick für den Code. ;/

Aber wie kann denn sowas passieren? Wie gesagt, am Tag davor war noch alles OK und das einzige was passiert ist, das es Nacht und wieder Tag wurde!?? :(
 
Zuletzt bearbeitet:
#50
Man muss also als Coptertyp HEX6X wählen und den Motor-Mixer anpassen.

In dem oberen Beitrag wird folgende Anpassung vorgenommen:

#ifdef HEX6X // now quad x with pin 9,10,11,6
motor[0] = 1000; // pin 3 .. not used
motor[1] = PIDMIX(-1,+1,-1); //REAR_R -> pin 9
motor[2] = PIDMIX(-1,-1,+1); //FRONT_R -> pin 10
motor[3] = PIDMIX(+1,+1,+1); //REAR_L -> pin 11
motor[4] = PIDMIX(+1,-1,-1); //FRONT_L -> pin 6
motor[5] = 1000; // pin 5.. not used
#endif

Jetzt will ich ja aber pin 6 umgehen, könnte ich dann zb die letzten beiden Zeilen einfach ändern, in folgendes?

motor[4] = 1000; // pin 6.. not used
motor[5] = PIDMIX(+1,-1,-1); //FRONT_L -> pin 5

Ist die Reihenfolge dieses Motor-Arrays immer in einer bestimmten Reihenfolge und wenn ja, kann man das irgendwo im Code nachvollziehen?
Ich nehme mal an dass mit dem PIDMIX festgelegt wird, wie der Motor angesteuert wird und damit wird dann die Motor-Position bestimmt, ist das richtig? kann man irgendwo nachlesen, wie dieses PIDMIX funktioniert?
 

Miss-Lynn

Erfahrener Benutzer
#51
Also ich lass mir gerne vom angeblichen Erbsenzähler noch mehr erklären. Was passiert eigentlich, wenn ich HH ohne Mag an einer simplen MW FC anschalte? Macht es da gar nix oder nur Murks? Viel kann eigentlich nicht bei rauskommen, oder?
Hi zusammen

Normalerweise muss du ja zunächst mal im sketch dein FC board mit den Sensoren ausgewählt(einkommentiert) werden. Oder halt einzelsensoren auswählen. Wenn du das tust und hast aber gar keinen passenden Sensor an Bord wird wahrscheinlich gar nix passieren. Die Software sucht den einkommentierten Sensor findet aber nichts. Also kannst du ohne die anwesenheit eines passenden Sensors, in unserem Fall eines Mag sensors die HH funktion garnicht aktivieren.
Das gleiche ist mit GPS. Kein GPS an Bord, keine Werte und damit auch kein RTH oder PosHold aktivierbar.

Gruss Stefan
 

Spacefish

Erfahrener Benutzer
#53
Der Wert der nachher ausgegeben wird muss im Motor Array stehen. Der ganze Code da wird andauernd neu ausgeführt um die Werte immer zu aktualisiert
 
#54
Ich habe nämlich im Multi Forum auch noch einen anderen Beitrag gefunden, wo es um das gleiche geht, aber die PINS ganz anders aufgeteilt sind. Irgendwo muss man doch sehen können, welche PINS für welches Motor-Array sind?

Hier nochmal das letzte Beispiel:

#ifdef HEX6X // now quad x with pin 9,10,11,6
motor[0] = 1000; // pin 3 .. not used
motor[1] = PIDMIX(-1,+1,-1); //REAR_R -> pin 9
motor[2] = PIDMIX(-1,-1,+1); //FRONT_R -> pin 10
motor[3] = PIDMIX(+1,+1,+1); //REAR_L -> pin 11
motor[4] = PIDMIX(+1,-1,-1); //FRONT_L -> pin 6
motor[5] = 1000; // pin 5.. not used
#endif

An anderer Stelle in dem MultiWii-Forum wird aber folgendes beschrieben:

#ifdef HEX6X // now quad x with pin 10,11,A0,A1
motor[0] = 1000; // pin 3 .. not used
motor[1] = PIDMIX(+1,+1,+1); //REAR_L -> pin 10
motor[2] = PIDMIX(-1,-1,+1); //FRONT_R -> pin 11
motor[3] = 1000; // pin 9.. not used
motor[4] = PIDMIX(+1,-1,-1); //FRONT_L -> pin 6 (A1)
motor[5] = PIDMIX(-1,+1,-1); //REAR_R -> pin 5 (A0)
#endif

Der PIDMIX für die entsprechenden Motorpositionen stimmt hier ja überein.
Auch die verwendeten PINS sind identisch, nur eben ganz anders auf das Motor-Array verteilt!?
Kann man sich das irgendwie erklären?
 

-Ralf-

Erfahrener Benutzer
#55
Das ist Board-spezifisch und abhängig vom verwendeten Prozessortyp (328er, 32u4 oder 2560er).
Je nach Prozessor liegen die PWM's auf anderen Pins. Du mußt halt den PIDMIX für deinen
Prozessor auswählen.
 
#56
Jetzt is der Groschen gefallen! ...Vielen Dank Ralf! :)

In der Output.ccp findet man die Sektion: "Writes the Motors values to the PWM compare register"

Mein FC der "Drofly Pro" hat ein 2560er Prozessor, also muss ich mich nach den "Specific PWM Timers & Registers for the MEGA's" aus der Output.ccp richten wo man sich folgende Werte rausziehen kann:

motor[0]<< 3; // pin 3
motor[1]<< 3; // pin 5
motor[2]<< 3; // pin 6
motor[3]<< 3; // pin 2
motor[4]<< 3; // pin 7
motor[5]<< 3; // pin 8
motor[6]>> 3; // pin 9
motor[7]>> 3; // pin 10

Ich werde das gleich mal ausprobieren! :)
 

-Ralf-

Erfahrener Benutzer
#57
Hier mal der PIDMIX für einen QuadX ......

Code:
  #elif defined( QUADX )
    motor[0] = PIDMIX(-1,+1,-1); //REAR_R
    motor[1] = PIDMIX(-1,-1,+1); //FRONT_R
    motor[2] = PIDMIX(+1,+1,+1); //REAR_L
    motor[3] = PIDMIX(+1,-1,-1); //FRONT_L
 
#58
Folgende Anpassung habe ich nun gemacht:

motor[0] = PIDMIX(-1,+1,-1); //REAR_R > pin 3
motor[1] = PIDMIX(-1,-1,+1); //FRONT_R > pin 5
motor[2] = 1000; // pin 6 ..not used
motor[3] = PIDMIX(+1,-1,-1); //FRONT_L > pin 2
motor[4] = PIDMIX(+1,+1,+1); //REAR_L > pin 7
motor[5] = 1000; // pin 8 ..not used

...und wer hätte es gedacht, alle ESCs sind zufrieden! ;)
Blöd ist halt nur dass nun in der MultiWiiCOnf ich nen Hexa angezeigt bekomme, was ja auch klar ist, weile das ja nicht gerade eine saubere Lösung ist, wie sie vorgesehen ist. ;)
Aber ob wirklich alles korrekt funktioniert, lässt sich wohl nur mit einem richtigen Flugtest rausfinden.

Aber vielen Dank für deine Hilfe Ralf, die Informationen waren wirklich TOP und alleine hätte ich das nie geschafft!

btw, ich glaub ich weiss warum mir der PIN6 flöten ging, ich bin einmal mit dem Servokabel des ESCs auf der PIN Reihe verrutscht, während Spannung drauf war. :( So schnell kanns gehen, das soll mir wohl eine Lehre sein.
 
Zuletzt bearbeitet:
FPV1

Banggood

Oben Unten