In de categorie vragen die ik niet op de multiwii-forums durf te stellen:
Ik gebruik sinds kort een magnetometer (MAG) op mijn Nanowii-Quad, hoewel het resultaat tot nog toe niet heel schokkend is, lijkt het wel wat te doen voor Yaw in de wind.
Ben de PID nog langzaam aan het opvoeren, lijkt al wel beter te worden.
Wat ik me af vroeg; waarom gebruiken 'we' de andere assen van de MAG eigenlijk niet in MultiWii ?
En zou ik dat zelf kunnen toevoegen ?
In multiwii.ino zie ik het volgende staan:
Hier wordt in de laatste regel de YAW aangepast.
Alleen de rotatie dus.
Aan de data in MultiWiiConf te zien werkt mijn kompas echter in 3 dimensies.
Kan ik niet ook voor ROLL en PITCH zoiets doen ?
Zodat je iets krijgt als:
Ik gebruik sinds kort een magnetometer (MAG) op mijn Nanowii-Quad, hoewel het resultaat tot nog toe niet heel schokkend is, lijkt het wel wat te doen voor Yaw in de wind.
Ben de PID nog langzaam aan het opvoeren, lijkt al wel beter te worden.
Wat ik me af vroeg; waarom gebruiken 'we' de andere assen van de MAG eigenlijk niet in MultiWii ?
En zou ik dat zelf kunnen toevoegen ?
In multiwii.ino zie ik het volgende staan:
Code:
#if MAG
if (abs(rcCommand[YAW]) <70 && f.MAG_MODE) {
int16_t dif = heading - magHold;
if (dif <= - 180) dif += 360;
if (dif >= + 180) dif -= 360;
if ( f.SMALL_ANGLES_25 ){
rcCommand[YAW] -= dif*conf.P8[PIDMAG]>>5;
}
Alleen de rotatie dus.
Aan de data in MultiWiiConf te zien werkt mijn kompas echter in 3 dimensies.
Kan ik niet ook voor ROLL en PITCH zoiets doen ?
Zodat je iets krijgt als:
Code:
#if MAG
if (abs(rcCommand[YAW]) <70 && f.MAG_MODE) {
int16_t dif = heading - magHold;
if (dif <= - 180) dif += 360;
if (dif >= + 180) dif -= 360;
if ( f.SMALL_ANGLES_25 ){
rcCommand[YAW] -= dif*conf.P8[PIDMAG]>>5;
rcCommand[ROLL] -= dif*conf.P8[PIDMAG]>>?;
rcCommand[PITCH] -= dif*conf.P8[PIDMAG]>>?;
}