hi jungs...
@marix:
Code: Alles auswählen
#define YAW_DIRECTION 1 // if you want to reverse the yaw correction direction (TRICOPTER only)
//#define YAW_DIRECTION -1
(TRICOPTER only) also nix für QUAD egal ob in PLUS oder X Konfiguration
mensch wars heute arsch kalt (zumindest gefühlt)
ich bin nachdem ich jetz meine wellen getauscht hab den vibrationen auf den grund gegangen und sie traten immer genau bei knüpple auf knapp über mitte auf, also genau da wo ich das seltsame verhalten hatte...
nachdem mein quad nicht sonderlich groß ist und sich mit etwas kraft auf bei vollgas noch halten lässt hab ich nun alles sogut gewuchtet wies nur ging und kann über das ganze drehzahlbereichs nur noch minimale vibrationen fest-stellen.
nachdem inzwischen auch mein
BMA 020 von ELV gekommen ist hab ich den NK ausgebaut und dem neuen ACC (bma 020) in verbindung mit der PRE 1.6 eine chance gegeben
cycletime ist jetzt bei ca.
4500 (wenn ich nur meine WMP drann hab bin ich bei 3200 drunter komm ich irgendwie nicht, I2C funktioniert auch nur bei 100khz drüber bekomm ich unsaubere signale)
achja und da
POINT65 ja einen fehler beim auslesen des WMP gefunden hat hab ich dessen code auch noch mit eingepflegt
-> alles kurven suuuper flach
verhalten in der luft: kein wackeln, kein zucken alles perfetto

....
naja fast, bei VOLLPITCH drehts mir den quad auf eine richtung aus (yaw), geh ich mit pitch etwas zurück is alles wieder gut
hat einer ne idee??? (1 der luftschrauben hat ne kleine zacke raus... ist aber gewuchtet)
gruß Chris
Hier noch der Code von
POINT65:
Code: Alles auswählen
i2c_WMP_getRawADC();
if ( (rawADC_WMP[5]&0x02) == 0x02 && (rawADC_WMP[5]&0x01) == 0 ) {// motion plus data
gyroADC[PITCH] = - ( ((rawADC_WMP[4]>>2)<<8) + rawADC_WMP[1] );
gyroADC[ROLL] = - ( ((rawADC_WMP[5]>>2)<<8) + rawADC_WMP[2] );
gyroADC[YAW] = - ( ((rawADC_WMP[3]>>2)<<8) + rawADC_WMP[0] );
return 1;
} else if ( (rawADC_WMP[5]&0x02) == 0 && (rawADC_WMP[5]&0x01) == 0) { //nunchuk data
#if defined(ADXL345) || defined(BMA020) || defined(BMA180) || defined(MMA7455L) // Added code
return 2; // Added code
#else // Added code
accADC[PITCH] = - ( (rawADC_WMP[2]<<2) + ((rawADC_WMP[5]>>3)&0x2) );
accADC[ROLL] = ( (rawADC_WMP[3]<<2) + ((rawADC_WMP[5]>>4)&0x2) );
accADC[YAW] = - ( ((rawADC_WMP[4]&0xFE)<<2) + ((rawADC_WMP[5]>>5)&0x6) );
return 0;
#endif // Added code
} else
return 2;
Hier die Bilder von der GUI, vom BMA 020 nebst original WMP, und für die Messwertfanatiker ein kleines Log
